Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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

authored by

Russell King and committed by
Russell King
413427b5 187f81b3

+3931 -6
+21
Documentation/kernel-parameters.txt
··· 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
+7
MAINTAINERS
··· 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
+5 -1
arch/arm/Kconfig
··· 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 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
+6 -2
arch/arm/common/vic.c
··· 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 }
+2097
arch/arm/configs/mini2440_defconfig
··· 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
-1
arch/arm/mach-s3c2410/usb-simtec.c
··· 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>
+10
arch/arm/mach-s3c2440/Kconfig
··· 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 88 98
+1
arch/arm/mach-s3c2440/Makefile
··· 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
+703
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
+12
arch/arm/mach-s3c2442/Kconfig
··· 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 29 41
+2
arch/arm/mach-s3c2442/Makefile
··· 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 16 18
+84
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 */
+646
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
+1
arch/arm/plat-s3c/Makefile
··· 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
+68
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);
+4 -1
arch/arm/plat-s3c/include/plat/devs.h
··· 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;
+1
arch/arm/plat-s3c64xx/Makefile
··· 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
+262
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);
+1 -1
drivers/mmc/host/s3cmci.c
··· 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);