nandflash驱动移植patch

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",
- .id = -1,
- .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
 #include
 #include
-/* 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, and if using these, 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


-#include


-#include


-#include


-#include


-#include


-#include


-#include


-#include


-#include


-#include


-#include


-#include


-#include


-#include


-


-#include


-#include


-#include


-#include


-


-#include


-#include


-


-#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",


- .offset = MTDPART_OFS_APPEND,


- .size = (5*SZ_1M),


- },


- {


- .name = "ramdisk",


- .offset = MTDPART_OFS_APPEND,


- .size = (3*SZ_1M),


- },


- {


- .name = "system",


- .offset = MTDPART_OFS_APPEND,


- .size = (110*SZ_1M),


- },


- {


- .name = "cache",


- .offset = MTDPART_OFS_APPEND,


- .size = (80*SZ_1M),


- },


- {


- .name = "userdata",


- .offset = MTDPART_OFS_APPEND,


- .size = MTDPART_SIZ_FULL,


- }


-#endif


- {


- .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),


- //.mask_flags = MTD_CAP_NANDFLASH,


- },


- {


- .name = "kernel",


- .offset = MTDPART_OFS_APPEND,


- .size = (5*SZ_1M),


- },


- {


- .name = "ramdisk",


- .offset = MTDPART_OFS_APPEND,


- .size = (5*SZ_1M),


- },


- {


- .name = "system",


- .offset = MTDPART_OFS_APPEND,


- .size = (110*SZ_1M),


- },


- {


- .name = "cache",


- .offset = MTDPART_OFS_APPEND,


- .size = (20*SZ_1M),


- },


- {


- .name = "userdata",


- .offset = MTDPART_OFS_APPEND,


- .size = MTDPART_SIZ_FULL,


- }


-};


-


-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, 41, 42, 43, 44, 45, 46, 47,


- 48, 49, 50, 51, 52, 53, 54, 55,


- 56, 57, 58, 59, 60, 61, 62, 63


- },


- .oobfree = {


- {


- .offset = 2,


- .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, 33, 34, 35, 36, 37, 38, 39,


- 40, 41, 42, 43, 44, 45, 46, 47,


- 48, 49, 50, 51, 52, 53, 54, 55,


- 56, 57, 58, 59, 60, 61, 62, 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},


- .oobfree = {


- {


- .offset = 2,


- .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 data\n");


- 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...OK\n", dat[(nfestat0 >> 7) & 0x7ff]);


- ret = 1;


- break;


-


- case 2: /* Multiple error */


- case 3: /* ECC area error */


- printk(KERN_INFO "s3c-nand: ECC uncorrectable error detected\n");


- 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 detected\n");


- 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 successfully\n", 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, 0, &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, struct nand_chip *chip,


-     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, 0, page);


- sndcmd = 0;


- }


-


- chip->ecc.hwctl(mtd, NAND_ECC_READ);


- chip->read_buf(mtd, chip->oob_poi, secc_start);


- chip->ecc.calculate(mtd, 0, &ecc_calc[chip->ecc.total]);


- chip->read_buf(mtd, chip->oob_poi + secc_start, eccbytes);


-


- return sndcmd;


-}


-


-static void s3c_nand_write_page_1bit(struct mtd_info *mtd, struct nand_chip *chip,


-  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, NAND_ECC_WRITE);


- chip->write_buf(mtd, p, eccsize);


- chip->ecc.calculate(mtd, p, &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, NAND_ECC_WRITE);


- chip->write_buf(mtd, chip->oob_poi, secc_start);


- chip->ecc.calculate(mtd, p, &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);


-}


-


-static int s3c_nand_read_page_1bit(struct mtd_info *mtd, struct nand_chip *chip,


- 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, NAND_ECC_READ);


- chip->read_buf(mtd, chip->oob_poi, secc_start);


- chip->ecc.calculate(mtd, p, &ecc_calc[chip->ecc.total]);


- chip->read_buf(mtd, chip->oob_poi + secc_start, eccbytes);


-


- col = 0;


-


- /* main area */


- for (i = 0; eccsteps; eccsteps--, i += eccbytes, p += eccsize) {


- chip->cmdfunc(mtd, NAND_CMD_RNDOUT, col, -1);


- chip->ecc.hwctl(mtd, NAND_ECC_READ);


- chip->read_buf(mtd, p, eccsize);


- chip->ecc.calculate(mtd, p, &ecc_calc[i]);


-


- stat = chip->ecc.correct(mtd, p, 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, struct nand_chip *chip,


- uint8_t *buf)


-{


- int i, stat, 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, NAND_CMD_RNDOUT, col, -1);


- chip->read_buf(mtd, chip->oob_poi, mtd->oobsize);


-


- col = 0;


- for (i = 0; eccsteps; eccsteps--, i += eccbytes, p += eccsize) {


- chip->cmdfunc(mtd, NAND_CMD_RNDOUT, col, -1);


- chip->ecc.hwctl(mtd, NAND_ECC_READ);


- chip->read_buf(mtd, p, eccsize);


- chip->write_buf(mtd, chip->oob_poi + mecc_pos[0] +


- ((chip->ecc.steps - eccsteps) * eccbytes), eccbytes);


- chip->ecc.calculate(mtd, 0, 0);


- stat = chip->ecc.correct(mtd, p, 0, 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, struct nand_chip *chip,


-  const uint8_t *buf)


-{


- int i, 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--, i += eccbytes, p += eccsize) {


- chip->ecc.hwctl(mtd, NAND_ECC_WRITE);


- chip->write_buf(mtd, p, eccsize);


- chip->ecc.calculate(mtd, p, &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, chip->oob_poi, 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, u_char *ecc_code)


-{


- u_long nfcont, 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 *dat, 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 detected\n");


- 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, corrected successfully\n", 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, struct nand_chip *chip,


-  const uint8_t *buf)


-{


- int i, 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--, i += eccbytes, p += eccsize) {


- chip->ecc.hwctl(mtd, NAND_ECC_WRITE);


- chip->write_buf(mtd, p, eccsize);


- chip->ecc.calculate(mtd, p, &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, chip->oob_poi, mtd->oobsize);


-}


-


-int s3c_nand_read_page_8bit(struct mtd_info *mtd, struct nand_chip *chip,


- uint8_t *buf)


-{


- int i, stat, 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, NAND_CMD_RNDOUT, col, -1);


- chip->read_buf(mtd, chip->oob_poi, mtd->oobsize);


-


- col = 0;


- for (i = 0; eccsteps; eccsteps--, i += eccbytes, p += eccsize) {


- chip->cmdfunc(mtd, NAND_CMD_RNDOUT, col, -1);


- s3c_nand_enable_hwecc_8bit(mtd, NAND_ECC_READ);


- chip->read_buf(mtd, p, eccsize);


- chip->write_buf(mtd, chip->oob_poi + mecc_pos[0] + ((chip->ecc.steps - eccsteps) * eccbytes), eccbytes);


- chip->ecc.calculate(mtd, 0, 0);


- stat = chip->ecc.correct(mtd, p, 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, struct nand_chip *chip,


- int page, int sndcmd)


-{


- int eccbytes = chip->ecc.bytes;


- int secc_start = mtd->oobsize - eccbytes;


-


- if (sndcmd) {


- chip->cmdfunc(mtd, NAND_CMD_READOOB, 0, page);


- sndcmd = 0;


- }


-


- chip->read_buf(mtd, chip->oob_poi, secc_start);


- return sndcmd;


-}


-


-int s3c_nand_write_oob_8bit(struct mtd_info *mtd, struct nand_chip *chip, int page)


-{


- int status = 0;


- int eccbytes = chip->ecc.bytes;


- int secc_start = mtd->oobsize - eccbytes;


-


- chip->cmdfunc(mtd, NAND_CMD_SEQIN, mtd->writesize, page);


-


- chip->write_buf(mtd, chip->oob_poi, secc_start);


- chip->cmdfunc(mtd, NAND_CMD_PAGEPROG, -1, -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 region\n");


- 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 region\n");


- 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, 0, sizeof(struct mtd_info));


- memset((char *) nand, 0, 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, 0x00, 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 ok\n");


- 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 Electronics\n");


-


- 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 ");


-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
  */

你可能感兴趣的:(linux设备驱动)