Commit 413427b5679f7bb9f25548c498ae92bb03e34443

Authored by Russell King
Committed by Russell King

Merge branch 'next-s3c' of git://aeryn.fluff.org.uk/bjdooks/linux into devel

Showing 19 changed files Side-by-side Diff

Documentation/kernel-parameters.txt
... ... @@ -1362,6 +1362,27 @@
1362 1362 min_addr=nn[KMG] [KNL,BOOT,ia64] All physical memory below this
1363 1363 physical address is ignored.
1364 1364  
  1365 + mini2440= [ARM,HW,KNL]
  1366 + Format:[0..2][b][c][t]
  1367 + Default: "0tb"
  1368 + MINI2440 configuration specification:
  1369 + 0 - The attached screen is the 3.5" TFT
  1370 + 1 - The attached screen is the 7" TFT
  1371 + 2 - The VGA Shield is attached (1024x768)
  1372 + Leaving out the screen size parameter will not load
  1373 + the TFT driver, and the framebuffer will be left
  1374 + unconfigured.
  1375 + b - Enable backlight. The TFT backlight pin will be
  1376 + linked to the kernel VESA blanking code and a GPIO
  1377 + LED. This parameter is not necessary when using the
  1378 + VGA shield.
  1379 + c - Enable the s3c camera interface.
  1380 + t - Reserved for enabling touchscreen support. The
  1381 + touchscreen support is not enabled in the mainstream
  1382 + kernel as of 2.6.30, a preliminary port can be found
  1383 + in the "bleeding edge" mini2440 support kernel at
  1384 + http://repo.or.cz/w/linux-2.6/mini2440.git
  1385 +
1365 1386 mminit_loglevel=
1366 1387 [KNL] When CONFIG_DEBUG_MEMORY_INIT is set, this
1367 1388 parameter allows control of the logging verbosity for
... ... @@ -788,6 +788,13 @@
788 788 M: mkpetch@internode.on.net
789 789 S: Maintained
790 790  
  791 +ARM/OPENMOKO NEO FREERUNNER (GTA02) MACHINE SUPPORT
  792 +P: Nelson Castillo
  793 +M: arhuaco@freaks-unidos.net
  794 +L: openmoko-kernel@lists.openmoko.org (subscribers-only)
  795 +W: http://wiki.openmoko.org/wiki/Neo_FreeRunner
  796 +S: Supported
  797 +
791 798 ARM/TOSA MACHINE SUPPORT
792 799 P: Dmitry Eremin-Solenikov
793 800 M: dbaryshkov@gmail.com
... ... @@ -1241,7 +1241,7 @@
1241 1241  
1242 1242 menu "CPU Power Management"
1243 1243  
1244   -if (ARCH_SA1100 || ARCH_INTEGRATOR || ARCH_OMAP || ARCH_PXA)
  1244 +if (ARCH_SA1100 || ARCH_INTEGRATOR || ARCH_OMAP || ARCH_PXA || ARCH_S3C64XX)
1245 1245  
1246 1246 source "drivers/cpufreq/Kconfig"
1247 1247  
... ... @@ -1271,6 +1271,10 @@
1271 1271 depends on CPU_FREQ && ARCH_PXA && PXA25x
1272 1272 default y
1273 1273 select CPU_FREQ_DEFAULT_GOV_USERSPACE
  1274 +
  1275 +config CPU_FREQ_S3C64XX
  1276 + bool "CPUfreq support for Samsung S3C64XX CPUs"
  1277 + depends on CPU_FREQ && CPU_S3C6410
1274 1278  
1275 1279 endif
1276 1280  
arch/arm/common/vic.c
... ... @@ -229,14 +229,18 @@
229 229 {
230 230 struct vic_device *v = vic_from_irq(irq);
231 231 unsigned int off = irq & 31;
  232 + u32 bit = 1 << off;
232 233  
233 234 if (!v)
234 235 return -EINVAL;
235 236  
  237 + if (!(bit & v->resume_sources))
  238 + return -EINVAL;
  239 +
236 240 if (on)
237   - v->resume_irqs |= 1 << off;
  241 + v->resume_irqs |= bit;
238 242 else
239   - v->resume_irqs &= ~(1 << off);
  243 + v->resume_irqs &= ~bit;
240 244  
241 245 return 0;
242 246 }
arch/arm/configs/mini2440_defconfig
Changes suppressed. Click to show
  1 +#
  2 +# Automatically generated make config: don't edit
  3 +# Linux kernel version: 2.6.30-rc6
  4 +# Wed May 20 12:29:51 2009
  5 +#
  6 +CONFIG_ARM=y
  7 +CONFIG_HAVE_PWM=y
  8 +CONFIG_SYS_SUPPORTS_APM_EMULATION=y
  9 +CONFIG_GENERIC_GPIO=y
  10 +# CONFIG_GENERIC_TIME is not set
  11 +# CONFIG_GENERIC_CLOCKEVENTS is not set
  12 +CONFIG_MMU=y
  13 +CONFIG_NO_IOPORT=y
  14 +CONFIG_GENERIC_HARDIRQS=y
  15 +CONFIG_STACKTRACE_SUPPORT=y
  16 +CONFIG_HAVE_LATENCYTOP_SUPPORT=y
  17 +CONFIG_LOCKDEP_SUPPORT=y
  18 +CONFIG_TRACE_IRQFLAGS_SUPPORT=y
  19 +CONFIG_HARDIRQS_SW_RESEND=y
  20 +CONFIG_GENERIC_IRQ_PROBE=y
  21 +CONFIG_RWSEM_GENERIC_SPINLOCK=y
  22 +# CONFIG_ARCH_HAS_ILOG2_U32 is not set
  23 +# CONFIG_ARCH_HAS_ILOG2_U64 is not set
  24 +CONFIG_GENERIC_HWEIGHT=y
  25 +CONFIG_GENERIC_CALIBRATE_DELAY=y
  26 +CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
  27 +CONFIG_VECTORS_BASE=0xffff0000
  28 +CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
  29 +
  30 +#
  31 +# General setup
  32 +#
  33 +CONFIG_EXPERIMENTAL=y
  34 +CONFIG_BROKEN_ON_SMP=y
  35 +CONFIG_INIT_ENV_ARG_LIMIT=32
  36 +CONFIG_LOCALVERSION=""
  37 +# CONFIG_LOCALVERSION_AUTO is not set
  38 +CONFIG_SWAP=y
  39 +CONFIG_SYSVIPC=y
  40 +CONFIG_SYSVIPC_SYSCTL=y
  41 +CONFIG_POSIX_MQUEUE=y
  42 +CONFIG_POSIX_MQUEUE_SYSCTL=y
  43 +# CONFIG_BSD_PROCESS_ACCT is not set
  44 +# CONFIG_TASKSTATS is not set
  45 +# CONFIG_AUDIT is not set
  46 +
  47 +#
  48 +# RCU Subsystem
  49 +#
  50 +CONFIG_CLASSIC_RCU=y
  51 +# CONFIG_TREE_RCU is not set
  52 +# CONFIG_PREEMPT_RCU is not set
  53 +# CONFIG_TREE_RCU_TRACE is not set
  54 +# CONFIG_PREEMPT_RCU_TRACE is not set
  55 +# CONFIG_IKCONFIG is not set
  56 +CONFIG_LOG_BUF_SHIFT=17
  57 +# CONFIG_GROUP_SCHED is not set
  58 +# CONFIG_CGROUPS is not set
  59 +# CONFIG_SYSFS_DEPRECATED_V2 is not set
  60 +CONFIG_RELAY=y
  61 +CONFIG_NAMESPACES=y
  62 +CONFIG_UTS_NS=y
  63 +CONFIG_IPC_NS=y
  64 +# CONFIG_USER_NS is not set
  65 +# CONFIG_PID_NS is not set
  66 +# CONFIG_NET_NS is not set
  67 +CONFIG_BLK_DEV_INITRD=y
  68 +CONFIG_INITRAMFS_SOURCE=""
  69 +CONFIG_RD_GZIP=y
  70 +CONFIG_RD_BZIP2=y
  71 +CONFIG_RD_LZMA=y
  72 +CONFIG_CC_OPTIMIZE_FOR_SIZE=y
  73 +CONFIG_SYSCTL=y
  74 +CONFIG_ANON_INODES=y
  75 +# CONFIG_EMBEDDED is not set
  76 +CONFIG_UID16=y
  77 +CONFIG_SYSCTL_SYSCALL=y
  78 +CONFIG_KALLSYMS=y
  79 +# CONFIG_KALLSYMS_ALL is not set
  80 +# CONFIG_KALLSYMS_EXTRA_PASS is not set
  81 +CONFIG_STRIP_ASM_SYMS=y
  82 +CONFIG_HOTPLUG=y
  83 +CONFIG_PRINTK=y
  84 +CONFIG_BUG=y
  85 +CONFIG_ELF_CORE=y
  86 +CONFIG_BASE_FULL=y
  87 +CONFIG_FUTEX=y
  88 +CONFIG_EPOLL=y
  89 +CONFIG_SIGNALFD=y
  90 +CONFIG_TIMERFD=y
  91 +CONFIG_EVENTFD=y
  92 +CONFIG_SHMEM=y
  93 +CONFIG_AIO=y
  94 +CONFIG_VM_EVENT_COUNTERS=y
  95 +CONFIG_SLUB_DEBUG=y
  96 +# CONFIG_COMPAT_BRK is not set
  97 +# CONFIG_SLAB is not set
  98 +CONFIG_SLUB=y
  99 +# CONFIG_SLOB is not set
  100 +# CONFIG_PROFILING is not set
  101 +# CONFIG_MARKERS is not set
  102 +CONFIG_HAVE_OPROFILE=y
  103 +# CONFIG_KPROBES is not set
  104 +CONFIG_HAVE_KPROBES=y
  105 +CONFIG_HAVE_KRETPROBES=y
  106 +CONFIG_HAVE_CLK=y
  107 +# CONFIG_SLOW_WORK is not set
  108 +CONFIG_HAVE_GENERIC_DMA_COHERENT=y
  109 +CONFIG_SLABINFO=y
  110 +CONFIG_RT_MUTEXES=y
  111 +CONFIG_BASE_SMALL=0
  112 +CONFIG_MODULES=y
  113 +CONFIG_MODULE_FORCE_LOAD=y
  114 +CONFIG_MODULE_UNLOAD=y
  115 +CONFIG_MODULE_FORCE_UNLOAD=y
  116 +# CONFIG_MODVERSIONS is not set
  117 +# CONFIG_MODULE_SRCVERSION_ALL is not set
  118 +CONFIG_BLOCK=y
  119 +CONFIG_LBD=y
  120 +# CONFIG_BLK_DEV_BSG is not set
  121 +CONFIG_BLK_DEV_INTEGRITY=y
  122 +
  123 +#
  124 +# IO Schedulers
  125 +#
  126 +CONFIG_IOSCHED_NOOP=y
  127 +CONFIG_IOSCHED_AS=y
  128 +CONFIG_IOSCHED_DEADLINE=y
  129 +CONFIG_IOSCHED_CFQ=y
  130 +CONFIG_DEFAULT_AS=y
  131 +# CONFIG_DEFAULT_DEADLINE is not set
  132 +# CONFIG_DEFAULT_CFQ is not set
  133 +# CONFIG_DEFAULT_NOOP is not set
  134 +CONFIG_DEFAULT_IOSCHED="anticipatory"
  135 +CONFIG_FREEZER=y
  136 +
  137 +#
  138 +# System Type
  139 +#
  140 +# CONFIG_ARCH_AAEC2000 is not set
  141 +# CONFIG_ARCH_INTEGRATOR is not set
  142 +# CONFIG_ARCH_REALVIEW is not set
  143 +# CONFIG_ARCH_VERSATILE is not set
  144 +# CONFIG_ARCH_AT91 is not set
  145 +# CONFIG_ARCH_CLPS711X is not set
  146 +# CONFIG_ARCH_EBSA110 is not set
  147 +# CONFIG_ARCH_EP93XX is not set
  148 +# CONFIG_ARCH_GEMINI is not set
  149 +# CONFIG_ARCH_FOOTBRIDGE is not set
  150 +# CONFIG_ARCH_NETX is not set
  151 +# CONFIG_ARCH_H720X is not set
  152 +# CONFIG_ARCH_IMX is not set
  153 +# CONFIG_ARCH_IOP13XX is not set
  154 +# CONFIG_ARCH_IOP32X is not set
  155 +# CONFIG_ARCH_IOP33X is not set
  156 +# CONFIG_ARCH_IXP23XX is not set
  157 +# CONFIG_ARCH_IXP2000 is not set
  158 +# CONFIG_ARCH_IXP4XX is not set
  159 +# CONFIG_ARCH_L7200 is not set
  160 +# CONFIG_ARCH_KIRKWOOD is not set
  161 +# CONFIG_ARCH_KS8695 is not set
  162 +# CONFIG_ARCH_NS9XXX is not set
  163 +# CONFIG_ARCH_LOKI is not set
  164 +# CONFIG_ARCH_MV78XX0 is not set
  165 +# CONFIG_ARCH_MXC is not set
  166 +# CONFIG_ARCH_ORION5X is not set
  167 +# CONFIG_ARCH_PNX4008 is not set
  168 +# CONFIG_ARCH_PXA is not set
  169 +# CONFIG_ARCH_MMP is not set
  170 +# CONFIG_ARCH_RPC is not set
  171 +# CONFIG_ARCH_SA1100 is not set
  172 +CONFIG_ARCH_S3C2410=y
  173 +# CONFIG_ARCH_S3C64XX is not set
  174 +# CONFIG_ARCH_SHARK is not set
  175 +# CONFIG_ARCH_LH7A40X is not set
  176 +# CONFIG_ARCH_DAVINCI is not set
  177 +# CONFIG_ARCH_OMAP is not set
  178 +# CONFIG_ARCH_MSM is not set
  179 +# CONFIG_ARCH_W90X900 is not set
  180 +CONFIG_PLAT_S3C24XX=y
  181 +CONFIG_S3C2410_CLOCK=y
  182 +CONFIG_CPU_S3C244X=y
  183 +CONFIG_S3C24XX_PWM=y
  184 +CONFIG_S3C24XX_GPIO_EXTRA=0
  185 +CONFIG_S3C2410_DMA=y
  186 +# CONFIG_S3C2410_DMA_DEBUG is not set
  187 +CONFIG_S3C24XX_ADC=y
  188 +CONFIG_PLAT_S3C=y
  189 +CONFIG_CPU_LLSERIAL_S3C2440_ONLY=y
  190 +CONFIG_CPU_LLSERIAL_S3C2440=y
  191 +
  192 +#
  193 +# Boot options
  194 +#
  195 +# CONFIG_S3C_BOOT_WATCHDOG is not set
  196 +# CONFIG_S3C_BOOT_ERROR_RESET is not set
  197 +CONFIG_S3C_BOOT_UART_FORCE_FIFO=y
  198 +
  199 +#
  200 +# Power management
  201 +#
  202 +# CONFIG_S3C2410_PM_DEBUG is not set
  203 +# CONFIG_S3C2410_PM_CHECK is not set
  204 +CONFIG_S3C_LOWLEVEL_UART_PORT=0
  205 +CONFIG_S3C_GPIO_SPACE=0
  206 +
  207 +#
  208 +# S3C2400 Machines
  209 +#
  210 +CONFIG_S3C2410_PM=y
  211 +CONFIG_S3C2410_GPIO=y
  212 +
  213 +#
  214 +# S3C2410 Machines
  215 +#
  216 +# CONFIG_ARCH_SMDK2410 is not set
  217 +# CONFIG_ARCH_H1940 is not set
  218 +# CONFIG_MACH_N30 is not set
  219 +# CONFIG_ARCH_BAST is not set
  220 +# CONFIG_MACH_OTOM is not set
  221 +# CONFIG_MACH_AML_M5900 is not set
  222 +# CONFIG_MACH_TCT_HAMMER is not set
  223 +# CONFIG_MACH_VR1000 is not set
  224 +# CONFIG_MACH_QT2410 is not set
  225 +
  226 +#
  227 +# S3C2412 Machines
  228 +#
  229 +# CONFIG_MACH_JIVE is not set
  230 +# CONFIG_MACH_SMDK2413 is not set
  231 +# CONFIG_MACH_SMDK2412 is not set
  232 +# CONFIG_MACH_VSTMS is not set
  233 +CONFIG_CPU_S3C2440=y
  234 +CONFIG_S3C2440_DMA=y
  235 +
  236 +#
  237 +# S3C2440 Machines
  238 +#
  239 +# CONFIG_MACH_ANUBIS is not set
  240 +# CONFIG_MACH_OSIRIS is not set
  241 +# CONFIG_MACH_RX3715 is not set
  242 +# CONFIG_ARCH_S3C2440 is not set
  243 +# CONFIG_MACH_NEXCODER_2440 is not set
  244 +# CONFIG_MACH_AT2440EVB is not set
  245 +CONFIG_MACH_MINI2440=y
  246 +
  247 +#
  248 +# S3C2442 Machines
  249 +#
  250 +
  251 +#
  252 +# S3C2443 Machines
  253 +#
  254 +# CONFIG_MACH_SMDK2443 is not set
  255 +
  256 +#
  257 +# Processor Type
  258 +#
  259 +CONFIG_CPU_32=y
  260 +CONFIG_CPU_ARM920T=y
  261 +CONFIG_CPU_32v4T=y
  262 +CONFIG_CPU_ABRT_EV4T=y
  263 +CONFIG_CPU_PABRT_NOIFAR=y
  264 +CONFIG_CPU_CACHE_V4WT=y
  265 +CONFIG_CPU_CACHE_VIVT=y
  266 +CONFIG_CPU_COPY_V4WB=y
  267 +CONFIG_CPU_TLB_V4WBI=y
  268 +CONFIG_CPU_CP15=y
  269 +CONFIG_CPU_CP15_MMU=y
  270 +
  271 +#
  272 +# Processor Features
  273 +#
  274 +CONFIG_ARM_THUMB=y
  275 +# CONFIG_CPU_ICACHE_DISABLE is not set
  276 +# CONFIG_CPU_DCACHE_DISABLE is not set
  277 +# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
  278 +# CONFIG_OUTER_CACHE is not set
  279 +
  280 +#
  281 +# Bus support
  282 +#
  283 +# CONFIG_PCI_SYSCALL is not set
  284 +# CONFIG_ARCH_SUPPORTS_MSI is not set
  285 +# CONFIG_PCCARD is not set
  286 +
  287 +#
  288 +# Kernel Features
  289 +#
  290 +CONFIG_VMSPLIT_3G=y
  291 +# CONFIG_VMSPLIT_2G is not set
  292 +# CONFIG_VMSPLIT_1G is not set
  293 +CONFIG_PAGE_OFFSET=0xC0000000
  294 +# CONFIG_PREEMPT is not set
  295 +CONFIG_HZ=200
  296 +CONFIG_AEABI=y
  297 +# CONFIG_OABI_COMPAT is not set
  298 +CONFIG_ARCH_FLATMEM_HAS_HOLES=y
  299 +# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
  300 +# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
  301 +# CONFIG_HIGHMEM is not set
  302 +CONFIG_SELECT_MEMORY_MODEL=y
  303 +CONFIG_FLATMEM_MANUAL=y
  304 +# CONFIG_DISCONTIGMEM_MANUAL is not set
  305 +# CONFIG_SPARSEMEM_MANUAL is not set
  306 +CONFIG_FLATMEM=y
  307 +CONFIG_FLAT_NODE_MEM_MAP=y
  308 +CONFIG_PAGEFLAGS_EXTENDED=y
  309 +CONFIG_SPLIT_PTLOCK_CPUS=4096
  310 +# CONFIG_PHYS_ADDR_T_64BIT is not set
  311 +CONFIG_ZONE_DMA_FLAG=0
  312 +CONFIG_VIRT_TO_BUS=y
  313 +CONFIG_UNEVICTABLE_LRU=y
  314 +CONFIG_HAVE_MLOCK=y
  315 +CONFIG_HAVE_MLOCKED_PAGE_BIT=y
  316 +CONFIG_ALIGNMENT_TRAP=y
  317 +
  318 +#
  319 +# Boot options
  320 +#
  321 +CONFIG_ZBOOT_ROM_TEXT=0
  322 +CONFIG_ZBOOT_ROM_BSS=0
  323 +CONFIG_CMDLINE=""
  324 +# CONFIG_XIP_KERNEL is not set
  325 +CONFIG_KEXEC=y
  326 +CONFIG_ATAGS_PROC=y
  327 +
  328 +#
  329 +# CPU Power Management
  330 +#
  331 +CONFIG_CPU_IDLE=y
  332 +CONFIG_CPU_IDLE_GOV_LADDER=y
  333 +
  334 +#
  335 +# Floating point emulation
  336 +#
  337 +
  338 +#
  339 +# At least one emulation must be selected
  340 +#
  341 +
  342 +#
  343 +# Userspace binary formats
  344 +#
  345 +CONFIG_BINFMT_ELF=y
  346 +# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
  347 +CONFIG_HAVE_AOUT=y
  348 +CONFIG_BINFMT_AOUT=m
  349 +CONFIG_BINFMT_MISC=m
  350 +
  351 +#
  352 +# Power management options
  353 +#
  354 +CONFIG_PM=y
  355 +# CONFIG_PM_DEBUG is not set
  356 +CONFIG_PM_SLEEP=y
  357 +CONFIG_SUSPEND=y
  358 +CONFIG_SUSPEND_FREEZER=y
  359 +CONFIG_APM_EMULATION=y
  360 +CONFIG_ARCH_SUSPEND_POSSIBLE=y
  361 +CONFIG_NET=y
  362 +
  363 +#
  364 +# Networking options
  365 +#
  366 +CONFIG_PACKET=y
  367 +CONFIG_PACKET_MMAP=y
  368 +CONFIG_UNIX=y
  369 +CONFIG_XFRM=y
  370 +CONFIG_XFRM_USER=m
  371 +# CONFIG_XFRM_SUB_POLICY is not set
  372 +# CONFIG_XFRM_MIGRATE is not set
  373 +# CONFIG_XFRM_STATISTICS is not set
  374 +CONFIG_NET_KEY=m
  375 +# CONFIG_NET_KEY_MIGRATE is not set
  376 +CONFIG_INET=y
  377 +CONFIG_IP_MULTICAST=y
  378 +CONFIG_IP_ADVANCED_ROUTER=y
  379 +CONFIG_ASK_IP_FIB_HASH=y
  380 +# CONFIG_IP_FIB_TRIE is not set
  381 +CONFIG_IP_FIB_HASH=y
  382 +CONFIG_IP_MULTIPLE_TABLES=y
  383 +CONFIG_IP_ROUTE_MULTIPATH=y
  384 +CONFIG_IP_ROUTE_VERBOSE=y
  385 +CONFIG_IP_PNP=y
  386 +CONFIG_IP_PNP_DHCP=y
  387 +CONFIG_IP_PNP_BOOTP=y
  388 +CONFIG_IP_PNP_RARP=y
  389 +# CONFIG_NET_IPIP is not set
  390 +# CONFIG_NET_IPGRE is not set
  391 +CONFIG_IP_MROUTE=y
  392 +CONFIG_IP_PIMSM_V1=y
  393 +CONFIG_IP_PIMSM_V2=y
  394 +# CONFIG_ARPD is not set
  395 +CONFIG_SYN_COOKIES=y
  396 +# CONFIG_INET_AH is not set
  397 +# CONFIG_INET_ESP is not set
  398 +# CONFIG_INET_IPCOMP is not set
  399 +# CONFIG_INET_XFRM_TUNNEL is not set
  400 +# CONFIG_INET_TUNNEL is not set
  401 +# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
  402 +# CONFIG_INET_XFRM_MODE_TUNNEL is not set
  403 +# CONFIG_INET_XFRM_MODE_BEET is not set
  404 +# CONFIG_INET_LRO is not set
  405 +CONFIG_INET_DIAG=m
  406 +CONFIG_INET_TCP_DIAG=m
  407 +# CONFIG_TCP_CONG_ADVANCED is not set
  408 +CONFIG_TCP_CONG_CUBIC=y
  409 +CONFIG_DEFAULT_TCP_CONG="cubic"
  410 +# CONFIG_TCP_MD5SIG is not set
  411 +# CONFIG_IPV6 is not set
  412 +# CONFIG_NETWORK_SECMARK is not set
  413 +CONFIG_NETFILTER=y
  414 +# CONFIG_NETFILTER_DEBUG is not set
  415 +CONFIG_NETFILTER_ADVANCED=y
  416 +CONFIG_BRIDGE_NETFILTER=y
  417 +
  418 +#
  419 +# Core Netfilter Configuration
  420 +#
  421 +# CONFIG_NETFILTER_NETLINK_QUEUE is not set
  422 +# CONFIG_NETFILTER_NETLINK_LOG is not set
  423 +# CONFIG_NF_CONNTRACK is not set
  424 +# CONFIG_NETFILTER_XTABLES is not set
  425 +# CONFIG_IP_VS is not set
  426 +
  427 +#
  428 +# IP: Netfilter Configuration
  429 +#
  430 +# CONFIG_NF_DEFRAG_IPV4 is not set
  431 +# CONFIG_IP_NF_QUEUE is not set
  432 +# CONFIG_IP_NF_IPTABLES is not set
  433 +# CONFIG_IP_NF_ARPTABLES is not set
  434 +# CONFIG_BRIDGE_NF_EBTABLES is not set
  435 +# CONFIG_IP_DCCP is not set
  436 +# CONFIG_IP_SCTP is not set
  437 +# CONFIG_TIPC is not set
  438 +# CONFIG_ATM is not set
  439 +CONFIG_STP=m
  440 +CONFIG_GARP=m
  441 +CONFIG_BRIDGE=m
  442 +# CONFIG_NET_DSA is not set
  443 +CONFIG_VLAN_8021Q=m
  444 +CONFIG_VLAN_8021Q_GVRP=y
  445 +# CONFIG_DECNET is not set
  446 +CONFIG_LLC=m
  447 +# CONFIG_LLC2 is not set
  448 +# CONFIG_IPX is not set
  449 +# CONFIG_ATALK is not set
  450 +# CONFIG_X25 is not set
  451 +# CONFIG_LAPB is not set
  452 +# CONFIG_ECONET is not set
  453 +# CONFIG_WAN_ROUTER is not set
  454 +# CONFIG_PHONET is not set
  455 +# CONFIG_NET_SCHED is not set
  456 +# CONFIG_DCB is not set
  457 +
  458 +#
  459 +# Network testing
  460 +#
  461 +CONFIG_NET_PKTGEN=m
  462 +# CONFIG_HAMRADIO is not set
  463 +# CONFIG_CAN is not set
  464 +# CONFIG_IRDA is not set
  465 +CONFIG_BT=m
  466 +CONFIG_BT_L2CAP=m
  467 +CONFIG_BT_SCO=m
  468 +CONFIG_BT_RFCOMM=m
  469 +CONFIG_BT_RFCOMM_TTY=y
  470 +CONFIG_BT_BNEP=m
  471 +CONFIG_BT_BNEP_MC_FILTER=y
  472 +CONFIG_BT_BNEP_PROTO_FILTER=y
  473 +CONFIG_BT_HIDP=m
  474 +
  475 +#
  476 +# Bluetooth device drivers
  477 +#
  478 +CONFIG_BT_HCIBTUSB=m
  479 +CONFIG_BT_HCIBTSDIO=m
  480 +CONFIG_BT_HCIUART=m
  481 +CONFIG_BT_HCIUART_H4=y
  482 +CONFIG_BT_HCIUART_BCSP=y
  483 +CONFIG_BT_HCIUART_LL=y
  484 +CONFIG_BT_HCIBCM203X=m
  485 +CONFIG_BT_HCIBPA10X=m
  486 +CONFIG_BT_HCIBFUSB=m
  487 +CONFIG_BT_HCIVHCI=m
  488 +# CONFIG_AF_RXRPC is not set
  489 +CONFIG_FIB_RULES=y
  490 +CONFIG_WIRELESS=y
  491 +CONFIG_CFG80211=m
  492 +CONFIG_CFG80211_REG_DEBUG=y
  493 +CONFIG_WIRELESS_OLD_REGULATORY=y
  494 +CONFIG_WIRELESS_EXT=y
  495 +CONFIG_WIRELESS_EXT_SYSFS=y
  496 +CONFIG_LIB80211=m
  497 +CONFIG_LIB80211_CRYPT_WEP=m
  498 +CONFIG_LIB80211_CRYPT_CCMP=m
  499 +CONFIG_LIB80211_CRYPT_TKIP=m
  500 +# CONFIG_LIB80211_DEBUG is not set
  501 +CONFIG_MAC80211=m
  502 +
  503 +#
  504 +# Rate control algorithm selection
  505 +#
  506 +CONFIG_MAC80211_RC_MINSTREL=y
  507 +# CONFIG_MAC80211_RC_DEFAULT_PID is not set
  508 +CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
  509 +CONFIG_MAC80211_RC_DEFAULT="minstrel"
  510 +CONFIG_MAC80211_MESH=y
  511 +CONFIG_MAC80211_LEDS=y
  512 +# CONFIG_MAC80211_DEBUGFS is not set
  513 +# CONFIG_MAC80211_DEBUG_MENU is not set
  514 +# CONFIG_WIMAX is not set
  515 +# CONFIG_RFKILL is not set
  516 +# CONFIG_NET_9P is not set
  517 +
  518 +#
  519 +# Device Drivers
  520 +#
  521 +
  522 +#
  523 +# Generic Driver Options
  524 +#
  525 +CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
  526 +CONFIG_STANDALONE=y
  527 +CONFIG_PREVENT_FIRMWARE_BUILD=y
  528 +CONFIG_FW_LOADER=y
  529 +# CONFIG_FIRMWARE_IN_KERNEL is not set
  530 +CONFIG_EXTRA_FIRMWARE=""
  531 +# CONFIG_DEBUG_DRIVER is not set
  532 +# CONFIG_DEBUG_DEVRES is not set
  533 +# CONFIG_SYS_HYPERVISOR is not set
  534 +CONFIG_CONNECTOR=m
  535 +CONFIG_MTD=y
  536 +# CONFIG_MTD_DEBUG is not set
  537 +CONFIG_MTD_CONCAT=y
  538 +CONFIG_MTD_PARTITIONS=y
  539 +# CONFIG_MTD_TESTS is not set
  540 +# CONFIG_MTD_REDBOOT_PARTS is not set
  541 +CONFIG_MTD_CMDLINE_PARTS=y
  542 +# CONFIG_MTD_AFS_PARTS is not set
  543 +# CONFIG_MTD_AR7_PARTS is not set
  544 +
  545 +#
  546 +# User Modules And Translation Layers
  547 +#
  548 +CONFIG_MTD_CHAR=y
  549 +CONFIG_MTD_BLKDEVS=y
  550 +CONFIG_MTD_BLOCK=y
  551 +CONFIG_FTL=y
  552 +CONFIG_NFTL=y
  553 +CONFIG_NFTL_RW=y
  554 +CONFIG_INFTL=y
  555 +CONFIG_RFD_FTL=y
  556 +# CONFIG_SSFDC is not set
  557 +# CONFIG_MTD_OOPS is not set
  558 +
  559 +#
  560 +# RAM/ROM/Flash chip drivers
  561 +#
  562 +CONFIG_MTD_CFI=y
  563 +CONFIG_MTD_JEDECPROBE=y
  564 +CONFIG_MTD_GEN_PROBE=y
  565 +# CONFIG_MTD_CFI_ADV_OPTIONS is not set
  566 +CONFIG_MTD_MAP_BANK_WIDTH_1=y
  567 +CONFIG_MTD_MAP_BANK_WIDTH_2=y
  568 +CONFIG_MTD_MAP_BANK_WIDTH_4=y
  569 +# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
  570 +# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
  571 +# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
  572 +CONFIG_MTD_CFI_I1=y
  573 +CONFIG_MTD_CFI_I2=y
  574 +# CONFIG_MTD_CFI_I4 is not set
  575 +# CONFIG_MTD_CFI_I8 is not set
  576 +# CONFIG_MTD_CFI_INTELEXT is not set
  577 +CONFIG_MTD_CFI_AMDSTD=y
  578 +CONFIG_MTD_CFI_STAA=y
  579 +CONFIG_MTD_CFI_UTIL=y
  580 +CONFIG_MTD_RAM=y
  581 +CONFIG_MTD_ROM=y
  582 +# CONFIG_MTD_ABSENT is not set
  583 +
  584 +#
  585 +# Mapping drivers for chip access
  586 +#
  587 +# CONFIG_MTD_COMPLEX_MAPPINGS is not set
  588 +# CONFIG_MTD_PHYSMAP is not set
  589 +# CONFIG_MTD_ARM_INTEGRATOR is not set
  590 +# CONFIG_MTD_IMPA7 is not set
  591 +# CONFIG_MTD_PLATRAM is not set
  592 +
  593 +#
  594 +# Self-contained MTD device drivers
  595 +#
  596 +# CONFIG_MTD_DATAFLASH is not set
  597 +# CONFIG_MTD_M25P80 is not set
  598 +# CONFIG_MTD_SLRAM is not set
  599 +# CONFIG_MTD_PHRAM is not set
  600 +# CONFIG_MTD_MTDRAM is not set
  601 +# CONFIG_MTD_BLOCK2MTD is not set
  602 +
  603 +#
  604 +# Disk-On-Chip Device Drivers
  605 +#
  606 +# CONFIG_MTD_DOC2000 is not set
  607 +# CONFIG_MTD_DOC2001 is not set
  608 +# CONFIG_MTD_DOC2001PLUS is not set
  609 +CONFIG_MTD_NAND=y
  610 +CONFIG_MTD_NAND_VERIFY_WRITE=y
  611 +# CONFIG_MTD_NAND_ECC_SMC is not set
  612 +# CONFIG_MTD_NAND_MUSEUM_IDS is not set
  613 +# CONFIG_MTD_NAND_GPIO is not set
  614 +CONFIG_MTD_NAND_IDS=y
  615 +CONFIG_MTD_NAND_S3C2410=y
  616 +# CONFIG_MTD_NAND_S3C2410_DEBUG is not set
  617 +# CONFIG_MTD_NAND_S3C2410_HWECC is not set
  618 +# CONFIG_MTD_NAND_S3C2410_CLKSTOP is not set
  619 +# CONFIG_MTD_NAND_DISKONCHIP is not set
  620 +# CONFIG_MTD_NAND_NANDSIM is not set
  621 +CONFIG_MTD_NAND_PLATFORM=y
  622 +# CONFIG_MTD_ALAUDA is not set
  623 +# CONFIG_MTD_ONENAND is not set
  624 +
  625 +#
  626 +# LPDDR flash memory drivers
  627 +#
  628 +CONFIG_MTD_LPDDR=y
  629 +CONFIG_MTD_QINFO_PROBE=y
  630 +
  631 +#
  632 +# UBI - Unsorted block images
  633 +#
  634 +# CONFIG_MTD_UBI is not set
  635 +# CONFIG_PARPORT is not set
  636 +CONFIG_BLK_DEV=y
  637 +# CONFIG_BLK_DEV_COW_COMMON is not set
  638 +CONFIG_BLK_DEV_LOOP=m
  639 +# CONFIG_BLK_DEV_CRYPTOLOOP is not set
  640 +CONFIG_BLK_DEV_NBD=m
  641 +# CONFIG_BLK_DEV_UB is not set
  642 +CONFIG_BLK_DEV_RAM=y
  643 +CONFIG_BLK_DEV_RAM_COUNT=16
  644 +CONFIG_BLK_DEV_RAM_SIZE=65536
  645 +# CONFIG_BLK_DEV_XIP is not set
  646 +CONFIG_CDROM_PKTCDVD=m
  647 +CONFIG_CDROM_PKTCDVD_BUFFERS=8
  648 +# CONFIG_CDROM_PKTCDVD_WCACHE is not set
  649 +# CONFIG_ATA_OVER_ETH is not set
  650 +CONFIG_MISC_DEVICES=y
  651 +# CONFIG_ICS932S401 is not set
  652 +# CONFIG_ENCLOSURE_SERVICES is not set
  653 +# CONFIG_ISL29003 is not set
  654 +# CONFIG_C2PORT is not set
  655 +
  656 +#
  657 +# EEPROM support
  658 +#
  659 +CONFIG_EEPROM_AT24=y
  660 +# CONFIG_EEPROM_AT25 is not set
  661 +# CONFIG_EEPROM_LEGACY is not set
  662 +# CONFIG_EEPROM_93CX6 is not set
  663 +CONFIG_HAVE_IDE=y
  664 +# CONFIG_IDE is not set
  665 +
  666 +#
  667 +# SCSI device support
  668 +#
  669 +# CONFIG_RAID_ATTRS is not set
  670 +CONFIG_SCSI=m
  671 +CONFIG_SCSI_DMA=y
  672 +# CONFIG_SCSI_TGT is not set
  673 +# CONFIG_SCSI_NETLINK is not set
  674 +# CONFIG_SCSI_PROC_FS is not set
  675 +
  676 +#
  677 +# SCSI support type (disk, tape, CD-ROM)
  678 +#
  679 +CONFIG_BLK_DEV_SD=m
  680 +# CONFIG_CHR_DEV_ST is not set
  681 +# CONFIG_CHR_DEV_OSST is not set
  682 +# CONFIG_BLK_DEV_SR is not set
  683 +CONFIG_CHR_DEV_SG=m
  684 +# CONFIG_CHR_DEV_SCH is not set
  685 +
  686 +#
  687 +# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
  688 +#
  689 +# CONFIG_SCSI_MULTI_LUN is not set
  690 +# CONFIG_SCSI_CONSTANTS is not set
  691 +# CONFIG_SCSI_LOGGING is not set
  692 +# CONFIG_SCSI_SCAN_ASYNC is not set
  693 +CONFIG_SCSI_WAIT_SCAN=m
  694 +
  695 +#
  696 +# SCSI Transports
  697 +#
  698 +# CONFIG_SCSI_SPI_ATTRS is not set
  699 +# CONFIG_SCSI_FC_ATTRS is not set
  700 +# CONFIG_SCSI_ISCSI_ATTRS is not set
  701 +# CONFIG_SCSI_SAS_LIBSAS is not set
  702 +# CONFIG_SCSI_SRP_ATTRS is not set
  703 +# CONFIG_SCSI_LOWLEVEL is not set
  704 +# CONFIG_SCSI_DH is not set
  705 +# CONFIG_SCSI_OSD_INITIATOR is not set
  706 +# CONFIG_ATA is not set
  707 +# CONFIG_MD is not set
  708 +CONFIG_NETDEVICES=y
  709 +CONFIG_COMPAT_NET_DEV_OPS=y
  710 +# CONFIG_DUMMY is not set
  711 +# CONFIG_BONDING is not set
  712 +# CONFIG_MACVLAN is not set
  713 +# CONFIG_EQUALIZER is not set
  714 +CONFIG_TUN=m
  715 +# CONFIG_VETH is not set
  716 +# CONFIG_PHYLIB is not set
  717 +CONFIG_NET_ETHERNET=y
  718 +CONFIG_MII=y
  719 +# CONFIG_AX88796 is not set
  720 +# CONFIG_SMC91X is not set
  721 +CONFIG_DM9000=y
  722 +CONFIG_DM9000_DEBUGLEVEL=4
  723 +# CONFIG_DM9000_FORCE_SIMPLE_PHY_POLL is not set
  724 +# CONFIG_ENC28J60 is not set
  725 +# CONFIG_ETHOC is not set
  726 +# CONFIG_SMC911X is not set
  727 +# CONFIG_SMSC911X is not set
  728 +# CONFIG_DNET is not set
  729 +# CONFIG_IBM_NEW_EMAC_ZMII is not set
  730 +# CONFIG_IBM_NEW_EMAC_RGMII is not set
  731 +# CONFIG_IBM_NEW_EMAC_TAH is not set
  732 +# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
  733 +# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
  734 +# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
  735 +# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
  736 +# CONFIG_B44 is not set
  737 +# CONFIG_NETDEV_1000 is not set
  738 +# CONFIG_NETDEV_10000 is not set
  739 +
  740 +#
  741 +# Wireless LAN
  742 +#
  743 +# CONFIG_WLAN_PRE80211 is not set
  744 +CONFIG_WLAN_80211=y
  745 +CONFIG_LIBERTAS=m
  746 +# CONFIG_LIBERTAS_USB is not set
  747 +CONFIG_LIBERTAS_SDIO=m
  748 +# CONFIG_LIBERTAS_SPI is not set
  749 +# CONFIG_LIBERTAS_DEBUG is not set
  750 +# CONFIG_LIBERTAS_THINFIRM is not set
  751 +# CONFIG_AT76C50X_USB is not set
  752 +# CONFIG_USB_ZD1201 is not set
  753 +# CONFIG_USB_NET_RNDIS_WLAN is not set
  754 +# CONFIG_RTL8187 is not set
  755 +# CONFIG_MAC80211_HWSIM is not set
  756 +# CONFIG_P54_COMMON is not set
  757 +# CONFIG_AR9170_USB is not set
  758 +CONFIG_HOSTAP=m
  759 +CONFIG_HOSTAP_FIRMWARE=y
  760 +CONFIG_HOSTAP_FIRMWARE_NVRAM=y
  761 +# CONFIG_B43 is not set
  762 +# CONFIG_B43LEGACY is not set
  763 +CONFIG_ZD1211RW=m
  764 +CONFIG_ZD1211RW_DEBUG=y
  765 +# CONFIG_RT2X00 is not set
  766 +
  767 +#
  768 +# Enable WiMAX (Networking options) to see the WiMAX drivers
  769 +#
  770 +
  771 +#
  772 +# USB Network Adapters
  773 +#
  774 +# CONFIG_USB_CATC is not set
  775 +# CONFIG_USB_KAWETH is not set
  776 +# CONFIG_USB_PEGASUS is not set
  777 +# CONFIG_USB_RTL8150 is not set
  778 +# CONFIG_USB_USBNET is not set
  779 +# CONFIG_WAN is not set
  780 +CONFIG_PPP=m
  781 +CONFIG_PPP_MULTILINK=y
  782 +CONFIG_PPP_FILTER=y
  783 +CONFIG_PPP_ASYNC=m
  784 +CONFIG_PPP_SYNC_TTY=m
  785 +CONFIG_PPP_DEFLATE=m
  786 +CONFIG_PPP_BSDCOMP=m
  787 +CONFIG_PPP_MPPE=m
  788 +# CONFIG_PPPOE is not set
  789 +# CONFIG_PPPOL2TP is not set
  790 +# CONFIG_SLIP is not set
  791 +CONFIG_SLHC=m
  792 +# CONFIG_NETCONSOLE is not set
  793 +# CONFIG_NETPOLL is not set
  794 +# CONFIG_NET_POLL_CONTROLLER is not set
  795 +# CONFIG_ISDN is not set
  796 +
  797 +#
  798 +# Input device support
  799 +#
  800 +CONFIG_INPUT=y
  801 +CONFIG_INPUT_FF_MEMLESS=y
  802 +# CONFIG_INPUT_POLLDEV is not set
  803 +
  804 +#
  805 +# Userland interfaces
  806 +#
  807 +CONFIG_INPUT_MOUSEDEV=y
  808 +CONFIG_INPUT_MOUSEDEV_PSAUX=y
  809 +CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
  810 +CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
  811 +# CONFIG_INPUT_JOYDEV is not set
  812 +CONFIG_INPUT_EVDEV=y
  813 +CONFIG_INPUT_EVBUG=m
  814 +
  815 +#
  816 +# Input Device Drivers
  817 +#
  818 +CONFIG_INPUT_KEYBOARD=y
  819 +# CONFIG_KEYBOARD_ATKBD is not set
  820 +# CONFIG_KEYBOARD_SUNKBD is not set
  821 +# CONFIG_KEYBOARD_LKKBD is not set
  822 +# CONFIG_KEYBOARD_XTKBD is not set
  823 +# CONFIG_KEYBOARD_NEWTON is not set
  824 +# CONFIG_KEYBOARD_STOWAWAY is not set
  825 +CONFIG_KEYBOARD_GPIO=y
  826 +CONFIG_INPUT_MOUSE=y
  827 +CONFIG_MOUSE_PS2=y
  828 +CONFIG_MOUSE_PS2_ALPS=y
  829 +CONFIG_MOUSE_PS2_LOGIPS2PP=y
  830 +CONFIG_MOUSE_PS2_SYNAPTICS=y
  831 +CONFIG_MOUSE_PS2_TRACKPOINT=y
  832 +# CONFIG_MOUSE_PS2_ELANTECH is not set
  833 +# CONFIG_MOUSE_PS2_TOUCHKIT is not set
  834 +# CONFIG_MOUSE_SERIAL is not set
  835 +# CONFIG_MOUSE_APPLETOUCH is not set
  836 +# CONFIG_MOUSE_BCM5974 is not set
  837 +# CONFIG_MOUSE_VSXXXAA is not set
  838 +# CONFIG_MOUSE_GPIO is not set
  839 +# CONFIG_INPUT_JOYSTICK is not set
  840 +# CONFIG_INPUT_TABLET is not set
  841 +CONFIG_INPUT_TOUCHSCREEN=y
  842 +# CONFIG_TOUCHSCREEN_ADS7846 is not set
  843 +# CONFIG_TOUCHSCREEN_AD7877 is not set
  844 +# CONFIG_TOUCHSCREEN_AD7879_I2C is not set
  845 +# CONFIG_TOUCHSCREEN_AD7879_SPI is not set
  846 +# CONFIG_TOUCHSCREEN_AD7879 is not set
  847 +# CONFIG_TOUCHSCREEN_FUJITSU is not set
  848 +# CONFIG_TOUCHSCREEN_GUNZE is not set
  849 +# CONFIG_TOUCHSCREEN_ELO is not set
  850 +# CONFIG_TOUCHSCREEN_WACOM_W8001 is not set
  851 +# CONFIG_TOUCHSCREEN_MTOUCH is not set
  852 +# CONFIG_TOUCHSCREEN_INEXIO is not set
  853 +# CONFIG_TOUCHSCREEN_MK712 is not set
  854 +# CONFIG_TOUCHSCREEN_PENMOUNT is not set
  855 +# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
  856 +# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
  857 +# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set
  858 +# CONFIG_TOUCHSCREEN_TOUCHIT213 is not set
  859 +# CONFIG_TOUCHSCREEN_TSC2007 is not set
  860 +# CONFIG_INPUT_MISC is not set
  861 +
  862 +#
  863 +# Hardware I/O ports
  864 +#
  865 +CONFIG_SERIO=y
  866 +CONFIG_SERIO_SERPORT=y
  867 +CONFIG_SERIO_LIBPS2=y
  868 +CONFIG_SERIO_RAW=y
  869 +# CONFIG_GAMEPORT is not set
  870 +
  871 +#
  872 +# Character devices
  873 +#
  874 +CONFIG_VT=y
  875 +CONFIG_CONSOLE_TRANSLATIONS=y
  876 +CONFIG_VT_CONSOLE=y
  877 +CONFIG_HW_CONSOLE=y
  878 +CONFIG_VT_HW_CONSOLE_BINDING=y
  879 +CONFIG_DEVKMEM=y
  880 +# CONFIG_SERIAL_NONSTANDARD is not set
  881 +
  882 +#
  883 +# Serial drivers
  884 +#
  885 +# CONFIG_SERIAL_8250 is not set
  886 +
  887 +#
  888 +# Non-8250 serial port support
  889 +#
  890 +CONFIG_SERIAL_SAMSUNG=y
  891 +CONFIG_SERIAL_SAMSUNG_UARTS=3
  892 +CONFIG_SERIAL_SAMSUNG_CONSOLE=y
  893 +CONFIG_SERIAL_S3C2440=y
  894 +# CONFIG_SERIAL_MAX3100 is not set
  895 +CONFIG_SERIAL_CORE=y
  896 +CONFIG_SERIAL_CORE_CONSOLE=y
  897 +CONFIG_UNIX98_PTYS=y
  898 +# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
  899 +CONFIG_LEGACY_PTYS=y
  900 +CONFIG_LEGACY_PTY_COUNT=128
  901 +CONFIG_IPMI_HANDLER=m
  902 +# CONFIG_IPMI_PANIC_EVENT is not set
  903 +CONFIG_IPMI_DEVICE_INTERFACE=m
  904 +CONFIG_IPMI_SI=m
  905 +CONFIG_IPMI_WATCHDOG=m
  906 +CONFIG_IPMI_POWEROFF=m
  907 +CONFIG_HW_RANDOM=y
  908 +# CONFIG_HW_RANDOM_TIMERIOMEM is not set
  909 +# CONFIG_R3964 is not set
  910 +# CONFIG_RAW_DRIVER is not set
  911 +# CONFIG_TCG_TPM is not set
  912 +CONFIG_I2C=y
  913 +CONFIG_I2C_BOARDINFO=y
  914 +CONFIG_I2C_CHARDEV=y
  915 +CONFIG_I2C_HELPER_AUTO=y
  916 +CONFIG_I2C_ALGOBIT=y
  917 +
  918 +#
  919 +# I2C Hardware Bus support
  920 +#
  921 +
  922 +#
  923 +# I2C system bus drivers (mostly embedded / system-on-chip)
  924 +#
  925 +# CONFIG_I2C_GPIO is not set
  926 +# CONFIG_I2C_OCORES is not set
  927 +CONFIG_I2C_S3C2410=y
  928 +CONFIG_I2C_SIMTEC=y
  929 +
  930 +#
  931 +# External I2C/SMBus adapter drivers
  932 +#
  933 +# CONFIG_I2C_PARPORT_LIGHT is not set
  934 +# CONFIG_I2C_TAOS_EVM is not set
  935 +# CONFIG_I2C_TINY_USB is not set
  936 +
  937 +#
  938 +# Other I2C/SMBus bus drivers
  939 +#
  940 +# CONFIG_I2C_PCA_PLATFORM is not set
  941 +# CONFIG_I2C_STUB is not set
  942 +
  943 +#
  944 +# Miscellaneous I2C Chip support
  945 +#
  946 +# CONFIG_DS1682 is not set
  947 +# CONFIG_SENSORS_PCF8574 is not set
  948 +# CONFIG_PCF8575 is not set
  949 +# CONFIG_SENSORS_PCA9539 is not set
  950 +# CONFIG_SENSORS_MAX6875 is not set
  951 +CONFIG_SENSORS_TSL2550=m
  952 +# CONFIG_I2C_DEBUG_CORE is not set
  953 +# CONFIG_I2C_DEBUG_ALGO is not set
  954 +# CONFIG_I2C_DEBUG_BUS is not set
  955 +# CONFIG_I2C_DEBUG_CHIP is not set
  956 +CONFIG_SPI=y
  957 +# CONFIG_SPI_DEBUG is not set
  958 +CONFIG_SPI_MASTER=y
  959 +
  960 +#
  961 +# SPI Master Controller Drivers
  962 +#
  963 +CONFIG_SPI_BITBANG=y
  964 +# CONFIG_SPI_GPIO is not set
  965 +CONFIG_SPI_S3C24XX=y
  966 +# CONFIG_SPI_S3C24XX_GPIO is not set
  967 +
  968 +#
  969 +# SPI Protocol Masters
  970 +#
  971 +CONFIG_SPI_SPIDEV=y
  972 +# CONFIG_SPI_TLE62X0 is not set
  973 +CONFIG_ARCH_REQUIRE_GPIOLIB=y
  974 +CONFIG_GPIOLIB=y
  975 +# CONFIG_DEBUG_GPIO is not set
  976 +CONFIG_GPIO_SYSFS=y
  977 +
  978 +#
  979 +# Memory mapped GPIO expanders:
  980 +#
  981 +
  982 +#
  983 +# I2C GPIO expanders:
  984 +#
  985 +# CONFIG_GPIO_MAX732X is not set
  986 +# CONFIG_GPIO_PCA953X is not set
  987 +# CONFIG_GPIO_PCF857X is not set
  988 +
  989 +#
  990 +# PCI GPIO expanders:
  991 +#
  992 +
  993 +#
  994 +# SPI GPIO expanders:
  995 +#
  996 +# CONFIG_GPIO_MAX7301 is not set
  997 +# CONFIG_GPIO_MCP23S08 is not set
  998 +# CONFIG_W1 is not set
  999 +# CONFIG_POWER_SUPPLY is not set
  1000 +CONFIG_HWMON=y
  1001 +# CONFIG_HWMON_VID is not set
  1002 +# CONFIG_SENSORS_AD7414 is not set
  1003 +# CONFIG_SENSORS_AD7418 is not set
  1004 +# CONFIG_SENSORS_ADCXX is not set
  1005 +# CONFIG_SENSORS_ADM1021 is not set
  1006 +# CONFIG_SENSORS_ADM1025 is not set
  1007 +# CONFIG_SENSORS_ADM1026 is not set
  1008 +# CONFIG_SENSORS_ADM1029 is not set
  1009 +# CONFIG_SENSORS_ADM1031 is not set
  1010 +# CONFIG_SENSORS_ADM9240 is not set
  1011 +# CONFIG_SENSORS_ADT7462 is not set
  1012 +# CONFIG_SENSORS_ADT7470 is not set
  1013 +# CONFIG_SENSORS_ADT7473 is not set
  1014 +# CONFIG_SENSORS_ADT7475 is not set
  1015 +# CONFIG_SENSORS_ATXP1 is not set
  1016 +# CONFIG_SENSORS_DS1621 is not set
  1017 +# CONFIG_SENSORS_F71805F is not set
  1018 +# CONFIG_SENSORS_F71882FG is not set
  1019 +# CONFIG_SENSORS_F75375S is not set
  1020 +# CONFIG_SENSORS_G760A is not set
  1021 +# CONFIG_SENSORS_GL518SM is not set
  1022 +# CONFIG_SENSORS_GL520SM is not set
  1023 +# CONFIG_SENSORS_IBMAEM is not set
  1024 +# CONFIG_SENSORS_IBMPEX is not set
  1025 +# CONFIG_SENSORS_IT87 is not set
  1026 +# CONFIG_SENSORS_LM63 is not set
  1027 +# CONFIG_SENSORS_LM70 is not set
  1028 +CONFIG_SENSORS_LM75=y
  1029 +# CONFIG_SENSORS_LM77 is not set
  1030 +# CONFIG_SENSORS_LM78 is not set
  1031 +# CONFIG_SENSORS_LM80 is not set
  1032 +# CONFIG_SENSORS_LM83 is not set
  1033 +# CONFIG_SENSORS_LM85 is not set
  1034 +# CONFIG_SENSORS_LM87 is not set
  1035 +# CONFIG_SENSORS_LM90 is not set
  1036 +# CONFIG_SENSORS_LM92 is not set
  1037 +# CONFIG_SENSORS_LM93 is not set
  1038 +# CONFIG_SENSORS_LTC4215 is not set
  1039 +# CONFIG_SENSORS_LTC4245 is not set
  1040 +# CONFIG_SENSORS_LM95241 is not set
  1041 +# CONFIG_SENSORS_MAX1111 is not set
  1042 +# CONFIG_SENSORS_MAX1619 is not set
  1043 +# CONFIG_SENSORS_MAX6650 is not set
  1044 +# CONFIG_SENSORS_PC87360 is not set
  1045 +# CONFIG_SENSORS_PC87427 is not set
  1046 +# CONFIG_SENSORS_PCF8591 is not set
  1047 +# CONFIG_SENSORS_SHT15 is not set
  1048 +# CONFIG_SENSORS_DME1737 is not set
  1049 +# CONFIG_SENSORS_SMSC47M1 is not set
  1050 +# CONFIG_SENSORS_SMSC47M192 is not set
  1051 +# CONFIG_SENSORS_SMSC47B397 is not set
  1052 +# CONFIG_SENSORS_ADS7828 is not set
  1053 +# CONFIG_SENSORS_THMC50 is not set
  1054 +# CONFIG_SENSORS_VT1211 is not set
  1055 +# CONFIG_SENSORS_W83781D is not set
  1056 +# CONFIG_SENSORS_W83791D is not set
  1057 +# CONFIG_SENSORS_W83792D is not set
  1058 +# CONFIG_SENSORS_W83793 is not set
  1059 +# CONFIG_SENSORS_W83L785TS is not set
  1060 +# CONFIG_SENSORS_W83L786NG is not set
  1061 +# CONFIG_SENSORS_W83627HF is not set
  1062 +# CONFIG_SENSORS_W83627EHF is not set
  1063 +# CONFIG_SENSORS_LIS3_SPI is not set
  1064 +# CONFIG_HWMON_DEBUG_CHIP is not set
  1065 +CONFIG_THERMAL=m
  1066 +# CONFIG_THERMAL_HWMON is not set
  1067 +CONFIG_WATCHDOG=y
  1068 +# CONFIG_WATCHDOG_NOWAYOUT is not set
  1069 +
  1070 +#
  1071 +# Watchdog Device Drivers
  1072 +#
  1073 +# CONFIG_SOFT_WATCHDOG is not set
  1074 +CONFIG_S3C2410_WATCHDOG=y
  1075 +
  1076 +#
  1077 +# USB-based Watchdog Cards
  1078 +#
  1079 +# CONFIG_USBPCWATCHDOG is not set
  1080 +CONFIG_SSB_POSSIBLE=y
  1081 +
  1082 +#
  1083 +# Sonics Silicon Backplane
  1084 +#
  1085 +# CONFIG_SSB is not set
  1086 +
  1087 +#
  1088 +# Multifunction device drivers
  1089 +#
  1090 +# CONFIG_MFD_CORE is not set
  1091 +# CONFIG_MFD_SM501 is not set
  1092 +# CONFIG_MFD_ASIC3 is not set
  1093 +# CONFIG_HTC_EGPIO is not set
  1094 +# CONFIG_HTC_PASIC3 is not set
  1095 +# CONFIG_TPS65010 is not set
  1096 +# CONFIG_TWL4030_CORE is not set
  1097 +# CONFIG_MFD_TMIO is not set
  1098 +# CONFIG_MFD_T7L66XB is not set
  1099 +# CONFIG_MFD_TC6387XB is not set
  1100 +# CONFIG_MFD_TC6393XB is not set
  1101 +# CONFIG_PMIC_DA903X is not set
  1102 +# CONFIG_MFD_WM8400 is not set
  1103 +# CONFIG_MFD_WM8350_I2C is not set
  1104 +# CONFIG_MFD_PCF50633 is not set
  1105 +
  1106 +#
  1107 +# Multimedia devices
  1108 +#
  1109 +
  1110 +#
  1111 +# Multimedia core support
  1112 +#
  1113 +CONFIG_VIDEO_DEV=m
  1114 +CONFIG_VIDEO_V4L2_COMMON=m
  1115 +CONFIG_VIDEO_ALLOW_V4L1=y
  1116 +CONFIG_VIDEO_V4L1_COMPAT=y
  1117 +CONFIG_DVB_CORE=m
  1118 +CONFIG_VIDEO_MEDIA=m
  1119 +
  1120 +#
  1121 +# Multimedia drivers
  1122 +#
  1123 +# CONFIG_MEDIA_ATTACH is not set
  1124 +CONFIG_MEDIA_TUNER=m
  1125 +# CONFIG_MEDIA_TUNER_CUSTOMISE is not set
  1126 +CONFIG_MEDIA_TUNER_SIMPLE=m
  1127 +CONFIG_MEDIA_TUNER_TDA8290=m
  1128 +CONFIG_MEDIA_TUNER_TDA9887=m
  1129 +CONFIG_MEDIA_TUNER_TEA5761=m
  1130 +CONFIG_MEDIA_TUNER_TEA5767=m
  1131 +CONFIG_MEDIA_TUNER_MT20XX=m
  1132 +CONFIG_MEDIA_TUNER_XC2028=m
  1133 +CONFIG_MEDIA_TUNER_XC5000=m
  1134 +CONFIG_MEDIA_TUNER_MC44S803=m
  1135 +CONFIG_VIDEO_V4L2=m
  1136 +CONFIG_VIDEO_V4L1=m
  1137 +CONFIG_VIDEOBUF_GEN=m
  1138 +CONFIG_VIDEO_CAPTURE_DRIVERS=y
  1139 +# CONFIG_VIDEO_ADV_DEBUG is not set
  1140 +# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
  1141 +CONFIG_VIDEO_HELPER_CHIPS_AUTO=y
  1142 +# CONFIG_VIDEO_VIVI is not set
  1143 +# CONFIG_VIDEO_CPIA is not set
  1144 +# CONFIG_VIDEO_CPIA2 is not set
  1145 +# CONFIG_VIDEO_SAA5246A is not set
  1146 +# CONFIG_VIDEO_SAA5249 is not set
  1147 +# CONFIG_VIDEO_AU0828 is not set
  1148 +CONFIG_SOC_CAMERA=m
  1149 +# CONFIG_SOC_CAMERA_MT9M001 is not set
  1150 +# CONFIG_SOC_CAMERA_MT9M111 is not set
  1151 +# CONFIG_SOC_CAMERA_MT9T031 is not set
  1152 +# CONFIG_SOC_CAMERA_MT9V022 is not set
  1153 +# CONFIG_SOC_CAMERA_TW9910 is not set
  1154 +CONFIG_SOC_CAMERA_PLATFORM=m
  1155 +# CONFIG_SOC_CAMERA_OV772X is not set
  1156 +# CONFIG_VIDEO_SH_MOBILE_CEU is not set
  1157 +CONFIG_V4L_USB_DRIVERS=y
  1158 +# CONFIG_USB_VIDEO_CLASS is not set
  1159 +CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y
  1160 +CONFIG_USB_GSPCA=m
  1161 +# CONFIG_USB_M5602 is not set
  1162 +# CONFIG_USB_STV06XX is not set
  1163 +# CONFIG_USB_GSPCA_CONEX is not set
  1164 +# CONFIG_USB_GSPCA_ETOMS is not set
  1165 +# CONFIG_USB_GSPCA_FINEPIX is not set
  1166 +# CONFIG_USB_GSPCA_MARS is not set
  1167 +# CONFIG_USB_GSPCA_MR97310A is not set
  1168 +# CONFIG_USB_GSPCA_OV519 is not set
  1169 +# CONFIG_USB_GSPCA_OV534 is not set
  1170 +# CONFIG_USB_GSPCA_PAC207 is not set
  1171 +# CONFIG_USB_GSPCA_PAC7311 is not set
  1172 +# CONFIG_USB_GSPCA_SONIXB is not set
  1173 +# CONFIG_USB_GSPCA_SONIXJ is not set
  1174 +# CONFIG_USB_GSPCA_SPCA500 is not set
  1175 +# CONFIG_USB_GSPCA_SPCA501 is not set
  1176 +# CONFIG_USB_GSPCA_SPCA505 is not set
  1177 +# CONFIG_USB_GSPCA_SPCA506 is not set
  1178 +# CONFIG_USB_GSPCA_SPCA508 is not set
  1179 +# CONFIG_USB_GSPCA_SPCA561 is not set
  1180 +# CONFIG_USB_GSPCA_SQ905 is not set
  1181 +# CONFIG_USB_GSPCA_SQ905C is not set
  1182 +# CONFIG_USB_GSPCA_STK014 is not set
  1183 +# CONFIG_USB_GSPCA_SUNPLUS is not set
  1184 +# CONFIG_USB_GSPCA_T613 is not set
  1185 +# CONFIG_USB_GSPCA_TV8532 is not set
  1186 +# CONFIG_USB_GSPCA_VC032X is not set
  1187 +CONFIG_USB_GSPCA_ZC3XX=m
  1188 +# CONFIG_VIDEO_PVRUSB2 is not set
  1189 +# CONFIG_VIDEO_HDPVR is not set
  1190 +# CONFIG_VIDEO_EM28XX is not set
  1191 +# CONFIG_VIDEO_CX231XX is not set
  1192 +# CONFIG_VIDEO_USBVISION is not set
  1193 +# CONFIG_USB_VICAM is not set
  1194 +# CONFIG_USB_IBMCAM is not set
  1195 +# CONFIG_USB_KONICAWC is not set
  1196 +# CONFIG_USB_QUICKCAM_MESSENGER is not set
  1197 +# CONFIG_USB_ET61X251 is not set
  1198 +# CONFIG_VIDEO_OVCAMCHIP is not set
  1199 +# CONFIG_USB_OV511 is not set
  1200 +# CONFIG_USB_SE401 is not set
  1201 +# CONFIG_USB_SN9C102 is not set
  1202 +# CONFIG_USB_STV680 is not set
  1203 +# CONFIG_USB_ZC0301 is not set
  1204 +# CONFIG_USB_PWC is not set
  1205 +# CONFIG_USB_PWC_INPUT_EVDEV is not set
  1206 +# CONFIG_USB_ZR364XX is not set
  1207 +# CONFIG_USB_STKWEBCAM is not set
  1208 +# CONFIG_USB_S2255 is not set
  1209 +CONFIG_RADIO_ADAPTERS=y
  1210 +# CONFIG_USB_DSBR is not set
  1211 +# CONFIG_USB_SI470X is not set
  1212 +# CONFIG_USB_MR800 is not set
  1213 +# CONFIG_RADIO_TEA5764 is not set
  1214 +# CONFIG_DVB_DYNAMIC_MINORS is not set
  1215 +CONFIG_DVB_CAPTURE_DRIVERS=y
  1216 +# CONFIG_TTPCI_EEPROM is not set
  1217 +
  1218 +#
  1219 +# Supported USB Adapters
  1220 +#
  1221 +# CONFIG_DVB_USB is not set
  1222 +# CONFIG_DVB_SIANO_SMS1XXX is not set
  1223 +
  1224 +#
  1225 +# Supported FlexCopII (B2C2) Adapters
  1226 +#
  1227 +# CONFIG_DVB_B2C2_FLEXCOP is not set
  1228 +
  1229 +#
  1230 +# Supported DVB Frontends
  1231 +#
  1232 +# CONFIG_DVB_FE_CUSTOMISE is not set
  1233 +# CONFIG_DAB is not set
  1234 +
  1235 +#
  1236 +# Graphics support
  1237 +#
  1238 +# CONFIG_VGASTATE is not set
  1239 +CONFIG_VIDEO_OUTPUT_CONTROL=y
  1240 +CONFIG_FB=y
  1241 +CONFIG_FIRMWARE_EDID=y
  1242 +# CONFIG_FB_DDC is not set
  1243 +# CONFIG_FB_BOOT_VESA_SUPPORT is not set
  1244 +CONFIG_FB_CFB_FILLRECT=y
  1245 +CONFIG_FB_CFB_COPYAREA=y
  1246 +CONFIG_FB_CFB_IMAGEBLIT=y
  1247 +# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
  1248 +# CONFIG_FB_SYS_FILLRECT is not set
  1249 +# CONFIG_FB_SYS_COPYAREA is not set
  1250 +# CONFIG_FB_SYS_IMAGEBLIT is not set
  1251 +# CONFIG_FB_FOREIGN_ENDIAN is not set
  1252 +# CONFIG_FB_SYS_FOPS is not set
  1253 +# CONFIG_FB_SVGALIB is not set
  1254 +# CONFIG_FB_MACMODES is not set
  1255 +# CONFIG_FB_BACKLIGHT is not set
  1256 +CONFIG_FB_MODE_HELPERS=y
  1257 +CONFIG_FB_TILEBLITTING=y
  1258 +
  1259 +#
  1260 +# Frame buffer hardware drivers
  1261 +#
  1262 +# CONFIG_FB_UVESA is not set
  1263 +# CONFIG_FB_S1D13XXX is not set
  1264 +CONFIG_FB_S3C2410=y
  1265 +# CONFIG_FB_S3C2410_DEBUG is not set
  1266 +# CONFIG_FB_VIRTUAL is not set
  1267 +# CONFIG_FB_METRONOME is not set
  1268 +# CONFIG_FB_MB862XX is not set
  1269 +# CONFIG_FB_BROADSHEET is not set
  1270 +CONFIG_BACKLIGHT_LCD_SUPPORT=y
  1271 +CONFIG_LCD_CLASS_DEVICE=y
  1272 +# CONFIG_LCD_LTV350QV is not set
  1273 +# CONFIG_LCD_ILI9320 is not set
  1274 +# CONFIG_LCD_TDO24M is not set
  1275 +# CONFIG_LCD_VGG2432A4 is not set
  1276 +CONFIG_LCD_PLATFORM=y
  1277 +CONFIG_BACKLIGHT_CLASS_DEVICE=y
  1278 +# CONFIG_BACKLIGHT_GENERIC is not set
  1279 +CONFIG_BACKLIGHT_PWM=y
  1280 +
  1281 +#
  1282 +# Display device support
  1283 +#
  1284 +CONFIG_DISPLAY_SUPPORT=y
  1285 +
  1286 +#
  1287 +# Display hardware drivers
  1288 +#
  1289 +
  1290 +#
  1291 +# Console display driver support
  1292 +#
  1293 +# CONFIG_VGA_CONSOLE is not set
  1294 +CONFIG_DUMMY_CONSOLE=y
  1295 +CONFIG_FRAMEBUFFER_CONSOLE=y
  1296 +CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
  1297 +CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
  1298 +CONFIG_FONTS=y
  1299 +CONFIG_FONT_8x8=y
  1300 +# CONFIG_FONT_8x16 is not set
  1301 +# CONFIG_FONT_6x11 is not set
  1302 +# CONFIG_FONT_7x14 is not set
  1303 +# CONFIG_FONT_PEARL_8x8 is not set
  1304 +# CONFIG_FONT_ACORN_8x8 is not set
  1305 +CONFIG_FONT_MINI_4x6=y
  1306 +# CONFIG_FONT_SUN8x16 is not set
  1307 +# CONFIG_FONT_SUN12x22 is not set
  1308 +# CONFIG_FONT_10x18 is not set
  1309 +CONFIG_LOGO=y
  1310 +# CONFIG_LOGO_LINUX_MONO is not set
  1311 +# CONFIG_LOGO_LINUX_VGA16 is not set
  1312 +CONFIG_LOGO_LINUX_CLUT224=y
  1313 +CONFIG_SOUND=y
  1314 +CONFIG_SOUND_OSS_CORE=y
  1315 +CONFIG_SND=y
  1316 +CONFIG_SND_TIMER=y
  1317 +CONFIG_SND_PCM=y
  1318 +CONFIG_SND_HWDEP=m
  1319 +CONFIG_SND_RAWMIDI=m
  1320 +CONFIG_SND_JACK=y
  1321 +CONFIG_SND_SEQUENCER=m
  1322 +CONFIG_SND_SEQ_DUMMY=m
  1323 +CONFIG_SND_OSSEMUL=y
  1324 +CONFIG_SND_MIXER_OSS=m
  1325 +CONFIG_SND_PCM_OSS=m
  1326 +CONFIG_SND_PCM_OSS_PLUGINS=y
  1327 +CONFIG_SND_SEQUENCER_OSS=y
  1328 +CONFIG_SND_DYNAMIC_MINORS=y
  1329 +CONFIG_SND_SUPPORT_OLD_API=y
  1330 +CONFIG_SND_VERBOSE_PROCFS=y
  1331 +# CONFIG_SND_VERBOSE_PRINTK is not set
  1332 +# CONFIG_SND_DEBUG is not set
  1333 +# CONFIG_SND_DRIVERS is not set
  1334 +# CONFIG_SND_ARM is not set
  1335 +# CONFIG_SND_SPI is not set
  1336 +CONFIG_SND_USB=y
  1337 +CONFIG_SND_USB_AUDIO=m
  1338 +CONFIG_SND_USB_CAIAQ=m
  1339 +CONFIG_SND_USB_CAIAQ_INPUT=y
  1340 +CONFIG_SND_SOC=y
  1341 +CONFIG_SND_S3C24XX_SOC=y
  1342 +CONFIG_SND_S3C24XX_SOC_I2S=y
  1343 +# CONFIG_SND_S3C24XX_SOC_LN2440SBC_ALC650 is not set
  1344 +CONFIG_SND_S3C24XX_SOC_S3C24XX_UDA134X=y
  1345 +CONFIG_SND_SOC_I2C_AND_SPI=y
  1346 +# CONFIG_SND_SOC_ALL_CODECS is not set
  1347 +CONFIG_SND_SOC_L3=y
  1348 +CONFIG_SND_SOC_UDA134X=y
  1349 +# CONFIG_SOUND_PRIME is not set
  1350 +CONFIG_HID_SUPPORT=y
  1351 +CONFIG_HID=y
  1352 +# CONFIG_HID_DEBUG is not set
  1353 +CONFIG_HIDRAW=y
  1354 +
  1355 +#
  1356 +# USB Input Devices
  1357 +#
  1358 +CONFIG_USB_HID=y
  1359 +CONFIG_HID_PID=y
  1360 +CONFIG_USB_HIDDEV=y
  1361 +
  1362 +#
  1363 +# Special HID drivers
  1364 +#
  1365 +CONFIG_HID_A4TECH=y
  1366 +CONFIG_HID_APPLE=y
  1367 +CONFIG_HID_BELKIN=y
  1368 +CONFIG_HID_CHERRY=y
  1369 +CONFIG_HID_CHICONY=y
  1370 +CONFIG_HID_CYPRESS=y
  1371 +# CONFIG_DRAGONRISE_FF is not set
  1372 +CONFIG_HID_EZKEY=y
  1373 +CONFIG_HID_KYE=y
  1374 +CONFIG_HID_GYRATION=y
  1375 +CONFIG_HID_KENSINGTON=y
  1376 +CONFIG_HID_LOGITECH=y
  1377 +# CONFIG_LOGITECH_FF is not set
  1378 +# CONFIG_LOGIRUMBLEPAD2_FF is not set
  1379 +CONFIG_HID_MICROSOFT=y
  1380 +CONFIG_HID_MONTEREY=y
  1381 +CONFIG_HID_NTRIG=y
  1382 +CONFIG_HID_PANTHERLORD=y
  1383 +# CONFIG_PANTHERLORD_FF is not set
  1384 +CONFIG_HID_PETALYNX=y
  1385 +CONFIG_HID_SAMSUNG=y
  1386 +CONFIG_HID_SONY=y
  1387 +CONFIG_HID_SUNPLUS=y
  1388 +# CONFIG_GREENASIA_FF is not set
  1389 +CONFIG_HID_TOPSEED=y
  1390 +# CONFIG_THRUSTMASTER_FF is not set
  1391 +# CONFIG_ZEROPLUS_FF is not set
  1392 +CONFIG_USB_SUPPORT=y
  1393 +CONFIG_USB_ARCH_HAS_HCD=y
  1394 +CONFIG_USB_ARCH_HAS_OHCI=y
  1395 +# CONFIG_USB_ARCH_HAS_EHCI is not set
  1396 +CONFIG_USB=y
  1397 +# CONFIG_USB_DEBUG is not set
  1398 +# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
  1399 +
  1400 +#
  1401 +# Miscellaneous USB options
  1402 +#
  1403 +CONFIG_USB_DEVICEFS=y
  1404 +# CONFIG_USB_DEVICE_CLASS is not set
  1405 +# CONFIG_USB_DYNAMIC_MINORS is not set
  1406 +# CONFIG_USB_SUSPEND is not set
  1407 +# CONFIG_USB_OTG is not set
  1408 +# CONFIG_USB_MON is not set
  1409 +# CONFIG_USB_WUSB is not set
  1410 +# CONFIG_USB_WUSB_CBAF is not set
  1411 +
  1412 +#
  1413 +# USB Host Controller Drivers
  1414 +#
  1415 +# CONFIG_USB_C67X00_HCD is not set
  1416 +# CONFIG_USB_OXU210HP_HCD is not set
  1417 +# CONFIG_USB_ISP116X_HCD is not set
  1418 +# CONFIG_USB_ISP1760_HCD is not set
  1419 +CONFIG_USB_OHCI_HCD=y
  1420 +# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
  1421 +# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
  1422 +CONFIG_USB_OHCI_LITTLE_ENDIAN=y
  1423 +# CONFIG_USB_SL811_HCD is not set
  1424 +# CONFIG_USB_R8A66597_HCD is not set
  1425 +# CONFIG_USB_HWA_HCD is not set
  1426 +# CONFIG_USB_MUSB_HDRC is not set
  1427 +# CONFIG_USB_GADGET_MUSB_HDRC is not set
  1428 +
  1429 +#
  1430 +# USB Device Class drivers
  1431 +#
  1432 +CONFIG_USB_ACM=m
  1433 +# CONFIG_USB_PRINTER is not set
  1434 +CONFIG_USB_WDM=m
  1435 +# CONFIG_USB_TMC is not set
  1436 +
  1437 +#
  1438 +# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
  1439 +#
  1440 +
  1441 +#
  1442 +# also be needed; see USB_STORAGE Help for more info
  1443 +#
  1444 +CONFIG_USB_STORAGE=m
  1445 +# CONFIG_USB_STORAGE_DEBUG is not set
  1446 +CONFIG_USB_STORAGE_DATAFAB=m
  1447 +# CONFIG_USB_STORAGE_FREECOM is not set
  1448 +CONFIG_USB_STORAGE_ISD200=m
  1449 +CONFIG_USB_STORAGE_USBAT=m
  1450 +CONFIG_USB_STORAGE_SDDR09=m
  1451 +CONFIG_USB_STORAGE_SDDR55=m
  1452 +CONFIG_USB_STORAGE_JUMPSHOT=m
  1453 +CONFIG_USB_STORAGE_ALAUDA=m
  1454 +# CONFIG_USB_STORAGE_ONETOUCH is not set
  1455 +# CONFIG_USB_STORAGE_KARMA is not set
  1456 +# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
  1457 +CONFIG_USB_LIBUSUAL=y
  1458 +
  1459 +#
  1460 +# USB Imaging devices
  1461 +#
  1462 +# CONFIG_USB_MDC800 is not set
  1463 +# CONFIG_USB_MICROTEK is not set
  1464 +
  1465 +#
  1466 +# USB port drivers
  1467 +#
  1468 +CONFIG_USB_SERIAL=m
  1469 +# CONFIG_USB_EZUSB is not set
  1470 +# CONFIG_USB_SERIAL_GENERIC is not set
  1471 +# CONFIG_USB_SERIAL_AIRCABLE is not set
  1472 +# CONFIG_USB_SERIAL_ARK3116 is not set
  1473 +# CONFIG_USB_SERIAL_BELKIN is not set
  1474 +# CONFIG_USB_SERIAL_CH341 is not set
  1475 +# CONFIG_USB_SERIAL_WHITEHEAT is not set
  1476 +# CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set
  1477 +CONFIG_USB_SERIAL_CP210X=m
  1478 +# CONFIG_USB_SERIAL_CYPRESS_M8 is not set
  1479 +# CONFIG_USB_SERIAL_EMPEG is not set
  1480 +CONFIG_USB_SERIAL_FTDI_SIO=m
  1481 +# CONFIG_USB_SERIAL_FUNSOFT is not set
  1482 +# CONFIG_USB_SERIAL_VISOR is not set
  1483 +# CONFIG_USB_SERIAL_IPAQ is not set
  1484 +# CONFIG_USB_SERIAL_IR is not set
  1485 +# CONFIG_USB_SERIAL_EDGEPORT is not set
  1486 +# CONFIG_USB_SERIAL_EDGEPORT_TI is not set
  1487 +# CONFIG_USB_SERIAL_GARMIN is not set
  1488 +# CONFIG_USB_SERIAL_IPW is not set
  1489 +# CONFIG_USB_SERIAL_IUU is not set
  1490 +# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set
  1491 +# CONFIG_USB_SERIAL_KEYSPAN is not set
  1492 +# CONFIG_USB_SERIAL_KLSI is not set
  1493 +# CONFIG_USB_SERIAL_KOBIL_SCT is not set
  1494 +# CONFIG_USB_SERIAL_MCT_U232 is not set
  1495 +# CONFIG_USB_SERIAL_MOS7720 is not set
  1496 +# CONFIG_USB_SERIAL_MOS7840 is not set
  1497 +# CONFIG_USB_SERIAL_MOTOROLA is not set
  1498 +# CONFIG_USB_SERIAL_NAVMAN is not set
  1499 +# CONFIG_USB_SERIAL_PL2303 is not set
  1500 +# CONFIG_USB_SERIAL_OTI6858 is not set
  1501 +# CONFIG_USB_SERIAL_QUALCOMM is not set
  1502 +CONFIG_USB_SERIAL_SPCP8X5=m
  1503 +# CONFIG_USB_SERIAL_HP4X is not set
  1504 +# CONFIG_USB_SERIAL_SAFE is not set
  1505 +# CONFIG_USB_SERIAL_SIEMENS_MPI is not set
  1506 +# CONFIG_USB_SERIAL_SIERRAWIRELESS is not set
  1507 +# CONFIG_USB_SERIAL_SYMBOL is not set
  1508 +# CONFIG_USB_SERIAL_TI is not set
  1509 +# CONFIG_USB_SERIAL_CYBERJACK is not set
  1510 +# CONFIG_USB_SERIAL_XIRCOM is not set
  1511 +# CONFIG_USB_SERIAL_OPTION is not set
  1512 +# CONFIG_USB_SERIAL_OMNINET is not set
  1513 +# CONFIG_USB_SERIAL_OPTICON is not set
  1514 +# CONFIG_USB_SERIAL_DEBUG is not set
  1515 +
  1516 +#
  1517 +# USB Miscellaneous drivers
  1518 +#
  1519 +# CONFIG_USB_EMI62 is not set
  1520 +# CONFIG_USB_EMI26 is not set
  1521 +# CONFIG_USB_ADUTUX is not set
  1522 +# CONFIG_USB_SEVSEG is not set
  1523 +# CONFIG_USB_RIO500 is not set
  1524 +# CONFIG_USB_LEGOTOWER is not set
  1525 +# CONFIG_USB_LCD is not set
  1526 +# CONFIG_USB_BERRY_CHARGE is not set
  1527 +# CONFIG_USB_LED is not set
  1528 +# CONFIG_USB_CYPRESS_CY7C63 is not set
  1529 +# CONFIG_USB_CYTHERM is not set
  1530 +# CONFIG_USB_IDMOUSE is not set
  1531 +# CONFIG_USB_FTDI_ELAN is not set
  1532 +# CONFIG_USB_APPLEDISPLAY is not set
  1533 +# CONFIG_USB_LD is not set
  1534 +# CONFIG_USB_TRANCEVIBRATOR is not set
  1535 +# CONFIG_USB_IOWARRIOR is not set
  1536 +# CONFIG_USB_TEST is not set
  1537 +# CONFIG_USB_ISIGHTFW is not set
  1538 +# CONFIG_USB_VST is not set
  1539 +CONFIG_USB_GADGET=y
  1540 +# CONFIG_USB_GADGET_DEBUG is not set
  1541 +# CONFIG_USB_GADGET_DEBUG_FILES is not set
  1542 +# CONFIG_USB_GADGET_DEBUG_FS is not set
  1543 +CONFIG_USB_GADGET_VBUS_DRAW=2
  1544 +CONFIG_USB_GADGET_SELECTED=y
  1545 +# CONFIG_USB_GADGET_AT91 is not set
  1546 +# CONFIG_USB_GADGET_ATMEL_USBA is not set
  1547 +# CONFIG_USB_GADGET_FSL_USB2 is not set
  1548 +# CONFIG_USB_GADGET_LH7A40X is not set
  1549 +# CONFIG_USB_GADGET_OMAP is not set
  1550 +# CONFIG_USB_GADGET_PXA25X is not set
  1551 +# CONFIG_USB_GADGET_PXA27X is not set
  1552 +CONFIG_USB_GADGET_S3C2410=y
  1553 +CONFIG_USB_S3C2410=y
  1554 +# CONFIG_USB_S3C2410_DEBUG is not set
  1555 +# CONFIG_USB_GADGET_IMX is not set
  1556 +# CONFIG_USB_GADGET_M66592 is not set
  1557 +# CONFIG_USB_GADGET_AMD5536UDC is not set
  1558 +# CONFIG_USB_GADGET_FSL_QE is not set
  1559 +# CONFIG_USB_GADGET_CI13XXX is not set
  1560 +# CONFIG_USB_GADGET_NET2280 is not set
  1561 +# CONFIG_USB_GADGET_GOKU is not set
  1562 +# CONFIG_USB_GADGET_DUMMY_HCD is not set
  1563 +# CONFIG_USB_GADGET_DUALSPEED is not set
  1564 +CONFIG_USB_ZERO=m
  1565 +CONFIG_USB_ETH=m
  1566 +CONFIG_USB_ETH_RNDIS=y
  1567 +CONFIG_USB_GADGETFS=m
  1568 +CONFIG_USB_FILE_STORAGE=m
  1569 +# CONFIG_USB_FILE_STORAGE_TEST is not set
  1570 +CONFIG_USB_G_SERIAL=m
  1571 +# CONFIG_USB_MIDI_GADGET is not set
  1572 +# CONFIG_USB_G_PRINTER is not set
  1573 +CONFIG_USB_CDC_COMPOSITE=m
  1574 +
  1575 +#
  1576 +# OTG and related infrastructure
  1577 +#
  1578 +# CONFIG_USB_GPIO_VBUS is not set
  1579 +# CONFIG_NOP_USB_XCEIV is not set
  1580 +CONFIG_MMC=y
  1581 +# CONFIG_MMC_DEBUG is not set
  1582 +# CONFIG_MMC_UNSAFE_RESUME is not set
  1583 +
  1584 +#
  1585 +# MMC/SD/SDIO Card Drivers
  1586 +#
  1587 +CONFIG_MMC_BLOCK=y
  1588 +CONFIG_MMC_BLOCK_BOUNCE=y
  1589 +CONFIG_SDIO_UART=y
  1590 +# CONFIG_MMC_TEST is not set
  1591 +
  1592 +#
  1593 +# MMC/SD/SDIO Host Controller Drivers
  1594 +#
  1595 +CONFIG_MMC_SDHCI=y
  1596 +CONFIG_MMC_SPI=y
  1597 +CONFIG_MMC_S3C=y
  1598 +# CONFIG_MEMSTICK is not set
  1599 +# CONFIG_ACCESSIBILITY is not set
  1600 +CONFIG_NEW_LEDS=y
  1601 +CONFIG_LEDS_CLASS=y
  1602 +
  1603 +#
  1604 +# LED drivers
  1605 +#
  1606 +CONFIG_LEDS_S3C24XX=y
  1607 +# CONFIG_LEDS_PCA9532 is not set
  1608 +CONFIG_LEDS_GPIO=y
  1609 +CONFIG_LEDS_GPIO_PLATFORM=y
  1610 +# CONFIG_LEDS_LP5521 is not set
  1611 +# CONFIG_LEDS_PCA955X is not set
  1612 +# CONFIG_LEDS_DAC124S085 is not set
  1613 +# CONFIG_LEDS_PWM is not set
  1614 +# CONFIG_LEDS_BD2802 is not set
  1615 +
  1616 +#
  1617 +# LED Triggers
  1618 +#
  1619 +CONFIG_LEDS_TRIGGERS=y
  1620 +CONFIG_LEDS_TRIGGER_TIMER=y
  1621 +CONFIG_LEDS_TRIGGER_HEARTBEAT=y
  1622 +CONFIG_LEDS_TRIGGER_BACKLIGHT=y
  1623 +CONFIG_LEDS_TRIGGER_GPIO=y
  1624 +CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
  1625 +
  1626 +#
  1627 +# iptables trigger is under Netfilter config (LED target)
  1628 +#
  1629 +CONFIG_RTC_LIB=y
  1630 +CONFIG_RTC_CLASS=y
  1631 +CONFIG_RTC_HCTOSYS=y
  1632 +CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
  1633 +# CONFIG_RTC_DEBUG is not set
  1634 +
  1635 +#
  1636 +# RTC interfaces
  1637 +#
  1638 +CONFIG_RTC_INTF_SYSFS=y
  1639 +CONFIG_RTC_INTF_PROC=y
  1640 +CONFIG_RTC_INTF_DEV=y
  1641 +CONFIG_RTC_INTF_DEV_UIE_EMUL=y
  1642 +# CONFIG_RTC_DRV_TEST is not set
  1643 +
  1644 +#
  1645 +# I2C RTC drivers
  1646 +#
  1647 +# CONFIG_RTC_DRV_DS1307 is not set
  1648 +# CONFIG_RTC_DRV_DS1374 is not set
  1649 +# CONFIG_RTC_DRV_DS1672 is not set
  1650 +# CONFIG_RTC_DRV_MAX6900 is not set
  1651 +# CONFIG_RTC_DRV_RS5C372 is not set
  1652 +# CONFIG_RTC_DRV_ISL1208 is not set
  1653 +# CONFIG_RTC_DRV_X1205 is not set
  1654 +# CONFIG_RTC_DRV_PCF8563 is not set
  1655 +# CONFIG_RTC_DRV_PCF8583 is not set
  1656 +# CONFIG_RTC_DRV_M41T80 is not set
  1657 +# CONFIG_RTC_DRV_S35390A is not set
  1658 +# CONFIG_RTC_DRV_FM3130 is not set
  1659 +# CONFIG_RTC_DRV_RX8581 is not set
  1660 +
  1661 +#
  1662 +# SPI RTC drivers
  1663 +#
  1664 +# CONFIG_RTC_DRV_M41T94 is not set
  1665 +# CONFIG_RTC_DRV_DS1305 is not set
  1666 +# CONFIG_RTC_DRV_DS1390 is not set
  1667 +# CONFIG_RTC_DRV_MAX6902 is not set
  1668 +# CONFIG_RTC_DRV_R9701 is not set
  1669 +# CONFIG_RTC_DRV_RS5C348 is not set
  1670 +# CONFIG_RTC_DRV_DS3234 is not set
  1671 +
  1672 +#
  1673 +# Platform RTC drivers
  1674 +#
  1675 +# CONFIG_RTC_DRV_CMOS is not set
  1676 +# CONFIG_RTC_DRV_DS1286 is not set
  1677 +# CONFIG_RTC_DRV_DS1511 is not set
  1678 +# CONFIG_RTC_DRV_DS1553 is not set
  1679 +# CONFIG_RTC_DRV_DS1742 is not set
  1680 +# CONFIG_RTC_DRV_STK17TA8 is not set
  1681 +# CONFIG_RTC_DRV_M48T86 is not set
  1682 +# CONFIG_RTC_DRV_M48T35 is not set
  1683 +# CONFIG_RTC_DRV_M48T59 is not set
  1684 +# CONFIG_RTC_DRV_BQ4802 is not set
  1685 +# CONFIG_RTC_DRV_V3020 is not set
  1686 +
  1687 +#
  1688 +# on-CPU RTC drivers
  1689 +#
  1690 +CONFIG_RTC_DRV_S3C=y
  1691 +CONFIG_DMADEVICES=y
  1692 +
  1693 +#
  1694 +# DMA Devices
  1695 +#
  1696 +# CONFIG_AUXDISPLAY is not set
  1697 +# CONFIG_REGULATOR is not set
  1698 +# CONFIG_UIO is not set
  1699 +# CONFIG_STAGING is not set
  1700 +
  1701 +#
  1702 +# File systems
  1703 +#
  1704 +CONFIG_EXT2_FS=m
  1705 +CONFIG_EXT2_FS_XATTR=y
  1706 +CONFIG_EXT2_FS_POSIX_ACL=y
  1707 +CONFIG_EXT2_FS_SECURITY=y
  1708 +# CONFIG_EXT2_FS_XIP is not set
  1709 +CONFIG_EXT3_FS=y
  1710 +# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
  1711 +CONFIG_EXT3_FS_XATTR=y
  1712 +CONFIG_EXT3_FS_POSIX_ACL=y
  1713 +CONFIG_EXT3_FS_SECURITY=y
  1714 +# CONFIG_EXT4_FS is not set
  1715 +CONFIG_JBD=y
  1716 +# CONFIG_JBD_DEBUG is not set
  1717 +CONFIG_FS_MBCACHE=y
  1718 +# CONFIG_REISERFS_FS is not set
  1719 +# CONFIG_JFS_FS is not set
  1720 +CONFIG_FS_POSIX_ACL=y
  1721 +CONFIG_FILE_LOCKING=y
  1722 +# CONFIG_XFS_FS is not set
  1723 +# CONFIG_GFS2_FS is not set
  1724 +# CONFIG_OCFS2_FS is not set
  1725 +# CONFIG_BTRFS_FS is not set
  1726 +CONFIG_DNOTIFY=y
  1727 +CONFIG_INOTIFY=y
  1728 +CONFIG_INOTIFY_USER=y
  1729 +# CONFIG_QUOTA is not set
  1730 +CONFIG_AUTOFS_FS=y
  1731 +CONFIG_AUTOFS4_FS=y
  1732 +# CONFIG_FUSE_FS is not set
  1733 +CONFIG_GENERIC_ACL=y
  1734 +
  1735 +#
  1736 +# Caches
  1737 +#
  1738 +# CONFIG_FSCACHE is not set
  1739 +
  1740 +#
  1741 +# CD-ROM/DVD Filesystems
  1742 +#
  1743 +# CONFIG_ISO9660_FS is not set
  1744 +# CONFIG_UDF_FS is not set
  1745 +
  1746 +#
  1747 +# DOS/FAT/NT Filesystems
  1748 +#
  1749 +CONFIG_FAT_FS=y
  1750 +CONFIG_MSDOS_FS=y
  1751 +CONFIG_VFAT_FS=y
  1752 +CONFIG_FAT_DEFAULT_CODEPAGE=437
  1753 +CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
  1754 +# CONFIG_NTFS_FS is not set
  1755 +
  1756 +#
  1757 +# Pseudo filesystems
  1758 +#
  1759 +CONFIG_PROC_FS=y
  1760 +CONFIG_PROC_SYSCTL=y
  1761 +CONFIG_PROC_PAGE_MONITOR=y
  1762 +CONFIG_SYSFS=y
  1763 +CONFIG_TMPFS=y
  1764 +CONFIG_TMPFS_POSIX_ACL=y
  1765 +# CONFIG_HUGETLB_PAGE is not set
  1766 +CONFIG_CONFIGFS_FS=m
  1767 +CONFIG_MISC_FILESYSTEMS=y
  1768 +# CONFIG_ADFS_FS is not set
  1769 +# CONFIG_AFFS_FS is not set
  1770 +# CONFIG_ECRYPT_FS is not set
  1771 +# CONFIG_HFS_FS is not set
  1772 +# CONFIG_HFSPLUS_FS is not set
  1773 +# CONFIG_BEFS_FS is not set
  1774 +# CONFIG_BFS_FS is not set
  1775 +# CONFIG_EFS_FS is not set
  1776 +CONFIG_JFFS2_FS=y
  1777 +CONFIG_JFFS2_FS_DEBUG=0
  1778 +CONFIG_JFFS2_FS_WRITEBUFFER=y
  1779 +# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
  1780 +# CONFIG_JFFS2_SUMMARY is not set
  1781 +# CONFIG_JFFS2_FS_XATTR is not set
  1782 +# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
  1783 +CONFIG_JFFS2_ZLIB=y
  1784 +# CONFIG_JFFS2_LZO is not set
  1785 +CONFIG_JFFS2_RTIME=y
  1786 +# CONFIG_JFFS2_RUBIN is not set
  1787 +CONFIG_CRAMFS=y
  1788 +# CONFIG_SQUASHFS is not set
  1789 +# CONFIG_VXFS_FS is not set
  1790 +# CONFIG_MINIX_FS is not set
  1791 +# CONFIG_OMFS_FS is not set
  1792 +# CONFIG_HPFS_FS is not set
  1793 +# CONFIG_QNX4FS_FS is not set
  1794 +CONFIG_ROMFS_FS=y
  1795 +# CONFIG_ROMFS_BACKED_BY_BLOCK is not set
  1796 +# CONFIG_ROMFS_BACKED_BY_MTD is not set
  1797 +CONFIG_ROMFS_BACKED_BY_BOTH=y
  1798 +CONFIG_ROMFS_ON_BLOCK=y
  1799 +CONFIG_ROMFS_ON_MTD=y
  1800 +# CONFIG_SYSV_FS is not set
  1801 +# CONFIG_UFS_FS is not set
  1802 +# CONFIG_NILFS2_FS is not set
  1803 +CONFIG_NETWORK_FILESYSTEMS=y
  1804 +CONFIG_NFS_FS=y
  1805 +CONFIG_NFS_V3=y
  1806 +CONFIG_NFS_V3_ACL=y
  1807 +CONFIG_NFS_V4=y
  1808 +CONFIG_ROOT_NFS=y
  1809 +# CONFIG_NFSD is not set
  1810 +CONFIG_LOCKD=y
  1811 +CONFIG_LOCKD_V4=y
  1812 +CONFIG_NFS_ACL_SUPPORT=y
  1813 +CONFIG_NFS_COMMON=y
  1814 +CONFIG_SUNRPC=y
  1815 +CONFIG_SUNRPC_GSS=y
  1816 +CONFIG_RPCSEC_GSS_KRB5=y
  1817 +# CONFIG_RPCSEC_GSS_SPKM3 is not set
  1818 +# CONFIG_SMB_FS is not set
  1819 +# CONFIG_CIFS is not set
  1820 +# CONFIG_NCP_FS is not set
  1821 +# CONFIG_CODA_FS is not set
  1822 +# CONFIG_AFS_FS is not set
  1823 +
  1824 +#
  1825 +# Partition Types
  1826 +#
  1827 +CONFIG_PARTITION_ADVANCED=y
  1828 +# CONFIG_ACORN_PARTITION is not set
  1829 +# CONFIG_OSF_PARTITION is not set
  1830 +# CONFIG_AMIGA_PARTITION is not set
  1831 +# CONFIG_ATARI_PARTITION is not set
  1832 +# CONFIG_MAC_PARTITION is not set
  1833 +CONFIG_MSDOS_PARTITION=y
  1834 +CONFIG_BSD_DISKLABEL=y
  1835 +CONFIG_MINIX_SUBPARTITION=y
  1836 +CONFIG_SOLARIS_X86_PARTITION=y
  1837 +CONFIG_UNIXWARE_DISKLABEL=y
  1838 +CONFIG_LDM_PARTITION=y
  1839 +# CONFIG_LDM_DEBUG is not set
  1840 +# CONFIG_SGI_PARTITION is not set
  1841 +# CONFIG_ULTRIX_PARTITION is not set
  1842 +# CONFIG_SUN_PARTITION is not set
  1843 +# CONFIG_KARMA_PARTITION is not set
  1844 +CONFIG_EFI_PARTITION=y
  1845 +# CONFIG_SYSV68_PARTITION is not set
  1846 +CONFIG_NLS=y
  1847 +CONFIG_NLS_DEFAULT="cp437"
  1848 +CONFIG_NLS_CODEPAGE_437=m
  1849 +CONFIG_NLS_CODEPAGE_737=m
  1850 +CONFIG_NLS_CODEPAGE_775=m
  1851 +CONFIG_NLS_CODEPAGE_850=m
  1852 +CONFIG_NLS_CODEPAGE_852=m
  1853 +CONFIG_NLS_CODEPAGE_855=m
  1854 +CONFIG_NLS_CODEPAGE_857=m
  1855 +CONFIG_NLS_CODEPAGE_860=m
  1856 +CONFIG_NLS_CODEPAGE_861=m
  1857 +CONFIG_NLS_CODEPAGE_862=m
  1858 +CONFIG_NLS_CODEPAGE_863=m
  1859 +CONFIG_NLS_CODEPAGE_864=m
  1860 +CONFIG_NLS_CODEPAGE_865=m
  1861 +CONFIG_NLS_CODEPAGE_866=m
  1862 +CONFIG_NLS_CODEPAGE_869=m
  1863 +CONFIG_NLS_CODEPAGE_936=m
  1864 +CONFIG_NLS_CODEPAGE_950=m
  1865 +CONFIG_NLS_CODEPAGE_932=m
  1866 +CONFIG_NLS_CODEPAGE_949=m
  1867 +CONFIG_NLS_CODEPAGE_874=m
  1868 +CONFIG_NLS_ISO8859_8=m
  1869 +CONFIG_NLS_CODEPAGE_1250=m
  1870 +CONFIG_NLS_CODEPAGE_1251=m
  1871 +CONFIG_NLS_ASCII=m
  1872 +CONFIG_NLS_ISO8859_1=m
  1873 +CONFIG_NLS_ISO8859_2=m
  1874 +CONFIG_NLS_ISO8859_3=m
  1875 +CONFIG_NLS_ISO8859_4=m
  1876 +CONFIG_NLS_ISO8859_5=m
  1877 +CONFIG_NLS_ISO8859_6=m
  1878 +CONFIG_NLS_ISO8859_7=m
  1879 +CONFIG_NLS_ISO8859_9=m
  1880 +CONFIG_NLS_ISO8859_13=m
  1881 +CONFIG_NLS_ISO8859_14=m
  1882 +CONFIG_NLS_ISO8859_15=m
  1883 +CONFIG_NLS_KOI8_R=m
  1884 +CONFIG_NLS_KOI8_U=m
  1885 +CONFIG_NLS_UTF8=m
  1886 +# CONFIG_DLM is not set
  1887 +
  1888 +#
  1889 +# Kernel hacking
  1890 +#
  1891 +# CONFIG_PRINTK_TIME is not set
  1892 +# CONFIG_ENABLE_WARN_DEPRECATED is not set
  1893 +# CONFIG_ENABLE_MUST_CHECK is not set
  1894 +CONFIG_FRAME_WARN=1024
  1895 +# CONFIG_MAGIC_SYSRQ is not set
  1896 +# CONFIG_UNUSED_SYMBOLS is not set
  1897 +CONFIG_DEBUG_FS=y
  1898 +# CONFIG_HEADERS_CHECK is not set
  1899 +CONFIG_DEBUG_KERNEL=y
  1900 +# CONFIG_DEBUG_SHIRQ is not set
  1901 +CONFIG_DETECT_SOFTLOCKUP=y
  1902 +# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
  1903 +CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
  1904 +CONFIG_DETECT_HUNG_TASK=y
  1905 +# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
  1906 +CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
  1907 +# CONFIG_SCHED_DEBUG is not set
  1908 +# CONFIG_SCHEDSTATS is not set
  1909 +# CONFIG_TIMER_STATS is not set
  1910 +# CONFIG_DEBUG_OBJECTS is not set
  1911 +# CONFIG_SLUB_DEBUG_ON is not set
  1912 +# CONFIG_SLUB_STATS is not set
  1913 +# CONFIG_DEBUG_RT_MUTEXES is not set
  1914 +# CONFIG_RT_MUTEX_TESTER is not set
  1915 +# CONFIG_DEBUG_SPINLOCK is not set
  1916 +# CONFIG_DEBUG_MUTEXES is not set
  1917 +# CONFIG_DEBUG_LOCK_ALLOC is not set
  1918 +# CONFIG_PROVE_LOCKING is not set
  1919 +# CONFIG_LOCK_STAT is not set
  1920 +# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
  1921 +# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
  1922 +# CONFIG_DEBUG_KOBJECT is not set
  1923 +CONFIG_DEBUG_BUGVERBOSE=y
  1924 +CONFIG_DEBUG_INFO=y
  1925 +# CONFIG_DEBUG_VM is not set
  1926 +# CONFIG_DEBUG_WRITECOUNT is not set
  1927 +CONFIG_DEBUG_MEMORY_INIT=y
  1928 +# CONFIG_DEBUG_LIST is not set
  1929 +# CONFIG_DEBUG_SG is not set
  1930 +# CONFIG_DEBUG_NOTIFIERS is not set
  1931 +# CONFIG_BOOT_PRINTK_DELAY is not set
  1932 +# CONFIG_RCU_TORTURE_TEST is not set
  1933 +# CONFIG_RCU_CPU_STALL_DETECTOR is not set
  1934 +# CONFIG_BACKTRACE_SELF_TEST is not set
  1935 +# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
  1936 +# CONFIG_FAULT_INJECTION is not set
  1937 +# CONFIG_LATENCYTOP is not set
  1938 +CONFIG_SYSCTL_SYSCALL_CHECK=y
  1939 +# CONFIG_PAGE_POISONING is not set
  1940 +CONFIG_HAVE_FUNCTION_TRACER=y
  1941 +CONFIG_TRACING_SUPPORT=y
  1942 +
  1943 +#
  1944 +# Tracers
  1945 +#
  1946 +# CONFIG_FUNCTION_TRACER is not set
  1947 +# CONFIG_SCHED_TRACER is not set
  1948 +# CONFIG_CONTEXT_SWITCH_TRACER is not set
  1949 +# CONFIG_EVENT_TRACER is not set
  1950 +# CONFIG_BOOT_TRACER is not set
  1951 +# CONFIG_TRACE_BRANCH_PROFILING is not set
  1952 +# CONFIG_STACK_TRACER is not set
  1953 +# CONFIG_KMEMTRACE is not set
  1954 +# CONFIG_WORKQUEUE_TRACER is not set
  1955 +# CONFIG_BLK_DEV_IO_TRACE is not set
  1956 +# CONFIG_DYNAMIC_DEBUG is not set
  1957 +# CONFIG_SAMPLES is not set
  1958 +CONFIG_HAVE_ARCH_KGDB=y
  1959 +# CONFIG_KGDB is not set
  1960 +CONFIG_ARM_UNWIND=y
  1961 +CONFIG_DEBUG_USER=y
  1962 +# CONFIG_DEBUG_ERRORS is not set
  1963 +# CONFIG_DEBUG_STACK_USAGE is not set
  1964 +# CONFIG_DEBUG_LL is not set
  1965 +CONFIG_DEBUG_S3C_UART=0
  1966 +
  1967 +#
  1968 +# Security options
  1969 +#
  1970 +CONFIG_KEYS=y
  1971 +# CONFIG_KEYS_DEBUG_PROC_KEYS is not set
  1972 +# CONFIG_SECURITY is not set
  1973 +# CONFIG_SECURITYFS is not set
  1974 +CONFIG_SECURITY_FILE_CAPABILITIES=y
  1975 +CONFIG_CRYPTO=y
  1976 +
  1977 +#
  1978 +# Crypto core or helper
  1979 +#
  1980 +CONFIG_CRYPTO_FIPS=y
  1981 +CONFIG_CRYPTO_ALGAPI=y
  1982 +CONFIG_CRYPTO_ALGAPI2=y
  1983 +CONFIG_CRYPTO_AEAD=m
  1984 +CONFIG_CRYPTO_AEAD2=y
  1985 +CONFIG_CRYPTO_BLKCIPHER=y
  1986 +CONFIG_CRYPTO_BLKCIPHER2=y
  1987 +CONFIG_CRYPTO_HASH=y
  1988 +CONFIG_CRYPTO_HASH2=y
  1989 +CONFIG_CRYPTO_RNG=m
  1990 +CONFIG_CRYPTO_RNG2=y
  1991 +CONFIG_CRYPTO_PCOMP=y
  1992 +CONFIG_CRYPTO_MANAGER=y
  1993 +CONFIG_CRYPTO_MANAGER2=y
  1994 +CONFIG_CRYPTO_GF128MUL=m
  1995 +CONFIG_CRYPTO_NULL=m
  1996 +CONFIG_CRYPTO_WORKQUEUE=y
  1997 +CONFIG_CRYPTO_CRYPTD=m
  1998 +CONFIG_CRYPTO_AUTHENC=m
  1999 +CONFIG_CRYPTO_TEST=m
  2000 +
  2001 +#
  2002 +# Authenticated Encryption with Associated Data
  2003 +#
  2004 +CONFIG_CRYPTO_CCM=m
  2005 +CONFIG_CRYPTO_GCM=m
  2006 +CONFIG_CRYPTO_SEQIV=m
  2007 +
  2008 +#
  2009 +# Block modes
  2010 +#
  2011 +CONFIG_CRYPTO_CBC=y
  2012 +CONFIG_CRYPTO_CTR=m
  2013 +CONFIG_CRYPTO_CTS=m
  2014 +CONFIG_CRYPTO_ECB=y
  2015 +CONFIG_CRYPTO_LRW=m
  2016 +CONFIG_CRYPTO_PCBC=m
  2017 +CONFIG_CRYPTO_XTS=m
  2018 +
  2019 +#
  2020 +# Hash modes
  2021 +#
  2022 +CONFIG_CRYPTO_HMAC=y
  2023 +CONFIG_CRYPTO_XCBC=m
  2024 +
  2025 +#
  2026 +# Digest
  2027 +#
  2028 +CONFIG_CRYPTO_CRC32C=m
  2029 +CONFIG_CRYPTO_MD4=m
  2030 +CONFIG_CRYPTO_MD5=y
  2031 +CONFIG_CRYPTO_MICHAEL_MIC=y
  2032 +CONFIG_CRYPTO_RMD128=m
  2033 +CONFIG_CRYPTO_RMD160=m
  2034 +CONFIG_CRYPTO_RMD256=m
  2035 +CONFIG_CRYPTO_RMD320=m
  2036 +CONFIG_CRYPTO_SHA1=m
  2037 +CONFIG_CRYPTO_SHA256=m
  2038 +CONFIG_CRYPTO_SHA512=m
  2039 +CONFIG_CRYPTO_TGR192=m
  2040 +CONFIG_CRYPTO_WP512=m
  2041 +
  2042 +#
  2043 +# Ciphers
  2044 +#
  2045 +CONFIG_CRYPTO_AES=y
  2046 +CONFIG_CRYPTO_ANUBIS=m
  2047 +CONFIG_CRYPTO_ARC4=y
  2048 +CONFIG_CRYPTO_BLOWFISH=m
  2049 +CONFIG_CRYPTO_CAMELLIA=m
  2050 +CONFIG_CRYPTO_CAST5=m
  2051 +CONFIG_CRYPTO_CAST6=m
  2052 +CONFIG_CRYPTO_DES=y
  2053 +CONFIG_CRYPTO_FCRYPT=m
  2054 +CONFIG_CRYPTO_KHAZAD=m
  2055 +CONFIG_CRYPTO_SALSA20=m
  2056 +CONFIG_CRYPTO_SEED=m
  2057 +CONFIG_CRYPTO_SERPENT=m
  2058 +CONFIG_CRYPTO_TEA=m
  2059 +CONFIG_CRYPTO_TWOFISH=m
  2060 +CONFIG_CRYPTO_TWOFISH_COMMON=m
  2061 +
  2062 +#
  2063 +# Compression
  2064 +#
  2065 +CONFIG_CRYPTO_DEFLATE=m
  2066 +CONFIG_CRYPTO_ZLIB=m
  2067 +CONFIG_CRYPTO_LZO=m
  2068 +
  2069 +#
  2070 +# Random Number Generation
  2071 +#
  2072 +CONFIG_CRYPTO_ANSI_CPRNG=m
  2073 +CONFIG_CRYPTO_HW=y
  2074 +# CONFIG_BINARY_PRINTF is not set
  2075 +
  2076 +#
  2077 +# Library routines
  2078 +#
  2079 +CONFIG_BITREVERSE=y
  2080 +CONFIG_GENERIC_FIND_LAST_BIT=y
  2081 +CONFIG_CRC_CCITT=m
  2082 +CONFIG_CRC16=m
  2083 +CONFIG_CRC_T10DIF=y
  2084 +CONFIG_CRC_ITU_T=y
  2085 +CONFIG_CRC32=y
  2086 +CONFIG_CRC7=y
  2087 +CONFIG_LIBCRC32C=m
  2088 +CONFIG_ZLIB_INFLATE=y
  2089 +CONFIG_ZLIB_DEFLATE=y
  2090 +CONFIG_LZO_COMPRESS=m
  2091 +CONFIG_LZO_DECOMPRESS=m
  2092 +CONFIG_DECOMPRESS_GZIP=y
  2093 +CONFIG_DECOMPRESS_BZIP2=y
  2094 +CONFIG_DECOMPRESS_LZMA=y
  2095 +CONFIG_HAS_IOMEM=y
  2096 +CONFIG_HAS_DMA=y
  2097 +CONFIG_NLATTR=y
arch/arm/mach-s3c2410/usb-simtec.c
... ... @@ -22,7 +22,6 @@
22 22 #include <linux/timer.h>
23 23 #include <linux/init.h>
24 24 #include <linux/device.h>
25   -#include <linux/gpio.h>
26 25 #include <linux/io.h>
27 26  
28 27 #include <asm/mach/arch.h>
arch/arm/mach-s3c2440/Kconfig
... ... @@ -84,5 +84,15 @@
84 84 help
85 85 Say Y here if you are using the AT2440EVB development board
86 86  
  87 +config MACH_MINI2440
  88 + bool "MINI2440 development board"
  89 + select CPU_S3C2440
  90 + select EEPROM_AT24
  91 + select LEDS_TRIGGER_BACKLIGHT
  92 + select SND_S3C24XX_SOC_S3C24XX_UDA134X
  93 + help
  94 + Say Y here to select support for the MINI2440. Is a 10cm x 10cm board
  95 + available via various sources. It can come with a 3.5" or 7" touch LCD.
  96 +
87 97 endmenu
arch/arm/mach-s3c2440/Makefile
... ... @@ -22,4 +22,5 @@
22 22 obj-$(CONFIG_ARCH_S3C2440) += mach-smdk2440.o
23 23 obj-$(CONFIG_MACH_NEXCODER_2440) += mach-nexcoder.o
24 24 obj-$(CONFIG_MACH_AT2440EVB) += mach-at2440evb.o
  25 +obj-$(CONFIG_MACH_MINI2440) += mach-mini2440.o
arch/arm/mach-s3c2440/mach-mini2440.c
  1 +/* linux/arch/arm/mach-s3c2440/mach-mini2440.c
  2 + *
  3 + * Copyright (c) 2008 Ramax Lo <ramaxlo@gmail.com>
  4 + * Based on mach-anubis.c by Ben Dooks <ben@simtec.co.uk>
  5 + * and modifications by SBZ <sbz@spgui.org> and
  6 + * Weibing <http://weibing.blogbus.com> and
  7 + * Michel Pollet <buserror@gmail.com>
  8 + *
  9 + * For product information, visit http://code.google.com/p/mini2440/
  10 + *
  11 + * This program is free software; you can redistribute it and/or modify
  12 + * it under the terms of the GNU General Public License version 2 as
  13 + * published by the Free Software Foundation.
  14 +*/
  15 +
  16 +#include <linux/kernel.h>
  17 +#include <linux/types.h>
  18 +#include <linux/interrupt.h>
  19 +#include <linux/list.h>
  20 +#include <linux/timer.h>
  21 +#include <linux/init.h>
  22 +#include <linux/gpio.h>
  23 +#include <linux/input.h>
  24 +#include <linux/io.h>
  25 +#include <linux/serial_core.h>
  26 +#include <linux/dm9000.h>
  27 +#include <linux/i2c/at24.h>
  28 +#include <linux/platform_device.h>
  29 +#include <linux/gpio_keys.h>
  30 +#include <linux/i2c.h>
  31 +#include <linux/mmc/host.h>
  32 +
  33 +#include <asm/mach/arch.h>
  34 +#include <asm/mach/map.h>
  35 +
  36 +#include <mach/hardware.h>
  37 +#include <mach/fb.h>
  38 +#include <asm/mach-types.h>
  39 +
  40 +#include <plat/regs-serial.h>
  41 +#include <mach/regs-gpio.h>
  42 +#include <mach/leds-gpio.h>
  43 +#include <mach/regs-mem.h>
  44 +#include <mach/regs-lcd.h>
  45 +#include <mach/irqs.h>
  46 +#include <plat/nand.h>
  47 +#include <plat/iic.h>
  48 +#include <plat/mci.h>
  49 +#include <plat/udc.h>
  50 +
  51 +#include <plat/regs-serial.h>
  52 +
  53 +#include <linux/mtd/mtd.h>
  54 +#include <linux/mtd/nand.h>
  55 +#include <linux/mtd/nand_ecc.h>
  56 +#include <linux/mtd/partitions.h>
  57 +
  58 +#include <plat/clock.h>
  59 +#include <plat/devs.h>
  60 +#include <plat/cpu.h>
  61 +
  62 +#include <sound/s3c24xx_uda134x.h>
  63 +
  64 +#define MACH_MINI2440_DM9K_BASE (S3C2410_CS4 + 0x300)
  65 +
  66 +static struct map_desc mini2440_iodesc[] __initdata = {
  67 + /* nothing to declare, move along */
  68 +};
  69 +
  70 +#define UCON S3C2410_UCON_DEFAULT
  71 +#define ULCON S3C2410_LCON_CS8 | S3C2410_LCON_PNONE | S3C2410_LCON_STOPB
  72 +#define UFCON S3C2410_UFCON_RXTRIG8 | S3C2410_UFCON_FIFOMODE
  73 +
  74 +
  75 +static struct s3c2410_uartcfg mini2440_uartcfgs[] __initdata = {
  76 + [0] = {
  77 + .hwport = 0,
  78 + .flags = 0,
  79 + .ucon = UCON,
  80 + .ulcon = ULCON,
  81 + .ufcon = UFCON,
  82 + },
  83 + [1] = {
  84 + .hwport = 1,
  85 + .flags = 0,
  86 + .ucon = UCON,
  87 + .ulcon = ULCON,
  88 + .ufcon = UFCON,
  89 + },
  90 + [2] = {
  91 + .hwport = 2,
  92 + .flags = 0,
  93 + .ucon = UCON,
  94 + .ulcon = ULCON,
  95 + .ufcon = UFCON,
  96 + },
  97 +};
  98 +
  99 +/* USB device UDC support */
  100 +
  101 +static void mini2440_udc_pullup(enum s3c2410_udc_cmd_e cmd)
  102 +{
  103 + pr_debug("udc: pullup(%d)\n", cmd);
  104 +
  105 + switch (cmd) {
  106 + case S3C2410_UDC_P_ENABLE :
  107 + s3c2410_gpio_setpin(S3C2410_GPC(5), 1);
  108 + break;
  109 + case S3C2410_UDC_P_DISABLE :
  110 + s3c2410_gpio_setpin(S3C2410_GPC(5), 0);
  111 + break;
  112 + case S3C2410_UDC_P_RESET :
  113 + break;
  114 + default:
  115 + break;
  116 + }
  117 +}
  118 +
  119 +static struct s3c2410_udc_mach_info mini2440_udc_cfg __initdata = {
  120 + .udc_command = mini2440_udc_pullup,
  121 +};
  122 +
  123 +
  124 +/* LCD timing and setup */
  125 +
  126 +/*
  127 + * This macro simplifies the table bellow
  128 + */
  129 +#define _LCD_DECLARE(_clock,_xres,margin_left,margin_right,hsync, \
  130 + _yres,margin_top,margin_bottom,vsync, refresh) \
  131 + .width = _xres, \
  132 + .xres = _xres, \
  133 + .height = _yres, \
  134 + .yres = _yres, \
  135 + .left_margin = margin_left, \
  136 + .right_margin = margin_right, \
  137 + .upper_margin = margin_top, \
  138 + .lower_margin = margin_bottom, \
  139 + .hsync_len = hsync, \
  140 + .vsync_len = vsync, \
  141 + .pixclock = ((_clock*100000000000LL) / \
  142 + ((refresh) * \
  143 + (hsync + margin_left + _xres + margin_right) * \
  144 + (vsync + margin_top + _yres + margin_bottom))), \
  145 + .bpp = 16,\
  146 + .type = (S3C2410_LCDCON1_TFT16BPP |\
  147 + S3C2410_LCDCON1_TFT)
  148 +
  149 +struct s3c2410fb_display mini2440_lcd_cfg[] __initdata = {
  150 + [0] = { /* mini2440 + 3.5" TFT + touchscreen */
  151 + _LCD_DECLARE(
  152 + 7, /* The 3.5 is quite fast */
  153 + 240, 21, 38, 6, /* x timing */
  154 + 320, 4, 4, 2, /* y timing */
  155 + 60), /* refresh rate */
  156 + .lcdcon5 = (S3C2410_LCDCON5_FRM565 |
  157 + S3C2410_LCDCON5_INVVLINE |
  158 + S3C2410_LCDCON5_INVVFRAME |
  159 + S3C2410_LCDCON5_INVVDEN |
  160 + S3C2410_LCDCON5_PWREN),
  161 + },
  162 + [1] = { /* mini2440 + 7" TFT + touchscreen */
  163 + _LCD_DECLARE(
  164 + 10, /* the 7" runs slower */
  165 + 800, 40, 40, 48, /* x timing */
  166 + 480, 29, 3, 3, /* y timing */
  167 + 50), /* refresh rate */
  168 + .lcdcon5 = (S3C2410_LCDCON5_FRM565 |
  169 + S3C2410_LCDCON5_INVVLINE |
  170 + S3C2410_LCDCON5_INVVFRAME |
  171 + S3C2410_LCDCON5_PWREN),
  172 + },
  173 + /* The VGA shield can outout at several resolutions. All share
  174 + * the same timings, however, anything smaller than 1024x768
  175 + * will only be displayed in the top left corner of a 1024x768
  176 + * XGA output unless you add optional dip switches to the shield.
  177 + * Therefore timings for other resolutions have been ommited here.
  178 + */
  179 + [2] = {
  180 + _LCD_DECLARE(
  181 + 10,
  182 + 1024, 1, 2, 2, /* y timing */
  183 + 768, 200, 16, 16, /* x timing */
  184 + 24), /* refresh rate, maximum stable,
  185 + tested with the FPGA shield */
  186 + .lcdcon5 = (S3C2410_LCDCON5_FRM565 |
  187 + S3C2410_LCDCON5_HWSWP),
  188 + },
  189 +};
  190 +
  191 +/* todo - put into gpio header */
  192 +
  193 +#define S3C2410_GPCCON_MASK(x) (3 << ((x) * 2))
  194 +#define S3C2410_GPDCON_MASK(x) (3 << ((x) * 2))
  195 +
  196 +struct s3c2410fb_mach_info mini2440_fb_info __initdata = {
  197 + .displays = &mini2440_lcd_cfg[0], /* not constant! see init */
  198 + .num_displays = 1,
  199 + .default_display = 0,
  200 +
  201 + /* Enable VD[2..7], VD[10..15], VD[18..23] and VCLK, syncs, VDEN
  202 + * and disable the pull down resistors on pins we are using for LCD
  203 + * data. */
  204 +
  205 + .gpcup = (0xf << 1) | (0x3f << 10),
  206 +
  207 + .gpccon = (S3C2410_GPC1_VCLK | S3C2410_GPC2_VLINE |
  208 + S3C2410_GPC3_VFRAME | S3C2410_GPC4_VM |
  209 + S3C2410_GPC10_VD2 | S3C2410_GPC11_VD3 |
  210 + S3C2410_GPC12_VD4 | S3C2410_GPC13_VD5 |
  211 + S3C2410_GPC14_VD6 | S3C2410_GPC15_VD7),
  212 +
  213 + .gpccon_mask = (S3C2410_GPCCON_MASK(1) | S3C2410_GPCCON_MASK(2) |
  214 + S3C2410_GPCCON_MASK(3) | S3C2410_GPCCON_MASK(4) |
  215 + S3C2410_GPCCON_MASK(10) | S3C2410_GPCCON_MASK(11) |
  216 + S3C2410_GPCCON_MASK(12) | S3C2410_GPCCON_MASK(13) |
  217 + S3C2410_GPCCON_MASK(14) | S3C2410_GPCCON_MASK(15)),
  218 +
  219 + .gpdup = (0x3f << 2) | (0x3f << 10),
  220 +
  221 + .gpdcon = (S3C2410_GPD2_VD10 | S3C2410_GPD3_VD11 |
  222 + S3C2410_GPD4_VD12 | S3C2410_GPD5_VD13 |
  223 + S3C2410_GPD6_VD14 | S3C2410_GPD7_VD15 |
  224 + S3C2410_GPD10_VD18 | S3C2410_GPD11_VD19 |
  225 + S3C2410_GPD12_VD20 | S3C2410_GPD13_VD21 |
  226 + S3C2410_GPD14_VD22 | S3C2410_GPD15_VD23),
  227 +
  228 + .gpdcon_mask = (S3C2410_GPDCON_MASK(2) | S3C2410_GPDCON_MASK(3) |
  229 + S3C2410_GPDCON_MASK(4) | S3C2410_GPDCON_MASK(5) |
  230 + S3C2410_GPDCON_MASK(6) | S3C2410_GPDCON_MASK(7) |
  231 + S3C2410_GPDCON_MASK(10) | S3C2410_GPDCON_MASK(11)|
  232 + S3C2410_GPDCON_MASK(12) | S3C2410_GPDCON_MASK(13)|
  233 + S3C2410_GPDCON_MASK(14) | S3C2410_GPDCON_MASK(15)),
  234 +};
  235 +
  236 +/* MMC/SD */
  237 +
  238 +static struct s3c24xx_mci_pdata mini2440_mmc_cfg __initdata = {
  239 + .gpio_detect = S3C2410_GPG(8),
  240 + .gpio_wprotect = S3C2410_GPH(8),
  241 + .set_power = NULL,
  242 + .ocr_avail = MMC_VDD_32_33|MMC_VDD_33_34,
  243 +};
  244 +
  245 +/* NAND Flash on MINI2440 board */
  246 +
  247 +static struct mtd_partition mini2440_default_nand_part[] __initdata = {
  248 + [0] = {
  249 + .name = "u-boot",
  250 + .size = SZ_256K,
  251 + .offset = 0,
  252 + },
  253 + [1] = {
  254 + .name = "u-boot-env",
  255 + .size = SZ_128K,
  256 + .offset = SZ_256K,
  257 + },
  258 + [2] = {
  259 + .name = "kernel",
  260 + /* 5 megabytes, for a kernel with no modules
  261 + * or a uImage with a ramdisk attached */
  262 + .size = 0x00500000,
  263 + .offset = SZ_256K + SZ_128K,
  264 + },
  265 + [3] = {
  266 + .name = "root",
  267 + .offset = SZ_256K + SZ_128K + 0x00500000,
  268 + .size = MTDPART_SIZ_FULL,
  269 + },
  270 +};
  271 +
  272 +static struct s3c2410_nand_set mini2440_nand_sets[] __initdata = {
  273 + [0] = {
  274 + .name = "nand",
  275 + .nr_chips = 1,
  276 + .nr_partitions = ARRAY_SIZE(mini2440_default_nand_part),
  277 + .partitions = mini2440_default_nand_part,
  278 + },
  279 +};
  280 +
  281 +static struct s3c2410_platform_nand mini2440_nand_info __initdata = {
  282 + .tacls = 0,
  283 + .twrph0 = 25,
  284 + .twrph1 = 15,
  285 + .nr_sets = ARRAY_SIZE(mini2440_nand_sets),
  286 + .sets = mini2440_nand_sets,
  287 + .ignore_unset_ecc = 1,
  288 +};
  289 +
  290 +/* DM9000AEP 10/100 ethernet controller */
  291 +
  292 +static struct resource mini2440_dm9k_resource[] __initdata = {
  293 + [0] = {
  294 + .start = MACH_MINI2440_DM9K_BASE,
  295 + .end = MACH_MINI2440_DM9K_BASE + 3,
  296 + .flags = IORESOURCE_MEM
  297 + },
  298 + [1] = {
  299 + .start = MACH_MINI2440_DM9K_BASE + 4,
  300 + .end = MACH_MINI2440_DM9K_BASE + 7,
  301 + .flags = IORESOURCE_MEM
  302 + },
  303 + [2] = {
  304 + .start = IRQ_EINT7,
  305 + .end = IRQ_EINT7,
  306 + .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHEDGE,
  307 + }
  308 +};
  309 +
  310 +/*
  311 + * The DM9000 has no eeprom, and it's MAC address is set by
  312 + * the bootloader before starting the kernel.
  313 + */
  314 +static struct dm9000_plat_data mini2440_dm9k_pdata __initdata = {
  315 + .flags = (DM9000_PLATF_16BITONLY | DM9000_PLATF_NO_EEPROM),
  316 +};
  317 +
  318 +static struct platform_device mini2440_device_eth __initdata = {
  319 + .name = "dm9000",
  320 + .id = -1,
  321 + .num_resources = ARRAY_SIZE(mini2440_dm9k_resource),
  322 + .resource = mini2440_dm9k_resource,
  323 + .dev = {
  324 + .platform_data = &mini2440_dm9k_pdata,
  325 + },
  326 +};
  327 +
  328 +/* CON5
  329 + * +--+ /-----\
  330 + * | | | |
  331 + * | | | BAT |
  332 + * | | \_____/
  333 + * | |
  334 + * | | +----+ +----+
  335 + * | | | K5 | | K1 |
  336 + * | | +----+ +----+
  337 + * | | +----+ +----+
  338 + * | | | K4 | | K2 |
  339 + * | | +----+ +----+
  340 + * | | +----+ +----+
  341 + * | | | K6 | | K3 |
  342 + * | | +----+ +----+
  343 + * .....
  344 + */
  345 +static struct gpio_keys_button mini2440_buttons[] __initdata = {
  346 + {
  347 + .gpio = S3C2410_GPG(0), /* K1 */
  348 + .code = KEY_F1,
  349 + .desc = "Button 1",
  350 + .active_low = 1,
  351 + },
  352 + {
  353 + .gpio = S3C2410_GPG(3), /* K2 */
  354 + .code = KEY_F2,
  355 + .desc = "Button 2",
  356 + .active_low = 1,
  357 + },
  358 + {
  359 + .gpio = S3C2410_GPG(5), /* K3 */
  360 + .code = KEY_F3,
  361 + .desc = "Button 3",
  362 + .active_low = 1,
  363 + },
  364 + {
  365 + .gpio = S3C2410_GPG(6), /* K4 */
  366 + .code = KEY_POWER,
  367 + .desc = "Power",
  368 + .active_low = 1,
  369 + },
  370 + {
  371 + .gpio = S3C2410_GPG(7), /* K5 */
  372 + .code = KEY_F5,
  373 + .desc = "Button 5",
  374 + .active_low = 1,
  375 + },
  376 +#if 0
  377 + /* this pin is also known as TCLK1 and seems to already
  378 + * marked as "in use" somehow in the kernel -- possibly wrongly */
  379 + {
  380 + .gpio = S3C2410_GPG(11), /* K6 */
  381 + .code = KEY_F6,
  382 + .desc = "Button 6",
  383 + .active_low = 1,
  384 + },
  385 +#endif
  386 +};
  387 +
  388 +static struct gpio_keys_platform_data mini2440_button_data __initdata = {
  389 + .buttons = mini2440_buttons,
  390 + .nbuttons = ARRAY_SIZE(mini2440_buttons),
  391 +};
  392 +
  393 +static struct platform_device mini2440_button_device __initdata = {
  394 + .name = "gpio-keys",
  395 + .id = -1,
  396 + .dev = {
  397 + .platform_data = &mini2440_button_data,
  398 + }
  399 +};
  400 +
  401 +/* LEDS */
  402 +
  403 +static struct s3c24xx_led_platdata mini2440_led1_pdata __initdata = {
  404 + .name = "led1",
  405 + .gpio = S3C2410_GPB(5),
  406 + .flags = S3C24XX_LEDF_ACTLOW | S3C24XX_LEDF_TRISTATE,
  407 + .def_trigger = "heartbeat",
  408 +};
  409 +
  410 +static struct s3c24xx_led_platdata mini2440_led2_pdata __initdata = {
  411 + .name = "led2",
  412 + .gpio = S3C2410_GPB(6),
  413 + .flags = S3C24XX_LEDF_ACTLOW | S3C24XX_LEDF_TRISTATE,
  414 + .def_trigger = "nand-disk",
  415 +};
  416 +
  417 +static struct s3c24xx_led_platdata mini2440_led3_pdata __initdata = {
  418 + .name = "led3",
  419 + .gpio = S3C2410_GPB(7),
  420 + .flags = S3C24XX_LEDF_ACTLOW | S3C24XX_LEDF_TRISTATE,
  421 + .def_trigger = "mmc0",
  422 +};
  423 +
  424 +static struct s3c24xx_led_platdata mini2440_led4_pdata __initdata = {
  425 + .name = "led4",
  426 + .gpio = S3C2410_GPB(8),
  427 + .flags = S3C24XX_LEDF_ACTLOW | S3C24XX_LEDF_TRISTATE,
  428 + .def_trigger = "",
  429 +};
  430 +
  431 +static struct s3c24xx_led_platdata mini2440_led_backlight_pdata __initdata = {
  432 + .name = "backlight",
  433 + .gpio = S3C2410_GPG(4),
  434 + .def_trigger = "backlight",
  435 +};
  436 +
  437 +static struct platform_device mini2440_led1 __initdata = {
  438 + .name = "s3c24xx_led",
  439 + .id = 1,
  440 + .dev = {
  441 + .platform_data = &mini2440_led1_pdata,
  442 + },
  443 +};
  444 +
  445 +static struct platform_device mini2440_led2 __initdata = {
  446 + .name = "s3c24xx_led",
  447 + .id = 2,
  448 + .dev = {
  449 + .platform_data = &mini2440_led2_pdata,
  450 + },
  451 +};
  452 +
  453 +static struct platform_device mini2440_led3 __initdata = {
  454 + .name = "s3c24xx_led",
  455 + .id = 3,
  456 + .dev = {
  457 + .platform_data = &mini2440_led3_pdata,
  458 + },
  459 +};
  460 +
  461 +static struct platform_device mini2440_led4 __initdata = {
  462 + .name = "s3c24xx_led",
  463 + .id = 4,
  464 + .dev = {
  465 + .platform_data = &mini2440_led4_pdata,
  466 + },
  467 +};
  468 +
  469 +static struct platform_device mini2440_led_backlight __initdata = {
  470 + .name = "s3c24xx_led",
  471 + .id = 5,
  472 + .dev = {
  473 + .platform_data = &mini2440_led_backlight_pdata,
  474 + },
  475 +};
  476 +
  477 +/* AUDIO */
  478 +
  479 +static struct s3c24xx_uda134x_platform_data mini2440_audio_pins __initdata = {
  480 + .l3_clk = S3C2410_GPB(4),
  481 + .l3_mode = S3C2410_GPB(2),
  482 + .l3_data = S3C2410_GPB(3),
  483 + .model = UDA134X_UDA1341
  484 +};
  485 +
  486 +static struct platform_device mini2440_audio __initdata = {
  487 + .name = "s3c24xx_uda134x",
  488 + .id = 0,
  489 + .dev = {
  490 + .platform_data = &mini2440_audio_pins,
  491 + },
  492 +};
  493 +
  494 +/*
  495 + * I2C devices
  496 + */
  497 +static struct at24_platform_data at24c08 = {
  498 + .byte_len = SZ_8K / 8,
  499 + .page_size = 16,
  500 +};
  501 +
  502 +static struct i2c_board_info mini2440_i2c_devs[] __initdata = {
  503 + {
  504 + I2C_BOARD_INFO("24c08", 0x50),
  505 + .platform_data = &at24c08,
  506 + },
  507 +};
  508 +
  509 +static struct platform_device *mini2440_devices[] __initdata = {
  510 + &s3c_device_usb,
  511 + &s3c_device_wdt,
  512 +/* &s3c_device_adc,*/ /* ADC doesn't like living with touchscreen ! */
  513 + &s3c_device_i2c0,
  514 + &s3c_device_rtc,
  515 + &s3c_device_usbgadget,
  516 + &mini2440_device_eth,
  517 + &mini2440_led1,
  518 + &mini2440_led2,
  519 + &mini2440_led3,
  520 + &mini2440_led4,
  521 + &mini2440_button_device,
  522 + &s3c_device_nand,
  523 + &s3c_device_sdi,
  524 + &s3c_device_iis,
  525 + &mini2440_audio,
  526 +/* &s3c_device_timer[0],*/ /* buzzer pwm, no API for it */
  527 + /* remaining devices are optional */
  528 +};
  529 +
  530 +static void __init mini2440_map_io(void)
  531 +{
  532 + s3c24xx_init_io(mini2440_iodesc, ARRAY_SIZE(mini2440_iodesc));
  533 + s3c24xx_init_clocks(12000000);
  534 + s3c24xx_init_uarts(mini2440_uartcfgs, ARRAY_SIZE(mini2440_uartcfgs));
  535 +
  536 + s3c_device_nand.dev.platform_data = &mini2440_nand_info;
  537 + s3c_device_sdi.dev.platform_data = &mini2440_mmc_cfg;
  538 +}
  539 +
  540 +/*
  541 + * mini2440_features string
  542 + *
  543 + * t = Touchscreen present
  544 + * b = backlight control
  545 + * c = camera [TODO]
  546 + * 0-9 LCD configuration
  547 + *
  548 + */
  549 +static char mini2440_features_str[12] __initdata = "0tb";
  550 +
  551 +static int __init mini2440_features_setup(char *str)
  552 +{
  553 + if (str)
  554 + strlcpy(mini2440_features_str, str, sizeof(mini2440_features_str));
  555 + return 1;
  556 +}
  557 +
  558 +__setup("mini2440=", mini2440_features_setup);
  559 +
  560 +#define FEATURE_SCREEN (1 << 0)
  561 +#define FEATURE_BACKLIGHT (1 << 1)
  562 +#define FEATURE_TOUCH (1 << 2)
  563 +#define FEATURE_CAMERA (1 << 3)
  564 +
  565 +struct mini2440_features_t {
  566 + int count;
  567 + int done;
  568 + int lcd_index;
  569 + struct platform_device *optional[8];
  570 +};
  571 +
  572 +static void mini2440_parse_features(
  573 + struct mini2440_features_t * features,
  574 + const char * features_str )
  575 +{
  576 + const char * fp = features_str;
  577 +
  578 + features->count = 0;
  579 + features->done = 0;
  580 + features->lcd_index = -1;
  581 +
  582 + while (*fp) {
  583 + char f = *fp++;
  584 +
  585 + switch (f) {
  586 + case '0'...'9': /* tft screen */
  587 + if (features->done & FEATURE_SCREEN) {
  588 + printk(KERN_INFO "MINI2440: '%c' ignored, "
  589 + "screen type already set\n", f);
  590 + } else {
  591 + int li = f - '0';
  592 + if (li >= ARRAY_SIZE(mini2440_lcd_cfg))
  593 + printk(KERN_INFO "MINI2440: "
  594 + "'%c' out of range LCD mode\n", f);
  595 + else {
  596 + features->optional[features->count++] =
  597 + &s3c_device_lcd;
  598 + features->lcd_index = li;
  599 + }
  600 + }
  601 + features->done |= FEATURE_SCREEN;
  602 + break;
  603 + case 'b':
  604 + if (features->done & FEATURE_BACKLIGHT)
  605 + printk(KERN_INFO "MINI2440: '%c' ignored, "
  606 + "backlight already set\n", f);
  607 + else {
  608 + features->optional[features->count++] =
  609 + &mini2440_led_backlight;
  610 + }
  611 + features->done |= FEATURE_BACKLIGHT;
  612 + break;
  613 + case 't':
  614 + printk(KERN_INFO "MINI2440: '%c' ignored, "
  615 + "touchscreen not compiled in\n", f);
  616 + break;
  617 + case 'c':
  618 + if (features->done & FEATURE_CAMERA)
  619 + printk(KERN_INFO "MINI2440: '%c' ignored, "
  620 + "camera already registered\n", f);
  621 + else
  622 + features->optional[features->count++] =
  623 + &s3c_device_camif;
  624 + features->done |= FEATURE_CAMERA;
  625 + break;
  626 + }
  627 + }
  628 +}
  629 +
  630 +static void __init mini2440_init(void)
  631 +{
  632 + struct mini2440_features_t features = { 0 };
  633 + int i;
  634 +
  635 + printk(KERN_INFO "MINI2440: Option string mini2440=%s\n",
  636 + mini2440_features_str);
  637 +
  638 + /* Parse the feature string */
  639 + mini2440_parse_features(&features, mini2440_features_str);
  640 +
  641 + /* turn LCD on */
  642 + s3c2410_gpio_cfgpin(S3C2410_GPC(0), S3C2410_GPC0_LEND);
  643 +
  644 + /* Turn the backlight early on */
  645 + s3c2410_gpio_setpin(S3C2410_GPG(4), 1);
  646 + s3c2410_gpio_cfgpin(S3C2410_GPG(4), S3C2410_GPIO_OUTPUT);
  647 +
  648 + /* remove pullup on optional PWM backlight -- unused on 3.5 and 7"s */
  649 + s3c2410_gpio_pullup(S3C2410_GPB(1), 0);
  650 + s3c2410_gpio_setpin(S3C2410_GPB(1), 0);
  651 + s3c2410_gpio_cfgpin(S3C2410_GPB(1), S3C2410_GPIO_INPUT);
  652 +
  653 + /* Make sure the D+ pullup pin is output */
  654 + s3c2410_gpio_cfgpin(S3C2410_GPC(5), S3C2410_GPIO_OUTPUT);
  655 +
  656 + /* mark the key as input, without pullups (there is one on the board) */
  657 + for (i = 0; i < ARRAY_SIZE(mini2440_buttons); i++) {
  658 + s3c2410_gpio_pullup(mini2440_buttons[i].gpio, 0);
  659 + s3c2410_gpio_cfgpin(mini2440_buttons[i].gpio,
  660 + S3C2410_GPIO_INPUT);
  661 + }
  662 + if (features.lcd_index != -1) {
  663 + int li;
  664 +
  665 + mini2440_fb_info.displays =
  666 + &mini2440_lcd_cfg[features.lcd_index];
  667 +
  668 + printk(KERN_INFO "MINI2440: LCD");
  669 + for (li = 0; li < ARRAY_SIZE(mini2440_lcd_cfg); li++)
  670 + if (li == features.lcd_index)
  671 + printk(" [%d:%dx%d]", li,
  672 + mini2440_lcd_cfg[li].width,
  673 + mini2440_lcd_cfg[li].height);
  674 + else
  675 + printk(" %d:%dx%d", li,
  676 + mini2440_lcd_cfg[li].width,
  677 + mini2440_lcd_cfg[li].height);
  678 + printk("\n");
  679 + s3c24xx_fb_set_platdata(&mini2440_fb_info);
  680 + }
  681 + s3c24xx_udc_set_platdata(&mini2440_udc_cfg);
  682 + s3c_i2c0_set_platdata(NULL);
  683 + i2c_register_board_info(0, mini2440_i2c_devs,
  684 + ARRAY_SIZE(mini2440_i2c_devs));
  685 +
  686 + platform_add_devices(mini2440_devices, ARRAY_SIZE(mini2440_devices));
  687 +
  688 + if (features.count) /* the optional features */
  689 + platform_add_devices(features.optional, features.count);
  690 +
  691 +}
  692 +
  693 +
  694 +MACHINE_START(MINI2440, "MINI2440")
  695 + /* Maintainer: Michel Pollet <buserror@gmail.com> */
  696 + .phys_io = S3C2410_PA_UART,
  697 + .io_pg_offst = (((u32)S3C24XX_VA_UART) >> 18) & 0xfffc,
  698 + .boot_params = S3C2410_SDRAM_PA + 0x100,
  699 + .map_io = mini2440_map_io,
  700 + .init_machine = mini2440_init,
  701 + .init_irq = s3c24xx_init_irq,
  702 + .timer = &s3c24xx_timer,
  703 +MACHINE_END
arch/arm/mach-s3c2442/Kconfig
... ... @@ -24,6 +24,18 @@
24 24 depends on ARCH_S3C2440
25 25 select CPU_S3C2442
26 26  
  27 +config MACH_NEO1973_GTA02
  28 + bool "Openmoko GTA02 / Freerunner phone"
  29 + select CPU_S3C2442
  30 + select MFD_PCF50633
  31 + select PCF50633_GPIO
  32 + select I2C
  33 + select POWER_SUPPLY
  34 + select MACH_NEO1973
  35 + select S3C2410_PWM
  36 + help
  37 + Say Y here if you are using the Openmoko GTA02 / Freerunner GSM Phone
  38 +
27 39  
28 40 endmenu
arch/arm/mach-s3c2442/Makefile
... ... @@ -12,5 +12,7 @@
12 12 obj-$(CONFIG_CPU_S3C2442) += s3c2442.o
13 13 obj-$(CONFIG_CPU_S3C2442) += clock.o
14 14  
  15 +obj-$(CONFIG_MACH_NEO1973_GTA02) += mach-gta02.o
  16 +
15 17 # Machine support
arch/arm/mach-s3c2442/include/mach/gta02.h
  1 +#ifndef _GTA02_H
  2 +#define _GTA02_H
  3 +
  4 +#include <mach/regs-gpio.h>
  5 +
  6 +/* Different hardware revisions, passed in ATAG_REVISION by u-boot */
  7 +#define GTA02v1_SYSTEM_REV 0x00000310
  8 +#define GTA02v2_SYSTEM_REV 0x00000320
  9 +#define GTA02v3_SYSTEM_REV 0x00000330
  10 +#define GTA02v4_SYSTEM_REV 0x00000340
  11 +#define GTA02v5_SYSTEM_REV 0x00000350
  12 +/* since A7 is basically same as A6, we use A6 PCB ID */
  13 +#define GTA02v6_SYSTEM_REV 0x00000360
  14 +
  15 +#define GTA02_GPIO_n3DL_GSM S3C2410_GPA(13) /* v1 + v2 + v3 only */
  16 +
  17 +#define GTA02_GPIO_PWR_LED1 S3C2410_GPB(0)
  18 +#define GTA02_GPIO_PWR_LED2 S3C2410_GPB(1)
  19 +#define GTA02_GPIO_AUX_LED S3C2410_GPB(2)
  20 +#define GTA02_GPIO_VIBRATOR_ON S3C2410_GPB(3)
  21 +#define GTA02_GPIO_MODEM_RST S3C2410_GPB(5)
  22 +#define GTA02_GPIO_BT_EN S3C2410_GPB(6)
  23 +#define GTA02_GPIO_MODEM_ON S3C2410_GPB(7)
  24 +#define GTA02_GPIO_EXTINT8 S3C2410_GPB(8)
  25 +#define GTA02_GPIO_USB_PULLUP S3C2410_GPB(9)
  26 +
  27 +#define GTA02_GPIO_PIO5 S3C2410_GPC(5) /* v3 + v4 only */
  28 +
  29 +#define GTA02v3_GPIO_nG1_CS S3C2410_GPD(12) /* v3 + v4 only */
  30 +#define GTA02v3_GPIO_nG2_CS S3C2410_GPD(13) /* v3 + v4 only */
  31 +#define GTA02v5_GPIO_HDQ S3C2410_GPD(14) /* v5 + */
  32 +
  33 +#define GTA02_GPIO_nG1_INT S3C2410_GPF(0)
  34 +#define GTA02_GPIO_IO1 S3C2410_GPF(1)
  35 +#define GTA02_GPIO_PIO_2 S3C2410_GPF(2) /* v2 + v3 + v4 only */
  36 +#define GTA02_GPIO_JACK_INSERT S3C2410_GPF(4)
  37 +#define GTA02_GPIO_WLAN_GPIO1 S3C2410_GPF(5) /* v2 + v3 + v4 only */
  38 +#define GTA02_GPIO_AUX_KEY S3C2410_GPF(6)
  39 +#define GTA02_GPIO_HOLD_KEY S3C2410_GPF(7)
  40 +
  41 +#define GTA02_GPIO_3D_IRQ S3C2410_GPG(4)
  42 +#define GTA02v2_GPIO_nG2_INT S3C2410_GPG(8) /* v2 + v3 + v4 only */
  43 +#define GTA02v3_GPIO_nUSB_OC S3C2410_GPG(9) /* v3 + v4 only */
  44 +#define GTA02v3_GPIO_nUSB_FLT S3C2410_GPG(10) /* v3 + v4 only */
  45 +#define GTA02v3_GPIO_nGSM_OC S3C2410_GPG(11) /* v3 + v4 only */
  46 +
  47 +#define GTA02_GPIO_AMP_SHUT S3C2440_GPJ1 /* v2 + v3 + v4 only */
  48 +#define GTA02v1_GPIO_WLAN_GPIO10 S3C2440_GPJ2
  49 +#define GTA02_GPIO_HP_IN S3C2440_GPJ2 /* v2 + v3 + v4 only */
  50 +#define GTA02_GPIO_INT0 S3C2440_GPJ3 /* v2 + v3 + v4 only */
  51 +#define GTA02_GPIO_nGSM_EN S3C2440_GPJ4
  52 +#define GTA02_GPIO_3D_RESET S3C2440_GPJ5
  53 +#define GTA02_GPIO_nDL_GSM S3C2440_GPJ6 /* v4 + v5 only */
  54 +#define GTA02_GPIO_WLAN_GPIO0 S3C2440_GPJ7
  55 +#define GTA02v1_GPIO_BAT_ID S3C2440_GPJ8
  56 +#define GTA02_GPIO_KEEPACT S3C2440_GPJ8
  57 +#define GTA02v1_GPIO_HP_IN S3C2440_GPJ10
  58 +#define GTA02_CHIP_PWD S3C2440_GPJ11 /* v2 + v3 + v4 only */
  59 +#define GTA02_GPIO_nWLAN_RESET S3C2440_GPJ12 /* v2 + v3 + v4 only */
  60 +
  61 +#define GTA02_IRQ_GSENSOR_1 IRQ_EINT0
  62 +#define GTA02_IRQ_MODEM IRQ_EINT1
  63 +#define GTA02_IRQ_PIO_2 IRQ_EINT2 /* v2 + v3 + v4 only */
  64 +#define GTA02_IRQ_nJACK_INSERT IRQ_EINT4
  65 +#define GTA02_IRQ_WLAN_GPIO1 IRQ_EINT5
  66 +#define GTA02_IRQ_AUX IRQ_EINT6
  67 +#define GTA02_IRQ_nHOLD IRQ_EINT7
  68 +#define GTA02_IRQ_PCF50633 IRQ_EINT9
  69 +#define GTA02_IRQ_3D IRQ_EINT12
  70 +#define GTA02_IRQ_GSENSOR_2 IRQ_EINT16 /* v2 + v3 + v4 only */
  71 +#define GTA02v3_IRQ_nUSB_OC IRQ_EINT17 /* v3 + v4 only */
  72 +#define GTA02v3_IRQ_nUSB_FLT IRQ_EINT18 /* v3 + v4 only */
  73 +#define GTA02v3_IRQ_nGSM_OC IRQ_EINT19 /* v3 + v4 only */
  74 +
  75 +/* returns 00 000 on GTA02 A5 and earlier, A6 returns 01 001 */
  76 +#define GTA02_PCB_ID1_0 S3C2410_GPC(13)
  77 +#define GTA02_PCB_ID1_1 S3C2410_GPC(15)
  78 +#define GTA02_PCB_ID1_2 S3C2410_GPD(0)
  79 +#define GTA02_PCB_ID2_0 S3C2410_GPD(3)
  80 +#define GTA02_PCB_ID2_1 S3C2410_GPD(4)
  81 +
  82 +int gta02_get_pcb_revision(void);
  83 +
  84 +#endif /* _GTA02_H */
arch/arm/mach-s3c2442/mach-gta02.c
  1 +/*
  2 + * linux/arch/arm/mach-s3c2442/mach-gta02.c
  3 + *
  4 + * S3C2442 Machine Support for Openmoko GTA02 / FreeRunner.
  5 + *
  6 + * Copyright (C) 2006-2009 by Openmoko, Inc.
  7 + * Authors: Harald Welte <laforge@openmoko.org>
  8 + * Andy Green <andy@openmoko.org>
  9 + * Werner Almesberger <werner@openmoko.org>
  10 + * All rights reserved.
  11 + *
  12 + * This program is free software; you can redistribute it and/or
  13 + * modify it under the terms of the GNU General Public License as
  14 + * published by the Free Software Foundation; either version 2 of
  15 + * the License, or (at your option) any later version.
  16 + *
  17 + * This program is distributed in the hope that it will be useful,
  18 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
  19 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  20 + * GNU General Public License for more details.
  21 + *
  22 + * You should have received a copy of the GNU General Public License
  23 + * along with this program; if not, write to the Free Software
  24 + * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
  25 + * MA 02111-1307 USA
  26 + *
  27 + */
  28 +
  29 +#include <linux/kernel.h>
  30 +#include <linux/types.h>
  31 +#include <linux/interrupt.h>
  32 +#include <linux/list.h>
  33 +#include <linux/delay.h>
  34 +#include <linux/timer.h>
  35 +#include <linux/init.h>
  36 +#include <linux/gpio.h>
  37 +#include <linux/workqueue.h>
  38 +#include <linux/platform_device.h>
  39 +#include <linux/serial_core.h>
  40 +#include <linux/spi/spi.h>
  41 +
  42 +#include <linux/mmc/host.h>
  43 +
  44 +#include <linux/mtd/mtd.h>
  45 +#include <linux/mtd/nand.h>
  46 +#include <linux/mtd/nand_ecc.h>
  47 +#include <linux/mtd/partitions.h>
  48 +#include <linux/mtd/physmap.h>
  49 +#include <linux/io.h>
  50 +
  51 +#include <linux/i2c.h>
  52 +#include <linux/backlight.h>
  53 +#include <linux/regulator/machine.h>
  54 +
  55 +#include <linux/mfd/pcf50633/core.h>
  56 +#include <linux/mfd/pcf50633/mbc.h>
  57 +#include <linux/mfd/pcf50633/adc.h>
  58 +#include <linux/mfd/pcf50633/gpio.h>
  59 +#include <linux/mfd/pcf50633/pmic.h>
  60 +
  61 +#include <asm/mach/arch.h>
  62 +#include <asm/mach/map.h>
  63 +#include <asm/mach/irq.h>
  64 +
  65 +#include <asm/irq.h>
  66 +#include <asm/mach-types.h>
  67 +
  68 +#include <mach/regs-irq.h>
  69 +#include <mach/regs-gpio.h>
  70 +#include <mach/regs-gpioj.h>
  71 +#include <mach/fb.h>
  72 +
  73 +#include <mach/spi.h>
  74 +#include <mach/spi-gpio.h>
  75 +#include <plat/usb-control.h>
  76 +#include <mach/regs-mem.h>
  77 +#include <mach/hardware.h>
  78 +
  79 +#include <mach/gta02.h>
  80 +
  81 +#include <plat/regs-serial.h>
  82 +#include <plat/nand.h>
  83 +#include <plat/devs.h>
  84 +#include <plat/cpu.h>
  85 +#include <plat/pm.h>
  86 +#include <plat/udc.h>
  87 +#include <plat/gpio-cfg.h>
  88 +#include <plat/iic.h>
  89 +
  90 +static struct pcf50633 *gta02_pcf;
  91 +
  92 +/*
  93 + * This gets called every 1ms when we paniced.
  94 + */
  95 +
  96 +static long gta02_panic_blink(long count)
  97 +{
  98 + long delay = 0;
  99 + static long last_blink;
  100 + static char led;
  101 +
  102 + /* Fast blink: 200ms period. */
  103 + if (count - last_blink < 100)
  104 + return 0;
  105 +
  106 + led ^= 1;
  107 + gpio_direction_output(GTA02_GPIO_AUX_LED, led);
  108 +
  109 + last_blink = count;
  110 +
  111 + return delay;
  112 +}
  113 +
  114 +
  115 +static struct map_desc gta02_iodesc[] __initdata = {
  116 + {
  117 + .virtual = 0xe0000000,
  118 + .pfn = __phys_to_pfn(S3C2410_CS3 + 0x01000000),
  119 + .length = SZ_1M,
  120 + .type = MT_DEVICE
  121 + },
  122 +};
  123 +
  124 +#define UCON (S3C2410_UCON_DEFAULT | S3C2443_UCON_RXERR_IRQEN)
  125 +#define ULCON (S3C2410_LCON_CS8 | S3C2410_LCON_PNONE | S3C2410_LCON_STOPB)
  126 +#define UFCON (S3C2410_UFCON_RXTRIG8 | S3C2410_UFCON_FIFOMODE)
  127 +
  128 +static struct s3c2410_uartcfg gta02_uartcfgs[] = {
  129 + [0] = {
  130 + .hwport = 0,
  131 + .flags = 0,
  132 + .ucon = UCON,
  133 + .ulcon = ULCON,
  134 + .ufcon = UFCON,
  135 + },
  136 + [1] = {
  137 + .hwport = 1,
  138 + .flags = 0,
  139 + .ucon = UCON,
  140 + .ulcon = ULCON,
  141 + .ufcon = UFCON,
  142 + },
  143 + [2] = {
  144 + .hwport = 2,
  145 + .flags = 0,
  146 + .ucon = UCON,
  147 + .ulcon = ULCON,
  148 + .ufcon = UFCON,
  149 + },
  150 +};
  151 +
  152 +#ifdef CONFIG_CHARGER_PCF50633
  153 +/*
  154 + * On GTA02 the 1A charger features a 48K resistor to 0V on the ID pin.
  155 + * We use this to recognize that we can pull 1A from the USB socket.
  156 + *
  157 + * These constants are the measured pcf50633 ADC levels with the 1A
  158 + * charger / 48K resistor, and with no pulldown resistor.
  159 + */
  160 +
  161 +#define ADC_NOM_CHG_DETECT_1A 6
  162 +#define ADC_NOM_CHG_DETECT_USB 43
  163 +
  164 +static void
  165 +gta02_configure_pmu_for_charger(struct pcf50633 *pcf, void *unused, int res)
  166 +{
  167 + int ma;
  168 +
  169 + /* Interpret charger type */
  170 + if (res < ((ADC_NOM_CHG_DETECT_USB + ADC_NOM_CHG_DETECT_1A) / 2)) {
  171 +
  172 + /*
  173 + * Sanity - stop GPO driving out now that we have a 1A charger
  174 + * GPO controls USB Host power generation on GTA02
  175 + */
  176 + pcf50633_gpio_set(pcf, PCF50633_GPO, 0);
  177 +
  178 + ma = 1000;
  179 + } else
  180 + ma = 100;
  181 +
  182 + pcf50633_mbc_usb_curlim_set(pcf, ma);
  183 +}
  184 +
  185 +static struct delayed_work gta02_charger_work;
  186 +static int gta02_usb_vbus_draw;
  187 +
  188 +static void gta02_charger_worker(struct work_struct *work)
  189 +{
  190 + if (gta02_usb_vbus_draw) {
  191 + pcf50633_mbc_usb_curlim_set(gta02_pcf, gta02_usb_vbus_draw);
  192 + return;
  193 + }
  194 +
  195 +#ifdef CONFIG_PCF50633_ADC
  196 + pcf50633_adc_async_read(gta02_pcf,
  197 + PCF50633_ADCC1_MUX_ADCIN1,
  198 + PCF50633_ADCC1_AVERAGE_16,
  199 + gta02_configure_pmu_for_charger,
  200 + NULL);
  201 +#else
  202 + /*
  203 + * If the PCF50633 ADC is disabled we fallback to a
  204 + * 100mA limit for safety.
  205 + */
  206 + pcf50633_mbc_usb_curlim_set(pcf, 100);
  207 +#endif
  208 +}
  209 +
  210 +#define GTA02_CHARGER_CONFIGURE_TIMEOUT ((3000 * HZ) / 1000)
  211 +
  212 +static void gta02_pmu_event_callback(struct pcf50633 *pcf, int irq)
  213 +{
  214 + if (irq == PCF50633_IRQ_USBINS) {
  215 + schedule_delayed_work(&gta02_charger_work,
  216 + GTA02_CHARGER_CONFIGURE_TIMEOUT);
  217 +
  218 + return;
  219 + }
  220 +
  221 + if (irq == PCF50633_IRQ_USBREM) {
  222 + cancel_delayed_work_sync(&gta02_charger_work);
  223 + gta02_usb_vbus_draw = 0;
  224 + }
  225 +}
  226 +
  227 +static void gta02_udc_vbus_draw(unsigned int ma)
  228 +{
  229 + if (!gta02_pcf)
  230 + return;
  231 +
  232 + gta02_usb_vbus_draw = ma;
  233 +
  234 + schedule_delayed_work(&gta02_charger_work,
  235 + GTA02_CHARGER_CONFIGURE_TIMEOUT);
  236 +}
  237 +#else /* !CONFIG_CHARGER_PCF50633 */
  238 +#define gta02_pmu_event_callback NULL
  239 +#define gta02_udc_vbus_draw NULL
  240 +#endif
  241 +
  242 +/*
  243 + * This is called when pc50633 is probed, unfortunately quite late in the
  244 + * day since it is an I2C bus device. Here we can belatedly define some
  245 + * platform devices with the advantage that we can mark the pcf50633 as the
  246 + * parent. This makes them get suspended and resumed with their parent
  247 + * the pcf50633 still around.
  248 + */
  249 +
  250 +static void gta02_pmu_attach_child_devices(struct pcf50633 *pcf);
  251 +
  252 +
  253 +static char *gta02_batteries[] = {
  254 + "battery",
  255 +};
  256 +
  257 +struct pcf50633_platform_data gta02_pcf_pdata = {
  258 + .resumers = {
  259 + [0] = PCF50633_INT1_USBINS |
  260 + PCF50633_INT1_USBREM |
  261 + PCF50633_INT1_ALARM,
  262 + [1] = PCF50633_INT2_ONKEYF,
  263 + [2] = PCF50633_INT3_ONKEY1S,
  264 + [3] = PCF50633_INT4_LOWSYS |
  265 + PCF50633_INT4_LOWBAT |
  266 + PCF50633_INT4_HIGHTMP,
  267 + },
  268 +
  269 + .batteries = gta02_batteries,
  270 + .num_batteries = ARRAY_SIZE(gta02_batteries),
  271 + .reg_init_data = {
  272 + [PCF50633_REGULATOR_AUTO] = {
  273 + .constraints = {
  274 + .min_uV = 3300000,
  275 + .max_uV = 3300000,
  276 + .valid_modes_mask = REGULATOR_MODE_NORMAL,
  277 + .always_on = 1,
  278 + .apply_uV = 1,
  279 + .state_mem = {
  280 + .enabled = 1,
  281 + },
  282 + },
  283 + },
  284 + [PCF50633_REGULATOR_DOWN1] = {
  285 + .constraints = {
  286 + .min_uV = 1300000,
  287 + .max_uV = 1600000,
  288 + .valid_modes_mask = REGULATOR_MODE_NORMAL,
  289 + .always_on = 1,
  290 + .apply_uV = 1,
  291 + },
  292 + },
  293 + [PCF50633_REGULATOR_DOWN2] = {
  294 + .constraints = {
  295 + .min_uV = 1800000,
  296 + .max_uV = 1800000,
  297 + .valid_modes_mask = REGULATOR_MODE_NORMAL,
  298 + .apply_uV = 1,
  299 + .always_on = 1,
  300 + .state_mem = {
  301 + .enabled = 1,
  302 + },
  303 + },
  304 + },
  305 + [PCF50633_REGULATOR_HCLDO] = {
  306 + .constraints = {
  307 + .min_uV = 2000000,
  308 + .max_uV = 3300000,
  309 + .valid_modes_mask = REGULATOR_MODE_NORMAL,
  310 + .valid_ops_mask = REGULATOR_CHANGE_VOLTAGE,
  311 + .always_on = 1,
  312 + },
  313 + },
  314 + [PCF50633_REGULATOR_LDO1] = {
  315 + .constraints = {
  316 + .min_uV = 3300000,
  317 + .max_uV = 3300000,
  318 + .valid_modes_mask = REGULATOR_MODE_NORMAL,
  319 + .apply_uV = 1,
  320 + .state_mem = {
  321 + .enabled = 0,
  322 + },
  323 + },
  324 + },
  325 + [PCF50633_REGULATOR_LDO2] = {
  326 + .constraints = {
  327 + .min_uV = 3300000,
  328 + .max_uV = 3300000,
  329 + .valid_modes_mask = REGULATOR_MODE_NORMAL,
  330 + .apply_uV = 1,
  331 + },
  332 + },
  333 + [PCF50633_REGULATOR_LDO3] = {
  334 + .constraints = {
  335 + .min_uV = 3000000,
  336 + .max_uV = 3000000,
  337 + .valid_modes_mask = REGULATOR_MODE_NORMAL,
  338 + .apply_uV = 1,
  339 + },
  340 + },
  341 + [PCF50633_REGULATOR_LDO4] = {
  342 + .constraints = {
  343 + .min_uV = 3200000,
  344 + .max_uV = 3200000,
  345 + .valid_modes_mask = REGULATOR_MODE_NORMAL,
  346 + .apply_uV = 1,
  347 + },
  348 + },
  349 + [PCF50633_REGULATOR_LDO5] = {
  350 + .constraints = {
  351 + .min_uV = 3000000,
  352 + .max_uV = 3000000,
  353 + .valid_modes_mask = REGULATOR_MODE_NORMAL,
  354 + .apply_uV = 1,
  355 + .state_mem = {
  356 + .enabled = 1,
  357 + },
  358 + },
  359 + },
  360 + [PCF50633_REGULATOR_LDO6] = {
  361 + .constraints = {
  362 + .min_uV = 3000000,
  363 + .max_uV = 3000000,
  364 + .valid_modes_mask = REGULATOR_MODE_NORMAL,
  365 + },
  366 + },
  367 + [PCF50633_REGULATOR_MEMLDO] = {
  368 + .constraints = {
  369 + .min_uV = 1800000,
  370 + .max_uV = 1800000,
  371 + .valid_modes_mask = REGULATOR_MODE_NORMAL,
  372 + .state_mem = {
  373 + .enabled = 1,
  374 + },
  375 + },
  376 + },
  377 +
  378 + },
  379 + .probe_done = gta02_pmu_attach_child_devices,
  380 + .mbc_event_callback = gta02_pmu_event_callback,
  381 +};
  382 +
  383 +
  384 +/* NOR Flash. */
  385 +
  386 +#define GTA02_FLASH_BASE 0x18000000 /* GCS3 */
  387 +#define GTA02_FLASH_SIZE 0x200000 /* 2MBytes */
  388 +
  389 +static struct physmap_flash_data gta02_nor_flash_data = {
  390 + .width = 2,
  391 +};
  392 +
  393 +static struct resource gta02_nor_flash_resource = {
  394 + .start = GTA02_FLASH_BASE,
  395 + .end = GTA02_FLASH_BASE + GTA02_FLASH_SIZE - 1,
  396 + .flags = IORESOURCE_MEM,
  397 +};
  398 +
  399 +static struct platform_device gta02_nor_flash = {
  400 + .name = "physmap-flash",
  401 + .id = 0,
  402 + .dev = {
  403 + .platform_data = &gta02_nor_flash_data,
  404 + },
  405 + .resource = &gta02_nor_flash_resource,
  406 + .num_resources = 1,
  407 +};
  408 +
  409 +
  410 +struct platform_device s3c24xx_pwm_device = {
  411 + .name = "s3c24xx_pwm",
  412 + .num_resources = 0,
  413 +};
  414 +
  415 +static struct i2c_board_info gta02_i2c_devs[] __initdata = {
  416 + {
  417 + I2C_BOARD_INFO("pcf50633", 0x73),
  418 + .irq = GTA02_IRQ_PCF50633,
  419 + .platform_data = &gta02_pcf_pdata,
  420 + },
  421 + {
  422 + I2C_BOARD_INFO("wm8753", 0x1a),
  423 + },
  424 +};
  425 +
  426 +static struct s3c2410_nand_set gta02_nand_sets[] = {
  427 + [0] = {
  428 + /*
  429 + * This name is also hard-coded in the boot loaders, so
  430 + * changing it would would require all users to upgrade
  431 + * their boot loaders, some of which are stored in a NOR
  432 + * that is considered to be immutable.
  433 + */
  434 + .name = "neo1973-nand",
  435 + .nr_chips = 1,
  436 + .use_bbt = 1,
  437 + .force_soft_ecc = 1,
  438 + },
  439 +};
  440 +
  441 +/*
  442 + * Choose a set of timings derived from S3C@2442B MCP54
  443 + * data sheet (K5D2G13ACM-D075 MCP Memory).
  444 + */
  445 +
  446 +static struct s3c2410_platform_nand gta02_nand_info = {
  447 + .tacls = 0,
  448 + .twrph0 = 25,
  449 + .twrph1 = 15,
  450 + .nr_sets = ARRAY_SIZE(gta02_nand_sets),
  451 + .sets = gta02_nand_sets,
  452 +};
  453 +
  454 +
  455 +static void gta02_udc_command(enum s3c2410_udc_cmd_e cmd)
  456 +{
  457 + switch (cmd) {
  458 + case S3C2410_UDC_P_ENABLE:
  459 + pr_debug("%s S3C2410_UDC_P_ENABLE\n", __func__);
  460 + gpio_direction_output(GTA02_GPIO_USB_PULLUP, 1);
  461 + break;
  462 + case S3C2410_UDC_P_DISABLE:
  463 + pr_debug("%s S3C2410_UDC_P_DISABLE\n", __func__);
  464 + gpio_direction_output(GTA02_GPIO_USB_PULLUP, 0);
  465 + break;
  466 + case S3C2410_UDC_P_RESET:
  467 + pr_debug("%s S3C2410_UDC_P_RESET\n", __func__);
  468 + /* FIXME: Do something here. */
  469 + }
  470 +}
  471 +
  472 +/* Get PMU to set USB current limit accordingly. */
  473 +static struct s3c2410_udc_mach_info gta02_udc_cfg = {
  474 + .vbus_draw = gta02_udc_vbus_draw,
  475 + .udc_command = gta02_udc_command,
  476 +
  477 +};
  478 +
  479 +
  480 +
  481 +static void gta02_bl_set_intensity(int intensity)
  482 +{
  483 + struct pcf50633 *pcf = gta02_pcf;
  484 + int old_intensity = pcf50633_reg_read(pcf, PCF50633_REG_LEDOUT);
  485 +
  486 + /* We map 8-bit intensity to 6-bit intensity in hardware. */
  487 + intensity >>= 2;
  488 +
  489 + /*
  490 + * This can happen during, eg, print of panic on blanked console,
  491 + * but we can't service i2c without interrupts active, so abort.
  492 + */
  493 + if (in_atomic()) {
  494 + printk(KERN_ERR "gta02_bl_set_intensity called while atomic\n");
  495 + return;
  496 + }
  497 +
  498 + old_intensity = pcf50633_reg_read(pcf, PCF50633_REG_LEDOUT);
  499 + if (intensity == old_intensity)
  500 + return;
  501 +
  502 + /* We can't do this anywhere else. */
  503 + pcf50633_reg_write(pcf, PCF50633_REG_LEDDIM, 5);
  504 +
  505 + if (!(pcf50633_reg_read(pcf, PCF50633_REG_LEDENA) & 3))
  506 + old_intensity = 0;
  507 +
  508 + /*
  509 + * The PCF50633 cannot handle LEDOUT = 0 (datasheet p60)
  510 + * if seen, you have to re-enable the LED unit.
  511 + */
  512 + if (!intensity || !old_intensity)
  513 + pcf50633_reg_write(pcf, PCF50633_REG_LEDENA, 0);
  514 +
  515 + /* Illegal to set LEDOUT to 0. */
  516 + if (!intensity)
  517 + pcf50633_reg_set_bit_mask(pcf, PCF50633_REG_LEDOUT, 0x3f, 2);
  518 + else
  519 + pcf50633_reg_set_bit_mask(pcf, PCF50633_REG_LEDOUT, 0x3f,
  520 + intensity);
  521 +
  522 + if (intensity)
  523 + pcf50633_reg_write(pcf, PCF50633_REG_LEDENA, 2);
  524 +
  525 +}
  526 +
  527 +static struct generic_bl_info gta02_bl_info = {
  528 + .name = "gta02-bl",
  529 + .max_intensity = 0xff,
  530 + .default_intensity = 0xff,
  531 + .set_bl_intensity = gta02_bl_set_intensity,
  532 +};
  533 +
  534 +static struct platform_device gta02_bl_dev = {
  535 + .name = "generic-bl",
  536 + .id = 1,
  537 + .dev = {
  538 + .platform_data = &gta02_bl_info,
  539 + },
  540 +};
  541 +
  542 +
  543 +
  544 +/* USB */
  545 +static struct s3c2410_hcd_info gta02_usb_info = {
  546 + .port[0] = {
  547 + .flags = S3C_HCDFLG_USED,
  548 + },
  549 + .port[1] = {
  550 + .flags = 0,
  551 + },
  552 +};
  553 +
  554 +
  555 +static void __init gta02_map_io(void)
  556 +{
  557 + s3c24xx_init_io(gta02_iodesc, ARRAY_SIZE(gta02_iodesc));
  558 + s3c24xx_init_clocks(12000000);
  559 + s3c24xx_init_uarts(gta02_uartcfgs, ARRAY_SIZE(gta02_uartcfgs));
  560 +}
  561 +
  562 +
  563 +/* These are the guys that don't need to be children of PMU. */
  564 +
  565 +static struct platform_device *gta02_devices[] __initdata = {
  566 + &s3c_device_usb,
  567 + &s3c_device_wdt,
  568 + &s3c_device_sdi,
  569 + &s3c_device_usbgadget,
  570 + &s3c_device_nand,
  571 + &gta02_nor_flash,
  572 + &s3c24xx_pwm_device,
  573 + &s3c_device_iis,
  574 + &s3c_device_i2c0,
  575 +};
  576 +
  577 +/* These guys DO need to be children of PMU. */
  578 +
  579 +static struct platform_device *gta02_devices_pmu_children[] = {
  580 + &gta02_bl_dev,
  581 +};
  582 +
  583 +
  584 +/*
  585 + * This is called when pc50633 is probed, quite late in the day since it is an
  586 + * I2C bus device. Here we can define platform devices with the advantage that
  587 + * we can mark the pcf50633 as the parent. This makes them get suspended and
  588 + * resumed with their parent the pcf50633 still around. All devices whose
  589 + * operation depends on something from pcf50633 must have this relationship
  590 + * made explicit like this, or suspend and resume will become an unreliable
  591 + * hellworld.
  592 + */
  593 +
  594 +static void gta02_pmu_attach_child_devices(struct pcf50633 *pcf)
  595 +{
  596 + int n;
  597 +
  598 + /* Grab a copy of the now probed PMU pointer. */
  599 + gta02_pcf = pcf;
  600 +
  601 + for (n = 0; n < ARRAY_SIZE(gta02_devices_pmu_children); n++)
  602 + gta02_devices_pmu_children[n]->dev.parent = pcf->dev;
  603 +
  604 + platform_add_devices(gta02_devices_pmu_children,
  605 + ARRAY_SIZE(gta02_devices_pmu_children));
  606 +}
  607 +
  608 +static void gta02_poweroff(void)
  609 +{
  610 + pcf50633_reg_set_bit_mask(gta02_pcf, PCF50633_REG_OOCSHDWN, 1, 1);
  611 +}
  612 +
  613 +static void __init gta02_machine_init(void)
  614 +{
  615 + /* Set the panic callback to make AUX LED blink at ~5Hz. */
  616 + panic_blink = gta02_panic_blink;
  617 +
  618 + s3c_pm_init();
  619 +
  620 +#ifdef CONFIG_CHARGER_PCF50633
  621 + INIT_DELAYED_WORK(&gta02_charger_work, gta02_charger_worker);
  622 +#endif
  623 +
  624 + s3c_device_usb.dev.platform_data = &gta02_usb_info;
  625 + s3c_device_nand.dev.platform_data = &gta02_nand_info;
  626 +
  627 + s3c24xx_udc_set_platdata(&gta02_udc_cfg);
  628 + s3c_i2c0_set_platdata(NULL);
  629 +
  630 + i2c_register_board_info(0, gta02_i2c_devs, ARRAY_SIZE(gta02_i2c_devs));
  631 +
  632 + platform_add_devices(gta02_devices, ARRAY_SIZE(gta02_devices));
  633 + pm_power_off = gta02_poweroff;
  634 +}
  635 +
  636 +
  637 +MACHINE_START(NEO1973_GTA02, "GTA02")
  638 + /* Maintainer: Nelson Castillo <arhuaco@freaks-unidos.net> */
  639 + .phys_io = S3C2410_PA_UART,
  640 + .io_pg_offst = (((u32)S3C24XX_VA_UART) >> 18) & 0xfffc,
  641 + .boot_params = S3C2410_SDRAM_PA + 0x100,
  642 + .map_io = gta02_map_io,
  643 + .init_irq = s3c24xx_init_irq,
  644 + .init_machine = gta02_machine_init,
  645 + .timer = &s3c24xx_timer,
  646 +MACHINE_END
arch/arm/plat-s3c/Makefile
... ... @@ -34,6 +34,7 @@
34 34 obj-$(CONFIG_S3C_DEV_HSMMC1) += dev-hsmmc1.o
35 35 obj-y += dev-i2c0.o
36 36 obj-$(CONFIG_S3C_DEV_I2C1) += dev-i2c1.o
  37 +obj-$(CONFIG_SND_S3C24XX_SOC) += dev-audio.o
37 38 obj-$(CONFIG_S3C_DEV_FB) += dev-fb.o
38 39 obj-$(CONFIG_S3C_DEV_USB_HOST) += dev-usb.o
39 40 obj-$(CONFIG_S3C_DEV_USB_HSOTG) += dev-usb-hsotg.o
arch/arm/plat-s3c/dev-audio.c
  1 +/* linux/arch/arm/plat-s3c/dev-audio.c
  2 + *
  3 + * Copyright 2009 Wolfson Microelectronics
  4 + * Mark Brown <broonie@opensource.wolfsonmicro.com>
  5 + *
  6 +
  7 + * This program is free software; you can redistribute it and/or modify
  8 + * it under the terms of the GNU General Public License version 2 as
  9 + * published by the Free Software Foundation.
  10 + */
  11 +
  12 +#include <linux/kernel.h>
  13 +#include <linux/string.h>
  14 +#include <linux/platform_device.h>
  15 +
  16 +#include <mach/irqs.h>
  17 +#include <mach/map.h>
  18 +
  19 +#include <plat/devs.h>
  20 +
  21 +
  22 +static struct resource s3c64xx_iis0_resource[] = {
  23 + [0] = {
  24 + .start = S3C64XX_PA_IIS0,
  25 + .end = S3C64XX_PA_IIS0 + 0x100 - 1,
  26 + .flags = IORESOURCE_MEM,
  27 + },
  28 +};
  29 +
  30 +struct platform_device s3c64xx_device_iis0 = {
  31 + .name = "s3c64xx-iis",
  32 + .id = 0,
  33 + .num_resources = ARRAY_SIZE(s3c64xx_iis0_resource),
  34 + .resource = s3c64xx_iis0_resource,
  35 +};
  36 +EXPORT_SYMBOL(s3c64xx_device_iis0);
  37 +
  38 +static struct resource s3c64xx_iis1_resource[] = {
  39 + [0] = {
  40 + .start = S3C64XX_PA_IIS1,
  41 + .end = S3C64XX_PA_IIS1 + 0x100 - 1,
  42 + .flags = IORESOURCE_MEM,
  43 + },
  44 +};
  45 +
  46 +struct platform_device s3c64xx_device_iis1 = {
  47 + .name = "s3c64xx-iis",
  48 + .id = 1,
  49 + .num_resources = ARRAY_SIZE(s3c64xx_iis1_resource),
  50 + .resource = s3c64xx_iis1_resource,
  51 +};
  52 +EXPORT_SYMBOL(s3c64xx_device_iis1);
  53 +
  54 +static struct resource s3c64xx_iisv4_resource[] = {
  55 + [0] = {
  56 + .start = S3C64XX_PA_IISV4,
  57 + .end = S3C64XX_PA_IISV4 + 0x100 - 1,
  58 + .flags = IORESOURCE_MEM,
  59 + },
  60 +};
  61 +
  62 +struct platform_device s3c64xx_device_iisv4 = {
  63 + .name = "s3c64xx-iis-v4",
  64 + .id = -1,
  65 + .num_resources = ARRAY_SIZE(s3c64xx_iisv4_resource),
  66 + .resource = s3c64xx_iisv4_resource,
  67 +};
  68 +EXPORT_SYMBOL(s3c64xx_device_iisv4);
arch/arm/plat-s3c/include/plat/devs.h
... ... @@ -24,13 +24,16 @@
24 24  
25 25 extern struct platform_device s3c_device_timer[];
26 26  
  27 +extern struct platform_device s3c64xx_device_iis0;
  28 +extern struct platform_device s3c64xx_device_iis1;
  29 +extern struct platform_device s3c64xx_device_iisv4;
  30 +
27 31 extern struct platform_device s3c_device_fb;
28 32 extern struct platform_device s3c_device_usb;
29 33 extern struct platform_device s3c_device_lcd;
30 34 extern struct platform_device s3c_device_wdt;
31 35 extern struct platform_device s3c_device_i2c0;
32 36 extern struct platform_device s3c_device_i2c1;
33   -extern struct platform_device s3c_device_iis;
34 37 extern struct platform_device s3c_device_rtc;
35 38 extern struct platform_device s3c_device_adc;
36 39 extern struct platform_device s3c_device_sdi;
arch/arm/plat-s3c64xx/Makefile
... ... @@ -23,6 +23,7 @@
23 23  
24 24 obj-$(CONFIG_CPU_S3C6400_INIT) += s3c6400-init.o
25 25 obj-$(CONFIG_CPU_S3C6400_CLOCK) += s3c6400-clock.o
  26 +obj-$(CONFIG_CPU_FREQ_S3C64XX) += cpufreq.o
26 27  
27 28 # PM support
28 29  
arch/arm/plat-s3c64xx/cpufreq.c
  1 +/* linux/arch/arm/plat-s3c64xx/cpufreq.c
  2 + *
  3 + * Copyright 2009 Wolfson Microelectronics plc
  4 + *
  5 + * S3C64xx CPUfreq Support
  6 + *
  7 + * This program is free software; you can redistribute it and/or modify
  8 + * it under the terms of the GNU General Public License version 2 as
  9 + * published by the Free Software Foundation.
  10 + */
  11 +
  12 +#include <linux/kernel.h>
  13 +#include <linux/types.h>
  14 +#include <linux/init.h>
  15 +#include <linux/cpufreq.h>
  16 +#include <linux/clk.h>
  17 +#include <linux/err.h>
  18 +#include <linux/regulator/consumer.h>
  19 +
  20 +static struct clk *armclk;
  21 +static struct regulator *vddarm;
  22 +
  23 +#ifdef CONFIG_CPU_S3C6410
  24 +struct s3c64xx_dvfs {
  25 + unsigned int vddarm_min;
  26 + unsigned int vddarm_max;
  27 +};
  28 +
  29 +static struct s3c64xx_dvfs s3c64xx_dvfs_table[] = {
  30 + [0] = { 1000000, 1000000 },
  31 + [1] = { 1000000, 1050000 },
  32 + [2] = { 1050000, 1100000 },
  33 + [3] = { 1050000, 1150000 },
  34 + [4] = { 1250000, 1350000 },
  35 +};
  36 +
  37 +static struct cpufreq_frequency_table s3c64xx_freq_table[] = {
  38 + { 0, 66000 },
  39 + { 0, 133000 },
  40 + { 1, 222000 },
  41 + { 1, 266000 },
  42 + { 2, 333000 },
  43 + { 2, 400000 },
  44 + { 3, 532000 },
  45 + { 3, 533000 },
  46 + { 4, 667000 },
  47 + { 0, CPUFREQ_TABLE_END },
  48 +};
  49 +#endif
  50 +
  51 +static int s3c64xx_cpufreq_verify_speed(struct cpufreq_policy *policy)
  52 +{
  53 + if (policy->cpu != 0)
  54 + return -EINVAL;
  55 +
  56 + return cpufreq_frequency_table_verify(policy, s3c64xx_freq_table);
  57 +}
  58 +
  59 +static unsigned int s3c64xx_cpufreq_get_speed(unsigned int cpu)
  60 +{
  61 + if (cpu != 0)
  62 + return 0;
  63 +
  64 + return clk_get_rate(armclk) / 1000;
  65 +}
  66 +
  67 +static int s3c64xx_cpufreq_set_target(struct cpufreq_policy *policy,
  68 + unsigned int target_freq,
  69 + unsigned int relation)
  70 +{
  71 + int ret;
  72 + unsigned int i;
  73 + struct cpufreq_freqs freqs;
  74 + struct s3c64xx_dvfs *dvfs;
  75 +
  76 + ret = cpufreq_frequency_table_target(policy, s3c64xx_freq_table,
  77 + target_freq, relation, &i);
  78 + if (ret != 0)
  79 + return ret;
  80 +
  81 + freqs.cpu = 0;
  82 + freqs.old = clk_get_rate(armclk) / 1000;
  83 + freqs.new = s3c64xx_freq_table[i].frequency;
  84 + freqs.flags = 0;
  85 + dvfs = &s3c64xx_dvfs_table[s3c64xx_freq_table[i].index];
  86 +
  87 + if (freqs.old == freqs.new)
  88 + return 0;
  89 +
  90 + pr_debug("cpufreq: Transition %d-%dkHz\n", freqs.old, freqs.new);
  91 +
  92 + cpufreq_notify_transition(&freqs, CPUFREQ_PRECHANGE);
  93 +
  94 +#ifdef CONFIG_REGULATOR
  95 + if (vddarm && freqs.new > freqs.old) {
  96 + ret = regulator_set_voltage(vddarm,
  97 + dvfs->vddarm_min,
  98 + dvfs->vddarm_max);
  99 + if (ret != 0) {
  100 + pr_err("cpufreq: Failed to set VDDARM for %dkHz: %d\n",
  101 + freqs.new, ret);
  102 + goto err;
  103 + }
  104 + }
  105 +#endif
  106 +
  107 + ret = clk_set_rate(armclk, freqs.new * 1000);
  108 + if (ret < 0) {
  109 + pr_err("cpufreq: Failed to set rate %dkHz: %d\n",
  110 + freqs.new, ret);
  111 + goto err;
  112 + }
  113 +
  114 +#ifdef CONFIG_REGULATOR
  115 + if (vddarm && freqs.new < freqs.old) {
  116 + ret = regulator_set_voltage(vddarm,
  117 + dvfs->vddarm_min,
  118 + dvfs->vddarm_max);
  119 + if (ret != 0) {
  120 + pr_err("cpufreq: Failed to set VDDARM for %dkHz: %d\n",
  121 + freqs.new, ret);
  122 + goto err_clk;
  123 + }
  124 + }
  125 +#endif
  126 +
  127 + cpufreq_notify_transition(&freqs, CPUFREQ_POSTCHANGE);
  128 +
  129 + pr_debug("cpufreq: Set actual frequency %lukHz\n",
  130 + clk_get_rate(armclk) / 1000);
  131 +
  132 + return 0;
  133 +
  134 +err_clk:
  135 + if (clk_set_rate(armclk, freqs.old * 1000) < 0)
  136 + pr_err("Failed to restore original clock rate\n");
  137 +err:
  138 + cpufreq_notify_transition(&freqs, CPUFREQ_POSTCHANGE);
  139 +
  140 + return ret;
  141 +}
  142 +
  143 +#ifdef CONFIG_REGULATOR
  144 +static void __init s3c64xx_cpufreq_constrain_voltages(void)
  145 +{
  146 + int count, v, i, found;
  147 + struct cpufreq_frequency_table *freq;
  148 + struct s3c64xx_dvfs *dvfs;
  149 +
  150 + count = regulator_count_voltages(vddarm);
  151 + if (count < 0) {
  152 + pr_err("cpufreq: Unable to check supported voltages\n");
  153 + return;
  154 + }
  155 +
  156 + freq = s3c64xx_freq_table;
  157 + while (freq->frequency != CPUFREQ_TABLE_END) {
  158 + if (freq->frequency == CPUFREQ_ENTRY_INVALID)
  159 + continue;
  160 +
  161 + dvfs = &s3c64xx_dvfs_table[freq->index];
  162 + found = 0;
  163 +
  164 + for (i = 0; i < count; i++) {
  165 + v = regulator_list_voltage(vddarm, i);
  166 + if (v >= dvfs->vddarm_min && v <= dvfs->vddarm_max)
  167 + found = 1;
  168 + }
  169 +
  170 + if (!found) {
  171 + pr_debug("cpufreq: %dkHz unsupported by regulator\n",
  172 + freq->frequency);
  173 + freq->frequency = CPUFREQ_ENTRY_INVALID;
  174 + }
  175 +
  176 + freq++;
  177 + }
  178 +}
  179 +#endif
  180 +
  181 +static int __init s3c64xx_cpufreq_driver_init(struct cpufreq_policy *policy)
  182 +{
  183 + int ret;
  184 + struct cpufreq_frequency_table *freq;
  185 +
  186 + if (policy->cpu != 0)
  187 + return -EINVAL;
  188 +
  189 + if (s3c64xx_freq_table == NULL) {
  190 + pr_err("cpufreq: No frequency information for this CPU\n");
  191 + return -ENODEV;
  192 + }
  193 +
  194 + armclk = clk_get(NULL, "armclk");
  195 + if (IS_ERR(armclk)) {
  196 + pr_err("cpufreq: Unable to obtain ARMCLK: %ld\n",
  197 + PTR_ERR(armclk));
  198 + return PTR_ERR(armclk);
  199 + }
  200 +
  201 +#ifdef CONFIG_REGULATOR
  202 + vddarm = regulator_get(NULL, "vddarm");
  203 + if (IS_ERR(vddarm)) {
  204 + ret = PTR_ERR(vddarm);
  205 + pr_err("cpufreq: Failed to obtain VDDARM: %d\n", ret);
  206 + pr_err("cpufreq: Only frequency scaling available\n");
  207 + vddarm = NULL;
  208 + } else {
  209 + s3c64xx_cpufreq_constrain_voltages();
  210 + }
  211 +#endif
  212 +
  213 + freq = s3c64xx_freq_table;
  214 + while (freq->frequency != CPUFREQ_TABLE_END) {
  215 + unsigned long r;
  216 +
  217 + /* Check for frequencies we can generate */
  218 + r = clk_round_rate(armclk, freq->frequency * 1000);
  219 + r /= 1000;
  220 + if (r != freq->frequency)
  221 + freq->frequency = CPUFREQ_ENTRY_INVALID;
  222 +
  223 + /* If we have no regulator then assume startup
  224 + * frequency is the maximum we can support. */
  225 + if (!vddarm && freq->frequency > s3c64xx_cpufreq_get_speed(0))
  226 + freq->frequency = CPUFREQ_ENTRY_INVALID;
  227 +
  228 + freq++;
  229 + }
  230 +
  231 + policy->cur = clk_get_rate(armclk) / 1000;
  232 +
  233 + /* Pick a conservative guess in ns: we'll need ~1 I2C/SPI
  234 + * write plus clock reprogramming. */
  235 + policy->cpuinfo.transition_latency = 2 * 1000 * 1000;
  236 +
  237 + ret = cpufreq_frequency_table_cpuinfo(policy, s3c64xx_freq_table);
  238 + if (ret != 0) {
  239 + pr_err("cpufreq: Failed to configure frequency table: %d\n",
  240 + ret);
  241 + regulator_put(vddarm);
  242 + clk_put(armclk);
  243 + }
  244 +
  245 + return ret;
  246 +}
  247 +
  248 +static struct cpufreq_driver s3c64xx_cpufreq_driver = {
  249 + .owner = THIS_MODULE,
  250 + .flags = 0,
  251 + .verify = s3c64xx_cpufreq_verify_speed,
  252 + .target = s3c64xx_cpufreq_set_target,
  253 + .get = s3c64xx_cpufreq_get_speed,
  254 + .init = s3c64xx_cpufreq_driver_init,
  255 + .name = "s3c",
  256 +};
  257 +
  258 +static int __init s3c64xx_cpufreq_init(void)
  259 +{
  260 + return cpufreq_register_driver(&s3c64xx_cpufreq_driver);
  261 +}
  262 +module_init(s3c64xx_cpufreq_init);
drivers/mmc/host/s3cmci.c
... ... @@ -794,7 +794,7 @@
794 794 host->mem->start + host->sdidata);
795 795  
796 796 if (!setup_ok) {
797   - s3c2410_dma_config(host->dma, 4, 0);
  797 + s3c2410_dma_config(host->dma, 4);
798 798 s3c2410_dma_set_buffdone_fn(host->dma,
799 799 s3cmci_dma_done_callback);
800 800 s3c2410_dma_setflags(host->dma, S3C2410_DMAF_AUTOSTART);