nandflash驱动移植patch
发布时间:2020-12-15 07:13:24 所属栏目:百科 来源:网络整理
导读:diff --git a/.config b/.config deleted file mode 100644 index 83e1515..0000000 --- a/.config +++ /dev/null @@ -1,2278 +0,0 @@ -# -# Automatically generated make config: don't edit -# Linux/arm 3.0.8 Kernel Configuration -# -CONFIG_ARM=y -C
diff --git a/.config b/.config deleted file mode 100644 index 83e1515..0000000 --- a/.config +++ /dev/null @@ -1,2278 +0,0 @@ -# -# Automatically generated make config: don't edit -# Linux/arm 3.0.8 Kernel Configuration -# -CONFIG_ARM=y -CONFIG_HAVE_PWM=y -CONFIG_SYS_SUPPORTS_APM_EMULATION=y -CONFIG_GENERIC_GPIO=y -# CONFIG_ARCH_USES_GETTIMEOFFSET is not set -CONFIG_GENERIC_CLOCKEVENTS=y -CONFIG_KTIME_SCALAR=y -CONFIG_HAVE_PROC_CPU=y -CONFIG_NO_IOPORT=y -CONFIG_STACKTRACE_SUPPORT=y -CONFIG_HAVE_LATENCYTOP_SUPPORT=y -CONFIG_LOCKDEP_SUPPORT=y -CONFIG_TRACE_IRQFLAGS_SUPPORT=y -CONFIG_HARDIRQS_SW_RESEND=y -CONFIG_GENERIC_IRQ_PROBE=y -CONFIG_RWSEM_GENERIC_SPINLOCK=y -CONFIG_ARCH_HAS_CPUFREQ=y -CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y -CONFIG_GENERIC_HWEIGHT=y -CONFIG_GENERIC_CALIBRATE_DELAY=y -CONFIG_NEED_DMA_MAP_STATE=y -CONFIG_VECTORS_BASE=0xffff0000 -CONFIG_ARM_PATCH_PHYS_VIRT=y -CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" -CONFIG_HAVE_IRQ_WORK=y - -# -# General setup -# -CONFIG_EXPERIMENTAL=y -CONFIG_BROKEN_ON_SMP=y -CONFIG_INIT_ENV_ARG_LIMIT=32 -CONFIG_CROSS_COMPILE="" -CONFIG_LOCALVERSION="" -CONFIG_LOCALVERSION_AUTO=y -CONFIG_HAVE_KERNEL_GZIP=y -CONFIG_HAVE_KERNEL_LZMA=y -CONFIG_HAVE_KERNEL_LZO=y -CONFIG_KERNEL_GZIP=y -# CONFIG_KERNEL_LZMA is not set -# CONFIG_KERNEL_LZO is not set -CONFIG_DEFAULT_HOSTNAME="(none)" -# CONFIG_SWAP is not set -CONFIG_SYSVIPC=y -CONFIG_SYSVIPC_SYSCTL=y -# CONFIG_POSIX_MQUEUE is not set -# CONFIG_BSD_PROCESS_ACCT is not set -# CONFIG_FHANDLE is not set -# CONFIG_TASKSTATS is not set -# CONFIG_AUDIT is not set -CONFIG_HAVE_GENERIC_HARDIRQS=y - -# -# IRQ subsystem -# -CONFIG_GENERIC_HARDIRQS=y -CONFIG_HAVE_SPARSE_IRQ=y -CONFIG_GENERIC_IRQ_SHOW=y -CONFIG_GENERIC_IRQ_CHIP=y -# CONFIG_SPARSE_IRQ is not set - -# -# RCU Subsystem -# -CONFIG_TREE_PREEMPT_RCU=y -# CONFIG_TINY_RCU is not set -# CONFIG_TINY_PREEMPT_RCU is not set -CONFIG_PREEMPT_RCU=y -# CONFIG_RCU_TRACE is not set -CONFIG_RCU_FANOUT=32 -# CONFIG_RCU_FANOUT_EXACT is not set -# CONFIG_TREE_RCU_TRACE is not set -# CONFIG_RCU_BOOST is not set -# CONFIG_IKCONFIG is not set -CONFIG_LOG_BUF_SHIFT=17 -CONFIG_CGROUPS=y -CONFIG_CGROUP_DEBUG=y -CONFIG_CGROUP_FREEZER=y -# CONFIG_CGROUP_DEVICE is not set -# CONFIG_CPUSETS is not set -CONFIG_CGROUP_CPUACCT=y -CONFIG_RESOURCE_COUNTERS=y -# CONFIG_CGROUP_MEM_RES_CTLR is not set -CONFIG_CGROUP_SCHED=y -CONFIG_FAIR_GROUP_SCHED=y -CONFIG_RT_GROUP_SCHED=y -# CONFIG_BLK_CGROUP is not set -# CONFIG_NAMESPACES is not set -# CONFIG_SCHED_AUTOGROUP is not set -# CONFIG_SYSFS_DEPRECATED is not set -# CONFIG_RELAY is not set -CONFIG_BLK_DEV_INITRD=y -CONFIG_INITRAMFS_SOURCE="" -CONFIG_RD_GZIP=y -CONFIG_RD_BZIP2=y -CONFIG_RD_LZMA=y -CONFIG_RD_XZ=y -CONFIG_RD_LZO=y -# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set -CONFIG_SYSCTL=y -CONFIG_ANON_INODES=y -CONFIG_PANIC_TIMEOUT=0 -CONFIG_EXPERT=y -CONFIG_UID16=y -CONFIG_SYSCTL_SYSCALL=y -CONFIG_KALLSYMS=y -CONFIG_HOTPLUG=y -CONFIG_PRINTK=y -CONFIG_BUG=y -CONFIG_ELF_CORE=y -CONFIG_BASE_FULL=y -CONFIG_FUTEX=y -CONFIG_EPOLL=y -CONFIG_SIGNALFD=y -CONFIG_TIMERFD=y -CONFIG_EVENTFD=y -CONFIG_SHMEM=y -CONFIG_ASHMEM=y -CONFIG_AIO=y -CONFIG_EMBEDDED=y -CONFIG_HAVE_PERF_EVENTS=y -CONFIG_PERF_USE_VMALLOC=y - -# -# Kernel Performance Events And Counters -# -# CONFIG_PERF_EVENTS is not set -# CONFIG_PERF_COUNTERS is not set -CONFIG_VM_EVENT_COUNTERS=y -CONFIG_SLUB_DEBUG=y -CONFIG_COMPAT_BRK=y -# CONFIG_SLAB is not set -CONFIG_SLUB=y -# CONFIG_SLOB is not set -# CONFIG_PROFILING is not set -CONFIG_HAVE_OPROFILE=y -# CONFIG_KPROBES is not set -CONFIG_HAVE_KPROBES=y -CONFIG_HAVE_KRETPROBES=y -CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y -CONFIG_HAVE_CLK=y -CONFIG_HAVE_DMA_API_DEBUG=y - -# -# GCOV-based kernel profiling -# -CONFIG_HAVE_GENERIC_DMA_COHERENT=y -CONFIG_SLABINFO=y -CONFIG_RT_MUTEXES=y -CONFIG_BASE_SMALL=0 -CONFIG_MODULES=y -# CONFIG_MODULE_FORCE_LOAD is not set -CONFIG_MODULE_UNLOAD=y -# CONFIG_MODULE_FORCE_UNLOAD is not set -# CONFIG_MODVERSIONS is not set -# CONFIG_MODULE_SRCVERSION_ALL is not set -CONFIG_BLOCK=y -CONFIG_LBDAF=y -# CONFIG_BLK_DEV_BSG is not set -# CONFIG_BLK_DEV_INTEGRITY is not set - -# -# IO Schedulers -# -CONFIG_IOSCHED_NOOP=y -CONFIG_IOSCHED_DEADLINE=y -CONFIG_IOSCHED_CFQ=y -# CONFIG_DEFAULT_DEADLINE is not set -CONFIG_DEFAULT_CFQ=y -# CONFIG_DEFAULT_NOOP is not set -CONFIG_DEFAULT_IOSCHED="cfq" -# CONFIG_INLINE_SPIN_TRYLOCK is not set -# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set -# CONFIG_INLINE_SPIN_LOCK is not set -# CONFIG_INLINE_SPIN_LOCK_BH is not set -# CONFIG_INLINE_SPIN_LOCK_IRQ is not set -# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set -# CONFIG_INLINE_SPIN_UNLOCK is not set -# CONFIG_INLINE_SPIN_UNLOCK_BH is not set -# CONFIG_INLINE_SPIN_UNLOCK_IRQ is not set -# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set -# CONFIG_INLINE_READ_TRYLOCK is not set -# CONFIG_INLINE_READ_LOCK is not set -# CONFIG_INLINE_READ_LOCK_BH is not set -# CONFIG_INLINE_READ_LOCK_IRQ is not set -# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set -# CONFIG_INLINE_READ_UNLOCK is not set -# CONFIG_INLINE_READ_UNLOCK_BH is not set -# CONFIG_INLINE_READ_UNLOCK_IRQ is not set -# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set -# CONFIG_INLINE_WRITE_TRYLOCK is not set -# CONFIG_INLINE_WRITE_LOCK is not set -# CONFIG_INLINE_WRITE_LOCK_BH is not set -# CONFIG_INLINE_WRITE_LOCK_IRQ is not set -# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set -# CONFIG_INLINE_WRITE_UNLOCK is not set -# CONFIG_INLINE_WRITE_UNLOCK_BH is not set -# CONFIG_INLINE_WRITE_UNLOCK_IRQ is not set -# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set -# CONFIG_MUTEX_SPIN_ON_OWNER is not set -CONFIG_FREEZER=y - -# -# System Type -# -CONFIG_MMU=y -# CONFIG_ARCH_INTEGRATOR is not set -# CONFIG_ARCH_REALVIEW is not set -# CONFIG_ARCH_VERSATILE is not set -# CONFIG_ARCH_VEXPRESS is not set -# CONFIG_ARCH_AT91 is not set -# CONFIG_ARCH_BCMRING is not set -# CONFIG_ARCH_CLPS711X is not set -# CONFIG_ARCH_CNS3XXX is not set -# CONFIG_ARCH_GEMINI is not set -# CONFIG_ARCH_EBSA110 is not set -# CONFIG_ARCH_EP93XX is not set -# CONFIG_ARCH_FOOTBRIDGE is not set -# CONFIG_ARCH_MXC is not set -# CONFIG_ARCH_MXS is not set -# CONFIG_ARCH_NETX is not set -# CONFIG_ARCH_H720X is not set -# CONFIG_ARCH_IOP13XX is not set -# CONFIG_ARCH_IOP32X is not set -# CONFIG_ARCH_IOP33X is not set -# CONFIG_ARCH_IXP23XX is not set -# CONFIG_ARCH_IXP2000 is not set -# CONFIG_ARCH_IXP4XX is not set -# CONFIG_ARCH_DOVE is not set -# CONFIG_ARCH_KIRKWOOD is not set -# CONFIG_ARCH_LOKI is not set -# CONFIG_ARCH_LPC32XX is not set -# CONFIG_ARCH_MV78XX0 is not set -# CONFIG_ARCH_ORION5X is not set -# CONFIG_ARCH_MMP is not set -# CONFIG_ARCH_KS8695 is not set -# CONFIG_ARCH_W90X900 is not set -# CONFIG_ARCH_NUC93X is not set -# CONFIG_ARCH_TEGRA is not set -# CONFIG_ARCH_PNX4008 is not set -# CONFIG_ARCH_PXA is not set -# CONFIG_ARCH_MSM is not set -# CONFIG_ARCH_SHMOBILE is not set -# CONFIG_ARCH_RPC is not set -# CONFIG_ARCH_SA1100 is not set -# CONFIG_ARCH_S3C2410 is not set -# CONFIG_ARCH_S3C64XX is not set -# CONFIG_ARCH_S5P64X0 is not set -# CONFIG_ARCH_S5PC100 is not set -CONFIG_ARCH_S5PV210=y -# CONFIG_ARCH_EXYNOS4 is not set -# CONFIG_ARCH_SHARK is not set -# CONFIG_ARCH_TCC_926 is not set -# CONFIG_ARCH_U300 is not set -# CONFIG_ARCH_U8500 is not set -# CONFIG_ARCH_NOMADIK is not set -# CONFIG_ARCH_DAVINCI is not set -# CONFIG_ARCH_OMAP is not set -# CONFIG_PLAT_SPEAR is not set -# CONFIG_ARCH_VT8500 is not set -# CONFIG_GPIO_PCA953X is not set -# CONFIG_KEYBOARD_GPIO_POLLED is not set -CONFIG_PLAT_SAMSUNG=y - -# -# Boot options -# -# CONFIG_S3C_BOOT_WATCHDOG is not set -# CONFIG_S3C_BOOT_ERROR_RESET is not set -CONFIG_S3C_BOOT_UART_FORCE_FIFO=y -CONFIG_S3C_LOWLEVEL_UART_PORT=2 -CONFIG_SAMSUNG_CLKSRC=y -CONFIG_SAMSUNG_IRQ_VIC_TIMER=y -CONFIG_SAMSUNG_IRQ_UART=y -CONFIG_SAMSUNG_GPIOLIB_4BIT=y -CONFIG_S3C_GPIO_CFG_S3C24XX=y -CONFIG_S3C_GPIO_CFG_S3C64XX=y -CONFIG_S3C_GPIO_PULL_UPDOWN=y -CONFIG_S5P_GPIO_DRVSTR=y -CONFIG_SAMSUNG_GPIO_EXTRA=0 -CONFIG_S3C_GPIO_SPACE=0 -CONFIG_S3C_GPIO_TRACK=y -# CONFIG_S3C_ADC is not set -CONFIG_S3C_DEV_HSMMC=y -CONFIG_S3C_DEV_HSMMC1=y -CONFIG_S3C_DEV_HSMMC2=y -CONFIG_S3C_DEV_HSMMC3=y -CONFIG_S3C_DEV_I2C1=y -CONFIG_S3C_DEV_I2C2=y -CONFIG_S3C_DEV_FB=y -CONFIG_S3C_DEV_WDT=y -CONFIG_S3C_DEV_NAND=y -CONFIG_S3C_DEV_RTC=y -CONFIG_SAMSUNG_DEV_ADC=y -CONFIG_S3C64XX_DEV_SPI=y -CONFIG_SAMSUNG_DEV_TS=y -CONFIG_SAMSUNG_DEV_PWM=y -CONFIG_S3C24XX_PWM=y -CONFIG_S3C_PL330_DMA=y - -# -# Power management -# -# CONFIG_SAMSUNG_PM_DEBUG is not set -# CONFIG_SAMSUNG_PM_CHECK is not set - -# -# Power Domain -# -# CONFIG_SAMSUNG_PD is not set -CONFIG_PLAT_S5P=y -CONFIG_S5P_EXT_INT=y -CONFIG_S5P_HRT=y - -# -# System MMU -# -CONFIG_S5P_DEV_USB_EHCI=y -CONFIG_S5P_DEV_USB_OHCI=y -CONFIG_S5P_HIGH_RES_TIMERS=y -CONFIG_HRT_RTC=y -CONFIG_S5P_DEV_MFC=y -CONFIG_S5P_SETUP_MFC=y -CONFIG_S5P_DEV_USB_HSDEVICE=y -CONFIG_CPU_S5PV210=y -CONFIG_S5PV210_SETUP_I2C1=y -CONFIG_S5PV210_SETUP_I2C2=y -CONFIG_S5PV210_SETUP_IDE=y -CONFIG_S5PV210_SETUP_FB_24BPP=y -CONFIG_S5PV210_SETUP_SDHCI=y -CONFIG_S5PV210_SETUP_SDHCI_GPIO=y -CONFIG_S5PV210_SETUP_FIMC=y -CONFIG_S5PV210_SETUP_USB_PHY=y -CONFIG_S5PV210_POWER_DOMAIN=y - -# -# S5PC110 Machines -# -# CONFIG_MACH_AQUILA is not set -# CONFIG_MACH_GONI is not set -# CONFIG_MACH_SMDKC110 is not set - -# -# S5PV210 Machines -# -CONFIG_MACH_SMDKV210=y -# CONFIG_MACH_TORBRECK is not set -CONFIG_S5PV210_PM=y -CONFIG_S5PV210_SETUP_FIMC0=y -CONFIG_S5PV210_SETUP_FIMC1=y -CONFIG_S5PV210_SETUP_FIMC2=y -CONFIG_S5PV210_SETUP_CSIS=y - -# -# Processor Type -# -CONFIG_CPU_V7=y -CONFIG_CPU_32v6K=y -CONFIG_CPU_32v7=y -CONFIG_CPU_ABRT_EV7=y -CONFIG_CPU_PABRT_V7=y -CONFIG_CPU_CACHE_V7=y -CONFIG_CPU_CACHE_VIPT=y -CONFIG_CPU_COPY_V6=y -CONFIG_CPU_TLB_V7=y -CONFIG_CPU_HAS_ASID=y -CONFIG_CPU_CP15=y -CONFIG_CPU_CP15_MMU=y - -# -# Processor Features -# -CONFIG_ARM_THUMB=y -# CONFIG_ARM_THUMBEE is not set -# CONFIG_SWP_EMULATE is not set -# CONFIG_CPU_ICACHE_DISABLE is not set -# CONFIG_CPU_DCACHE_DISABLE is not set -# CONFIG_CPU_BPREDICT_DISABLE is not set -CONFIG_ARM_L1_CACHE_SHIFT_6=y -CONFIG_ARM_L1_CACHE_SHIFT=6 -CONFIG_ARM_DMA_MEM_BUFFERABLE=y -CONFIG_CPU_HAS_PMU=y -# CONFIG_ARM_ERRATA_430973 is not set -# CONFIG_ARM_ERRATA_458693 is not set -# CONFIG_ARM_ERRATA_460075 is not set -# CONFIG_ARM_ERRATA_743622 is not set -# CONFIG_ARM_ERRATA_754322 is not set -CONFIG_ARM_VIC=y -CONFIG_ARM_VIC_NR=4 -CONFIG_PL330=y -# CONFIG_FIQ_DEBUGGER is not set - -# -# Bus support -# -# CONFIG_PCI_SYSCALL is not set -# CONFIG_ARCH_SUPPORTS_MSI is not set -# CONFIG_PCCARD is not set - -# -# Kernel Features -# -CONFIG_TICK_ONESHOT=y -CONFIG_NO_HZ=y -CONFIG_HIGH_RES_TIMERS=y -CONFIG_GENERIC_CLOCKEVENTS_BUILD=y -CONFIG_VMSPLIT_3G=y -# CONFIG_VMSPLIT_2G is not set -# CONFIG_VMSPLIT_1G is not set -CONFIG_PAGE_OFFSET=0xC0000000 -# CONFIG_PREEMPT_NONE is not set -# CONFIG_PREEMPT_VOLUNTARY is not set -CONFIG_PREEMPT=y -CONFIG_HZ=200 -# CONFIG_THUMB2_KERNEL is not set -CONFIG_AEABI=y -CONFIG_OABI_COMPAT=y -CONFIG_ARCH_HAS_HOLES_MEMORYMODEL=y -CONFIG_ARCH_SPARSEMEM_ENABLE=y -CONFIG_ARCH_SPARSEMEM_DEFAULT=y -CONFIG_ARCH_SELECT_MEMORY_MODEL=y -CONFIG_HAVE_ARCH_PFN_VALID=y -# CONFIG_HIGHMEM is not set -CONFIG_SELECT_MEMORY_MODEL=y -CONFIG_SPARSEMEM_MANUAL=y -CONFIG_SPARSEMEM=y -CONFIG_HAVE_MEMORY_PRESENT=y -CONFIG_SPARSEMEM_EXTREME=y -CONFIG_HAVE_MEMBLOCK=y -CONFIG_SPLIT_PTLOCK_CPUS=4 -# CONFIG_COMPACTION is not set -# CONFIG_PHYS_ADDR_T_64BIT is not set -CONFIG_ZONE_DMA_FLAG=0 -CONFIG_VIRT_TO_BUS=y -# CONFIG_KSM is not set -CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 -CONFIG_NEED_PER_CPU_KM=y -# CONFIG_CLEANCACHE is not set -CONFIG_FORCE_MAX_ZONEORDER=11 -CONFIG_ALIGNMENT_TRAP=y -# CONFIG_UACCESS_WITH_MEMCPY is not set -# CONFIG_SECCOMP is not set -# CONFIG_CC_STACKPROTECTOR is not set -# CONFIG_DEPRECATED_PARAM_STRUCT is not set -# CONFIG_ARM_FLUSH_CONSOLE_ON_RESTART is not set - -# -# Boot options -# -# CONFIG_USE_OF is not set -CONFIG_ZBOOT_ROM_TEXT=0 -CONFIG_ZBOOT_ROM_BSS=0x0 -# CONFIG_ZBOOT_ROM is not set -CONFIG_CMDLINE="console=ttySAC2,115200 init=/init" -CONFIG_CMDLINE_FROM_BOOTLOADER=y -# CONFIG_CMDLINE_EXTEND is not set -# CONFIG_CMDLINE_FORCE is not set -# CONFIG_XIP_KERNEL is not set -# CONFIG_KEXEC is not set -# CONFIG_CRASH_DUMP is not set -CONFIG_AUTO_ZRELADDR=y - -# -# CPU Power Management -# - -# -# CPU Frequency scaling -# -# CONFIG_CPU_FREQ is not set -# CONFIG_CPU_IDLE is not set - -# -# Floating point emulation -# - -# -# At least one emulation must be selected -# -# CONFIG_FPE_NWFPE is not set -# CONFIG_FPE_FASTFPE is not set -CONFIG_VFP=y -CONFIG_VFPv3=y -CONFIG_NEON=y - -# -# Userspace binary formats -# -CONFIG_BINFMT_ELF=y -CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y -CONFIG_HAVE_AOUT=y -# CONFIG_BINFMT_AOUT is not set -CONFIG_BINFMT_MISC=y - -# -# Power management options -# -CONFIG_SUSPEND=y -CONFIG_SUSPEND_FREEZER=y -CONFIG_HAS_WAKELOCK=y -CONFIG_HAS_EARLYSUSPEND=y -CONFIG_WAKELOCK=y -CONFIG_WAKELOCK_STAT=y -CONFIG_USER_WAKELOCK=y -CONFIG_EARLYSUSPEND=y -# CONFIG_NO_USER_SPACE_SCREEN_ACCESS_CONTROL is not set -# CONFIG_CONSOLE_EARLYSUSPEND is not set -CONFIG_FB_EARLYSUSPEND=y -CONFIG_PM_SLEEP=y -CONFIG_PM_RUNTIME=y -CONFIG_PM=y -# CONFIG_PM_DEBUG is not set -# CONFIG_APM_EMULATION is not set -CONFIG_PM_RUNTIME_CLK=y -# CONFIG_SUSPEND_TIME is not set -CONFIG_ARCH_SUSPEND_POSSIBLE=y -CONFIG_NET=y - -# -# Networking options -# -# CONFIG_PACKET is not set -# CONFIG_UNIX is not set -# CONFIG_NET_KEY is not set -# CONFIG_INET is not set -CONFIG_ANDROID_PARANOID_NETWORK=y -CONFIG_NET_ACTIVITY_STATS=y -# CONFIG_NETWORK_SECMARK is not set -# CONFIG_NETWORK_PHY_TIMESTAMPING is not set -# CONFIG_NETFILTER is not set -# CONFIG_ATM is not set -# CONFIG_BRIDGE is not set -# CONFIG_VLAN_8021Q is not set -# CONFIG_DECNET is not set -# CONFIG_LLC2 is not set -# CONFIG_IPX is not set -# CONFIG_ATALK is not set -# CONFIG_X25 is not set -# CONFIG_LAPB is not set -# CONFIG_WAN_ROUTER is not set -# CONFIG_PHONET is not set -# CONFIG_IEEE802154 is not set -# CONFIG_NET_SCHED is not set -# CONFIG_DCB is not set -# CONFIG_DNS_RESOLVER is not set -# CONFIG_BATMAN_ADV is not set - -# -# Network testing -# -# CONFIG_NET_PKTGEN is not set -# CONFIG_HAMRADIO is not set -# CONFIG_CAN is not set -# CONFIG_IRDA is not set -# CONFIG_BT is not set -CONFIG_WIRELESS=y -# CONFIG_CFG80211 is not set -# CONFIG_LIB80211 is not set - -# -# CFG80211 needs to be enabled for MAC80211 -# -# CONFIG_WIMAX is not set -# CONFIG_RFKILL is not set -# CONFIG_RFKILL_REGULATOR is not set -# CONFIG_NET_9P is not set -# CONFIG_CAIF is not set - -# -# Device Drivers -# - -# -# Generic Driver Options -# -CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" -CONFIG_DEVTMPFS=y -CONFIG_DEVTMPFS_MOUNT=y -CONFIG_STANDALONE=y -CONFIG_PREVENT_FIRMWARE_BUILD=y -CONFIG_FW_LOADER=y -CONFIG_FIRMWARE_IN_KERNEL=y -CONFIG_EXTRA_FIRMWARE="" -# CONFIG_SYS_HYPERVISOR is not set -# CONFIG_CONNECTOR is not set -CONFIG_MTD=y -CONFIG_MTD_DEBUG=y -CONFIG_MTD_DEBUG_VERBOSE=0 -# CONFIG_MTD_TESTS is not set -# CONFIG_MTD_CONCAT is not set -CONFIG_MTD_PARTITIONS=y -# CONFIG_MTD_REDBOOT_PARTS is not set -CONFIG_MTD_CMDLINE_PARTS=y -# CONFIG_MTD_AFS_PARTS is not set -# CONFIG_MTD_AR7_PARTS is not set - -# -# User Modules And Translation Layers -# -# CONFIG_MTD_CHAR is not set -CONFIG_MTD_BLKDEVS=y -CONFIG_MTD_BLOCK=y -# CONFIG_FTL is not set -# CONFIG_NFTL is not set -# CONFIG_INFTL is not set -# CONFIG_RFD_FTL is not set -# CONFIG_SSFDC is not set -# CONFIG_SM_FTL is not set -# CONFIG_MTD_OOPS is not set - -# -# RAM/ROM/Flash chip drivers -# -# CONFIG_MTD_CFI is not set -# CONFIG_MTD_JEDECPROBE is not set -CONFIG_MTD_MAP_BANK_WIDTH_1=y -CONFIG_MTD_MAP_BANK_WIDTH_2=y -CONFIG_MTD_MAP_BANK_WIDTH_4=y -# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set -# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set -# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set -CONFIG_MTD_CFI_I1=y -CONFIG_MTD_CFI_I2=y -# CONFIG_MTD_CFI_I4 is not set -# CONFIG_MTD_CFI_I8 is not set -# CONFIG_MTD_RAM is not set -# CONFIG_MTD_ROM is not set -# CONFIG_MTD_ABSENT is not set - -# -# Mapping drivers for chip access -# -# CONFIG_MTD_COMPLEX_MAPPINGS is not set -# CONFIG_MTD_PLATRAM is not set - -# -# Self-contained MTD device drivers -# -# CONFIG_MTD_SLRAM is not set -# CONFIG_MTD_PHRAM is not set -# CONFIG_MTD_MTDRAM is not set -# CONFIG_MTD_BLOCK2MTD is not set - -# -# Disk-On-Chip Device Drivers -# -# CONFIG_MTD_DOC2000 is not set -# CONFIG_MTD_DOC2001 is not set -# CONFIG_MTD_DOC2001PLUS is not set -CONFIG_MTD_NAND_IDS=y -CONFIG_MTD_NAND_ECC=y -# CONFIG_MTD_NAND_ECC_SMC is not set -CONFIG_MTD_NAND=y -# CONFIG_MTD_NAND_VERIFY_WRITE is not set -# CONFIG_MTD_NAND_ECC_BCH is not set -# CONFIG_MTD_SM_COMMON is not set -# CONFIG_MTD_NAND_MUSEUM_IDS is not set -# CONFIG_MTD_NAND_GPIO is not set -CONFIG_MTD_NAND_S3C=y -CONFIG_MTD_NAND_S3C_DEBUG=y -CONFIG_MTD_NAND_S3C_HWECC=y -# CONFIG_MTD_NAND_DISKONCHIP is not set -# CONFIG_MTD_NAND_NANDSIM is not set -# CONFIG_MTD_NAND_PLATFORM is not set -# CONFIG_MTD_ALAUDA is not set -# CONFIG_MTD_ONENAND is not set - -# -# LPDDR flash memory drivers -# -# CONFIG_MTD_LPDDR is not set -# CONFIG_MTD_UBI is not set -# CONFIG_PARPORT is not set -CONFIG_BLK_DEV=y -# CONFIG_BLK_DEV_COW_COMMON is not set -CONFIG_BLK_DEV_LOOP=y -# CONFIG_BLK_DEV_CRYPTOLOOP is not set - -# -# DRBD disabled because PROC_FS,INET or CONNECTOR not selected -# -# CONFIG_BLK_DEV_NBD is not set -# CONFIG_BLK_DEV_UB is not set -CONFIG_BLK_DEV_RAM=y -CONFIG_BLK_DEV_RAM_COUNT=16 -CONFIG_BLK_DEV_RAM_SIZE=8192 -# CONFIG_BLK_DEV_XIP is not set -# CONFIG_CDROM_PKTCDVD is not set -# CONFIG_ATA_OVER_ETH is not set -# CONFIG_MG_DISK is not set -# CONFIG_SENSORS_LIS3LV02D is not set -CONFIG_MISC_DEVICES=y -# CONFIG_AD525X_DPOT is not set -CONFIG_ANDROID_PMEM=y - -# -# Reserved memory configurations -# -CONFIG_ANDROID_PMEM_MEMSIZE_PMEM=8192 -CONFIG_ANDROID_PMEM_MEMSIZE_PMEM_GPU1=3072 -CONFIG_ANDROID_PMEM_MEMSIZE_PMEM_ADSP=6144 -# CONFIG_INTEL_MID_PTI is not set -# CONFIG_ICS932S401 is not set -# CONFIG_ENCLOSURE_SERVICES is not set -# CONFIG_APDS9802ALS is not set -# CONFIG_ISL29003 is not set -# CONFIG_ISL29020 is not set -# CONFIG_SENSORS_TSL2550 is not set -# CONFIG_SENSORS_BH1780 is not set -# CONFIG_SENSORS_BH1770 is not set -# CONFIG_SENSORS_APDS990X is not set -# CONFIG_HMC6352 is not set -# CONFIG_SENSORS_AK8975 is not set -# CONFIG_DS1682 is not set -# CONFIG_UID_STAT is not set -# CONFIG_BMP085 is not set -# CONFIG_APANIC is not set -# CONFIG_C2PORT is not set - -# -# EEPROM support -# -# CONFIG_EEPROM_AT24 is not set -# CONFIG_EEPROM_LEGACY is not set -# CONFIG_EEPROM_MAX6875 is not set -# CONFIG_EEPROM_93CX6 is not set -# CONFIG_IWMC3200TOP is not set - -# -# Texas Instruments shared transport line discipline -# -# CONFIG_TI_ST is not set -# CONFIG_SENSORS_LIS3_I2C is not set -CONFIG_HAVE_IDE=y -# CONFIG_IDE is not set - -# -# SCSI device support -# -CONFIG_SCSI_MOD=y -# CONFIG_RAID_ATTRS is not set -CONFIG_SCSI=y -CONFIG_SCSI_DMA=y -# CONFIG_SCSI_TGT is not set -# CONFIG_SCSI_NETLINK is not set -CONFIG_SCSI_PROC_FS=y - -# -# SCSI support type (disk,tape,CD-ROM) -# -CONFIG_BLK_DEV_SD=y -# CONFIG_CHR_DEV_ST is not set -# CONFIG_CHR_DEV_OSST is not set -# CONFIG_BLK_DEV_SR is not set -CONFIG_CHR_DEV_SG=y -# CONFIG_CHR_DEV_SCH is not set -CONFIG_SCSI_MULTI_LUN=y -# CONFIG_SCSI_CONSTANTS is not set -# CONFIG_SCSI_LOGGING is not set -# CONFIG_SCSI_SCAN_ASYNC is not set -CONFIG_SCSI_WAIT_SCAN=m - -# -# SCSI Transports -# -# CONFIG_SCSI_SPI_ATTRS is not set -# CONFIG_SCSI_FC_ATTRS is not set -# CONFIG_SCSI_ISCSI_ATTRS is not set -# CONFIG_SCSI_SAS_ATTRS is not set -# CONFIG_SCSI_SAS_LIBSAS is not set -# CONFIG_SCSI_SRP_ATTRS is not set -CONFIG_SCSI_LOWLEVEL=y -# CONFIG_ISCSI_BOOT_SYSFS is not set -# CONFIG_LIBFC is not set -# CONFIG_LIBFCOE is not set -# CONFIG_SCSI_DEBUG is not set -# CONFIG_SCSI_DH is not set -# CONFIG_SCSI_OSD_INITIATOR is not set -# CONFIG_ATA is not set -# CONFIG_MD is not set -# CONFIG_TARGET_CORE is not set -# CONFIG_NETDEVICES is not set -# CONFIG_ISDN is not set -# CONFIG_PHONE is not set - -# -# Input device support -# -CONFIG_INPUT=y -# CONFIG_INPUT_FF_MEMLESS is not set -# CONFIG_INPUT_POLLDEV is not set -# CONFIG_INPUT_SPARSEKMAP is not set - -# -# Userland interfaces -# -CONFIG_INPUT_MOUSEDEV=y -CONFIG_INPUT_MOUSEDEV_PSAUX=y -CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 -CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 -# CONFIG_INPUT_JOYDEV is not set -CONFIG_INPUT_EVDEV=y -# CONFIG_INPUT_EVBUG is not set -# CONFIG_INPUT_KEYRESET is not set - -# -# Input Device Drivers -# -CONFIG_INPUT_KEYBOARD=y -# CONFIG_KEYBOARD_ADP5588 is not set -# CONFIG_KEYBOARD_ADP5589 is not set -CONFIG_KEYBOARD_ATKBD=y -# CONFIG_KEYBOARD_QT1070 is not set -# CONFIG_KEYBOARD_QT2160 is not set -# CONFIG_KEYBOARD_LKKBD is not set -CONFIG_KEYBOARD_GPIO=y -# CONFIG_KEYBOARD_TCA6416 is not set -# CONFIG_KEYBOARD_MATRIX is not set -# CONFIG_KEYBOARD_LM8323 is not set -# CONFIG_KEYBOARD_MAX7359 is not set -# CONFIG_KEYBOARD_MCS is not set -# CONFIG_KEYBOARD_MPR121 is not set -# CONFIG_KEYBOARD_NEWTON is not set -# CONFIG_KEYBOARD_OPENCORES is not set -# CONFIG_KEYBOARD_STOWAWAY is not set -# CONFIG_KEYBOARD_SUNKBD is not set -# CONFIG_KEYBOARD_XTKBD is not set -CONFIG_INPUT_MOUSE=y -CONFIG_MOUSE_PS2=y -CONFIG_MOUSE_PS2_ALPS=y -CONFIG_MOUSE_PS2_LOGIPS2PP=y -CONFIG_MOUSE_PS2_SYNAPTICS=y -CONFIG_MOUSE_PS2_TRACKPOINT=y -# CONFIG_MOUSE_PS2_ELANTECH is not set -# CONFIG_MOUSE_PS2_SENTELIC is not set -# CONFIG_MOUSE_PS2_TOUCHKIT is not set -# CONFIG_MOUSE_SERIAL is not set -# CONFIG_MOUSE_APPLETOUCH is not set -# CONFIG_MOUSE_BCM5974 is not set -# CONFIG_MOUSE_VSXXXAA is not set -# CONFIG_MOUSE_GPIO is not set -# CONFIG_MOUSE_SYNAPTICS_I2C is not set -# CONFIG_INPUT_JOYSTICK is not set -# CONFIG_INPUT_TABLET is not set -CONFIG_INPUT_TOUCHSCREEN=y -# CONFIG_TOUCHSCREEN_AD7879 is not set -# CONFIG_TOUCHSCREEN_ATMEL_MXT is not set -# CONFIG_TOUCHSCREEN_BU21013 is not set -# CONFIG_TOUCHSCREEN_CY8CTMG110 is not set -CONFIG_TOUCHSCREEN_FORLINX=y -CONFIG_TOUCHSCREEN_FT5306=y -# CONFIG_TOUCHSCREEN_DYNAPRO is not set -# CONFIG_TOUCHSCREEN_HAMPSHIRE is not set -# CONFIG_TOUCHSCREEN_EETI is not set -# CONFIG_TOUCHSCREEN_EGALAX is not set -# CONFIG_TOUCHSCREEN_FUJITSU is not set -# CONFIG_TOUCHSCREEN_S3C2410 is not set -# CONFIG_TOUCHSCREEN_GUNZE is not set -# CONFIG_TOUCHSCREEN_ELO is not set -# CONFIG_TOUCHSCREEN_WACOM_W8001 is not set -# CONFIG_TOUCHSCREEN_MAX11801 is not set -# CONFIG_TOUCHSCREEN_MCS5000 is not set -# CONFIG_TOUCHSCREEN_MTOUCH is not set -# CONFIG_TOUCHSCREEN_INEXIO is not set -# CONFIG_TOUCHSCREEN_MK712 is not set -# CONFIG_TOUCHSCREEN_PENMOUNT is not set -# CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI is not set -# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set -# CONFIG_TOUCHSCREEN_TOUCHWIN is not set -# CONFIG_TOUCHSCREEN_WM97XX is not set -# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set -# CONFIG_TOUCHSCREEN_TOUCHIT213 is not set -# CONFIG_TOUCHSCREEN_TSC2007 is not set -# CONFIG_TOUCHSCREEN_W90X900 is not set -# CONFIG_TOUCHSCREEN_ST1232 is not set -# CONFIG_TOUCHSCREEN_TPS6507X is not set -# CONFIG_INPUT_MISC is not set - -# -# Hardware I/O ports -# -CONFIG_SERIO=y -CONFIG_SERIO_SERPORT=y -CONFIG_SERIO_LIBPS2=y -# CONFIG_SERIO_RAW is not set -# CONFIG_SERIO_ALTERA_PS2 is not set -# CONFIG_SERIO_PS2MULT is not set -# CONFIG_GAMEPORT is not set - -# -# Character devices -# -CONFIG_VT=y -CONFIG_CONSOLE_TRANSLATIONS=y -CONFIG_VT_CONSOLE=y -CONFIG_HW_CONSOLE=y -# CONFIG_VT_HW_CONSOLE_BINDING is not set -CONFIG_UNIX98_PTYS=y -# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set -CONFIG_LEGACY_PTYS=y -CONFIG_LEGACY_PTY_COUNT=256 -# CONFIG_SERIAL_NONSTANDARD is not set -# CONFIG_N_GSM is not set -# CONFIG_TRACE_SINK is not set -CONFIG_DEVMEM=y -CONFIG_DEVKMEM=y -CONFIG_FL210_LEDS=y -CONFIG_FL210_HELLO_MODULE=y -# CONFIG_FL210_BUZZER is not set -CONFIG_FL210_ADC=y -CONFIG_FL210_TEM=y - -# -# Serial drivers -# -# CONFIG_SERIAL_8250 is not set - -# -# Non-8250 serial port support -# -CONFIG_SERIAL_SAMSUNG=y -CONFIG_SERIAL_SAMSUNG_UARTS_4=y -CONFIG_SERIAL_SAMSUNG_UARTS=4 -CONFIG_SERIAL_SAMSUNG_CONSOLE=y -CONFIG_SERIAL_S5PV210=y -CONFIG_SERIAL_CORE=y -CONFIG_SERIAL_CORE_CONSOLE=y -# CONFIG_SERIAL_TIMBERDALE is not set -# CONFIG_SERIAL_ALTERA_JTAGUART is not set -# CONFIG_SERIAL_ALTERA_UART is not set -# CONFIG_SERIAL_XILINX_PS_UART is not set -# CONFIG_TTY_PRINTK is not set -# CONFIG_HVC_DCC is not set -# CONFIG_IPMI_HANDLER is not set -CONFIG_HW_RANDOM=y -# CONFIG_HW_RANDOM_TIMERIOMEM is not set -# CONFIG_R3964 is not set -# CONFIG_RAW_DRIVER is not set -# CONFIG_TCG_TPM is not set -# CONFIG_DCC_TTY is not set -# CONFIG_RAMOOPS is not set -CONFIG_S3C_MEM=y -CONFIG_I2C=y -CONFIG_I2C_BOARDINFO=y -CONFIG_I2C_COMPAT=y -CONFIG_I2C_CHARDEV=y -# CONFIG_I2C_MUX is not set -CONFIG_I2C_HELPER_AUTO=y -CONFIG_I2C_ALGOBIT=y - -# -# I2C Hardware Bus support -# - -# -# I2C system bus drivers (mostly embedded / system-on-chip) -# -# CONFIG_I2C_DESIGNWARE is not set -CONFIG_I2C_GPIO=y -# CONFIG_I2C_OCORES is not set -# CONFIG_I2C_PCA_PLATFORM is not set -# CONFIG_I2C_PXA_PCI is not set -CONFIG_HAVE_S3C2410_I2C=y -CONFIG_I2C_S3C2410=y -# CONFIG_I2C_SIMTEC is not set -# CONFIG_I2C_XILINX is not set - -# -# External I2C/SMBus adapter drivers -# -# CONFIG_I2C_DIOLAN_U2C is not set -# CONFIG_I2C_PARPORT_LIGHT is not set -# CONFIG_I2C_TAOS_EVM is not set -# CONFIG_I2C_TINY_USB is not set - -# -# Other I2C/SMBus bus drivers -# -# CONFIG_I2C_STUB is not set -# CONFIG_I2C_DEBUG_CORE is not set -# CONFIG_I2C_DEBUG_ALGO is not set -# CONFIG_I2C_DEBUG_BUS is not set -# CONFIG_SPI is not set - -# -# PPS support -# -# CONFIG_PPS is not set - -# -# PPS generators support -# - -# -# PTP clock support -# - -# -# Enable Device Drivers -> PPS to see the PTP clock options. -# -CONFIG_ARCH_REQUIRE_GPIOLIB=y -CONFIG_GPIOLIB=y -# CONFIG_GPIO_SYSFS is not set - -# -# Memory mapped GPIO drivers: -# -# CONFIG_GPIO_BASIC_MMIO is not set -# CONFIG_GPIO_IT8761E is not set -CONFIG_GPIO_PLAT_SAMSUNG=y -CONFIG_GPIO_S5PV210=y - -# -# I2C GPIO expanders: -# -# CONFIG_GPIO_MAX7300 is not set -# CONFIG_GPIO_MAX732X is not set -# CONFIG_GPIO_PCF857X is not set -# CONFIG_GPIO_SX150X is not set -# CONFIG_GPIO_ADP5588 is not set - -# -# PCI GPIO expanders: -# - -# -# SPI GPIO expanders: -# - -# -# AC97 GPIO expanders: -# - -# -# MODULbus GPIO expanders: -# -# CONFIG_W1 is not set -CONFIG_POWER_SUPPLY=y -# CONFIG_POWER_SUPPLY_DEBUG is not set -# CONFIG_PDA_POWER is not set -# CONFIG_TEST_POWER is not set -# CONFIG_BATTERY_DS2780 is not set -# CONFIG_BATTERY_DS2782 is not set -# CONFIG_BATTERY_BQ20Z75 is not set -# CONFIG_BATTERY_BQ27x00 is not set -# CONFIG_BATTERY_MAX17040 is not set -# CONFIG_BATTERY_MAX17042 is not set -CONFIG_BATTERY_S3C=y -# CONFIG_CHARGER_MAX8903 is not set -# CONFIG_CHARGER_GPIO is not set -# CONFIG_HWMON is not set -# CONFIG_THERMAL is not set -CONFIG_WATCHDOG=y -# CONFIG_WATCHDOG_NOWAYOUT is not set - -# -# Watchdog Device Drivers -# -# CONFIG_SOFT_WATCHDOG is not set -CONFIG_HAVE_S3C2410_WATCHDOG=y -CONFIG_S3C2410_WATCHDOG=y -# CONFIG_MAX63XX_WATCHDOG is not set - -# -# USB-based Watchdog Cards -# -# CONFIG_USBPCWATCHDOG is not set -CONFIG_SSB_POSSIBLE=y - -# -# Sonics Silicon Backplane -# -# CONFIG_SSB is not set -CONFIG_BCMA_POSSIBLE=y - -# -# Broadcom specific AMBA -# -# CONFIG_BCMA is not set -CONFIG_MFD_SUPPORT=y -# CONFIG_MFD_CORE is not set -# CONFIG_MFD_88PM860X is not set -# CONFIG_MFD_SM501 is not set -# CONFIG_MFD_ASIC3 is not set -# CONFIG_HTC_EGPIO is not set -# CONFIG_HTC_PASIC3 is not set -# CONFIG_HTC_I2CPLD is not set -# CONFIG_UCB1400_CORE is not set -# CONFIG_TPS6105X is not set -# CONFIG_TPS65010 is not set -# CONFIG_TPS6507X is not set -# CONFIG_MFD_TPS6586X is not set -# CONFIG_TWL4030_CORE is not set -# CONFIG_MFD_STMPE is not set -# CONFIG_MFD_TC3589X is not set -# CONFIG_MFD_TMIO is not set -# CONFIG_MFD_T7L66XB is not set -# CONFIG_MFD_TC6387XB is not set -# CONFIG_MFD_TC6393XB is not set -# CONFIG_PMIC_DA903X is not set -# CONFIG_PMIC_ADP5520 is not set -# CONFIG_MFD_MAX8698 is not set -# CONFIG_MFD_MAX8925 is not set -# CONFIG_MFD_MAX8997 is not set -# CONFIG_MFD_MAX8998 is not set -# CONFIG_MFD_WM8400 is not set -# CONFIG_MFD_WM831X_I2C is not set -# CONFIG_MFD_WM8350_I2C is not set -# CONFIG_MFD_WM8994 is not set -# CONFIG_MFD_PCF50633 is not set -# CONFIG_ABX500_CORE is not set -# CONFIG_MFD_WL1273_CORE is not set -# CONFIG_MFD_TPS65910 is not set -CONFIG_REGULATOR=y -CONFIG_REGULATOR_DEBUG=y -# CONFIG_REGULATOR_DUMMY is not set -# CONFIG_REGULATOR_FIXED_VOLTAGE is not set -# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set -# CONFIG_REGULATOR_USERSPACE_CONSUMER is not set -# CONFIG_REGULATOR_BQ24022 is not set -# CONFIG_REGULATOR_MAX1586 is not set -# CONFIG_REGULATOR_MAX8649 is not set -# CONFIG_REGULATOR_MAX8660 is not set -# CONFIG_REGULATOR_MAX8952 is not set -# CONFIG_REGULATOR_LP3971 is not set -# CONFIG_REGULATOR_LP3972 is not set -# CONFIG_REGULATOR_TPS65023 is not set -# CONFIG_REGULATOR_TPS6507X is not set -# CONFIG_REGULATOR_ISL6271A is not set -# CONFIG_REGULATOR_AD5398 is not set -CONFIG_MEDIA_SUPPORT=y - -# -# Multimedia core support -# -# CONFIG_MEDIA_CONTROLLER is not set -CONFIG_VIDEO_DEV=y -CONFIG_VIDEO_V4L2_COMMON=y -CONFIG_VIDEO_MEDIA=y - -# -# Multimedia drivers -# -CONFIG_RC_CORE=y -CONFIG_LIRC=y -CONFIG_RC_MAP=y -CONFIG_IR_NEC_DECODER=y -CONFIG_IR_RC5_DECODER=y -CONFIG_IR_RC6_DECODER=y -CONFIG_IR_JVC_DECODER=y -CONFIG_IR_SONY_DECODER=y -CONFIG_IR_RC5_SZ_DECODER=y -CONFIG_IR_LIRC_CODEC=y -# CONFIG_IR_IMON is not set -# CONFIG_IR_MCEUSB is not set -# CONFIG_IR_REDRAT3 is not set -# CONFIG_IR_STREAMZAP is not set -# CONFIG_RC_LOOPBACK is not set -# CONFIG_MEDIA_ATTACH is not set -CONFIG_MEDIA_TUNER=y -CONFIG_MEDIA_TUNER_CUSTOMISE=y - -# -# Customize TV tuners -# -# CONFIG_MEDIA_TUNER_SIMPLE is not set -# CONFIG_MEDIA_TUNER_TDA8290 is not set -# CONFIG_MEDIA_TUNER_TDA827X is not set -# CONFIG_MEDIA_TUNER_TDA18271 is not set -# CONFIG_MEDIA_TUNER_TDA9887 is not set -# CONFIG_MEDIA_TUNER_TEA5761 is not set -# CONFIG_MEDIA_TUNER_TEA5767 is not set -# CONFIG_MEDIA_TUNER_MT20XX is not set -# CONFIG_MEDIA_TUNER_MT2060 is not set -# CONFIG_MEDIA_TUNER_MT2266 is not set -# CONFIG_MEDIA_TUNER_MT2131 is not set -# CONFIG_MEDIA_TUNER_QT1010 is not set -# CONFIG_MEDIA_TUNER_XC2028 is not set -# CONFIG_MEDIA_TUNER_XC5000 is not set -# CONFIG_MEDIA_TUNER_MXL5005S is not set -# CONFIG_MEDIA_TUNER_MXL5007T is not set -# CONFIG_MEDIA_TUNER_MC44S803 is not set -# CONFIG_MEDIA_TUNER_MAX2165 is not set -# CONFIG_MEDIA_TUNER_TDA18218 is not set -# CONFIG_MEDIA_TUNER_TDA18212 is not set -CONFIG_VIDEO_V4L2=y -CONFIG_VIDEOBUF_GEN=y -CONFIG_VIDEOBUF2_CORE=y -CONFIG_VIDEO_CAPTURE_DRIVERS=y -# CONFIG_VIDEO_ADV_DEBUG is not set -CONFIG_VIDEO_FIXED_MINOR_RANGES=y -# CONFIG_VIDEO_HELPER_CHIPS_AUTO is not set -CONFIG_VIDEO_IR_I2C=y - -# -# Encoders,decoders,sensors and other helper chips -# - -# -# Audio decoders,processors and mixers -# -# CONFIG_VIDEO_TVAUDIO is not set -# CONFIG_VIDEO_TDA7432 is not set -# CONFIG_VIDEO_TDA9840 is not set -# CONFIG_VIDEO_TEA6415C is not set -# CONFIG_VIDEO_TEA6420 is not set -# CONFIG_VIDEO_MSP3400 is not set -# CONFIG_VIDEO_CS5345 is not set -# CONFIG_VIDEO_CS53L32A is not set -# CONFIG_VIDEO_TLV320AIC23B is not set -# CONFIG_VIDEO_WM8775 is not set -# CONFIG_VIDEO_WM8739 is not set -# CONFIG_VIDEO_VP27SMPX is not set - -# -# RDS decoders -# -# CONFIG_VIDEO_SAA6588 is not set - -# -# Video decoders -# -# CONFIG_VIDEO_ADV7180 is not set -# CONFIG_VIDEO_BT819 is not set -# CONFIG_VIDEO_BT856 is not set -# CONFIG_VIDEO_BT866 is not set -# CONFIG_VIDEO_KS0127 is not set -# CONFIG_VIDEO_SAA7110 is not set -# CONFIG_VIDEO_SAA711X is not set -# CONFIG_VIDEO_SAA7191 is not set -# CONFIG_VIDEO_TVP514X is not set -# CONFIG_VIDEO_TVP5150 is not set -# CONFIG_VIDEO_TVP7002 is not set -# CONFIG_VIDEO_VPX3220 is not set - -# -# Video and audio decoders -# -# CONFIG_VIDEO_SAA717X is not set -# CONFIG_VIDEO_CX25840 is not set - -# -# MPEG video encoders -# -# CONFIG_VIDEO_CX2341X is not set - -# -# Video encoders -# -# CONFIG_VIDEO_SAA7127 is not set -# CONFIG_VIDEO_SAA7185 is not set -# CONFIG_VIDEO_ADV7170 is not set -# CONFIG_VIDEO_ADV7175 is not set -# CONFIG_VIDEO_ADV7343 is not set -# CONFIG_VIDEO_AK881X is not set - -# -# Camera sensor devices -# -# CONFIG_VIDEO_OV7670 is not set -# CONFIG_VIDEO_MT9V011 is not set -# CONFIG_VIDEO_TCM825X is not set - -# -# Video improvement chips -# -# CONFIG_VIDEO_UPD64031A is not set -# CONFIG_VIDEO_UPD64083 is not set - -# -# Miscelaneous helper chips -# -# CONFIG_VIDEO_THS7303 is not set -# CONFIG_VIDEO_M52790 is not set -# CONFIG_VIDEO_CPIA2 is not set -# CONFIG_VIDEO_SR030PC30 is not set -# CONFIG_VIDEO_NOON010PC30 is not set -CONFIG_SOC_CAMERA=y -# CONFIG_SOC_CAMERA_IMX074 is not set -# CONFIG_SOC_CAMERA_MT9M001 is not set -# CONFIG_SOC_CAMERA_MT9M111 is not set -# CONFIG_SOC_CAMERA_MT9T031 is not set -# CONFIG_SOC_CAMERA_MT9T112 is not set -# CONFIG_SOC_CAMERA_MT9V022 is not set -# CONFIG_SOC_CAMERA_RJ54N1 is not set -# CONFIG_SOC_CAMERA_TW9910 is not set -# CONFIG_SOC_CAMERA_PLATFORM is not set -# CONFIG_SOC_CAMERA_OV2640 is not set -# CONFIG_SOC_CAMERA_OV6650 is not set -# CONFIG_SOC_CAMERA_OV772X is not set -CONFIG_SOC_CAMERA_OV9640=y -# CONFIG_SOC_CAMERA_OV9740 is not set -# CONFIG_VIDEO_SH_MOBILE_CSI2 is not set -# CONFIG_VIDEO_SH_MOBILE_CEU is not set -# CONFIG_VIDEO_SAMSUNG_S5P_FIMC is not set -CONFIG_V4L_USB_DRIVERS=y -CONFIG_USB_VIDEO_CLASS=y -CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y -CONFIG_USB_GSPCA=y -# CONFIG_USB_M5602 is not set -# CONFIG_USB_STV06XX is not set -# CONFIG_USB_GL860 is not set -# CONFIG_USB_GSPCA_BENQ is not set -# CONFIG_USB_GSPCA_CONEX is not set -# CONFIG_USB_GSPCA_CPIA1 is not set -# CONFIG_USB_GSPCA_ETOMS is not set -# CONFIG_USB_GSPCA_FINEPIX is not set -# CONFIG_USB_GSPCA_JEILINJ is not set -# CONFIG_USB_GSPCA_KINECT is not set -# CONFIG_USB_GSPCA_KONICA is not set -# CONFIG_USB_GSPCA_MARS is not set -# CONFIG_USB_GSPCA_MR97310A is not set -# CONFIG_USB_GSPCA_NW80X is not set -# CONFIG_USB_GSPCA_OV519 is not set -# CONFIG_USB_GSPCA_OV534 is not set -# CONFIG_USB_GSPCA_OV534_9 is not set -# CONFIG_USB_GSPCA_PAC207 is not set -# CONFIG_USB_GSPCA_PAC7302 is not set -# CONFIG_USB_GSPCA_PAC7311 is not set -# CONFIG_USB_GSPCA_SN9C2028 is not set -# CONFIG_USB_GSPCA_SN9C20X is not set -# CONFIG_USB_GSPCA_SONIXB is not set -# CONFIG_USB_GSPCA_SONIXJ is not set -# CONFIG_USB_GSPCA_SPCA500 is not set -# CONFIG_USB_GSPCA_SPCA501 is not set -# CONFIG_USB_GSPCA_SPCA505 is not set -# CONFIG_USB_GSPCA_SPCA506 is not set -# CONFIG_USB_GSPCA_SPCA508 is not set -# CONFIG_USB_GSPCA_SPCA561 is not set -# CONFIG_USB_GSPCA_SPCA1528 is not set -# CONFIG_USB_GSPCA_SQ905 is not set -# CONFIG_USB_GSPCA_SQ905C is not set -# CONFIG_USB_GSPCA_SQ930X is not set -# CONFIG_USB_GSPCA_STK014 is not set -# CONFIG_USB_GSPCA_STV0680 is not set -# CONFIG_USB_GSPCA_SUNPLUS is not set -# CONFIG_USB_GSPCA_T613 is not set -# CONFIG_USB_GSPCA_TV8532 is not set -# CONFIG_USB_GSPCA_VC032X is not set -# CONFIG_USB_GSPCA_VICAM is not set -# CONFIG_USB_GSPCA_XIRLINK_CIT is not set -# CONFIG_USB_GSPCA_ZC3XX is not set -# CONFIG_VIDEO_PVRUSB2 is not set -# CONFIG_VIDEO_HDPVR is not set -# CONFIG_VIDEO_EM28XX is not set -# CONFIG_VIDEO_CX231XX is not set -# CONFIG_VIDEO_USBVISION is not set -# CONFIG_USB_ET61X251 is not set -# CONFIG_USB_SN9C102 is not set -# CONFIG_USB_PWC is not set -# CONFIG_USB_ZR364XX is not set -# CONFIG_USB_STKWEBCAM is not set -# CONFIG_USB_S2255 is not set -# CONFIG_VIDEO_S5K4BA is not set -# CONFIG_VIDEO_S5KA3DFX is not set -# CONFIG_VIDEO_S5K4ECGX is not set -CONFIG_VIDEO_SAMSUNG=y -CONFIG_VIDEO_SAMSUNG_V4L2=y -CONFIG_VIDEO_FIMC=y -CONFIG_VIDEO_FIMC_RANGE_NARROW=y -# CONFIG_VIDEO_FIMC_RANGE_WIDE is not set -# CONFIG_VIDEO_FIMC_DEBUG is not set -# CONFIG_VIDEO_FIMC_MIPI is not set -CONFIG_VIDEO_MFC50=y -CONFIG_VIDEO_MFC_MAX_INSTANCE=4 -# CONFIG_VIDEO_MFC50_DEBUG is not set -CONFIG_VIDEO_G2D=y -# CONFIG_VIDEO_G2D_DEBUG is not set -CONFIG_VIDEO_JPEG_V2=y -# CONFIG_VIDEO_JPEG_DEBUG is not set -CONFIG_VIDEO_TV20=y -CONFIG_HDMI_CEC=y -CONFIG_HDMI_HPD=y -# CONFIG_TV_FB is not set -# CONFIG_V4L_MEM2MEM_DRIVERS is not set -CONFIG_RADIO_ADAPTERS=y -# CONFIG_I2C_SI4713 is not set -# CONFIG_RADIO_SI4713 is not set -# CONFIG_USB_DSBR is not set -# CONFIG_RADIO_SI470X is not set -# CONFIG_USB_MR800 is not set -# CONFIG_RADIO_TEA5764 is not set -# CONFIG_RADIO_SAA7706H is not set -# CONFIG_RADIO_TEF6862 is not set -# CONFIG_RADIO_WL1273 is not set - -# -# Texas Instruments WL128x FM driver (ST based) -# - -# -# Graphics support -# -# CONFIG_DRM is not set -# CONFIG_ION is not set -CONFIG_PVR_SGX=y -CONFIG_PVR_BUILD_RELEASE=y -# CONFIG_PVR_BUILD_DEBUG is not set -CONFIG_PVR_NEED_PVR_DPF=y -CONFIG_PVR_NEED_PVR_ASSERT=y -CONFIG_PVR_PERCONTEXT_PB=y -CONFIG_PVR_ACTIVE_POWER_MANAGEMENT=y -CONFIG_PVR_ACTIVE_POWER_LATENCY_MS=100 -CONFIG_PVR_SGX_LOW_LATENCY_SCHEDULING=y -CONFIG_PVR_USSE_EDM_STATUS_DEBUG=y -CONFIG_PVR_DUMP_MK_TRACE=y -# CONFIG_PVR_PDUMP is not set -# CONFIG_VGASTATE is not set -# CONFIG_VIDEO_OUTPUT_CONTROL is not set -CONFIG_FB=y -# CONFIG_FIRMWARE_EDID is not set -# CONFIG_FB_DDC is not set -# CONFIG_FB_BOOT_VESA_SUPPORT is not set -CONFIG_FB_CFB_FILLRECT=y -CONFIG_FB_CFB_COPYAREA=y -CONFIG_FB_CFB_IMAGEBLIT=y -# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set -# CONFIG_FB_SYS_FILLRECT is not set -# CONFIG_FB_SYS_COPYAREA is not set -# CONFIG_FB_SYS_IMAGEBLIT is not set -# CONFIG_FB_FOREIGN_ENDIAN is not set -# CONFIG_FB_SYS_FOPS is not set -# CONFIG_FB_WMT_GE_ROPS is not set -# CONFIG_FB_SVGALIB is not set -# CONFIG_FB_MACMODES is not set -# CONFIG_FB_BACKLIGHT is not set -# CONFIG_FB_MODE_HELPERS is not set -# CONFIG_FB_TILEBLITTING is not set - -# -# Frame buffer hardware drivers -# -CONFIG_FB_S3C=y -# CONFIG_FB_S3C_SPLASH_SCREEN is not set -CONFIG_FB_S3C_LCD_INIT=y -# CONFIG_FB_S3C_DEBUG is not set -# CONFIG_FB_S3C_TRACE_UNDERRUN is not set -CONFIG_FB_S3C_DEFAULT_WINDOW=2 -CONFIG_FB_S3C_NR_BUFFERS=2 -CONFIG_FB_S3C_NUM_OVLY_WIN=1 -CONFIG_FB_S3C_NUM_BUF_OVLY_WIN=3 -# CONFIG_FB_S3C_VIRTUAL is not set -# CONFIG_FB_S3C_LB070WV6 is not set -CONFIG_FB_S3C_LTE480WV=y -# CONFIG_FB_S3C_101WA01S is not set -# CONFIG_FB_S3C_TL2796 is not set -# CONFIG_FB_S3C_HT101HD1 is not set -# CONFIG_FB_S3C_NT35580 is not set -# CONFIG_FB_S3C_LVDS is not set -# CONFIG_FB_S3C_AMS701KA is not set -# CONFIG_FB_S3C_MDNIE is not set -# CONFIG_FB_S3C_CMC623 is not set -# CONFIG_FB_S1D13XXX is not set -# CONFIG_FB_S3C_DEBUG_REGWRITE is not set -# CONFIG_FB_UDL is not set -# CONFIG_FB_VIRTUAL is not set -# CONFIG_FB_METRONOME is not set -# CONFIG_FB_BROADSHEET is not set -CONFIG_BACKLIGHT_LCD_SUPPORT=y -CONFIG_LCD_CLASS_DEVICE=y -# CONFIG_LCD_PLATFORM is not set -CONFIG_BACKLIGHT_CLASS_DEVICE=y -CONFIG_BACKLIGHT_GENERIC=y -CONFIG_BACKLIGHT_PWM=y -# CONFIG_BACKLIGHT_ADP8860 is not set -# CONFIG_BACKLIGHT_ADP8870 is not set - -# -# Display device support -# -# CONFIG_DISPLAY_SUPPORT is not set - -# -# Console display driver support -# -CONFIG_DUMMY_CONSOLE=y -# CONFIG_FRAMEBUFFER_CONSOLE is not set -CONFIG_LOGO=y -CONFIG_LOGO_LINUX_MONO=y -CONFIG_LOGO_LINUX_VGA16=y -CONFIG_LOGO_LINUX_CLUT224=y -CONFIG_SOUND=y -# CONFIG_SOUND_OSS_CORE is not set -CONFIG_SND=y -CONFIG_SND_TIMER=y -CONFIG_SND_PCM=y -CONFIG_SND_JACK=y -# CONFIG_SND_SEQUENCER is not set -# CONFIG_SND_MIXER_OSS is not set -# CONFIG_SND_PCM_OSS is not set -# CONFIG_SND_HRTIMER is not set -# CONFIG_SND_DYNAMIC_MINORS is not set -CONFIG_SND_SUPPORT_OLD_API=y -CONFIG_SND_VERBOSE_PROCFS=y -CONFIG_SND_VERBOSE_PRINTK=y -CONFIG_SND_DEBUG=y -CONFIG_SND_DEBUG_VERBOSE=y -CONFIG_SND_PCM_XRUN_DEBUG=y -# CONFIG_SND_RAWMIDI_SEQ is not set -# CONFIG_SND_OPL3_LIB_SEQ is not set -# CONFIG_SND_OPL4_LIB_SEQ is not set -# CONFIG_SND_SBAWE_SEQ is not set -# CONFIG_SND_EMU10K1_SEQ is not set -CONFIG_SND_DRIVERS=y -# CONFIG_SND_DUMMY is not set -# CONFIG_SND_ALOOP is not set -# CONFIG_SND_MTPAV is not set -# CONFIG_SND_SERIAL_U16550 is not set -# CONFIG_SND_MPU401 is not set -CONFIG_SND_ARM=y -CONFIG_SND_USB=y -# CONFIG_SND_USB_AUDIO is not set -# CONFIG_SND_USB_UA101 is not set -# CONFIG_SND_USB_CAIAQ is not set -# CONFIG_SND_USB_6FIRE is not set -CONFIG_SND_SOC=y -# CONFIG_SND_SOC_CACHE_LZO is not set -CONFIG_SND_SOC_AC97_BUS=y -CONFIG_SND_SOC_SAMSUNG=y -CONFIG_SND_SAMSUNG_AC97=y -# CONFIG_SND_SOC_SAMSUNG_SMDK_WM8580 is not set -# CONFIG_SND_SOC_SAMSUNG_SMDK_WM8960 is not set -CONFIG_SND_SOC_SAMSUNG_SMDK_WM9713=y -# CONFIG_SND_SOC_SAMSUNG_SMDK_SPDIF is not set -# CONFIG_SND_SOC_SMDK_WM8580_PCM is not set -CONFIG_SND_SOC_I2C_AND_SPI=y -# CONFIG_SND_SOC_ALL_CODECS is not set -CONFIG_SND_SOC_WM9713=y -# CONFIG_SOUND_PRIME is not set -CONFIG_AC97_BUS=y -CONFIG_HID_SUPPORT=y -CONFIG_HID=y -# CONFIG_HIDRAW is not set - -# -# USB Input Devices -# -CONFIG_USB_HID=y -# CONFIG_HID_PID is not set -# CONFIG_USB_HIDDEV is not set - -# -# Special HID drivers -# -# CONFIG_HID_A4TECH is not set -# CONFIG_HID_ACRUX is not set -# CONFIG_HID_APPLE is not set -# CONFIG_HID_BELKIN is not set -# CONFIG_HID_CHERRY is not set -# CONFIG_HID_CHICONY is not set -# CONFIG_HID_PRODIKEYS is not set -# CONFIG_HID_CYPRESS is not set -# CONFIG_HID_DRAGONRISE is not set -# CONFIG_HID_EMS_FF is not set -# CONFIG_HID_EZKEY is not set -# CONFIG_HID_KEYTOUCH is not set -# CONFIG_HID_KYE is not set -# CONFIG_HID_UCLOGIC is not set -# CONFIG_HID_WALTOP is not set -# CONFIG_HID_GYRATION is not set -# CONFIG_HID_TWINHAN is not set -# CONFIG_HID_KENSINGTON is not set -# CONFIG_HID_LCPOWER is not set -# CONFIG_HID_LOGITECH is not set -# CONFIG_HID_MICROSOFT is not set -# CONFIG_HID_MONTEREY is not set -# CONFIG_HID_MULTITOUCH is not set -# CONFIG_HID_NTRIG is not set -# CONFIG_HID_ORTEK is not set -# CONFIG_HID_PANTHERLORD is not set -# CONFIG_HID_PETALYNX is not set -# CONFIG_HID_PICOLCD is not set -# CONFIG_HID_QUANTA is not set -# CONFIG_HID_ROCCAT is not set -# CONFIG_HID_ROCCAT_ARVO is not set -# CONFIG_HID_ROCCAT_KONE is not set -# CONFIG_HID_ROCCAT_KONEPLUS is not set -# CONFIG_HID_ROCCAT_KOVAPLUS is not set -# CONFIG_HID_ROCCAT_PYRA is not set -# CONFIG_HID_SAMSUNG is not set -# CONFIG_HID_SONY is not set -# CONFIG_HID_SUNPLUS is not set -# CONFIG_HID_GREENASIA is not set -# CONFIG_HID_SMARTJOYPLUS is not set -# CONFIG_HID_TOPSEED is not set -# CONFIG_HID_THRUSTMASTER is not set -# CONFIG_HID_ZEROPLUS is not set -# CONFIG_HID_ZYDACRON is not set -CONFIG_USB_SUPPORT=y -CONFIG_USB_ARCH_HAS_HCD=y -CONFIG_USB_ARCH_HAS_OHCI=y -CONFIG_USB_ARCH_HAS_EHCI=y -CONFIG_USB=y -# CONFIG_USB_DEBUG is not set -# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set - -# -# Miscellaneous USB options -# -# CONFIG_USB_DEVICEFS is not set -CONFIG_USB_DEVICE_CLASS=y -# CONFIG_USB_DYNAMIC_MINORS is not set -# CONFIG_USB_SUSPEND is not set -# CONFIG_USB_OTG_WHITELIST is not set -# CONFIG_USB_OTG_BLACKLIST_HUB is not set -# CONFIG_USB_MON is not set -# CONFIG_USB_WUSB is not set -# CONFIG_USB_WUSB_CBAF is not set - -# -# USB Host Controller Drivers -# -# CONFIG_USB_C67X00_HCD is not set -CONFIG_USB_EHCI_HCD=y -# CONFIG_USB_EHCI_ROOT_HUB_TT is not set -CONFIG_USB_EHCI_TT_NEWSCHED=y -CONFIG_USB_EHCI_S5P=y -# CONFIG_USB_OXU210HP_HCD is not set -# CONFIG_USB_ISP116X_HCD is not set -# CONFIG_USB_ISP1760_HCD is not set -# CONFIG_USB_ISP1362_HCD is not set -CONFIG_USB_OHCI_HCD=y -CONFIG_USB_OHCI_S5P=y -# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set -# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set -CONFIG_USB_OHCI_LITTLE_ENDIAN=y -# CONFIG_USB_SL811_HCD is not set -# CONFIG_USB_R8A66597_HCD is not set -# CONFIG_USB_HWA_HCD is not set -# CONFIG_USB_MUSB_HDRC is not set - -# -# USB Device Class drivers -# -# CONFIG_USB_ACM is not set -# CONFIG_USB_PRINTER is not set -# CONFIG_USB_WDM is not set -# CONFIG_USB_TMC is not set - -# -# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may -# - -# -# also be needed; see USB_STORAGE Help for more info -# -CONFIG_USB_STORAGE=y -# CONFIG_USB_STORAGE_DEBUG is not set -# CONFIG_USB_STORAGE_REALTEK is not set -# CONFIG_USB_STORAGE_DATAFAB is not set -# CONFIG_USB_STORAGE_FREECOM is not set -# CONFIG_USB_STORAGE_ISD200 is not set -# CONFIG_USB_STORAGE_USBAT is not set -# CONFIG_USB_STORAGE_SDDR09 is not set -# CONFIG_USB_STORAGE_SDDR55 is not set -# CONFIG_USB_STORAGE_JUMPSHOT is not set -# CONFIG_USB_STORAGE_ALAUDA is not set -# CONFIG_USB_STORAGE_ONETOUCH is not set -# CONFIG_USB_STORAGE_KARMA is not set -# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set -# CONFIG_USB_STORAGE_ENE_UB6250 is not set -# CONFIG_USB_UAS is not set -# CONFIG_USB_LIBUSUAL is not set - -# -# USB Imaging devices -# -# CONFIG_USB_MDC800 is not set -# CONFIG_USB_MICROTEK is not set - -# -# USB port drivers -# -# CONFIG_USB_SERIAL is not set - -# -# USB Miscellaneous drivers -# -# CONFIG_USB_EMI62 is not set -# CONFIG_USB_EMI26 is not set -# CONFIG_USB_ADUTUX is not set -# CONFIG_USB_SEVSEG is not set -# CONFIG_USB_RIO500 is not set -# CONFIG_USB_LEGOTOWER is not set -# CONFIG_USB_LCD is not set -# CONFIG_USB_LED is not set -# CONFIG_USB_CYPRESS_CY7C63 is not set -# CONFIG_USB_CYTHERM is not set -# CONFIG_USB_IDMOUSE is not set -# CONFIG_USB_FTDI_ELAN is not set -# CONFIG_USB_APPLEDISPLAY is not set -# CONFIG_USB_SISUSBVGA is not set -# CONFIG_USB_LD is not set -# CONFIG_USB_TRANCEVIBRATOR is not set -# CONFIG_USB_IOWARRIOR is not set -# CONFIG_USB_TEST is not set -# CONFIG_USB_ISIGHTFW is not set -# CONFIG_USB_YUREX is not set -CONFIG_USB_GADGET=y -# CONFIG_USB_GADGET_DEBUG_FILES is not set -CONFIG_USB_GADGET_VBUS_DRAW=2 -CONFIG_USB_GADGET_SELECTED=y -# CONFIG_USB_GADGET_FUSB300 is not set -# CONFIG_USB_GADGET_R8A66597 is not set -CONFIG_USB_GADGET_S3C_OTGD=y -# CONFIG_USB_GADGET_PXA_U2O is not set -# CONFIG_USB_GADGET_M66592 is not set -# CONFIG_USB_GADGET_DUMMY_HCD is not set - -# -# NOTE: S3C OTG device role enables the controller driver below -# -CONFIG_USB_S3C_OTGD=y -CONFIG_USB_GADGET_S3C_OTGD_DMA_MODE=y -# CONFIG_USB_GADGET_S3C_OTGD_SLAVE_MODE is not set -CONFIG_USB_GADGET_DUALSPEED=y -# CONFIG_USB_ZERO is not set -# CONFIG_USB_AUDIO is not set -# CONFIG_USB_ETH is not set -# CONFIG_USB_G_NCM is not set -# CONFIG_USB_GADGETFS is not set -# CONFIG_USB_FUNCTIONFS is not set -# CONFIG_USB_FILE_STORAGE is not set -# CONFIG_USB_MASS_STORAGE is not set -# CONFIG_USB_G_SERIAL is not set -# CONFIG_USB_MIDI_GADGET is not set -# CONFIG_USB_G_PRINTER is not set -CONFIG_USB_G_ANDROID=y -CONFIG_USB_ANDROID_RNDIS_DWORD_ALIGNED=y -# CONFIG_USB_CDC_COMPOSITE is not set -# CONFIG_USB_G_MULTI is not set -# CONFIG_USB_G_HID is not set -# CONFIG_USB_G_DBGP is not set -# CONFIG_USB_G_WEBCAM is not set - -# -# OTG and related infrastructure -# -# CONFIG_USB_OTG_WAKELOCK is not set -# CONFIG_USB_GPIO_VBUS is not set -# CONFIG_USB_ULPI is not set -# CONFIG_NOP_USB_XCEIV is not set -CONFIG_MMC=y -# CONFIG_MMC_DEBUG is not set -CONFIG_MMC_UNSAFE_RESUME=y -# CONFIG_MMC_CLKGATE is not set -# CONFIG_MMC_EMBEDDED_SDIO is not set -# CONFIG_MMC_PARANOID_SD_INIT is not set - -# -# MMC/SD/SDIO Card Drivers -# -CONFIG_MMC_BLOCK=y -CONFIG_MMC_BLOCK_MINORS=8 -CONFIG_MMC_BLOCK_BOUNCE=y -# CONFIG_MMC_BLOCK_DEFERRED_RESUME is not set -# CONFIG_SDIO_UART is not set -# CONFIG_MMC_TEST is not set - -# -# MMC/SD/SDIO Host Controller Drivers -# -CONFIG_MMC_SDHCI=y -CONFIG_MMC_SDHCI_PLTFM=y -CONFIG_MMC_SDHCI_S3C=y -CONFIG_MMC_SDHCI_S3C_DMA=y -# CONFIG_MMC_DW is not set -# CONFIG_MMC_VUB300 is not set -# CONFIG_MMC_USHC is not set -# CONFIG_MEMSTICK is not set -CONFIG_NEW_LEDS=y -CONFIG_LEDS_CLASS=y - -# -# LED drivers -# -# CONFIG_LEDS_LM3530 is not set -# CONFIG_LEDS_PCA9532 is not set -CONFIG_LEDS_GPIO=y -CONFIG_LEDS_GPIO_PLATFORM=y -# CONFIG_LEDS_LP3944 is not set -# CONFIG_LEDS_LP5521 is not set -# CONFIG_LEDS_LP5523 is not set -# CONFIG_LEDS_PCA955X is not set -# CONFIG_LEDS_PWM is not set -# CONFIG_LEDS_REGULATOR is not set -# CONFIG_LEDS_BD2802 is not set -# CONFIG_LEDS_LT3593 is not set -CONFIG_LEDS_TRIGGERS=y - -# -# LED Triggers -# -CONFIG_LEDS_TRIGGER_TIMER=y -CONFIG_LEDS_TRIGGER_HEARTBEAT=y -CONFIG_LEDS_TRIGGER_BACKLIGHT=y -CONFIG_LEDS_TRIGGER_GPIO=y -CONFIG_LEDS_TRIGGER_DEFAULT_ON=y -CONFIG_LEDS_TRIGGER_SLEEP=y - -# -# iptables trigger is under Netfilter config (LED target) -# -# CONFIG_NFC_DEVICES is not set -CONFIG_SWITCH=m -# CONFIG_SWITCH_GPIO is not set -# CONFIG_ACCESSIBILITY is not set -CONFIG_RTC_LIB=y -CONFIG_RTC_CLASS=y -CONFIG_RTC_HCTOSYS=y -CONFIG_RTC_HCTOSYS_DEVICE="rtc0" -# CONFIG_RTC_DEBUG is not set - -# -# RTC interfaces -# -CONFIG_RTC_INTF_SYSFS=y -CONFIG_RTC_INTF_PROC=y -CONFIG_RTC_INTF_DEV=y -# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set -CONFIG_RTC_INTF_ALARM=y -CONFIG_RTC_INTF_ALARM_DEV=y -# CONFIG_RTC_DRV_TEST is not set - -# -# I2C RTC drivers -# -# CONFIG_RTC_DRV_DS1307 is not set -# CONFIG_RTC_DRV_DS1374 is not set -# CONFIG_RTC_DRV_DS1672 is not set -# CONFIG_RTC_DRV_DS3232 is not set -# CONFIG_RTC_DRV_MAX6900 is not set -# CONFIG_RTC_DRV_RS5C372 is not set -# CONFIG_RTC_DRV_ISL1208 is not set -# CONFIG_RTC_DRV_ISL12022 is not set -# CONFIG_RTC_DRV_X1205 is not set -# CONFIG_RTC_DRV_PCF8563 is not set -# CONFIG_RTC_DRV_PCF8583 is not set -# CONFIG_RTC_DRV_M41T80 is not set -# CONFIG_RTC_DRV_BQ32K is not set -# CONFIG_RTC_DRV_S35390A is not set -# CONFIG_RTC_DRV_FM3130 is not set -# CONFIG_RTC_DRV_RX8581 is not set -# CONFIG_RTC_DRV_RX8025 is not set -# CONFIG_RTC_DRV_EM3027 is not set -# CONFIG_RTC_DRV_RV3029C2 is not set - -# -# SPI RTC drivers -# - -# -# Platform RTC drivers -# -# CONFIG_RTC_DRV_CMOS is not set -# CONFIG_RTC_DRV_DS1286 is not set -# CONFIG_RTC_DRV_DS1511 is not set -# CONFIG_RTC_DRV_DS1553 is not set -# CONFIG_RTC_DRV_DS1742 is not set -# CONFIG_RTC_DRV_STK17TA8 is not set -# CONFIG_RTC_DRV_M48T86 is not set -# CONFIG_RTC_DRV_M48T35 is not set -# CONFIG_RTC_DRV_M48T59 is not set -# CONFIG_RTC_DRV_MSM6242 is not set -# CONFIG_RTC_DRV_BQ4802 is not set -# CONFIG_RTC_DRV_RP5C01 is not set -# CONFIG_RTC_DRV_V3020 is not set - -# -# on-CPU RTC drivers -# -CONFIG_HAVE_S3C_RTC=y -CONFIG_RTC_DRV_S3C=y -# CONFIG_DMADEVICES is not set -# CONFIG_AUXDISPLAY is not set -# CONFIG_UIO is not set -CONFIG_STAGING=y -# CONFIG_VIDEO_TM6000 is not set -# CONFIG_USBIP_CORE is not set -# CONFIG_ECHO is not set -# CONFIG_BRCMUTIL is not set -# CONFIG_ASUS_OLED is not set -# CONFIG_TRANZPORT is not set - -# -# Android -# -CONFIG_ANDROID=y -CONFIG_ANDROID_BINDER_IPC=y -CONFIG_ANDROID_LOGGER=y -CONFIG_ANDROID_RAM_CONSOLE=y -CONFIG_ANDROID_RAM_CONSOLE_ENABLE_VERBOSE=y -# CONFIG_ANDROID_RAM_CONSOLE_ERROR_CORRECTION is not set -# CONFIG_ANDROID_RAM_CONSOLE_EARLY_INIT is not set -CONFIG_ANDROID_TIMED_OUTPUT=y -# CONFIG_ANDROID_TIMED_GPIO is not set -CONFIG_ANDROID_LOW_MEMORY_KILLER=y -# CONFIG_POHMELFS is not set -# CONFIG_LINE6_USB is not set -# CONFIG_IIO is not set -# CONFIG_XVMALLOC is not set -# CONFIG_ZRAM is not set -# CONFIG_FB_SM7XX is not set -# CONFIG_LIRC_STAGING is not set -# CONFIG_EASYCAP is not set -CONFIG_MACH_NO_WESTBRIDGE=y -# CONFIG_USB_ENESTORAGE is not set -# CONFIG_BCM_WIMAX is not set -# CONFIG_FT1000 is not set - -# -# Speakup console speech -# -# CONFIG_SPEAKUP is not set -# CONFIG_TOUCHSCREEN_CLEARPAD_TM1217 is not set -# CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4 is not set - -# -# Altera FPGA firmware download module -# -# CONFIG_ALTERA_STAPL is not set - -# -# File systems -# -CONFIG_EXT2_FS=y -# CONFIG_EXT2_FS_XATTR is not set -# CONFIG_EXT2_FS_XIP is not set -CONFIG_EXT3_FS=y -CONFIG_EXT3_DEFAULTS_TO_ORDERED=y -CONFIG_EXT3_FS_XATTR=y -# CONFIG_EXT3_FS_POSIX_ACL is not set -# CONFIG_EXT3_FS_SECURITY is not set -CONFIG_EXT4_FS=y -CONFIG_EXT4_FS_XATTR=y -# CONFIG_EXT4_FS_POSIX_ACL is not set -# CONFIG_EXT4_FS_SECURITY is not set -# CONFIG_EXT4_DEBUG is not set -CONFIG_JBD=y -CONFIG_JBD2=y -CONFIG_FS_MBCACHE=y -# CONFIG_REISERFS_FS is not set -# CONFIG_JFS_FS is not set -# CONFIG_XFS_FS is not set -# CONFIG_GFS2_FS is not set -# CONFIG_BTRFS_FS is not set -# CONFIG_NILFS2_FS is not set -CONFIG_FS_POSIX_ACL=y -CONFIG_FILE_LOCKING=y -CONFIG_FSNOTIFY=y -CONFIG_DNOTIFY=y -CONFIG_INOTIFY_USER=y -# CONFIG_FANOTIFY is not set -# CONFIG_QUOTA is not set -# CONFIG_QUOTACTL is not set -# CONFIG_AUTOFS4_FS is not set -# CONFIG_FUSE_FS is not set -CONFIG_GENERIC_ACL=y - -# -# Caches -# -# CONFIG_FSCACHE is not set - -# -# CD-ROM/DVD Filesystems -# -# CONFIG_ISO9660_FS is not set -# CONFIG_UDF_FS is not set - -# -# DOS/FAT/NT Filesystems -# -CONFIG_FAT_FS=y -CONFIG_MSDOS_FS=y -CONFIG_VFAT_FS=y -CONFIG_FAT_DEFAULT_CODEPAGE=437 -CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" -# CONFIG_NTFS_FS is not set - -# -# Pseudo filesystems -# -CONFIG_PROC_FS=y -CONFIG_PROC_SYSCTL=y -CONFIG_PROC_PAGE_MONITOR=y -CONFIG_SYSFS=y -CONFIG_TMPFS=y -CONFIG_TMPFS_POSIX_ACL=y -CONFIG_TMPFS_XATTR=y -# CONFIG_HUGETLB_PAGE is not set -# CONFIG_CONFIGFS_FS is not set -CONFIG_MISC_FILESYSTEMS=y -# CONFIG_ADFS_FS is not set -# CONFIG_AFFS_FS is not set -# CONFIG_ECRYPT_FS is not set -# CONFIG_HFS_FS is not set -# CONFIG_HFSPLUS_FS is not set -# CONFIG_BEFS_FS is not set -# CONFIG_BFS_FS is not set -# CONFIG_EFS_FS is not set -# CONFIG_YAFFS_FS is not set -# CONFIG_JFFS2_FS is not set -# CONFIG_LOGFS is not set -CONFIG_CRAMFS=y -# CONFIG_SQUASHFS is not set -# CONFIG_VXFS_FS is not set -# CONFIG_MINIX_FS is not set -# CONFIG_OMFS_FS is not set -# CONFIG_HPFS_FS is not set -# CONFIG_QNX4FS_FS is not set -CONFIG_ROMFS_FS=y -CONFIG_ROMFS_BACKED_BY_BLOCK=y -# CONFIG_ROMFS_BACKED_BY_MTD is not set -# CONFIG_ROMFS_BACKED_BY_BOTH is not set -CONFIG_ROMFS_ON_BLOCK=y -# CONFIG_PSTORE is not set -# CONFIG_SYSV_FS is not set -# CONFIG_UFS_FS is not set -CONFIG_NETWORK_FILESYSTEMS=y - -# -# Partition Types -# -CONFIG_PARTITION_ADVANCED=y -# CONFIG_ACORN_PARTITION is not set -# CONFIG_OSF_PARTITION is not set -# CONFIG_AMIGA_PARTITION is not set -# CONFIG_ATARI_PARTITION is not set -# CONFIG_MAC_PARTITION is not set -CONFIG_MSDOS_PARTITION=y -CONFIG_BSD_DISKLABEL=y -# CONFIG_MINIX_SUBPARTITION is not set -CONFIG_SOLARIS_X86_PARTITION=y -# CONFIG_UNIXWARE_DISKLABEL is not set -# CONFIG_LDM_PARTITION is not set -# CONFIG_SGI_PARTITION is not set -# CONFIG_ULTRIX_PARTITION is not set -# CONFIG_SUN_PARTITION is not set -# CONFIG_KARMA_PARTITION is not set -# CONFIG_EFI_PARTITION is not set -# CONFIG_SYSV68_PARTITION is not set -CONFIG_NLS=y -CONFIG_NLS_DEFAULT="iso8859-1" -CONFIG_NLS_CODEPAGE_437=y -# CONFIG_NLS_CODEPAGE_737 is not set -# CONFIG_NLS_CODEPAGE_775 is not set -# CONFIG_NLS_CODEPAGE_850 is not set -# CONFIG_NLS_CODEPAGE_852 is not set -# CONFIG_NLS_CODEPAGE_855 is not set -# CONFIG_NLS_CODEPAGE_857 is not set -# CONFIG_NLS_CODEPAGE_860 is not set -# CONFIG_NLS_CODEPAGE_861 is not set -# CONFIG_NLS_CODEPAGE_862 is not set -# CONFIG_NLS_CODEPAGE_863 is not set -# CONFIG_NLS_CODEPAGE_864 is not set -# CONFIG_NLS_CODEPAGE_865 is not set -# CONFIG_NLS_CODEPAGE_866 is not set -# CONFIG_NLS_CODEPAGE_869 is not set -# CONFIG_NLS_CODEPAGE_936 is not set -# CONFIG_NLS_CODEPAGE_950 is not set -# CONFIG_NLS_CODEPAGE_932 is not set -# CONFIG_NLS_CODEPAGE_949 is not set -# CONFIG_NLS_CODEPAGE_874 is not set -# CONFIG_NLS_ISO8859_8 is not set -# CONFIG_NLS_CODEPAGE_1250 is not set -# CONFIG_NLS_CODEPAGE_1251 is not set -CONFIG_NLS_ASCII=y -CONFIG_NLS_ISO8859_1=y -# CONFIG_NLS_ISO8859_2 is not set -# CONFIG_NLS_ISO8859_3 is not set -# CONFIG_NLS_ISO8859_4 is not set -# CONFIG_NLS_ISO8859_5 is not set -# CONFIG_NLS_ISO8859_6 is not set -# CONFIG_NLS_ISO8859_7 is not set -# CONFIG_NLS_ISO8859_9 is not set -# CONFIG_NLS_ISO8859_13 is not set -# CONFIG_NLS_ISO8859_14 is not set -# CONFIG_NLS_ISO8859_15 is not set -# CONFIG_NLS_KOI8_R is not set -# CONFIG_NLS_KOI8_U is not set -# CONFIG_NLS_UTF8 is not set - -# -# Kernel hacking -# -# CONFIG_PRINTK_TIME is not set -CONFIG_DEFAULT_MESSAGE_LOGLEVEL=1 -CONFIG_ENABLE_WARN_DEPRECATED=y -CONFIG_ENABLE_MUST_CHECK=y -CONFIG_FRAME_WARN=1024 -CONFIG_MAGIC_SYSRQ=y -# CONFIG_STRIP_ASM_SYMS is not set -# CONFIG_UNUSED_SYMBOLS is not set -# CONFIG_DEBUG_FS is not set -# CONFIG_HEADERS_CHECK is not set -# CONFIG_DEBUG_SECTION_MISMATCH is not set -# CONFIG_DEBUG_KERNEL is not set -# CONFIG_HARDLOCKUP_DETECTOR is not set -# CONFIG_SLUB_DEBUG_ON is not set -# CONFIG_SLUB_STATS is not set -# CONFIG_SPARSE_RCU_POINTER is not set -CONFIG_STACKTRACE=y -CONFIG_DEBUG_BUGVERBOSE=y -CONFIG_DEBUG_MEMORY_INIT=y -CONFIG_RCU_CPU_STALL_TIMEOUT=60 -CONFIG_RCU_CPU_STALL_VERBOSE=y -CONFIG_SYSCTL_SYSCALL_CHECK=y -CONFIG_HAVE_FUNCTION_TRACER=y -CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y -CONFIG_HAVE_DYNAMIC_FTRACE=y -CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y -CONFIG_HAVE_C_RECORDMCOUNT=y -CONFIG_TRACING_SUPPORT=y -CONFIG_FTRACE=y -# CONFIG_FUNCTION_TRACER is not set -# CONFIG_IRQSOFF_TRACER is not set -# CONFIG_PREEMPT_TRACER is not set -# CONFIG_SCHED_TRACER is not set -# CONFIG_ENABLE_DEFAULT_TRACERS is not set -CONFIG_BRANCH_PROFILE_NONE=y -# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set -# CONFIG_PROFILE_ALL_BRANCHES is not set -# CONFIG_STACK_TRACER is not set -# CONFIG_BLK_DEV_IO_TRACE is not set -# CONFIG_DMA_API_DEBUG is not set -# CONFIG_ATOMIC64_SELFTEST is not set -# CONFIG_SAMPLES is not set -CONFIG_HAVE_ARCH_KGDB=y -# CONFIG_TEST_KSTRTOX is not set -# CONFIG_STRICT_DEVMEM is not set -CONFIG_ARM_UNWIND=y -CONFIG_DEBUG_USER=y -# CONFIG_OC_ETM is not set -CONFIG_DEBUG_S3C_UART=2 - -# -# Security options -# -CONFIG_KEYS=y -# CONFIG_KEYS_DEBUG_PROC_KEYS is not set -# CONFIG_SECURITY_DMESG_RESTRICT is not set -# CONFIG_SECURITY is not set -# CONFIG_SECURITYFS is not set -CONFIG_DEFAULT_SECURITY_DAC=y -CONFIG_DEFAULT_SECURITY="" -CONFIG_CRYPTO=y - -# -# Crypto core or helper -# -# CONFIG_CRYPTO_FIPS is not set -CONFIG_CRYPTO_ALGAPI=y -CONFIG_CRYPTO_ALGAPI2=y -CONFIG_CRYPTO_RNG=y -CONFIG_CRYPTO_RNG2=y -# CONFIG_CRYPTO_MANAGER is not set -# CONFIG_CRYPTO_MANAGER2 is not set -# CONFIG_CRYPTO_GF128MUL is not set -# CONFIG_CRYPTO_NULL is not set -# CONFIG_CRYPTO_CRYPTD is not set -# CONFIG_CRYPTO_AUTHENC is not set -# CONFIG_CRYPTO_TEST is not set - -# -# Authenticated Encryption with Associated Data -# -# CONFIG_CRYPTO_CCM is not set -# CONFIG_CRYPTO_GCM is not set -# CONFIG_CRYPTO_SEQIV is not set - -# -# Block modes -# -# CONFIG_CRYPTO_CBC is not set -# CONFIG_CRYPTO_CTR is not set -# CONFIG_CRYPTO_CTS is not set -# CONFIG_CRYPTO_ECB is not set -# CONFIG_CRYPTO_LRW is not set -# CONFIG_CRYPTO_PCBC is not set -# CONFIG_CRYPTO_XTS is not set - -# -# Hash modes -# -# CONFIG_CRYPTO_HMAC is not set -# CONFIG_CRYPTO_XCBC is not set -# CONFIG_CRYPTO_VMAC is not set - -# -# Digest -# -# CONFIG_CRYPTO_CRC32C is not set -# CONFIG_CRYPTO_GHASH is not set -# CONFIG_CRYPTO_MD4 is not set -# CONFIG_CRYPTO_MD5 is not set -# CONFIG_CRYPTO_MICHAEL_MIC is not set -# CONFIG_CRYPTO_RMD128 is not set -# CONFIG_CRYPTO_RMD160 is not set -# CONFIG_CRYPTO_RMD256 is not set -# CONFIG_CRYPTO_RMD320 is not set -# CONFIG_CRYPTO_SHA1 is not set -# CONFIG_CRYPTO_SHA256 is not set -# CONFIG_CRYPTO_SHA512 is not set -# CONFIG_CRYPTO_TGR192 is not set -# CONFIG_CRYPTO_WP512 is not set - -# -# Ciphers -# -CONFIG_CRYPTO_AES=y -# CONFIG_CRYPTO_ANUBIS is not set -CONFIG_CRYPTO_ARC4=y -# CONFIG_CRYPTO_BLOWFISH is not set -# CONFIG_CRYPTO_CAMELLIA is not set -# CONFIG_CRYPTO_CAST5 is not set -# CONFIG_CRYPTO_CAST6 is not set -# CONFIG_CRYPTO_DES is not set -# CONFIG_CRYPTO_FCRYPT is not set -# CONFIG_CRYPTO_KHAZAD is not set -# CONFIG_CRYPTO_SALSA20 is not set -# CONFIG_CRYPTO_SEED is not set -# CONFIG_CRYPTO_SERPENT is not set -# CONFIG_CRYPTO_TEA is not set -# CONFIG_CRYPTO_TWOFISH is not set - -# -# Compression -# -# CONFIG_CRYPTO_DEFLATE is not set -# CONFIG_CRYPTO_ZLIB is not set -# CONFIG_CRYPTO_LZO is not set - -# -# Random Number Generation -# -CONFIG_CRYPTO_ANSI_CPRNG=y -# CONFIG_CRYPTO_USER_API_HASH is not set -# CONFIG_CRYPTO_USER_API_SKCIPHER is not set -CONFIG_CRYPTO_HW=y -# CONFIG_CRYPTO_DEV_S5P is not set -# CONFIG_BINARY_PRINTF is not set - -# -# Library routines -# -CONFIG_BITREVERSE=y -CONFIG_CRC_CCITT=y -CONFIG_CRC16=y -# CONFIG_CRC_T10DIF is not set -# CONFIG_CRC_ITU_T is not set -CONFIG_CRC32=y -# CONFIG_CRC7 is not set -# CONFIG_LIBCRC32C is not set -CONFIG_ZLIB_INFLATE=y -CONFIG_LZO_DECOMPRESS=y -CONFIG_XZ_DEC=y -CONFIG_XZ_DEC_X86=y -CONFIG_XZ_DEC_POWERPC=y -CONFIG_XZ_DEC_IA64=y -CONFIG_XZ_DEC_ARM=y -CONFIG_XZ_DEC_ARMTHUMB=y -CONFIG_XZ_DEC_SPARC=y -CONFIG_XZ_DEC_BCJ=y -# CONFIG_XZ_DEC_TEST is not set -CONFIG_DECOMPRESS_GZIP=y -CONFIG_DECOMPRESS_BZIP2=y -CONFIG_DECOMPRESS_LZMA=y -CONFIG_DECOMPRESS_XZ=y -CONFIG_DECOMPRESS_LZO=y -CONFIG_HAS_IOMEM=y -CONFIG_HAS_DMA=y -CONFIG_NLATTR=y -CONFIG_AVERAGE=y diff --git a/arch/arm/mach-s5pv210/Kconfig b/arch/arm/mach-s5pv210/Kconfig index 17e6de6..601f11a 100644 --- a/arch/arm/mach-s5pv210/Kconfig +++ b/arch/arm/mach-s5pv210/Kconfig @@ -8,10 +8,9 @@ ?# Configuration options for the S5PV210/S5PC110 ? ?if ARCH_S5PV210 -# jhk add s3c_dev_nand + ?config CPU_S5PV210 ? bool - ? select S3C_PL330_DMA ? select S5P_EXT_INT ? select S5P_HRT @@ -157,7 +156,6 @@ config MACH_SMDKV210 ? ? ? ? ?select HAVE_PWM ? ? ? ? ?select SAMSUNG_DEV_PWM ? ? ? ? ?select SAMSUNG_DEV_TS - select S3C_DEV_NAND ? ? ? ? ?select S5PV210_SETUP_FB_24BPP ? ? ? ? ?select S5PV210_SETUP_I2C1 ? ? ? ? ?select S5PV210_SETUP_I2C2 diff --git a/arch/arm/mach-s5pv210/clock.c b/arch/arm/mach-s5pv210/clock.c index fda0758..173f28b 100644 --- a/arch/arm/mach-s5pv210/clock.c +++ b/arch/arm/mach-s5pv210/clock.c @@ -409,13 +409,6 @@ static struct clk init_clocks_off[] = { ? .enable = s5pv210_clk_ip1_ctrl,? .ctrlbit = (1<<16),? },{ - .name = "nand",- .id = -1,- .parent = &clk_hclk_psys.clk,- .enable = s5pv210_clk_ip1_ctrl,- .ctrlbit = ((1 << 28) | (1 << 24)),- .dev = &s3c_device_nand.dev,- },{ ? .name = "usbhost",? .id = -1,? .parent = &clk_hclk_psys.clk,diff --git a/arch/arm/mach-s5pv210/include/mach/map.h b/arch/arm/mach-s5pv210/include/mach/map.h index 189a3d3..83e08d7 100755 --- a/arch/arm/mach-s5pv210/include/mach/map.h +++ b/arch/arm/mach-s5pv210/include/mach/map.h @@ -29,11 +29,7 @@ ? ?#define S5PC110_PA_ONENAND 0xB0000000 ?#define S5PC110_PA_ONENAND_DMA 0xB0600000 -/* NAND //jhk*/ -#define S5PV210_PA_NAND (0xB0E00000) -#define S5P_PA_NAND S5PV210_PA_NAND -#define S5PV210_SZ_NAND SZ_1M ? -#define S5P_SZ_NAND S5PV210_SZ_NAND + ?#define S5PV210_PA_CHIPID 0xE0000000 ? ?#define S5PV210_PA_SYSCON 0xE0100000 diff --git a/arch/arm/mach-s5pv210/mach-smdkv210.c b/arch/arm/mach-s5pv210/mach-smdkv210.c index e9b26fb..bc39222 100755 --- a/arch/arm/mach-s5pv210/mach-smdkv210.c +++ b/arch/arm/mach-s5pv210/mach-smdkv210.c @@ -1204,9 +1204,6 @@ static struct platform_device *mango210_devices[] __initdata = { ?//#ifdef CONFIG_SND_S3C_SOC_PCM ? &s5pv210_device_pcm0,?//#endif -#if defined CONFIG_MTD_NAND_S3C - &s3c_device_nand,//jhk -#endif ? &s3c_device_rtc,? &s3c_device_ts,? &s3c_device_wdt,@@ -1647,9 +1644,6 @@ static void __init mango210_map_io(void) ?#ifndef CONFIG_S5P_HIGH_RES_TIMERS ? s5p_set_timer_source(S5P_PWM2,S5P_PWM4); ?#endif -#ifdef CONFIG_MTD_NAND_S3C - s3c_device_nand.name = "s5pv210-nand"; -#endif ? s5p_reserve_bootmem(s5pv210_media_devs,? ? ? ? ? ? ? ? ? ? ? ? ?ARRAY_SIZE(s5pv210_media_devs),S5P_RANGE_MFC); ?} diff --git a/arch/arm/plat-s5p/devs.c b/arch/arm/plat-s5p/devs.c index 6e9875f..e06f5ac 100755 --- a/arch/arm/plat-s5p/devs.c +++ b/arch/arm/plat-s5p/devs.c @@ -85,21 +85,6 @@ static int __init ethaddr_setup(char *line) ?} ?__setup("ethaddr=",ethaddr_setup); ?#endif -/* NAND Controller by jhk */ -static struct resource s3c_nand_resource[] = { - [0] = { - .start = S5P_PA_NAND,- .end = S5P_PA_NAND + S5P_SZ_NAND - 1,- .flags = IORESOURCE_MEM,- } -}; - -struct platform_device s3c_device_nand = { - .name = "s5pv210-nand",- .num_resources = ARRAY_SIZE(s3c_nand_resource),- .resource = s3c_nand_resource,-}; ?#if defined(CONFIG_VIDEO_FIMC) || defined(CONFIG_CPU_FREQ) /* TODO: use existing dev */ ?static struct resource s3c_fimc0_resource[] = { ? [0] = { diff --git a/arch/arm/plat-s5p/include/plat/regs-nand.h b/arch/arm/plat-s5p/include/plat/regs-nand.h deleted file mode 100644 index 2db2923..0000000 --- a/arch/arm/plat-s5p/include/plat/regs-nand.h +++ /dev/null @@ -1,87 +0,0 @@ -/* arch/arm/plat-s5p/include/plat/regs-nand.h - * - * Copyright (c) 2010 Samsung Electronics Co.,Ltd. - * http://www.samsung.com/ - * - * Register definition file for Samsung NAND driver - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. -*/ - -#ifndef __ASM_ARM_REGS_S5P_NAND -#define __ASM_ARM_REGS_S5P_NAND - - -#define S5P_NFREG(x) (x) - -/* for s3c_nand.c */ -#define S3C_NFCONF S5P_NFREG(0x00) -#define S3C_NFCONT S5P_NFREG(0x04) -#define S3C_NFCMMD S5P_NFREG(0x08) -#define S3C_NFADDR S5P_NFREG(0x0c) -#define S3C_NFDATA8 S5P_NFREG(0x10) -#define S3C_NFDATA S5P_NFREG(0x10) -#define S3C_NFMECCDATA0 S5P_NFREG(0x14) -#define S3C_NFMECCDATA1 S5P_NFREG(0x18) -#define S3C_NFSECCDATA S5P_NFREG(0x1c) -#define S3C_NFSBLK S5P_NFREG(0x20) -#define S3C_NFEBLK S5P_NFREG(0x24) -#define S3C_NFSTAT S5P_NFREG(0x28) -#define S3C_NFMECCERR0 S5P_NFREG(0x2c) -#define S3C_NFMECCERR1 S5P_NFREG(0x30) -#define S3C_NFMECC0 S5P_NFREG(0x34) -#define S3C_NFMECC1 S5P_NFREG(0x38) -#define S3C_NFSECC S5P_NFREG(0x3c) -#define S3C_NFMLCBITPT S5P_NFREG(0x40) -#define S3C_NF8ECCERR0 S5P_NFREG(0x44) -#define S3C_NF8ECCERR1 S5P_NFREG(0x48) -#define S3C_NF8ECCERR2 S5P_NFREG(0x4C) -#define S3C_NFM8ECC0 S5P_NFREG(0x50) -#define S3C_NFM8ECC1 S5P_NFREG(0x54) -#define S3C_NFM8ECC2 S5P_NFREG(0x58) -#define S3C_NFM8ECC3 S5P_NFREG(0x5C) -#define S3C_NFMLC8BITPT0 S5P_NFREG(0x60) -#define S3C_NFMLC8BITPT1 S5P_NFREG(0x64) - -#define S3C_NFCONF_NANDBOOT (1<<31) -#define S3C_NFCONF_ECCCLKCON (1<<30) -#define S3C_NFCONF_ECC_MLC (1<<24) -#define S3C_NFCONF_ECC_1BIT (0<<23) -#define S3C_NFCONF_ECC_4BIT (2<<23) -#define S3C_NFCONF_ECC_8BIT (1<<23) -#define S3C_NFCONF_TACLS(x) ((x)<<12) -#define S3C_NFCONF_TWRPH0(x) ((x)<<8) -#define S3C_NFCONF_TWRPH1(x) ((x)<<4) -#define S3C_NFCONF_ADVFLASH (1<<3) -#define S3C_NFCONF_PAGESIZE (1<<2) -#define S3C_NFCONF_ADDRCYCLE (1<<1) -#define S3C_NFCONF_BUSWIDTH (1<<0) - -#define S3C_NFCONT_ECC_ENC (1<<18) -#define S3C_NFCONT_LOCKTGHT (1<<17) -#define S3C_NFCONT_LOCKSOFT (1<<16) -#define S3C_NFCONT_MECCLOCK (1<<7) -#define S3C_NFCONT_SECCLOCK (1<<6) -#define S3C_NFCONT_INITMECC (1<<5) -#define S3C_NFCONT_INITSECC (1<<4) -#define S3C_NFCONT_nFCE1 (1<<2) -#define S3C_NFCONT_nFCE0 (1<<1) -#define S3C_NFCONT_INITECC (S3C_NFCONT_INITSECC | S3C_NFCONT_INITMECC) - -#define S3C_NFSTAT_ECCENCDONE (1<<7) -#define S3C_NFSTAT_ECCDECDONE (1<<6) -#define S3C_NFSTAT_ILEGL_ACC (1<<5) -#define S3C_NFSTAT_RnB_CHANGE (1<<4) -#define S3C_NFSTAT_nFCE1 (1<<3) -#define S3C_NFSTAT_nFCE0 (1<<2) -#define S3C_NFSTAT_Res1 (1<<1) -#define S3C_NFSTAT_READY (1<<0) -#define S3C_NFSTAT_CLEAR ((1<<7) |(1<<6) |(1<<5) |(1<<4)) -#define S3C_NFSTAT_BUSY (1<<0) - -#define S3C_NFECCERR0_ECCBUSY (1<<31) - -#endif /* __ASM_ARM_REGS_S5P_NAND */ - diff --git a/arch/arm/plat-samsung/dev-nand.c b/arch/arm/plat-samsung/dev-nand.c index 3163289..6927ae8 100644 --- a/arch/arm/plat-samsung/dev-nand.c +++ b/arch/arm/plat-samsung/dev-nand.c @@ -16,10 +16,7 @@ ?#include <mach/map.h> ?#include <plat/devs.h> ?#include <plat/nand.h> -/* NAND //jhk*/ -#define S3C_PA_NAND (0x70200000) ? -/* ?static struct resource s3c_nand_resource[] = { ? [0] = { ? .start = S3C_PA_NAND,@@ -29,15 +26,14 @@ static struct resource s3c_nand_resource[] = { ?}; ? ?struct platform_device s3c_device_nand = { -// .name ?= "s3c2410-nand",- .name ?= "s5pv210-nand",+ .name ?= "s3c2410-nand",? .id ?= -1,? .num_resources ?= ARRAY_SIZE(s3c_nand_resource),? .resource ?= s3c_nand_resource,?}; ? ?EXPORT_SYMBOL(s3c_device_nand); -*/ + ?/** ? * s3c_nand_copy_set() - copy nand set data ? * @set: The new structure,directly copied from the old. diff --git a/arch/arm/plat-samsung/include/plat/nand.h b/arch/arm/plat-samsung/include/plat/nand.h index e99d2e1..b64115f 100644 --- a/arch/arm/plat-samsung/include/plat/nand.h +++ b/arch/arm/plat-samsung/include/plat/nand.h @@ -65,9 +65,3 @@ struct s3c2410_platform_nand { ? * it with the s3c_device_nand. This allows @nand to be __initdata. ?*/ ?extern void s3c_nand_set_platdata(struct s3c2410_platform_nand *nand); -//jhk? -struct s3c_nand_mtd_info { - uint chip_nr; - uint mtd_part_nr; - struct mtd_partition *partition; -}; diff --git a/arch/arm/plat-samsung/include/plat/regs-nand.h b/arch/arm/plat-samsung/include/plat/regs-nand.h index 3180718..238efea 100644 --- a/arch/arm/plat-samsung/include/plat/regs-nand.h +++ b/arch/arm/plat-samsung/include/plat/regs-nand.h @@ -119,73 +119,5 @@ ? ? ? - - -/* for s3c_nand.c */ -#define S3C_NFCONF S3C2410_NFREG(0x00) -#define S3C_NFCONT S3C2410_NFREG(0x04) -#define S3C_NFCMMD S3C2410_NFREG(0x08) -#define S3C_NFADDR S3C2410_NFREG(0x0c) -#define S3C_NFDATA8 S3C2410_NFREG(0x10) -#define S3C_NFDATA S3C2410_NFREG(0x10) -#define S3C_NFMECCDATA0 S3C2410_NFREG(0x14) -#define S3C_NFMECCDATA1 S3C2410_NFREG(0x18) -#define S3C_NFSECCDATA S3C2410_NFREG(0x1c) -#define S3C_NFSBLK S3C2410_NFREG(0x20) -#define S3C_NFEBLK S3C2410_NFREG(0x24) -#define S3C_NFSTAT S3C2410_NFREG(0x28) -#define S3C_NFMECCERR0 S3C2410_NFREG(0x2c) -#define S3C_NFMECCERR1 S3C2410_NFREG(0x30) -#define S3C_NFMECC0 S3C2410_NFREG(0x34) -#define S3C_NFMECC1 S3C2410_NFREG(0x38) -#define S3C_NFSECC S3C2410_NFREG(0x3c) -#define S3C_NFMLCBITPT S3C2410_NFREG(0x40) - -#define S3C_NF8ECCERR0 S3C2410_NFREG(0x44) -#define S3C_NF8ECCERR1 S3C2410_NFREG(0x48) -#define S3C_NF8ECCERR2 S3C2410_NFREG(0x4c) - - -#define S3C_NFM8ECC0 S3C2410_NFREG(0x50) -#define S3C_NFM8ECC1 S3C2410_NFREG(0x54) -#define S3C_NFM8ECC2 S3C2410_NFREG(0x58) -#define S3C_NFM8ECC3 S3C2410_NFREG(0x5c) - -#define S3C_NFMLC8BITPT0 S3C2410_NFREG(0x60) -#define S3C_NFMLC8BITPT1 S3C2410_NFREG(0x64) - -#define S3C_NFCONF_NANDBOOT (1<<31) -#define S3C_NFCONF_ECCCLKCON (1<<30) -#define S3C_NFCONF_ECC_MLC (1<<24) -#define S3C_NFCONF_ECC_1BIT (0<<23) -#define S3C_NFCONF_ECC_4BIT (2<<23) -#define S3C_NFCONF_ECC_8BIT (1<<23) -#define S3C_NFCONF_TACLS(x) ((x)<<12) -#define S3C_NFCONF_TWRPH0(x) ((x)<<8) -#define S3C_NFCONF_TWRPH1(x) ((x)<<4) -#define S3C_NFCONF_ADVFLASH (1<<3) -#define S3C_NFCONF_PAGESIZE (1<<2) -#define S3C_NFCONF_ADDRCYCLE (1<<1) -#define S3C_NFCONF_BUSWIDTH (1<<0) - -#define S3C_NFCONT_ECC_ENC (1<<18) -#define S3C_NFCONT_LOCKTGHT (1<<17) -#define S3C_NFCONT_LOCKSOFT (1<<16) -#define S3C_NFCONT_MECCLOCK (1<<7) -#define S3C_NFCONT_SECCLOCK (1<<6) -#define S3C_NFCONT_INITMECC (1<<5) -#define S3C_NFCONT_INITSECC (1<<4) -#define S3C_NFCONT_nFCE1 (1<<2) -#define S3C_NFCONT_nFCE0 (1<<1) -#define S3C_NFCONT_INITECC (S3C_NFCONT_INITSECC | S3C_NFCONT_INITMECC) - -#define S3C_NFSTAT_ECCENCDONE (1<<7) -#define S3C_NFSTAT_ECCDECDONE (1<<6) -#define S3C_NFSTAT_BUSY (1<<0) - -#define S3C_NFECCERR0_ECCBUSY (1<<31) - - - ?#endif /* __ASM_ARM_REGS_NAND */ ? diff --git a/drivers/mtd/Kconfig b/drivers/mtd/Kconfig index ceba591..4be8373 100644 --- a/drivers/mtd/Kconfig +++ b/drivers/mtd/Kconfig @@ -33,26 +33,6 @@ config MTD_TESTS ? ?should normally be compiled as kernel modules. The modules perform ? ?various checks and verifications when loaded. ? -config MTD_CONCAT - tristate "MTD concatenating support" - help - ?Support for concatenating several MTD devices into a single - ?(virtual) one. This allows you to have -for example- a JFFS(2) - ?file system spanning multiple physical flash chips. If unsure,- ?say 'Y'. - -config MTD_PARTITIONS - bool "MTD partitioning support" - help - ?If you have a device which needs to divide its flash chip(s) up - ?into multiple 'partitions',each of which appears to the user as - ?a separate MTD device,you require this option to be enabled. If - ?unsure,say 'Y'. - - ?Note,however,that you don't need this option for the DiskOnChip - ?devices. Partitioning on NFTL 'devices' is a different - that's the - ?'normal' form of partitioning used on a block device. - ?config MTD_REDBOOT_PARTS ? tristate "RedBoot partition table parsing" ? ---help--- diff --git a/drivers/mtd/mtdpart.c b/drivers/mtd/mtdpart.c index 386f6d7..630be3e 100644 --- a/drivers/mtd/mtdpart.c +++ b/drivers/mtd/mtdpart.c @@ -672,7 +672,6 @@ int add_mtd_partitions(struct mtd_info *master,? ? return 0; ?} -EXPORT_SYMBOL(add_mtd_partitions);//jhk ? ?static DEFINE_SPINLOCK(part_parser_lock); ?static LIST_HEAD(part_parsers); diff --git a/drivers/mtd/nand/Kconfig b/drivers/mtd/nand/Kconfig index 225d8de..43173a3 100644 --- a/drivers/mtd/nand/Kconfig +++ b/drivers/mtd/nand/Kconfig @@ -240,34 +240,6 @@ config MTD_NAND_S3C2410_HWECC ? ?incorrect ECC generation,and if using these,the default of ? ?software ECC is preferable. ? -config MTD_NAND_S3C - tristate "NAND support for Samsung S3C" - depends on (ARCH_S3C64XX || ARCH_S5P64XX || ARCH_S5PC1XX||ARCH_S5PV210) && MTD_NAND - help - ?This enables the NAND flash controller on the S3C - - ?No board specific support is done by this driver,each board - ?must advertise a platform_device for the driver to attach. - -config MTD_NAND_S3C_DEBUG - bool "S3C NAND driver debug" - depends on MTD_NAND_S3C - help - ?Enable debugging of the S3C NAND driver - -config MTD_NAND_S3C_HWECC - bool "S3C NAND Hardware ECC" - depends on MTD_NAND_S3C - help - ?Enable the use of the S3C's internal ECC generator when - ?using NAND. Early versions of the chip have had problems with - ?incorrect ECC generation,the default of - ?software ECC is preferable. - - ?If you lay down a device with the hardware ECC,then you will - ?currently not be able to switch to software,as there is no - ?implementation for ECC method used by the S3C - ?config MTD_NAND_NDFC ? tristate "NDFC NanD Flash Controller" ? depends on 4xx diff --git a/drivers/mtd/nand/Makefile b/drivers/mtd/nand/Makefile index ec2f82a..5745d83 100644 --- a/drivers/mtd/nand/Makefile +++ b/drivers/mtd/nand/Makefile @@ -18,7 +18,6 @@ obj-$(CONFIG_MTD_NAND_AU1550) += au1550nd.o ?obj-$(CONFIG_MTD_NAND_BF5XX) += bf5xx_nand.o ?obj-$(CONFIG_MTD_NAND_PPCHAMELEONEVB) += ppchameleonevb.o ?obj-$(CONFIG_MTD_NAND_S3C2410) += s3c2410.o -obj-$(CONFIG_MTD_NAND_S3C) += s3c_nand.o ?obj-$(CONFIG_MTD_NAND_DAVINCI) += davinci_nand.o ?obj-$(CONFIG_MTD_NAND_DISKONCHIP) += diskonchip.o ?obj-$(CONFIG_MTD_NAND_FSMC) += fsmc_nand.o diff --git a/drivers/mtd/nand/s3c_nand.c b/drivers/mtd/nand/s3c_nand.c deleted file mode 100644 index 964bdc9..0000000 --- a/drivers/mtd/nand/s3c_nand.c +++ /dev/null @@ -1,1268 +0,0 @@ -/* linux/drivers/mtd/nand/s3c_nand.c - * - * Copyright (c) 2009 Samsung Electronics Co.,Ltd. - * http://www.samsung.com/ - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. -*/ - -#include <linux/module.h> -#include <linux/delay.h> -#include <linux/types.h> -#include <linux/init.h> -#include <linux/kernel.h> -#include <linux/string.h> -#include <linux/ioport.h> -#include <linux/platform_device.h> -#include <linux/delay.h> -#include <linux/err.h> -#include <linux/clk.h> -#include <linux/jiffies.h> -#include <linux/sched.h> -#include <linux/slab.h> -#include <linux/io.h> - -#include <linux/mtd/mtd.h> -#include <linux/mtd/nand.h> -#include <linux/mtd/nand_ecc.h> -#include <linux/mtd/partitions.h> - -#include <plat/regs-nand.h> -#include <plat/nand.h> - -#ifdef CONFIG_MTD_CMDLINE_PARTS -static const char *part_probes[] = { "cmdlinepart",NULL }; -#endif - -#if defined(CONFIG_ARCH_S5PV210) -struct mtd_partition s3c_partition_info[] = { -#if 0 - { - .name = "misc",- .offset = (768*SZ_1K),? ? ? ? ?/* for bootloader */ - .size = (256*SZ_1K),- .mask_flags = MTD_CAP_NANDFLASH,- { - .name = "recovery",- .offset = MTDPART_OFS_APPEND,- .size = (5*SZ_1M),- { - .name = "kernel",- { - .name = "ramdisk",- .size = (3*SZ_1M),- { - .name = "system",- .size = (110*SZ_1M),- { - .name = "cache",- .size = (80*SZ_1M),- { - .name = "userdata",- .size = MTDPART_SIZ_FULL,- } -#endif - { - .name = "misc",- //.mask_flags = MTD_CAP_NANDFLASH,- .size = (20*SZ_1M),- } -}; - -struct s3c_nand_mtd_info s3c_nand_mtd_part_info = { - .chip_nr = 1,- .mtd_part_nr = ARRAY_SIZE(s3c_partition_info),- .partition = s3c_partition_info,-}; -#endif - -enum s3c_cpu_type { - TYPE_S3C2450,/* including s3c2416 */ - TYPE_S3C6400,- TYPE_S3C6410,/* including s3c6430/31 */ - TYPE_S5P6440,- TYPE_S5PC100,- TYPE_S5PC110,- TYPE_S5PV210,-}; - -struct s3c_nand_info { - /* mtd info */ - struct nand_hw_control controller; - struct s3c_nand_mtd_info *mtds; - struct s3c2410_platform_nand *platform; - - /* device info */ - struct device *device; - struct resource *area; - struct clk *clk; - void __iomem *regs; - void __iomem *sel_reg; - int sel_bit; - int mtd_count; - - enum s3c_cpu_type cpu_type; -}; -static struct s3c_nand_info s3c_nand; - -static struct mtd_info *s3c_mtd; - -/* Nand flash definition values */ -#define S3C_NAND_TYPE_UNKNOWN 0x0 -#define S3C_NAND_TYPE_SLC 0x1 -#define S3C_NAND_TYPE_MLC 0x2 - -/* when Hz=200,jiffies interval 1/200=5mS,- * waiting for 80mS 80/5 = 16 */ -#define S3C_NAND_WAIT_TIME_MS (80) -#define S3C_NAND_WAIT_INTERVAL (S3C_NAND_WAIT_TIME_MS * HZ / 1000) - -/* Nand flash global values */ -int cur_ecc_mode; -int nand_type = S3C_NAND_TYPE_UNKNOWN; - -#if defined(CONFIG_MTD_NAND_S3C_HWECC) -/* Nand flash oob definition for SLC 512b page size */ -static struct nand_ecclayout s3c_nand_oob_16 = { - .eccbytes = 4,- .eccpos = { - 1,2,3,4 - },- .oobfree = { - { - .offset = 6,- .length = 10 - } - } -}; - -/* Nand flash oob definition for SLC 2k page size */ -static struct nand_ecclayout s3c_nand_oob_64 = { - .eccbytes = 16,- .eccpos = { - 40,41,42,43,44,45,46,47,- 48,49,50,51,52,53,54,55 - },- .oobfree = { - { - .offset = 2,- .length = 38 - } - } -}; - -/* Nand flash oob definition for MLC 2k page size */ -static struct nand_ecclayout s3c_nand_oob_mlc_64 = { - .eccbytes = 32,- .eccpos = { - 32,33,34,35,36,37,38,39,- 40,55,- 56,57,58,59,60,61,62,63 - },- .length = 28 - } - } -}; - -/* Nand flash oob definition for 4Kb page size with 8_bit ECC */ -static struct nand_ecclayout s3c_nand_oob_128 = { - .eccbytes = 104,- .eccpos = { - 24,25,26,27,28,29,30,31,- 32,63,- 64,65,66,67,68,69,70,71,- 72,73,74,75,76,77,78,79,- 80,81,82,83,84,85,86,87,- 88,89,90,91,92,93,94,95,- 96,97,98,99,100,101,102,103,- 104,105,106,107,108,109,110,111,- 112,113,114,115,116,117,118,119,- 120,121,122,123,124,125,126,127},- .length = 22 - } - } -}; -#endif - -#if defined(CONFIG_MTD_NAND_S3C_DEBUG) -/* - * Function to print out oob buffer for debugging - */ -void print_oob(const char *header,struct mtd_info *mtd) -{ - int i; - struct nand_chip *chip = mtd->priv; - - printk(KERN_INFO "%s:t",header); - - for (i = 0; i < 64; i++) - printk(KERN_INFO "%02x ",chip->oob_poi[i]); - - printk(KERN_INFO "n"); -} -EXPORT_SYMBOL(print_oob); -#endif - -/* - * Hardware specific access to control-lines function - */ -static void s3c_nand_hwcontrol(struct mtd_info *mtd,int dat,unsigned int ctrl) -{ - unsigned int cur; - void __iomem *regs = s3c_nand.regs; - - if (ctrl & NAND_CTRL_CHANGE) { - if (ctrl & NAND_NCE) { - if (dat != NAND_CMD_NONE) { - cur = readl(regs + S3C_NFCONT); - cur &= ~S3C_NFCONT_nFCE0; - writel(cur,regs + S3C_NFCONT); - } - } else { - cur = readl(regs + S3C_NFCONT); - cur |= S3C_NFCONT_nFCE0; - writel(cur,regs + S3C_NFCONT); - } - } - - if (dat != NAND_CMD_NONE) { - if (ctrl & NAND_CLE) - writeb(dat,regs + S3C_NFCMMD); - else if (ctrl & NAND_ALE) - writeb(dat,regs + S3C_NFADDR); - } -} - -/* - * Function for checking device ready pin - */ -static int s3c_nand_device_ready(struct mtd_info *mtd) -{ - void __iomem *regs = s3c_nand.regs; - - /* it's to check the RnB nand signal bit and - * return to device ready condition in nand_base.c - */ - return readl(regs + S3C_NFSTAT) & S3C_NFSTAT_READY; -} - -/* - * We don't use a bad block table - */ -static int s3c_nand_scan_bbt(struct mtd_info *mtdinfo) -{ - return 0; -} - -#if defined(CONFIG_MTD_NAND_S3C_HWECC) - -/* - * Function for checking ECCEncDone in NFSTAT - */ -static void s3c_nand_wait_enc(void) -{ - void __iomem *regs = s3c_nand.regs; - unsigned long timeo = jiffies; - - timeo += S3C_NAND_WAIT_INTERVAL; - - /* Apply this short delay always to ensure that we do wait tWB in - * any case on any machine. */ - while (time_before(jiffies,timeo)) { - if (readl(regs + S3C_NFSTAT) & S3C_NFSTAT_ECCENCDONE) - break; - cond_resched(); - } -} - -/* - * Function for checking ECCDecDone in NFSTAT - */ -static void s3c_nand_wait_dec(void) -{ - void __iomem *regs = s3c_nand.regs; - unsigned long timeo = jiffies; - - timeo += S3C_NAND_WAIT_INTERVAL; - - /* Apply this short delay always to ensure that we do wait tWB in - * any case on any machine. */ - while (time_before(jiffies,timeo)) { - if (readl(regs + S3C_NFSTAT) & S3C_NFSTAT_ECCDECDONE) - break; - cond_resched(); - } -} - -/* - * Function for checking ECC Busy - */ -static void s3c_nand_wait_ecc_busy(void) -{ - void __iomem *regs = s3c_nand.regs; - unsigned long timeo = jiffies; - - timeo += S3C_NAND_WAIT_INTERVAL; - - /* Apply this short delay always to ensure that we do wait tWB in - * any case on any machine. */ - while (time_before(jiffies,timeo)) { - if (!(readl(regs + S3C_NFMECCERR0) & S3C_NFECCERR0_ECCBUSY)) - break; - cond_resched(); - } -} - -/* - * This function is called before encoding ecc codes to ready ecc engine. - */ -static void s3c_nand_enable_hwecc(struct mtd_info *mtd,int mode) -{ - u_long nfcont; - u_long nfconf; - void __iomem *regs = s3c_nand.regs; - - cur_ecc_mode = mode; - - nfconf = readl(regs + S3C_NFCONF); - - if (s3c_nand.cpu_type == TYPE_S3C6400) { - if (nand_type == S3C_NAND_TYPE_SLC) - nfconf &= ~S3C_NFCONF_ECC_MLC; /* SLC */ - else - nfconf |= S3C_NFCONF_ECC_MLC; /* MLC */ - } else { - nfconf &= ~(0x3 << 23); - - if (nand_type == S3C_NAND_TYPE_SLC) - nfconf |= S3C_NFCONF_ECC_1BIT; - else - nfconf |= S3C_NFCONF_ECC_4BIT; - } - - writel(nfconf,regs + S3C_NFCONF); - - /* Init main ECC & unlock */ - nfcont = readl(regs + S3C_NFCONT); - nfcont |= S3C_NFCONT_INITMECC; - nfcont &= ~S3C_NFCONT_MECCLOCK; - - if (nand_type == S3C_NAND_TYPE_MLC) { - if (mode == NAND_ECC_WRITE) - nfcont |= S3C_NFCONT_ECC_ENC; - else if (mode == NAND_ECC_READ) - nfcont &= ~S3C_NFCONT_ECC_ENC; - } - - writel(nfcont,regs + S3C_NFCONT); -} - -/* - * This function is called immediately after encoding ecc codes. - * This function returns encoded ecc codes. - */ -static int s3c_nand_calculate_ecc(struct mtd_info *mtd,- const u_char *dat,u_char *ecc_code) -{ - u_long nfcont,nfmecc0,nfmecc1; - void __iomem *regs = s3c_nand.regs; - - /* Lock */ - nfcont = readl(regs + S3C_NFCONT); - nfcont |= S3C_NFCONT_MECCLOCK; - writel(nfcont,regs + S3C_NFCONT); - - if (nand_type == S3C_NAND_TYPE_SLC) { - nfmecc0 = readl(regs + S3C_NFMECC0); - - ecc_code[0] = nfmecc0 & 0xff; - ecc_code[1] = (nfmecc0 >> 8) & 0xff; - ecc_code[2] = (nfmecc0 >> 16) & 0xff; - ecc_code[3] = (nfmecc0 >> 24) & 0xff; - } else { - if (cur_ecc_mode == NAND_ECC_READ) - s3c_nand_wait_dec(); - else { - s3c_nand_wait_enc(); - - nfmecc0 = readl(regs + S3C_NFMECC0); - nfmecc1 = readl(regs + S3C_NFMECC1); - - ecc_code[0] = nfmecc0 & 0xff; - ecc_code[1] = (nfmecc0 >> 8) & 0xff; - ecc_code[2] = (nfmecc0 >> 16) & 0xff; - ecc_code[3] = (nfmecc0 >> 24) & 0xff; - ecc_code[4] = nfmecc1 & 0xff; - ecc_code[5] = (nfmecc1 >> 8) & 0xff; - ecc_code[6] = (nfmecc1 >> 16) & 0xff; - ecc_code[7] = (nfmecc1 >> 24) & 0xff; - } - } - - return 0; -} - -/* - * This function determines whether read data is good or not. - * If SLC,must write ecc codes to controller before reading status bit. - * If MLC,status bit is already set,so only reading is needed. - * If status bit is good,return 0. - * If correctable errors occured,do that. - * If uncorrectable errors occured,return -1. - */ -static int s3c_nand_correct_data(struct mtd_info *mtd,u_char *dat,- u_char *read_ecc,u_char *calc_ecc) -{ - int ret = -1; - u_long nfestat0,nfestat1,nfmeccdata0,nfmeccdata1,nfmlcbitpt; - u_char err_type; - void __iomem *regs = s3c_nand.regs; - - if (!dat) { - printk(KERN_ERR "No page datan"); - return ret; - } - - if (nand_type == S3C_NAND_TYPE_SLC) { - /* SLC: Write ECC data to compare */ - nfmeccdata0 = (read_ecc[1] << 16) | read_ecc[0]; - nfmeccdata1 = (read_ecc[3] << 16) | read_ecc[2]; - writel(nfmeccdata0,regs + S3C_NFMECCDATA0); - writel(nfmeccdata1,regs + S3C_NFMECCDATA1); - - /* Read ECC status */ - nfestat0 = readl(regs + S3C_NFMECCERR0); - err_type = nfestat0 & 0x3; - - switch (err_type) { - case 0: /* No error */ - ret = 0; - break; - - case 1: /* 1 bit error (Correctable) - ? (nfestat0 >> 7) & 0x7ff :error byte number - ? (nfestat0 >> 4) & 0x7 :error bit number */ - printk(KERN_INFO "s3c-nand: 1 bit error detected at byte %ld,correcting from " - "0x%02x ",(nfestat0 >> 7) & 0x7ff,dat[(nfestat0 >> 7) & 0x7ff]); - dat[(nfestat0 >> 7) & 0x7ff] ^= (1 << ((nfestat0 >> 4) & 0x7)); - printk("to 0x%02x...OKn",dat[(nfestat0 >> 7) & 0x7ff]); - ret = 1; - break; - - case 2: /* Multiple error */ - case 3: /* ECC area error */ - printk(KERN_INFO "s3c-nand: ECC uncorrectable error detectedn"); - ret = -1; - break; - } - } else { - /* MLC: */ - s3c_nand_wait_ecc_busy(); - - nfestat0 = readl(regs + S3C_NFMECCERR0); - nfestat1 = readl(regs + S3C_NFMECCERR1); - nfmlcbitpt = readl(regs + S3C_NFMLCBITPT); - - err_type = (nfestat0 >> 26) & 0x7; - - /* No error,If free page (all 0xff) */ - if ((nfestat0 >> 29) & 0x1) { - err_type = 0; - } else { - /* No error,If all 0xff from 17th byte in oob (in case of JFFS2 format) */ - if (dat) { - if (dat[17] == 0xff && dat[26] == 0xff && dat[35] == 0xff && dat[44] == 0xff && dat[54] == 0xff) - err_type = 0; - } - } - - switch (err_type) { - case 5: /* Uncorrectable */ - printk(KERN_INFO "s3c-nand: ECC uncorrectable error detectedn"); - ret = -1; - break; - - case 4: /* 4 bit error (Correctable) */ - dat[(nfestat1 >> 16) & 0x3ff] ^= ((nfmlcbitpt >> 24) & 0xff); - - case 3: /* 3 bit error (Correctable) */ - dat[nfestat1 & 0x3ff] ^= ((nfmlcbitpt >> 16) & 0xff); - - case 2: /* 2 bit error (Correctable) */ - dat[(nfestat0 >> 16) & 0x3ff] ^= ((nfmlcbitpt >> 8) & 0xff); - - case 1: /* 1 bit error (Correctable) */ - printk(KERN_INFO "s3c-nand: %d bit(s) error detected,corrected successfullyn",err_type); - dat[nfestat0 & 0x3ff] ^= (nfmlcbitpt & 0xff); - ret = err_type; - break; - - case 0: /* No error */ - ret = 0; - break; - } - } - - return ret; -} - -static int s3c_nand_write_oob_1bit(struct mtd_info *mtd,struct nand_chip *chip,- ? ? ?int page) -{ - uint8_t *ecc_calc = chip->buffers->ecccalc; - int status = 0; - int eccbytes = chip->ecc.bytes; - int secc_start = mtd->oobsize - eccbytes; - int i; - - chip->cmdfunc(mtd,NAND_CMD_SEQIN,mtd->writesize,page); - - /* spare area */ - chip->ecc.hwctl(mtd,NAND_ECC_WRITE); - chip->write_buf(mtd,chip->oob_poi,secc_start); - chip->ecc.calculate(mtd,&ecc_calc[chip->ecc.total]); - - for (i = 0; i < eccbytes; i++) - chip->oob_poi[secc_start + i] = ecc_calc[chip->ecc.total + i]; - - chip->write_buf(mtd,chip->oob_poi + secc_start,eccbytes); - - /* Send command to program the OOB data */ - chip->cmdfunc(mtd,NAND_CMD_PAGEPROG,-1,-1); - - status = chip->waitfunc(mtd,chip); - - return status & NAND_STATUS_FAIL ? -EIO : 0; -} - -static int s3c_nand_read_oob_1bit(struct mtd_info *mtd,- ? ? int page,int sndcmd) -{ - uint8_t *ecc_calc = chip->buffers->ecccalc; - int eccbytes = chip->ecc.bytes; - int secc_start = mtd->oobsize - eccbytes; - - if (sndcmd) { - chip->cmdfunc(mtd,NAND_CMD_READOOB,page); - sndcmd = 0; - } - - chip->ecc.hwctl(mtd,NAND_ECC_READ); - chip->read_buf(mtd,&ecc_calc[chip->ecc.total]); - chip->read_buf(mtd,eccbytes); - - return sndcmd; -} - -static void s3c_nand_write_page_1bit(struct mtd_info *mtd,- ?const uint8_t *buf) -{ - int i,eccsize = chip->ecc.size; - int eccbytes = chip->ecc.bytes; - int eccsteps = chip->ecc.steps; - int secc_start = mtd->oobsize - eccbytes; - uint8_t *ecc_calc = chip->buffers->ecccalc; - const uint8_t *p = buf; - - uint32_t *eccpos = chip->ecc.layout->eccpos; - - /* main area */ - for (i = 0; eccsteps; eccsteps--,i += eccbytes,p += eccsize) { - chip->ecc.hwctl(mtd,p,eccsize); - chip->ecc.calculate(mtd,&ecc_calc[i]); - } - - for (i = 0; i < chip->ecc.total; i++) - chip->oob_poi[eccpos[i]] = ecc_calc[i]; - - /* spare area */ - chip->ecc.hwctl(mtd,eccbytes); -} - -static int s3c_nand_read_page_1bit(struct mtd_info *mtd,- uint8_t *buf) -{ - int i,stat,eccsize = chip->ecc.size; - int eccbytes = chip->ecc.bytes; - int eccsteps = chip->ecc.steps; - int secc_start = mtd->oobsize - eccbytes; - int col = 0; - uint8_t *p = buf; - uint32_t *mecc_pos = chip->ecc.layout->eccpos; - uint8_t *ecc_calc = chip->buffers->ecccalc; - - col = mtd->writesize; - chip->cmdfunc(mtd,NAND_CMD_RNDOUT,col,-1); - - /* spare area */ - chip->ecc.hwctl(mtd,eccbytes); - - col = 0; - - /* main area */ - for (i = 0; eccsteps; eccsteps--,p += eccsize) { - chip->cmdfunc(mtd,-1); - chip->ecc.hwctl(mtd,&ecc_calc[i]); - - stat = chip->ecc.correct(mtd,chip->oob_poi + mecc_pos[0] + - ((chip->ecc.steps - eccsteps) * eccbytes),0); - if (stat == -1) - mtd->ecc_stats.failed++; - - col = eccsize * (chip->ecc.steps + 1 - eccsteps); - } - - return 0; -} - -/* - * Hardware specific page read function for MLC. - */ -static int s3c_nand_read_page_4bit(struct mtd_info *mtd,eccsize = chip->ecc.size; - int eccbytes = chip->ecc.bytes; - int eccsteps = chip->ecc.steps; - int col = 0; - uint8_t *p = buf; - uint32_t *mecc_pos = chip->ecc.layout->eccpos; - - /* Step1: read whole oob */ - col = mtd->writesize; - chip->cmdfunc(mtd,-1); - chip->read_buf(mtd,mtd->oobsize); - - col = 0; - for (i = 0; eccsteps; eccsteps--,eccsize); - chip->write_buf(mtd,eccbytes); - chip->ecc.calculate(mtd,0); - stat = chip->ecc.correct(mtd,0); - - if (stat == -1) - mtd->ecc_stats.failed++; - - col = eccsize * (chip->ecc.steps + 1 - eccsteps); - } - - return 0; -} - -/* - * Hardware specific page write function for MLC. - */ -static void s3c_nand_write_page_4bit(struct mtd_info *mtd,eccsize = chip->ecc.size; - int eccbytes = chip->ecc.bytes; - int eccsteps = chip->ecc.steps; - const uint8_t *p = buf; - uint8_t *ecc_calc = chip->buffers->ecccalc; - uint32_t *mecc_pos = chip->ecc.layout->eccpos; - - /* Step1: write main data and encode mecc */ - for (i = 0; eccsteps; eccsteps--,&ecc_calc[i]); - } - - /* Step2: save encoded mecc */ - for (i = 0; i < chip->ecc.total; i++) - chip->oob_poi[mecc_pos[i]] = ecc_calc[i]; - - chip->write_buf(mtd,mtd->oobsize); -} - - -static void s3c_nand_wait_ecc_busy_8bit(void) -{ - void __iomem *regs = s3c_nand.regs; - unsigned int timeout; - - /* Wait max 100ms */ - timeout = 1000; - while (readl(regs + S3C_NF8ECCERR0) & S3C_NFECCERR0_ECCBUSY) { - if (timeout == 0) { - printk(KERN_ERR "s3c_nand : wait_ecc_busy err.n"); - break; - } - - timeout--; - udelay(100); - } -} - -void s3c_nand_enable_hwecc_8bit(struct mtd_info *mtd,int mode) -{ - u_long nfcont,nfconf; - void __iomem *regs = s3c_nand.regs; - - cur_ecc_mode = mode; - - /* 8 bit selection */ - nfconf = readl(regs + S3C_NFCONF); - - nfconf &= ~(0x3 << 23); - nfconf |= (0x1 << 23); - - writel(nfconf,(regs + S3C_NFCONF)); - - /* Initialize & unlock */ - nfcont = readl(regs + S3C_NFCONT); - nfcont |= S3C_NFCONT_INITECC; - nfcont &= ~S3C_NFCONT_MECCLOCK; - - if (mode == NAND_ECC_WRITE) - nfcont |= S3C_NFCONT_ECC_ENC; - else if (mode == NAND_ECC_READ) - nfcont &= ~S3C_NFCONT_ECC_ENC; - - writel(nfcont,(regs + S3C_NFCONT)); -} - -int s3c_nand_calculate_ecc_8bit(struct mtd_info *mtd,const u_char *dat,nfm8ecc0,nfm8ecc1,nfm8ecc2,nfm8ecc3; - void __iomem *regs = s3c_nand.regs; - - /* Lock */ - nfcont = readl(regs + S3C_NFCONT); - nfcont |= S3C_NFCONT_MECCLOCK; - writel(nfcont,(regs + S3C_NFCONT)); - - if (cur_ecc_mode == NAND_ECC_READ) - s3c_nand_wait_dec(); - else { - s3c_nand_wait_enc(); - - nfm8ecc0 = readl(regs + S3C_NFM8ECC0); - nfm8ecc1 = readl(regs + S3C_NFM8ECC1); - nfm8ecc2 = readl(regs + S3C_NFM8ECC2); - nfm8ecc3 = readl(regs + S3C_NFM8ECC3); - - ecc_code[0] = nfm8ecc0 & 0xff; - ecc_code[1] = (nfm8ecc0 >> 8) & 0xff; - ecc_code[2] = (nfm8ecc0 >> 16) & 0xff; - ecc_code[3] = (nfm8ecc0 >> 24) & 0xff; - ecc_code[4] = nfm8ecc1 & 0xff; - ecc_code[5] = (nfm8ecc1 >> 8) & 0xff; - ecc_code[6] = (nfm8ecc1 >> 16) & 0xff; - ecc_code[7] = (nfm8ecc1 >> 24) & 0xff; - ecc_code[8] = nfm8ecc2 & 0xff; - ecc_code[9] = (nfm8ecc2 >> 8) & 0xff; - ecc_code[10] = (nfm8ecc2 >> 16) & 0xff; - ecc_code[11] = (nfm8ecc2 >> 24) & 0xff; - ecc_code[12] = nfm8ecc3 & 0xff; - } - - return 0; -} - -int s3c_nand_correct_data_8bit(struct mtd_info *mtd,u_char *read_ecc,u_char *calc_ecc) -{ - int ret = -1; - u_long nf8eccerr0,nf8eccerr1,nf8eccerr2,nfmlc8bitpt0,nfmlc8bitpt1; - u_char err_type; - void __iomem *regs = s3c_nand.regs; - - s3c_nand_wait_ecc_busy_8bit(); - - nf8eccerr0 = readl(regs + S3C_NF8ECCERR0); - nf8eccerr1 = readl(regs + S3C_NF8ECCERR1); - nf8eccerr2 = readl(regs + S3C_NF8ECCERR2); - nfmlc8bitpt0 = readl(regs + S3C_NFMLC8BITPT0); - nfmlc8bitpt1 = readl(regs + S3C_NFMLC8BITPT1); - - err_type = (nf8eccerr0 >> 25) & 0xf; - - /* - * No error,If free page (all 0xff) - * While testing,it was found that NFECCERR0[29] bit is set even if - * the page contents were not zero. So this code is commented - */ - switch (err_type) { - case 9: /* Uncorrectable */ - printk(KERN_INFO "s3c-nand: ECC uncorrectable error detectedn"); - ret = -1; - break; - - case 8: /* 8 bit error (Correctable) */ - dat[(nf8eccerr2 >> 22) & 0x3ff] ^= ((nfmlc8bitpt1 >> 24) & 0xff); - - case 7: /* 7 bit error (Correctable) */ - dat[(nf8eccerr2 >> 11) & 0x3ff] ^= ((nfmlc8bitpt1 >> 16) & 0xff); - - case 6: /* 6 bit error (Correctable) */ - dat[nf8eccerr2 & 0x3ff] ^= ((nfmlc8bitpt1 >> 8) & 0xff); - - case 5: /* 5 bit error (Correctable) */ - dat[(nf8eccerr1 >> 22) & 0x3ff] ^= (nfmlc8bitpt1 & 0xff); - - case 4: /* 4 bit error (Correctable) */ - dat[(nf8eccerr1 >> 11) & 0x3ff] ^= ((nfmlc8bitpt0 >> 24) & 0xff); - - case 3: /* 3 bit error (Correctable) */ - dat[nf8eccerr1 & 0x3ff] ^= ((nfmlc8bitpt0 >> 16) & 0xff); - - case 2: /* 2 bit error (Correctable) */ - dat[(nf8eccerr0 >> 15) & 0x3ff] ^= ((nfmlc8bitpt0 >> 8) & 0xff); - - case 1: /* 1 bit error (Correctable) */ - printk(KERN_INFO "s3c-nand: %d bit(s) error detected,err_type); - dat[nf8eccerr0 & 0x3ff] ^= (nfmlc8bitpt0 & 0xff); - ret = err_type; - break; - - case 0: /* No error */ - ret = 0; - break; - } - - return ret; -} - -void s3c_nand_write_page_8bit(struct mtd_info *mtd,eccsize = chip->ecc.size; - int eccbytes = chip->ecc.bytes; - int eccsteps = chip->ecc.steps; - const uint8_t *p = buf; - int badoffs = mtd->writesize == 512 ? NAND_SMALL_BADBLOCK_POS : NAND_LARGE_BADBLOCK_POS; - uint8_t *ecc_calc = chip->buffers->ecccalc; - uint32_t *mecc_pos = chip->ecc.layout->eccpos; - - for (i = 0; eccsteps; eccsteps--,&ecc_calc[i]); - } - - chip->oob_poi[badoffs] = 0xff; - for (i = 0; i < chip->ecc.total; i++) - chip->oob_poi[mecc_pos[i]] = ecc_calc[i]; - - chip->write_buf(mtd,mtd->oobsize); -} - -int s3c_nand_read_page_8bit(struct mtd_info *mtd,-1); - s3c_nand_enable_hwecc_8bit(mtd,chip->oob_poi + mecc_pos[0] + ((chip->ecc.steps - eccsteps) * eccbytes),NULL,NULL); - - if (stat == -1) - mtd->ecc_stats.failed++; - - col = eccsize * ((mtd->writesize / eccsize) + 1 - eccsteps); - } - - return 0; -} - -int s3c_nand_read_oob_8bit(struct mtd_info *mtd,- int page,int sndcmd) -{ - int eccbytes = chip->ecc.bytes; - int secc_start = mtd->oobsize - eccbytes; - - if (sndcmd) { - chip->cmdfunc(mtd,page); - sndcmd = 0; - } - - chip->read_buf(mtd,secc_start); - return sndcmd; -} - -int s3c_nand_write_oob_8bit(struct mtd_info *mtd,int page) -{ - int status = 0; - int eccbytes = chip->ecc.bytes; - int secc_start = mtd->oobsize - eccbytes; - - chip->cmdfunc(mtd,page); - - chip->write_buf(mtd,secc_start); - chip->cmdfunc(mtd,-1); - status = chip->waitfunc(mtd,chip); - - return status & NAND_STATUS_FAIL ? -EIO : 0; -} -#endif - -/* s3c_nand_probe - * - * called by device layer when it finds a device matching - * one our driver can handled. This code checks to see if - * it can allocate all necessary resources then calls the - * nand layer to look for devices - */ -static int s3c_nand_probe(struct platform_device *pdev,enum s3c_cpu_type cpu_type) -{ -#if defined(CONFIG_ARCH_S5PV210) - struct s3c_nand_mtd_info *plat_info = &s3c_nand_mtd_part_info; -#else - struct s3c_nand_mtd_info *plat_info = pdev->dev.platform_data; -#endif - struct mtd_partition *partition_info = (struct mtd_partition *)plat_info->partition; - struct nand_chip *nand; - struct resource *res; - int err = 0; - int ret = 0; - int i,size; -#ifdef CONFIG_MTD_PARTITIONS - struct mtd_partition *partitions = NULL; - int num_partitions = 0; -#endif - -#if defined(CONFIG_MTD_NAND_S3C_HWECC) - struct nand_flash_dev *type = NULL; - u_char tmp; - int j; -#endif - - /* get the clock source and enable it */ - s3c_nand.clk = clk_get(&pdev->dev,"nand"); - if (IS_ERR(s3c_nand.clk)) { - dev_err(&pdev->dev,"failed to get clock"); - err = -ENOENT; - goto exit_error; - } - - clk_enable(s3c_nand.clk); - - /* allocate and map the resource */ - - /* currently we assume we have the one resource */ - res ?= pdev->resource; - size = res->end - res->start + 1; - - s3c_nand.area = request_mem_region(res->start,size,pdev->name); - - if (s3c_nand.area == NULL) { - dev_err(&pdev->dev,"cannot reserve register regionn"); - err = -ENOENT; - goto exit_error; - } - - s3c_nand.cpu_type ? = cpu_type; - s3c_nand.device ? ? = &pdev->dev; - s3c_nand.regs ? ? ? = ioremap(res->start,size); - - if (s3c_nand.regs == NULL) { - dev_err(&pdev->dev,"cannot reserve register regionn"); - err = -EIO; - goto exit_error; - } - - /* allocate memory for MTD device structure and private data */ - s3c_mtd = kmalloc(sizeof(struct mtd_info) + sizeof(struct nand_chip),GFP_KERNEL); - - if (!s3c_mtd) { - printk(KERN_ERR "Unable to allocate NAND MTD dev structure.n"); - return -ENOMEM; - } - - /* Get pointer to private data */ - nand = (struct nand_chip *) (&s3c_mtd[1]); - - /* Initialize structures */ - memset((char *) s3c_mtd,sizeof(struct mtd_info)); - memset((char *) nand,sizeof(struct nand_chip)); - - /* Link the private data with the MTD structure */ - s3c_mtd->priv = nand; - - for (i = 0; i < plat_info->chip_nr; i++) { - nand->IO_ADDR_R = (char *)(s3c_nand.regs + S3C_NFDATA); - nand->IO_ADDR_W = (char *)(s3c_nand.regs + S3C_NFDATA); - nand->cmd_ctrl = s3c_nand_hwcontrol; - nand->dev_ready = s3c_nand_device_ready; - nand->scan_bbt = s3c_nand_scan_bbt; - nand->options = 0; - -#if defined(CONFIG_MTD_NAND_S3C_HWECC) - nand->ecc.mode = NAND_ECC_HW; - nand->ecc.hwctl = s3c_nand_enable_hwecc; - nand->ecc.calculate = s3c_nand_calculate_ecc; - nand->ecc.correct = s3c_nand_correct_data; - - s3c_nand_hwcontrol(0,NAND_CMD_READID,NAND_NCE | NAND_CLE | NAND_CTRL_CHANGE); - s3c_nand_hwcontrol(0,0x00,NAND_CTRL_CHANGE | NAND_NCE | NAND_ALE); - s3c_nand_hwcontrol(0,NAND_NCE | NAND_ALE); - s3c_nand_hwcontrol(0,NAND_CMD_NONE,NAND_NCE | NAND_CTRL_CHANGE); - s3c_nand_device_ready(0); - - tmp = readb(nand->IO_ADDR_R); /* Maf. ID */ - tmp = readb(nand->IO_ADDR_R); /* Device ID */ - - for (j = 0; nand_flash_ids[j].name != NULL; j++) { - if (tmp == nand_flash_ids[j].id) { - type = &nand_flash_ids[j]; - break; - } - } - - if (!type) { - printk(KERN_ERR "Unknown NAND Device.n"); - goto exit_error; - } - - nand->cellinfo = readb(nand->IO_ADDR_R); /* the 3rd byte */ - tmp = readb(nand->IO_ADDR_R); /* the 4th byte */ - if (!type->pagesize) { - if (((nand->cellinfo >> 2) & 0x3) == 0) { - nand_type = S3C_NAND_TYPE_SLC; - nand->ecc.size = 512; - nand->ecc.bytes = 4; - - /* ?For 4KB Page 8_bit ECC */ - if ((1024 << (tmp & 3)) == 4096) { - /* Page size is 4Kbytes */ - nand->ecc.read_page = s3c_nand_read_page_8bit; - nand->ecc.write_page = s3c_nand_write_page_8bit; - nand->ecc.read_oob = s3c_nand_read_oob_8bit; - nand->ecc.write_oob = s3c_nand_write_oob_8bit; - nand->ecc.layout = &s3c_nand_oob_128; - nand->ecc.hwctl = s3c_nand_enable_hwecc_8bit; - nand->ecc.calculate = s3c_nand_calculate_ecc_8bit; - nand->ecc.correct = s3c_nand_correct_data_8bit; - nand->ecc.size = 512; - nand->ecc.bytes = 13; - nand->options |= NAND_NO_SUBPAGE_WRITE; - } else { - if ((1024 << (tmp & 0x3)) > 512) { - nand->ecc.read_page = s3c_nand_read_page_1bit; - nand->ecc.write_page = s3c_nand_write_page_1bit; - nand->ecc.read_oob = s3c_nand_read_oob_1bit; - nand->ecc.write_oob = s3c_nand_write_oob_1bit; - nand->ecc.layout = &s3c_nand_oob_64; - } else { - nand->ecc.layout = &s3c_nand_oob_16; - } - } - } else { - nand_type = S3C_NAND_TYPE_MLC; - nand->options |= NAND_NO_SUBPAGE_WRITE; /* NOP = 1 if MLC */ - - if ((1024 << (tmp & 3)) == 4096) { - /* Page size is 4Kbytes */ - nand->ecc.read_page = s3c_nand_read_page_8bit; - nand->ecc.write_page = s3c_nand_write_page_8bit; - nand->ecc.read_oob = s3c_nand_read_oob_8bit; - nand->ecc.write_oob = s3c_nand_write_oob_8bit; - nand->ecc.layout = &s3c_nand_oob_128; - nand->ecc.hwctl = s3c_nand_enable_hwecc_8bit; - nand->ecc.calculate = s3c_nand_calculate_ecc_8bit; - nand->ecc.correct = s3c_nand_correct_data_8bit; - nand->ecc.size = 512; - nand->ecc.bytes = 13; - nand->options |= NAND_NO_SUBPAGE_WRITE; - } else { - nand->ecc.read_page = s3c_nand_read_page_4bit; - nand->ecc.write_page = s3c_nand_write_page_4bit; - nand->ecc.size = 512; - nand->ecc.bytes = 8; ? ?/* really 7 bytes */ - nand->ecc.layout = &s3c_nand_oob_mlc_64; - } - } - } else { - nand_type = S3C_NAND_TYPE_SLC; - nand->ecc.size = 512; - nand->cellinfo = 0; - nand->ecc.bytes = 4; - nand->ecc.layout = &s3c_nand_oob_16; - } - - printk(KERN_INFO "S3C NAND Driver is using hardware ECC.n"); -#else - nand->ecc.mode = NAND_ECC_SOFT; - printk(KERN_INFO "S3C NAND Driver is using software ECC.n"); -#endif - if (nand_scan(s3c_mtd,1)) { - ret = -ENXIO; - goto exit_error; - } - - s3c_mtd->name = dev_name(&pdev->dev); - s3c_mtd->owner = THIS_MODULE; - - /* Register the partitions */ -#ifdef CONFIG_MTD_CMDLINE_PARTS - num_partitions = parse_mtd_partitions(s3c_mtd,part_probes,&partitions,0); -#endif - if (num_partitions <= 0) { - /* default partition table */ - num_partitions = plat_info->mtd_part_nr; - partitions = partition_info; - } - - add_mtd_partitions(s3c_mtd,partitions,num_partitions); - } - - pr_debug("initialized okn"); - return 0; - -exit_error: - kfree(s3c_mtd); - - return ret; -} - -static int s5pv210_nand_probe(struct platform_device *dev) -{ - return s3c_nand_probe(dev,TYPE_S5PV210); -} - -/* PM Support */ -#if defined(CONFIG_PM) -static int s3c_nand_suspend(struct platform_device *dev,pm_message_t pm) -{ - clk_disable(s3c_nand.clk); - return 0; -} - -static int s3c_nand_resume(struct platform_device *dev) -{ - clk_enable(s3c_nand.clk); - return 0; -} - -#else -#define s3c_nand_suspend NULL -#define s3c_nand_resume NULL -#endif - -/* device management functions */ -static int s3c_nand_remove(struct platform_device *dev) -{ - platform_set_drvdata(dev,NULL); - - return 0; -} - -static struct platform_driver s5pv210_nand_driver = { - .probe ? ? ? ? ?= s5pv210_nand_probe,- .remove ? ? ? ? = s3c_nand_remove,- .suspend ? ? ? ?= s3c_nand_suspend,- .resume ? ? ? ? = s3c_nand_resume,- .driver ? ? ? ? = { - .name ? = "s5pv210-nand",- .owner ?= THIS_MODULE,-}; - -static int __init s3c_nand_init(void) -{ - printk(KERN_INFO "S3C NAND Driver,(c) 2008 Samsung Electronicsn"); - - return platform_driver_register(&s5pv210_nand_driver); -} - -static void __exit s3c_nand_exit(void) -{ - platform_driver_unregister(&s5pv210_nand_driver); -} - -module_init(s3c_nand_init); -module_exit(s3c_nand_exit); - -MODULE_LICENSE("GPL"); -MODULE_AUTHOR("Jinsung Yang <jsgood.yang@samsung.com>"); -MODULE_DESCRIPTION("S3C MTD NAND driver"); - diff --git a/include/linux/mtd/partitions.h b/include/linux/mtd/partitions.h index 6a0dc17..3a6f037 100644 --- a/include/linux/mtd/partitions.h +++ b/include/linux/mtd/partitions.h @@ -49,9 +49,6 @@ struct mtd_partition { ? ?struct mtd_info; ? -int add_mtd_partitions(struct mtd_info *,const struct mtd_partition *,int);//jhk -int del_mtd_partitions(struct mtd_info *);//jhk - ?/* ? * Functions dealing with the various ways of partitioning the space ? */
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |