Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
L
linux-davinci
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Redmine
Redmine
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
linux
linux-davinci
Commits
413427b5
Commit
413427b5
authored
Jun 18, 2009
by
Russell King
Committed by
Russell King
Jun 18, 2009
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'next-s3c' of
git://aeryn.fluff.org.uk/bjdooks/linux
into devel
parents
187f81b3
9f01efaa
Changes
19
Hide whitespace changes
Inline
Side-by-side
Showing
19 changed files
with
3931 additions
and
6 deletions
+3931
-6
Documentation/kernel-parameters.txt
Documentation/kernel-parameters.txt
+21
-0
MAINTAINERS
MAINTAINERS
+7
-0
arch/arm/Kconfig
arch/arm/Kconfig
+5
-1
arch/arm/common/vic.c
arch/arm/common/vic.c
+6
-2
arch/arm/configs/mini2440_defconfig
arch/arm/configs/mini2440_defconfig
+2097
-0
arch/arm/mach-s3c2410/usb-simtec.c
arch/arm/mach-s3c2410/usb-simtec.c
+0
-1
arch/arm/mach-s3c2440/Kconfig
arch/arm/mach-s3c2440/Kconfig
+10
-0
arch/arm/mach-s3c2440/Makefile
arch/arm/mach-s3c2440/Makefile
+1
-0
arch/arm/mach-s3c2440/mach-mini2440.c
arch/arm/mach-s3c2440/mach-mini2440.c
+703
-0
arch/arm/mach-s3c2442/Kconfig
arch/arm/mach-s3c2442/Kconfig
+12
-0
arch/arm/mach-s3c2442/Makefile
arch/arm/mach-s3c2442/Makefile
+2
-0
arch/arm/mach-s3c2442/include/mach/gta02.h
arch/arm/mach-s3c2442/include/mach/gta02.h
+84
-0
arch/arm/mach-s3c2442/mach-gta02.c
arch/arm/mach-s3c2442/mach-gta02.c
+646
-0
arch/arm/plat-s3c/Makefile
arch/arm/plat-s3c/Makefile
+1
-0
arch/arm/plat-s3c/dev-audio.c
arch/arm/plat-s3c/dev-audio.c
+68
-0
arch/arm/plat-s3c/include/plat/devs.h
arch/arm/plat-s3c/include/plat/devs.h
+4
-1
arch/arm/plat-s3c64xx/Makefile
arch/arm/plat-s3c64xx/Makefile
+1
-0
arch/arm/plat-s3c64xx/cpufreq.c
arch/arm/plat-s3c64xx/cpufreq.c
+262
-0
drivers/mmc/host/s3cmci.c
drivers/mmc/host/s3cmci.c
+1
-1
No files found.
Documentation/kernel-parameters.txt
View file @
413427b5
...
...
@@ -1362,6 +1362,27 @@ and is between 256 and 4096 characters. It is defined in the file
min_addr=nn[KMG] [KNL,BOOT,ia64] All physical memory below this
physical address is ignored.
mini2440= [ARM,HW,KNL]
Format:[0..2][b][c][t]
Default: "0tb"
MINI2440 configuration specification:
0 - The attached screen is the 3.5" TFT
1 - The attached screen is the 7" TFT
2 - The VGA Shield is attached (1024x768)
Leaving out the screen size parameter will not load
the TFT driver, and the framebuffer will be left
unconfigured.
b - Enable backlight. The TFT backlight pin will be
linked to the kernel VESA blanking code and a GPIO
LED. This parameter is not necessary when using the
VGA shield.
c - Enable the s3c camera interface.
t - Reserved for enabling touchscreen support. The
touchscreen support is not enabled in the mainstream
kernel as of 2.6.30, a preliminary port can be found
in the "bleeding edge" mini2440 support kernel at
http://repo.or.cz/w/linux-2.6/mini2440.git
mminit_loglevel=
[KNL] When CONFIG_DEBUG_MEMORY_INIT is set, this
parameter allows control of the logging verbosity for
...
...
MAINTAINERS
View file @
413427b5
...
...
@@ -788,6 +788,13 @@ P: Michael Petchkovsky
M: mkpetch@internode.on.net
S: Maintained
ARM/OPENMOKO NEO FREERUNNER (GTA02) MACHINE SUPPORT
P: Nelson Castillo
M: arhuaco@freaks-unidos.net
L: openmoko-kernel@lists.openmoko.org (subscribers-only)
W: http://wiki.openmoko.org/wiki/Neo_FreeRunner
S: Supported
ARM/TOSA MACHINE SUPPORT
P: Dmitry Eremin-Solenikov
M: dbaryshkov@gmail.com
...
...
arch/arm/Kconfig
View file @
413427b5
...
...
@@ -1241,7 +1241,7 @@ endmenu
menu "CPU Power Management"
if (ARCH_SA1100 || ARCH_INTEGRATOR || ARCH_OMAP || ARCH_PXA)
if (ARCH_SA1100 || ARCH_INTEGRATOR || ARCH_OMAP || ARCH_PXA
|| ARCH_S3C64XX
)
source "drivers/cpufreq/Kconfig"
...
...
@@ -1272,6 +1272,10 @@ config CPU_FREQ_PXA
default y
select CPU_FREQ_DEFAULT_GOV_USERSPACE
config CPU_FREQ_S3C64XX
bool "CPUfreq support for Samsung S3C64XX CPUs"
depends on CPU_FREQ && CPU_S3C6410
endif
source "drivers/cpuidle/Kconfig"
...
...
arch/arm/common/vic.c
View file @
413427b5
...
...
@@ -229,14 +229,18 @@ static int vic_set_wake(unsigned int irq, unsigned int on)
{
struct
vic_device
*
v
=
vic_from_irq
(
irq
);
unsigned
int
off
=
irq
&
31
;
u32
bit
=
1
<<
off
;
if
(
!
v
)
return
-
EINVAL
;
if
(
!
(
bit
&
v
->
resume_sources
))
return
-
EINVAL
;
if
(
on
)
v
->
resume_irqs
|=
1
<<
off
;
v
->
resume_irqs
|=
bit
;
else
v
->
resume_irqs
&=
~
(
1
<<
off
)
;
v
->
resume_irqs
&=
~
bit
;
return
0
;
}
...
...
arch/arm/configs/mini2440_defconfig
0 → 100644
View file @
413427b5
#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.30-rc6
# Wed May 20 12:29:51 2009
#
CONFIG_ARM=y
CONFIG_HAVE_PWM=y
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
CONFIG_GENERIC_GPIO=y
# CONFIG_GENERIC_TIME is not set
# CONFIG_GENERIC_CLOCKEVENTS is not set
CONFIG_MMU=y
CONFIG_NO_IOPORT=y
CONFIG_GENERIC_HARDIRQS=y
CONFIG_STACKTRACE_SUPPORT=y
CONFIG_HAVE_LATENCYTOP_SUPPORT=y
CONFIG_LOCKDEP_SUPPORT=y
CONFIG_TRACE_IRQFLAGS_SUPPORT=y
CONFIG_HARDIRQS_SW_RESEND=y
CONFIG_GENERIC_IRQ_PROBE=y
CONFIG_RWSEM_GENERIC_SPINLOCK=y
# CONFIG_ARCH_HAS_ILOG2_U32 is not set
# CONFIG_ARCH_HAS_ILOG2_U64 is not set
CONFIG_GENERIC_HWEIGHT=y
CONFIG_GENERIC_CALIBRATE_DELAY=y
CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
CONFIG_VECTORS_BASE=0xffff0000
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
#
# General setup
#
CONFIG_EXPERIMENTAL=y
CONFIG_BROKEN_ON_SMP=y
CONFIG_INIT_ENV_ARG_LIMIT=32
CONFIG_LOCALVERSION=""
# CONFIG_LOCALVERSION_AUTO is not set
CONFIG_SWAP=y
CONFIG_SYSVIPC=y
CONFIG_SYSVIPC_SYSCTL=y
CONFIG_POSIX_MQUEUE=y
CONFIG_POSIX_MQUEUE_SYSCTL=y
# CONFIG_BSD_PROCESS_ACCT is not set
# CONFIG_TASKSTATS is not set
# CONFIG_AUDIT is not set
#
# RCU Subsystem
#
CONFIG_CLASSIC_RCU=y
# CONFIG_TREE_RCU is not set
# CONFIG_PREEMPT_RCU is not set
# CONFIG_TREE_RCU_TRACE is not set
# CONFIG_PREEMPT_RCU_TRACE is not set
# CONFIG_IKCONFIG is not set
CONFIG_LOG_BUF_SHIFT=17
# CONFIG_GROUP_SCHED is not set
# CONFIG_CGROUPS is not set
# CONFIG_SYSFS_DEPRECATED_V2 is not set
CONFIG_RELAY=y
CONFIG_NAMESPACES=y
CONFIG_UTS_NS=y
CONFIG_IPC_NS=y
# CONFIG_USER_NS is not set
# CONFIG_PID_NS is not set
# CONFIG_NET_NS is not set
CONFIG_BLK_DEV_INITRD=y
CONFIG_INITRAMFS_SOURCE=""
CONFIG_RD_GZIP=y
CONFIG_RD_BZIP2=y
CONFIG_RD_LZMA=y
CONFIG_CC_OPTIMIZE_FOR_SIZE=y
CONFIG_SYSCTL=y
CONFIG_ANON_INODES=y
# CONFIG_EMBEDDED is not set
CONFIG_UID16=y
CONFIG_SYSCTL_SYSCALL=y
CONFIG_KALLSYMS=y
# CONFIG_KALLSYMS_ALL is not set
# CONFIG_KALLSYMS_EXTRA_PASS is not set
CONFIG_STRIP_ASM_SYMS=y
CONFIG_HOTPLUG=y
CONFIG_PRINTK=y
CONFIG_BUG=y
CONFIG_ELF_CORE=y
CONFIG_BASE_FULL=y
CONFIG_FUTEX=y
CONFIG_EPOLL=y
CONFIG_SIGNALFD=y
CONFIG_TIMERFD=y
CONFIG_EVENTFD=y
CONFIG_SHMEM=y
CONFIG_AIO=y
CONFIG_VM_EVENT_COUNTERS=y
CONFIG_SLUB_DEBUG=y
# CONFIG_COMPAT_BRK is not set
# CONFIG_SLAB is not set
CONFIG_SLUB=y
# CONFIG_SLOB is not set
# CONFIG_PROFILING is not set
# CONFIG_MARKERS is not set
CONFIG_HAVE_OPROFILE=y
# CONFIG_KPROBES is not set
CONFIG_HAVE_KPROBES=y
CONFIG_HAVE_KRETPROBES=y
CONFIG_HAVE_CLK=y
# CONFIG_SLOW_WORK is not set
CONFIG_HAVE_GENERIC_DMA_COHERENT=y
CONFIG_SLABINFO=y
CONFIG_RT_MUTEXES=y
CONFIG_BASE_SMALL=0
CONFIG_MODULES=y
CONFIG_MODULE_FORCE_LOAD=y
CONFIG_MODULE_UNLOAD=y
CONFIG_MODULE_FORCE_UNLOAD=y
# CONFIG_MODVERSIONS is not set
# CONFIG_MODULE_SRCVERSION_ALL is not set
CONFIG_BLOCK=y
CONFIG_LBD=y
# CONFIG_BLK_DEV_BSG is not set
CONFIG_BLK_DEV_INTEGRITY=y
#
# IO Schedulers
#
CONFIG_IOSCHED_NOOP=y
CONFIG_IOSCHED_AS=y
CONFIG_IOSCHED_DEADLINE=y
CONFIG_IOSCHED_CFQ=y
CONFIG_DEFAULT_AS=y
# CONFIG_DEFAULT_DEADLINE is not set
# CONFIG_DEFAULT_CFQ is not set
# CONFIG_DEFAULT_NOOP is not set
CONFIG_DEFAULT_IOSCHED="anticipatory"
CONFIG_FREEZER=y
#
# System Type
#
# CONFIG_ARCH_AAEC2000 is not set
# CONFIG_ARCH_INTEGRATOR is not set
# CONFIG_ARCH_REALVIEW is not set
# CONFIG_ARCH_VERSATILE is not set
# CONFIG_ARCH_AT91 is not set
# CONFIG_ARCH_CLPS711X is not set
# CONFIG_ARCH_EBSA110 is not set
# CONFIG_ARCH_EP93XX is not set
# CONFIG_ARCH_GEMINI is not set
# CONFIG_ARCH_FOOTBRIDGE is not set
# CONFIG_ARCH_NETX is not set
# CONFIG_ARCH_H720X is not set
# CONFIG_ARCH_IMX is not set
# CONFIG_ARCH_IOP13XX is not set
# CONFIG_ARCH_IOP32X is not set
# CONFIG_ARCH_IOP33X is not set
# CONFIG_ARCH_IXP23XX is not set
# CONFIG_ARCH_IXP2000 is not set
# CONFIG_ARCH_IXP4XX is not set
# CONFIG_ARCH_L7200 is not set
# CONFIG_ARCH_KIRKWOOD is not set
# CONFIG_ARCH_KS8695 is not set
# CONFIG_ARCH_NS9XXX is not set
# CONFIG_ARCH_LOKI is not set
# CONFIG_ARCH_MV78XX0 is not set
# CONFIG_ARCH_MXC is not set
# CONFIG_ARCH_ORION5X is not set
# CONFIG_ARCH_PNX4008 is not set
# CONFIG_ARCH_PXA is not set
# CONFIG_ARCH_MMP is not set
# CONFIG_ARCH_RPC is not set
# CONFIG_ARCH_SA1100 is not set
CONFIG_ARCH_S3C2410=y
# CONFIG_ARCH_S3C64XX is not set
# CONFIG_ARCH_SHARK is not set
# CONFIG_ARCH_LH7A40X is not set
# CONFIG_ARCH_DAVINCI is not set
# CONFIG_ARCH_OMAP is not set
# CONFIG_ARCH_MSM is not set
# CONFIG_ARCH_W90X900 is not set
CONFIG_PLAT_S3C24XX=y
CONFIG_S3C2410_CLOCK=y
CONFIG_CPU_S3C244X=y
CONFIG_S3C24XX_PWM=y
CONFIG_S3C24XX_GPIO_EXTRA=0
CONFIG_S3C2410_DMA=y
# CONFIG_S3C2410_DMA_DEBUG is not set
CONFIG_S3C24XX_ADC=y
CONFIG_PLAT_S3C=y
CONFIG_CPU_LLSERIAL_S3C2440_ONLY=y
CONFIG_CPU_LLSERIAL_S3C2440=y
#
# Boot options
#
# CONFIG_S3C_BOOT_WATCHDOG is not set
# CONFIG_S3C_BOOT_ERROR_RESET is not set
CONFIG_S3C_BOOT_UART_FORCE_FIFO=y
#
# Power management
#
# CONFIG_S3C2410_PM_DEBUG is not set
# CONFIG_S3C2410_PM_CHECK is not set
CONFIG_S3C_LOWLEVEL_UART_PORT=0
CONFIG_S3C_GPIO_SPACE=0
#
# S3C2400 Machines
#
CONFIG_S3C2410_PM=y
CONFIG_S3C2410_GPIO=y
#
# S3C2410 Machines
#
# CONFIG_ARCH_SMDK2410 is not set
# CONFIG_ARCH_H1940 is not set
# CONFIG_MACH_N30 is not set
# CONFIG_ARCH_BAST is not set
# CONFIG_MACH_OTOM is not set
# CONFIG_MACH_AML_M5900 is not set
# CONFIG_MACH_TCT_HAMMER is not set
# CONFIG_MACH_VR1000 is not set
# CONFIG_MACH_QT2410 is not set
#
# S3C2412 Machines
#
# CONFIG_MACH_JIVE is not set
# CONFIG_MACH_SMDK2413 is not set
# CONFIG_MACH_SMDK2412 is not set
# CONFIG_MACH_VSTMS is not set
CONFIG_CPU_S3C2440=y
CONFIG_S3C2440_DMA=y
#
# S3C2440 Machines
#
# CONFIG_MACH_ANUBIS is not set
# CONFIG_MACH_OSIRIS is not set
# CONFIG_MACH_RX3715 is not set
# CONFIG_ARCH_S3C2440 is not set
# CONFIG_MACH_NEXCODER_2440 is not set
# CONFIG_MACH_AT2440EVB is not set
CONFIG_MACH_MINI2440=y
#
# S3C2442 Machines
#
#
# S3C2443 Machines
#
# CONFIG_MACH_SMDK2443 is not set
#
# Processor Type
#
CONFIG_CPU_32=y
CONFIG_CPU_ARM920T=y
CONFIG_CPU_32v4T=y
CONFIG_CPU_ABRT_EV4T=y
CONFIG_CPU_PABRT_NOIFAR=y
CONFIG_CPU_CACHE_V4WT=y
CONFIG_CPU_CACHE_VIVT=y
CONFIG_CPU_COPY_V4WB=y
CONFIG_CPU_TLB_V4WBI=y
CONFIG_CPU_CP15=y
CONFIG_CPU_CP15_MMU=y
#
# Processor Features
#
CONFIG_ARM_THUMB=y
# CONFIG_CPU_ICACHE_DISABLE is not set
# CONFIG_CPU_DCACHE_DISABLE is not set
# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
# CONFIG_OUTER_CACHE is not set
#
# Bus support
#
# CONFIG_PCI_SYSCALL is not set
# CONFIG_ARCH_SUPPORTS_MSI is not set
# CONFIG_PCCARD is not set
#
# Kernel Features
#
CONFIG_VMSPLIT_3G=y
# CONFIG_VMSPLIT_2G is not set
# CONFIG_VMSPLIT_1G is not set
CONFIG_PAGE_OFFSET=0xC0000000
# CONFIG_PREEMPT is not set
CONFIG_HZ=200
CONFIG_AEABI=y
# CONFIG_OABI_COMPAT is not set
CONFIG_ARCH_FLATMEM_HAS_HOLES=y
# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
# CONFIG_HIGHMEM is not set
CONFIG_SELECT_MEMORY_MODEL=y
CONFIG_FLATMEM_MANUAL=y
# CONFIG_DISCONTIGMEM_MANUAL is not set
# CONFIG_SPARSEMEM_MANUAL is not set
CONFIG_FLATMEM=y
CONFIG_FLAT_NODE_MEM_MAP=y
CONFIG_PAGEFLAGS_EXTENDED=y
CONFIG_SPLIT_PTLOCK_CPUS=4096
# CONFIG_PHYS_ADDR_T_64BIT is not set
CONFIG_ZONE_DMA_FLAG=0
CONFIG_VIRT_TO_BUS=y
CONFIG_UNEVICTABLE_LRU=y
CONFIG_HAVE_MLOCK=y
CONFIG_HAVE_MLOCKED_PAGE_BIT=y
CONFIG_ALIGNMENT_TRAP=y
#
# Boot options
#
CONFIG_ZBOOT_ROM_TEXT=0
CONFIG_ZBOOT_ROM_BSS=0
CONFIG_CMDLINE=""
# CONFIG_XIP_KERNEL is not set
CONFIG_KEXEC=y
CONFIG_ATAGS_PROC=y
#
# CPU Power Management
#
CONFIG_CPU_IDLE=y
CONFIG_CPU_IDLE_GOV_LADDER=y
#
# Floating point emulation
#
#
# At least one emulation must be selected
#
#
# Userspace binary formats
#
CONFIG_BINFMT_ELF=y
# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
CONFIG_HAVE_AOUT=y
CONFIG_BINFMT_AOUT=m
CONFIG_BINFMT_MISC=m
#
# Power management options
#
CONFIG_PM=y
# CONFIG_PM_DEBUG is not set
CONFIG_PM_SLEEP=y
CONFIG_SUSPEND=y
CONFIG_SUSPEND_FREEZER=y
CONFIG_APM_EMULATION=y
CONFIG_ARCH_SUSPEND_POSSIBLE=y
CONFIG_NET=y
#
# Networking options
#
CONFIG_PACKET=y
CONFIG_PACKET_MMAP=y
CONFIG_UNIX=y
CONFIG_XFRM=y
CONFIG_XFRM_USER=m
# CONFIG_XFRM_SUB_POLICY is not set
# CONFIG_XFRM_MIGRATE is not set
# CONFIG_XFRM_STATISTICS is not set
CONFIG_NET_KEY=m
# CONFIG_NET_KEY_MIGRATE is not set
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
CONFIG_IP_ADVANCED_ROUTER=y
CONFIG_ASK_IP_FIB_HASH=y
# CONFIG_IP_FIB_TRIE is not set
CONFIG_IP_FIB_HASH=y
CONFIG_IP_MULTIPLE_TABLES=y
CONFIG_IP_ROUTE_MULTIPATH=y
CONFIG_IP_ROUTE_VERBOSE=y
CONFIG_IP_PNP=y
CONFIG_IP_PNP_DHCP=y
CONFIG_IP_PNP_BOOTP=y
CONFIG_IP_PNP_RARP=y
# CONFIG_NET_IPIP is not set
# CONFIG_NET_IPGRE is not set
CONFIG_IP_MROUTE=y
CONFIG_IP_PIMSM_V1=y
CONFIG_IP_PIMSM_V2=y
# CONFIG_ARPD is not set
CONFIG_SYN_COOKIES=y
# CONFIG_INET_AH is not set
# CONFIG_INET_ESP is not set
# CONFIG_INET_IPCOMP is not set
# CONFIG_INET_XFRM_TUNNEL is not set
# CONFIG_INET_TUNNEL is not set
# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
# CONFIG_INET_XFRM_MODE_TUNNEL is not set
# CONFIG_INET_XFRM_MODE_BEET is not set
# CONFIG_INET_LRO is not set
CONFIG_INET_DIAG=m
CONFIG_INET_TCP_DIAG=m
# CONFIG_TCP_CONG_ADVANCED is not set
CONFIG_TCP_CONG_CUBIC=y
CONFIG_DEFAULT_TCP_CONG="cubic"
# CONFIG_TCP_MD5SIG is not set
# CONFIG_IPV6 is not set
# CONFIG_NETWORK_SECMARK is not set
CONFIG_NETFILTER=y
# CONFIG_NETFILTER_DEBUG is not set
CONFIG_NETFILTER_ADVANCED=y
CONFIG_BRIDGE_NETFILTER=y
#
# Core Netfilter Configuration
#
# CONFIG_NETFILTER_NETLINK_QUEUE is not set
# CONFIG_NETFILTER_NETLINK_LOG is not set
# CONFIG_NF_CONNTRACK is not set
# CONFIG_NETFILTER_XTABLES is not set
# CONFIG_IP_VS is not set
#
# IP: Netfilter Configuration
#
# CONFIG_NF_DEFRAG_IPV4 is not set
# CONFIG_IP_NF_QUEUE is not set
# CONFIG_IP_NF_IPTABLES is not set
# CONFIG_IP_NF_ARPTABLES is not set
# CONFIG_BRIDGE_NF_EBTABLES is not set
# CONFIG_IP_DCCP is not set
# CONFIG_IP_SCTP is not set
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
CONFIG_STP=m
CONFIG_GARP=m
CONFIG_BRIDGE=m
# CONFIG_NET_DSA is not set
CONFIG_VLAN_8021Q=m
CONFIG_VLAN_8021Q_GVRP=y
# CONFIG_DECNET is not set
CONFIG_LLC=m
# CONFIG_LLC2 is not set
# CONFIG_IPX is not set
# CONFIG_ATALK is not set
# CONFIG_X25 is not set
# CONFIG_LAPB is not set
# CONFIG_ECONET is not set
# CONFIG_WAN_ROUTER is not set
# CONFIG_PHONET is not set
# CONFIG_NET_SCHED is not set
# CONFIG_DCB is not set
#
# Network testing
#
CONFIG_NET_PKTGEN=m
# CONFIG_HAMRADIO is not set
# CONFIG_CAN is not set
# CONFIG_IRDA is not set
CONFIG_BT=m
CONFIG_BT_L2CAP=m
CONFIG_BT_SCO=m
CONFIG_BT_RFCOMM=m
CONFIG_BT_RFCOMM_TTY=y
CONFIG_BT_BNEP=m
CONFIG_BT_BNEP_MC_FILTER=y
CONFIG_BT_BNEP_PROTO_FILTER=y
CONFIG_BT_HIDP=m
#
# Bluetooth device drivers
#
CONFIG_BT_HCIBTUSB=m
CONFIG_BT_HCIBTSDIO=m
CONFIG_BT_HCIUART=m
CONFIG_BT_HCIUART_H4=y
CONFIG_BT_HCIUART_BCSP=y
CONFIG_BT_HCIUART_LL=y
CONFIG_BT_HCIBCM203X=m
CONFIG_BT_HCIBPA10X=m
CONFIG_BT_HCIBFUSB=m
CONFIG_BT_HCIVHCI=m
# CONFIG_AF_RXRPC is not set
CONFIG_FIB_RULES=y
CONFIG_WIRELESS=y
CONFIG_CFG80211=m
CONFIG_CFG80211_REG_DEBUG=y
CONFIG_WIRELESS_OLD_REGULATORY=y
CONFIG_WIRELESS_EXT=y
CONFIG_WIRELESS_EXT_SYSFS=y
CONFIG_LIB80211=m
CONFIG_LIB80211_CRYPT_WEP=m
CONFIG_LIB80211_CRYPT_CCMP=m
CONFIG_LIB80211_CRYPT_TKIP=m
# CONFIG_LIB80211_DEBUG is not set
CONFIG_MAC80211=m
#
# Rate control algorithm selection
#
CONFIG_MAC80211_RC_MINSTREL=y
# CONFIG_MAC80211_RC_DEFAULT_PID is not set
CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
CONFIG_MAC80211_RC_DEFAULT="minstrel"
CONFIG_MAC80211_MESH=y
CONFIG_MAC80211_LEDS=y
# CONFIG_MAC80211_DEBUGFS is not set
# CONFIG_MAC80211_DEBUG_MENU is not set
# CONFIG_WIMAX is not set
# CONFIG_RFKILL is not set
# CONFIG_NET_9P is not set
#
# Device Drivers
#
#
# Generic Driver Options
#
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
CONFIG_STANDALONE=y
CONFIG_PREVENT_FIRMWARE_BUILD=y
CONFIG_FW_LOADER=y
# CONFIG_FIRMWARE_IN_KERNEL is not set
CONFIG_EXTRA_FIRMWARE=""
# CONFIG_DEBUG_DRIVER is not set
# CONFIG_DEBUG_DEVRES is not set
# CONFIG_SYS_HYPERVISOR is not set
CONFIG_CONNECTOR=m
CONFIG_MTD=y
# CONFIG_MTD_DEBUG is not set
CONFIG_MTD_CONCAT=y
CONFIG_MTD_PARTITIONS=y
# CONFIG_MTD_TESTS is not set
# CONFIG_MTD_REDBOOT_PARTS is not set
CONFIG_MTD_CMDLINE_PARTS=y
# CONFIG_MTD_AFS_PARTS is not set
# CONFIG_MTD_AR7_PARTS is not set
#
# User Modules And Translation Layers
#
CONFIG_MTD_CHAR=y
CONFIG_MTD_BLKDEVS=y
CONFIG_MTD_BLOCK=y
CONFIG_FTL=y
CONFIG_NFTL=y
CONFIG_NFTL_RW=y
CONFIG_INFTL=y
CONFIG_RFD_FTL=y
# CONFIG_SSFDC is not set
# CONFIG_MTD_OOPS is not set
#
# RAM/ROM/Flash chip drivers
#
CONFIG_MTD_CFI=y
CONFIG_MTD_JEDECPROBE=y
CONFIG_MTD_GEN_PROBE=y
# CONFIG_MTD_CFI_ADV_OPTIONS is not set
CONFIG_MTD_MAP_BANK_WIDTH_1=y
CONFIG_MTD_MAP_BANK_WIDTH_2=y
CONFIG_MTD_MAP_BANK_WIDTH_4=y
# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
CONFIG_MTD_CFI_I1=y
CONFIG_MTD_CFI_I2=y
# CONFIG_MTD_CFI_I4 is not set
# CONFIG_MTD_CFI_I8 is not set
# CONFIG_MTD_CFI_INTELEXT is not set
CONFIG_MTD_CFI_AMDSTD=y
CONFIG_MTD_CFI_STAA=y
CONFIG_MTD_CFI_UTIL=y
CONFIG_MTD_RAM=y
CONFIG_MTD_ROM=y
# CONFIG_MTD_ABSENT is not set
#
# Mapping drivers for chip access
#
# CONFIG_MTD_COMPLEX_MAPPINGS is not set
# CONFIG_MTD_PHYSMAP is not set
# CONFIG_MTD_ARM_INTEGRATOR is not set
# CONFIG_MTD_IMPA7 is not set
# CONFIG_MTD_PLATRAM is not set
#
# Self-contained MTD device drivers
#
# CONFIG_MTD_DATAFLASH is not set
# CONFIG_MTD_M25P80 is not set
# CONFIG_MTD_SLRAM is not set
# CONFIG_MTD_PHRAM is not set
# CONFIG_MTD_MTDRAM is not set
# CONFIG_MTD_BLOCK2MTD is not set
#
# Disk-On-Chip Device Drivers
#
# CONFIG_MTD_DOC2000 is not set
# CONFIG_MTD_DOC2001 is not set
# CONFIG_MTD_DOC2001PLUS is not set
CONFIG_MTD_NAND=y
CONFIG_MTD_NAND_VERIFY_WRITE=y
# CONFIG_MTD_NAND_ECC_SMC is not set
# CONFIG_MTD_NAND_MUSEUM_IDS is not set
# CONFIG_MTD_NAND_GPIO is not set
CONFIG_MTD_NAND_IDS=y
CONFIG_MTD_NAND_S3C2410=y
# CONFIG_MTD_NAND_S3C2410_DEBUG is not set
# CONFIG_MTD_NAND_S3C2410_HWECC is not set
# CONFIG_MTD_NAND_S3C2410_CLKSTOP is not set
# CONFIG_MTD_NAND_DISKONCHIP is not set
# CONFIG_MTD_NAND_NANDSIM is not set
CONFIG_MTD_NAND_PLATFORM=y
# CONFIG_MTD_ALAUDA is not set
# CONFIG_MTD_ONENAND is not set
#
# LPDDR flash memory drivers
#
CONFIG_MTD_LPDDR=y
CONFIG_MTD_QINFO_PROBE=y
#
# UBI - Unsorted block images
#
# CONFIG_MTD_UBI is not set
# CONFIG_PARPORT is not set
CONFIG_BLK_DEV=y
# CONFIG_BLK_DEV_COW_COMMON is not set
CONFIG_BLK_DEV_LOOP=m
# CONFIG_BLK_DEV_CRYPTOLOOP is not set
CONFIG_BLK_DEV_NBD=m
# CONFIG_BLK_DEV_UB is not set
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_COUNT=16
CONFIG_BLK_DEV_RAM_SIZE=65536
# CONFIG_BLK_DEV_XIP is not set
CONFIG_CDROM_PKTCDVD=m
CONFIG_CDROM_PKTCDVD_BUFFERS=8
# CONFIG_CDROM_PKTCDVD_WCACHE is not set
# CONFIG_ATA_OVER_ETH is not set
CONFIG_MISC_DEVICES=y
# CONFIG_ICS932S401 is not set
# CONFIG_ENCLOSURE_SERVICES is not set
# CONFIG_ISL29003 is not set
# CONFIG_C2PORT is not set
#
# EEPROM support
#
CONFIG_EEPROM_AT24=y
# CONFIG_EEPROM_AT25 is not set
# CONFIG_EEPROM_LEGACY is not set
# CONFIG_EEPROM_93CX6 is not set
CONFIG_HAVE_IDE=y
# CONFIG_IDE is not set
#
# SCSI device support
#
# CONFIG_RAID_ATTRS is not set
CONFIG_SCSI=m
CONFIG_SCSI_DMA=y
# CONFIG_SCSI_TGT is not set
# CONFIG_SCSI_NETLINK is not set
# CONFIG_SCSI_PROC_FS is not set
#
# SCSI support type (disk, tape, CD-ROM)
#
CONFIG_BLK_DEV_SD=m
# CONFIG_CHR_DEV_ST is not set
# CONFIG_CHR_DEV_OSST is not set
# CONFIG_BLK_DEV_SR is not set
CONFIG_CHR_DEV_SG=m
# CONFIG_CHR_DEV_SCH is not set
#
# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
#
# CONFIG_SCSI_MULTI_LUN is not set
# CONFIG_SCSI_CONSTANTS is not set
# CONFIG_SCSI_LOGGING is not set
# CONFIG_SCSI_SCAN_ASYNC is not set
CONFIG_SCSI_WAIT_SCAN=m
#
# SCSI Transports
#
# CONFIG_SCSI_SPI_ATTRS is not set
# CONFIG_SCSI_FC_ATTRS is not set
# CONFIG_SCSI_ISCSI_ATTRS is not set
# CONFIG_SCSI_SAS_LIBSAS is not set
# CONFIG_SCSI_SRP_ATTRS is not set
# CONFIG_SCSI_LOWLEVEL is not set
# CONFIG_SCSI_DH is not set
# CONFIG_SCSI_OSD_INITIATOR is not set
# CONFIG_ATA is not set
# CONFIG_MD is not set
CONFIG_NETDEVICES=y
CONFIG_COMPAT_NET_DEV_OPS=y
# CONFIG_DUMMY is not set
# CONFIG_BONDING is not set
# CONFIG_MACVLAN is not set
# CONFIG_EQUALIZER is not set
CONFIG_TUN=m
# CONFIG_VETH is not set
# CONFIG_PHYLIB is not set
CONFIG_NET_ETHERNET=y
CONFIG_MII=y
# CONFIG_AX88796 is not set
# CONFIG_SMC91X is not set
CONFIG_DM9000=y
CONFIG_DM9000_DEBUGLEVEL=4
# CONFIG_DM9000_FORCE_SIMPLE_PHY_POLL is not set
# CONFIG_ENC28J60 is not set
# CONFIG_ETHOC is not set
# CONFIG_SMC911X is not set
# CONFIG_SMSC911X is not set
# CONFIG_DNET is not set
# CONFIG_IBM_NEW_EMAC_ZMII is not set
# CONFIG_IBM_NEW_EMAC_RGMII is not set
# CONFIG_IBM_NEW_EMAC_TAH is not set
# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
# CONFIG_B44 is not set
# CONFIG_NETDEV_1000 is not set
# CONFIG_NETDEV_10000 is not set
#
# Wireless LAN
#
# CONFIG_WLAN_PRE80211 is not set
CONFIG_WLAN_80211=y
CONFIG_LIBERTAS=m
# CONFIG_LIBERTAS_USB is not set
CONFIG_LIBERTAS_SDIO=m
# CONFIG_LIBERTAS_SPI is not set
# CONFIG_LIBERTAS_DEBUG is not set
# CONFIG_LIBERTAS_THINFIRM is not set
# CONFIG_AT76C50X_USB is not set
# CONFIG_USB_ZD1201 is not set
# CONFIG_USB_NET_RNDIS_WLAN is not set
# CONFIG_RTL8187 is not set
# CONFIG_MAC80211_HWSIM is not set
# CONFIG_P54_COMMON is not set
# CONFIG_AR9170_USB is not set
CONFIG_HOSTAP=m
CONFIG_HOSTAP_FIRMWARE=y
CONFIG_HOSTAP_FIRMWARE_NVRAM=y
# CONFIG_B43 is not set
# CONFIG_B43LEGACY is not set
CONFIG_ZD1211RW=m
CONFIG_ZD1211RW_DEBUG=y
# CONFIG_RT2X00 is not set
#
# Enable WiMAX (Networking options) to see the WiMAX drivers
#
#
# USB Network Adapters
#
# CONFIG_USB_CATC is not set
# CONFIG_USB_KAWETH is not set
# CONFIG_USB_PEGASUS is not set
# CONFIG_USB_RTL8150 is not set
# CONFIG_USB_USBNET is not set
# CONFIG_WAN is not set
CONFIG_PPP=m
CONFIG_PPP_MULTILINK=y
CONFIG_PPP_FILTER=y
CONFIG_PPP_ASYNC=m
CONFIG_PPP_SYNC_TTY=m
CONFIG_PPP_DEFLATE=m
CONFIG_PPP_BSDCOMP=m
CONFIG_PPP_MPPE=m
# CONFIG_PPPOE is not set
# CONFIG_PPPOL2TP is not set
# CONFIG_SLIP is not set
CONFIG_SLHC=m
# CONFIG_NETCONSOLE is not set
# CONFIG_NETPOLL is not set
# CONFIG_NET_POLL_CONTROLLER is not set
# CONFIG_ISDN is not set
#
# Input device support
#
CONFIG_INPUT=y
CONFIG_INPUT_FF_MEMLESS=y
# CONFIG_INPUT_POLLDEV is not set
#
# Userland interfaces
#
CONFIG_INPUT_MOUSEDEV=y
CONFIG_INPUT_MOUSEDEV_PSAUX=y
CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
# CONFIG_INPUT_JOYDEV is not set
CONFIG_INPUT_EVDEV=y
CONFIG_INPUT_EVBUG=m
#
# Input Device Drivers
#
CONFIG_INPUT_KEYBOARD=y
# CONFIG_KEYBOARD_ATKBD is not set
# CONFIG_KEYBOARD_SUNKBD is not set
# CONFIG_KEYBOARD_LKKBD is not set
# CONFIG_KEYBOARD_XTKBD is not set
# CONFIG_KEYBOARD_NEWTON is not set
# CONFIG_KEYBOARD_STOWAWAY is not set
CONFIG_KEYBOARD_GPIO=y
CONFIG_INPUT_MOUSE=y
CONFIG_MOUSE_PS2=y
CONFIG_MOUSE_PS2_ALPS=y
CONFIG_MOUSE_PS2_LOGIPS2PP=y
CONFIG_MOUSE_PS2_SYNAPTICS=y
CONFIG_MOUSE_PS2_TRACKPOINT=y
# CONFIG_MOUSE_PS2_ELANTECH is not set
# CONFIG_MOUSE_PS2_TOUCHKIT is not set
# CONFIG_MOUSE_SERIAL is not set
# CONFIG_MOUSE_APPLETOUCH is not set
# CONFIG_MOUSE_BCM5974 is not set
# CONFIG_MOUSE_VSXXXAA is not set
# CONFIG_MOUSE_GPIO is not set
# CONFIG_INPUT_JOYSTICK is not set
# CONFIG_INPUT_TABLET is not set
CONFIG_INPUT_TOUCHSCREEN=y
# CONFIG_TOUCHSCREEN_ADS7846 is not set
# CONFIG_TOUCHSCREEN_AD7877 is not set
# CONFIG_TOUCHSCREEN_AD7879_I2C is not set
# CONFIG_TOUCHSCREEN_AD7879_SPI is not set
# CONFIG_TOUCHSCREEN_AD7879 is not set
# CONFIG_TOUCHSCREEN_FUJITSU is not set
# CONFIG_TOUCHSCREEN_GUNZE is not set
# CONFIG_TOUCHSCREEN_ELO is not set
# CONFIG_TOUCHSCREEN_WACOM_W8001 is not set
# CONFIG_TOUCHSCREEN_MTOUCH is not set
# CONFIG_TOUCHSCREEN_INEXIO is not set
# CONFIG_TOUCHSCREEN_MK712 is not set
# CONFIG_TOUCHSCREEN_PENMOUNT is not set
# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set
# CONFIG_TOUCHSCREEN_TOUCHIT213 is not set
# CONFIG_TOUCHSCREEN_TSC2007 is not set
# CONFIG_INPUT_MISC is not set
#
# Hardware I/O ports
#
CONFIG_SERIO=y
CONFIG_SERIO_SERPORT=y
CONFIG_SERIO_LIBPS2=y
CONFIG_SERIO_RAW=y
# CONFIG_GAMEPORT is not set
#
# Character devices
#
CONFIG_VT=y
CONFIG_CONSOLE_TRANSLATIONS=y
CONFIG_VT_CONSOLE=y
CONFIG_HW_CONSOLE=y
CONFIG_VT_HW_CONSOLE_BINDING=y
CONFIG_DEVKMEM=y
# CONFIG_SERIAL_NONSTANDARD is not set
#
# Serial drivers
#
# CONFIG_SERIAL_8250 is not set
#
# Non-8250 serial port support
#
CONFIG_SERIAL_SAMSUNG=y
CONFIG_SERIAL_SAMSUNG_UARTS=3
CONFIG_SERIAL_SAMSUNG_CONSOLE=y
CONFIG_SERIAL_S3C2440=y
# CONFIG_SERIAL_MAX3100 is not set
CONFIG_SERIAL_CORE=y
CONFIG_SERIAL_CORE_CONSOLE=y
CONFIG_UNIX98_PTYS=y
# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
CONFIG_LEGACY_PTYS=y
CONFIG_LEGACY_PTY_COUNT=128
CONFIG_IPMI_HANDLER=m
# CONFIG_IPMI_PANIC_EVENT is not set
CONFIG_IPMI_DEVICE_INTERFACE=m
CONFIG_IPMI_SI=m
CONFIG_IPMI_WATCHDOG=m
CONFIG_IPMI_POWEROFF=m
CONFIG_HW_RANDOM=y
# CONFIG_HW_RANDOM_TIMERIOMEM is not set
# CONFIG_R3964 is not set
# CONFIG_RAW_DRIVER is not set
# CONFIG_TCG_TPM is not set
CONFIG_I2C=y
CONFIG_I2C_BOARDINFO=y
CONFIG_I2C_CHARDEV=y
CONFIG_I2C_HELPER_AUTO=y
CONFIG_I2C_ALGOBIT=y
#
# I2C Hardware Bus support
#
#
# I2C system bus drivers (mostly embedded / system-on-chip)
#
# CONFIG_I2C_GPIO is not set
# CONFIG_I2C_OCORES is not set
CONFIG_I2C_S3C2410=y
CONFIG_I2C_SIMTEC=y
#
# External I2C/SMBus adapter drivers
#
# CONFIG_I2C_PARPORT_LIGHT is not set
# CONFIG_I2C_TAOS_EVM is not set
# CONFIG_I2C_TINY_USB is not set
#
# Other I2C/SMBus bus drivers
#
# CONFIG_I2C_PCA_PLATFORM is not set
# CONFIG_I2C_STUB is not set
#
# Miscellaneous I2C Chip support
#
# CONFIG_DS1682 is not set
# CONFIG_SENSORS_PCF8574 is not set
# CONFIG_PCF8575 is not set
# CONFIG_SENSORS_PCA9539 is not set
# CONFIG_SENSORS_MAX6875 is not set
CONFIG_SENSORS_TSL2550=m
# CONFIG_I2C_DEBUG_CORE is not set
# CONFIG_I2C_DEBUG_ALGO is not set
# CONFIG_I2C_DEBUG_BUS is not set
# CONFIG_I2C_DEBUG_CHIP is not set
CONFIG_SPI=y
# CONFIG_SPI_DEBUG is not set
CONFIG_SPI_MASTER=y
#
# SPI Master Controller Drivers
#
CONFIG_SPI_BITBANG=y
# CONFIG_SPI_GPIO is not set
CONFIG_SPI_S3C24XX=y
# CONFIG_SPI_S3C24XX_GPIO is not set
#
# SPI Protocol Masters
#
CONFIG_SPI_SPIDEV=y
# CONFIG_SPI_TLE62X0 is not set
CONFIG_ARCH_REQUIRE_GPIOLIB=y
CONFIG_GPIOLIB=y
# CONFIG_DEBUG_GPIO is not set
CONFIG_GPIO_SYSFS=y
#
# Memory mapped GPIO expanders:
#
#
# I2C GPIO expanders:
#
# CONFIG_GPIO_MAX732X is not set
# CONFIG_GPIO_PCA953X is not set
# CONFIG_GPIO_PCF857X is not set
#
# PCI GPIO expanders:
#
#
# SPI GPIO expanders:
#
# CONFIG_GPIO_MAX7301 is not set
# CONFIG_GPIO_MCP23S08 is not set
# CONFIG_W1 is not set
# CONFIG_POWER_SUPPLY is not set
CONFIG_HWMON=y
# CONFIG_HWMON_VID is not set
# CONFIG_SENSORS_AD7414 is not set
# CONFIG_SENSORS_AD7418 is not set
# CONFIG_SENSORS_ADCXX is not set
# CONFIG_SENSORS_ADM1021 is not set
# CONFIG_SENSORS_ADM1025 is not set
# CONFIG_SENSORS_ADM1026 is not set
# CONFIG_SENSORS_ADM1029 is not set
# CONFIG_SENSORS_ADM1031 is not set
# CONFIG_SENSORS_ADM9240 is not set
# CONFIG_SENSORS_ADT7462 is not set
# CONFIG_SENSORS_ADT7470 is not set
# CONFIG_SENSORS_ADT7473 is not set
# CONFIG_SENSORS_ADT7475 is not set
# CONFIG_SENSORS_ATXP1 is not set
# CONFIG_SENSORS_DS1621 is not set
# CONFIG_SENSORS_F71805F is not set
# CONFIG_SENSORS_F71882FG is not set
# CONFIG_SENSORS_F75375S is not set
# CONFIG_SENSORS_G760A is not set
# CONFIG_SENSORS_GL518SM is not set
# CONFIG_SENSORS_GL520SM is not set
# CONFIG_SENSORS_IBMAEM is not set
# CONFIG_SENSORS_IBMPEX is not set
# CONFIG_SENSORS_IT87 is not set
# CONFIG_SENSORS_LM63 is not set
# CONFIG_SENSORS_LM70 is not set
CONFIG_SENSORS_LM75=y
# CONFIG_SENSORS_LM77 is not set
# CONFIG_SENSORS_LM78 is not set
# CONFIG_SENSORS_LM80 is not set
# CONFIG_SENSORS_LM83 is not set
# CONFIG_SENSORS_LM85 is not set
# CONFIG_SENSORS_LM87 is not set
# CONFIG_SENSORS_LM90 is not set
# CONFIG_SENSORS_LM92 is not set
# CONFIG_SENSORS_LM93 is not set
# CONFIG_SENSORS_LTC4215 is not set
# CONFIG_SENSORS_LTC4245 is not set
# CONFIG_SENSORS_LM95241 is not set
# CONFIG_SENSORS_MAX1111 is not set
# CONFIG_SENSORS_MAX1619 is not set
# CONFIG_SENSORS_MAX6650 is not set
# CONFIG_SENSORS_PC87360 is not set
# CONFIG_SENSORS_PC87427 is not set
# CONFIG_SENSORS_PCF8591 is not set
# CONFIG_SENSORS_SHT15 is not set
# CONFIG_SENSORS_DME1737 is not set
# CONFIG_SENSORS_SMSC47M1 is not set
# CONFIG_SENSORS_SMSC47M192 is not set
# CONFIG_SENSORS_SMSC47B397 is not set
# CONFIG_SENSORS_ADS7828 is not set
# CONFIG_SENSORS_THMC50 is not set
# CONFIG_SENSORS_VT1211 is not set
# CONFIG_SENSORS_W83781D is not set
# CONFIG_SENSORS_W83791D is not set
# CONFIG_SENSORS_W83792D is not set
# CONFIG_SENSORS_W83793 is not set
# CONFIG_SENSORS_W83L785TS is not set
# CONFIG_SENSORS_W83L786NG is not set
# CONFIG_SENSORS_W83627HF is not set
# CONFIG_SENSORS_W83627EHF is not set
# CONFIG_SENSORS_LIS3_SPI is not set
# CONFIG_HWMON_DEBUG_CHIP is not set
CONFIG_THERMAL=m
# CONFIG_THERMAL_HWMON is not set
CONFIG_WATCHDOG=y
# CONFIG_WATCHDOG_NOWAYOUT is not set
#
# Watchdog Device Drivers
#
# CONFIG_SOFT_WATCHDOG is not set
CONFIG_S3C2410_WATCHDOG=y
#
# USB-based Watchdog Cards
#
# CONFIG_USBPCWATCHDOG is not set
CONFIG_SSB_POSSIBLE=y
#
# Sonics Silicon Backplane
#
# CONFIG_SSB is not set
#
# Multifunction device drivers
#
# CONFIG_MFD_CORE is not set
# CONFIG_MFD_SM501 is not set
# CONFIG_MFD_ASIC3 is not set
# CONFIG_HTC_EGPIO is not set
# CONFIG_HTC_PASIC3 is not set
# CONFIG_TPS65010 is not set
# CONFIG_TWL4030_CORE is not set
# CONFIG_MFD_TMIO is not set
# CONFIG_MFD_T7L66XB is not set
# CONFIG_MFD_TC6387XB is not set
# CONFIG_MFD_TC6393XB is not set
# CONFIG_PMIC_DA903X is not set
# CONFIG_MFD_WM8400 is not set
# CONFIG_MFD_WM8350_I2C is not set
# CONFIG_MFD_PCF50633 is not set
#
# Multimedia devices
#
#
# Multimedia core support
#
CONFIG_VIDEO_DEV=m
CONFIG_VIDEO_V4L2_COMMON=m
CONFIG_VIDEO_ALLOW_V4L1=y
CONFIG_VIDEO_V4L1_COMPAT=y
CONFIG_DVB_CORE=m
CONFIG_VIDEO_MEDIA=m
#
# Multimedia drivers
#
# CONFIG_MEDIA_ATTACH is not set
CONFIG_MEDIA_TUNER=m
# CONFIG_MEDIA_TUNER_CUSTOMISE is not set
CONFIG_MEDIA_TUNER_SIMPLE=m
CONFIG_MEDIA_TUNER_TDA8290=m
CONFIG_MEDIA_TUNER_TDA9887=m
CONFIG_MEDIA_TUNER_TEA5761=m
CONFIG_MEDIA_TUNER_TEA5767=m
CONFIG_MEDIA_TUNER_MT20XX=m
CONFIG_MEDIA_TUNER_XC2028=m
CONFIG_MEDIA_TUNER_XC5000=m
CONFIG_MEDIA_TUNER_MC44S803=m
CONFIG_VIDEO_V4L2=m
CONFIG_VIDEO_V4L1=m
CONFIG_VIDEOBUF_GEN=m
CONFIG_VIDEO_CAPTURE_DRIVERS=y
# CONFIG_VIDEO_ADV_DEBUG is not set
# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
CONFIG_VIDEO_HELPER_CHIPS_AUTO=y
# CONFIG_VIDEO_VIVI is not set
# CONFIG_VIDEO_CPIA is not set
# CONFIG_VIDEO_CPIA2 is not set
# CONFIG_VIDEO_SAA5246A is not set
# CONFIG_VIDEO_SAA5249 is not set
# CONFIG_VIDEO_AU0828 is not set
CONFIG_SOC_CAMERA=m
# CONFIG_SOC_CAMERA_MT9M001 is not set
# CONFIG_SOC_CAMERA_MT9M111 is not set
# CONFIG_SOC_CAMERA_MT9T031 is not set
# CONFIG_SOC_CAMERA_MT9V022 is not set
# CONFIG_SOC_CAMERA_TW9910 is not set
CONFIG_SOC_CAMERA_PLATFORM=m
# CONFIG_SOC_CAMERA_OV772X is not set
# CONFIG_VIDEO_SH_MOBILE_CEU is not set
CONFIG_V4L_USB_DRIVERS=y
# CONFIG_USB_VIDEO_CLASS is not set
CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y
CONFIG_USB_GSPCA=m
# CONFIG_USB_M5602 is not set
# CONFIG_USB_STV06XX is not set
# CONFIG_USB_GSPCA_CONEX is not set
# CONFIG_USB_GSPCA_ETOMS is not set
# CONFIG_USB_GSPCA_FINEPIX is not set
# CONFIG_USB_GSPCA_MARS is not set
# CONFIG_USB_GSPCA_MR97310A is not set
# CONFIG_USB_GSPCA_OV519 is not set
# CONFIG_USB_GSPCA_OV534 is not set
# CONFIG_USB_GSPCA_PAC207 is not set
# CONFIG_USB_GSPCA_PAC7311 is not set
# CONFIG_USB_GSPCA_SONIXB is not set
# CONFIG_USB_GSPCA_SONIXJ is not set
# CONFIG_USB_GSPCA_SPCA500 is not set
# CONFIG_USB_GSPCA_SPCA501 is not set
# CONFIG_USB_GSPCA_SPCA505 is not set
# CONFIG_USB_GSPCA_SPCA506 is not set
# CONFIG_USB_GSPCA_SPCA508 is not set
# CONFIG_USB_GSPCA_SPCA561 is not set
# CONFIG_USB_GSPCA_SQ905 is not set
# CONFIG_USB_GSPCA_SQ905C is not set
# CONFIG_USB_GSPCA_STK014 is not set
# CONFIG_USB_GSPCA_SUNPLUS is not set
# CONFIG_USB_GSPCA_T613 is not set
# CONFIG_USB_GSPCA_TV8532 is not set
# CONFIG_USB_GSPCA_VC032X is not set
CONFIG_USB_GSPCA_ZC3XX=m
# CONFIG_VIDEO_PVRUSB2 is not set
# CONFIG_VIDEO_HDPVR is not set
# CONFIG_VIDEO_EM28XX is not set
# CONFIG_VIDEO_CX231XX is not set
# CONFIG_VIDEO_USBVISION is not set
# CONFIG_USB_VICAM is not set
# CONFIG_USB_IBMCAM is not set
# CONFIG_USB_KONICAWC is not set
# CONFIG_USB_QUICKCAM_MESSENGER is not set
# CONFIG_USB_ET61X251 is not set
# CONFIG_VIDEO_OVCAMCHIP is not set
# CONFIG_USB_OV511 is not set
# CONFIG_USB_SE401 is not set
# CONFIG_USB_SN9C102 is not set
# CONFIG_USB_STV680 is not set
# CONFIG_USB_ZC0301 is not set
# CONFIG_USB_PWC is not set
# CONFIG_USB_PWC_INPUT_EVDEV is not set
# CONFIG_USB_ZR364XX is not set
# CONFIG_USB_STKWEBCAM is not set
# CONFIG_USB_S2255 is not set
CONFIG_RADIO_ADAPTERS=y
# CONFIG_USB_DSBR is not set
# CONFIG_USB_SI470X is not set
# CONFIG_USB_MR800 is not set
# CONFIG_RADIO_TEA5764 is not set
# CONFIG_DVB_DYNAMIC_MINORS is not set
CONFIG_DVB_CAPTURE_DRIVERS=y
# CONFIG_TTPCI_EEPROM is not set
#
# Supported USB Adapters
#
# CONFIG_DVB_USB is not set
# CONFIG_DVB_SIANO_SMS1XXX is not set
#
# Supported FlexCopII (B2C2) Adapters
#
# CONFIG_DVB_B2C2_FLEXCOP is not set
#
# Supported DVB Frontends
#
# CONFIG_DVB_FE_CUSTOMISE is not set
# CONFIG_DAB is not set
#
# Graphics support
#
# CONFIG_VGASTATE is not set
CONFIG_VIDEO_OUTPUT_CONTROL=y
CONFIG_FB=y
CONFIG_FIRMWARE_EDID=y
# CONFIG_FB_DDC is not set
# CONFIG_FB_BOOT_VESA_SUPPORT is not set
CONFIG_FB_CFB_FILLRECT=y
CONFIG_FB_CFB_COPYAREA=y
CONFIG_FB_CFB_IMAGEBLIT=y
# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
# CONFIG_FB_SYS_FILLRECT is not set
# CONFIG_FB_SYS_COPYAREA is not set
# CONFIG_FB_SYS_IMAGEBLIT is not set
# CONFIG_FB_FOREIGN_ENDIAN is not set
# CONFIG_FB_SYS_FOPS is not set
# CONFIG_FB_SVGALIB is not set
# CONFIG_FB_MACMODES is not set
# CONFIG_FB_BACKLIGHT is not set
CONFIG_FB_MODE_HELPERS=y
CONFIG_FB_TILEBLITTING=y
#
# Frame buffer hardware drivers
#
# CONFIG_FB_UVESA is not set
# CONFIG_FB_S1D13XXX is not set
CONFIG_FB_S3C2410=y
# CONFIG_FB_S3C2410_DEBUG is not set
# CONFIG_FB_VIRTUAL is not set
# CONFIG_FB_METRONOME is not set
# CONFIG_FB_MB862XX is not set
# CONFIG_FB_BROADSHEET is not set
CONFIG_BACKLIGHT_LCD_SUPPORT=y
CONFIG_LCD_CLASS_DEVICE=y
# CONFIG_LCD_LTV350QV is not set
# CONFIG_LCD_ILI9320 is not set
# CONFIG_LCD_TDO24M is not set
# CONFIG_LCD_VGG2432A4 is not set
CONFIG_LCD_PLATFORM=y
CONFIG_BACKLIGHT_CLASS_DEVICE=y
# CONFIG_BACKLIGHT_GENERIC is not set
CONFIG_BACKLIGHT_PWM=y
#
# Display device support
#
CONFIG_DISPLAY_SUPPORT=y
#
# Display hardware drivers
#
#
# Console display driver support
#
# CONFIG_VGA_CONSOLE is not set
CONFIG_DUMMY_CONSOLE=y
CONFIG_FRAMEBUFFER_CONSOLE=y
CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
CONFIG_FONTS=y
CONFIG_FONT_8x8=y
# CONFIG_FONT_8x16 is not set
# CONFIG_FONT_6x11 is not set
# CONFIG_FONT_7x14 is not set
# CONFIG_FONT_PEARL_8x8 is not set
# CONFIG_FONT_ACORN_8x8 is not set
CONFIG_FONT_MINI_4x6=y
# CONFIG_FONT_SUN8x16 is not set
# CONFIG_FONT_SUN12x22 is not set
# CONFIG_FONT_10x18 is not set
CONFIG_LOGO=y
# CONFIG_LOGO_LINUX_MONO is not set
# CONFIG_LOGO_LINUX_VGA16 is not set
CONFIG_LOGO_LINUX_CLUT224=y
CONFIG_SOUND=y
CONFIG_SOUND_OSS_CORE=y
CONFIG_SND=y
CONFIG_SND_TIMER=y
CONFIG_SND_PCM=y
CONFIG_SND_HWDEP=m
CONFIG_SND_RAWMIDI=m
CONFIG_SND_JACK=y
CONFIG_SND_SEQUENCER=m
CONFIG_SND_SEQ_DUMMY=m
CONFIG_SND_OSSEMUL=y
CONFIG_SND_MIXER_OSS=m
CONFIG_SND_PCM_OSS=m
CONFIG_SND_PCM_OSS_PLUGINS=y
CONFIG_SND_SEQUENCER_OSS=y
CONFIG_SND_DYNAMIC_MINORS=y
CONFIG_SND_SUPPORT_OLD_API=y
CONFIG_SND_VERBOSE_PROCFS=y
# CONFIG_SND_VERBOSE_PRINTK is not set
# CONFIG_SND_DEBUG is not set
# CONFIG_SND_DRIVERS is not set
# CONFIG_SND_ARM is not set
# CONFIG_SND_SPI is not set
CONFIG_SND_USB=y
CONFIG_SND_USB_AUDIO=m
CONFIG_SND_USB_CAIAQ=m
CONFIG_SND_USB_CAIAQ_INPUT=y
CONFIG_SND_SOC=y
CONFIG_SND_S3C24XX_SOC=y
CONFIG_SND_S3C24XX_SOC_I2S=y
# CONFIG_SND_S3C24XX_SOC_LN2440SBC_ALC650 is not set
CONFIG_SND_S3C24XX_SOC_S3C24XX_UDA134X=y
CONFIG_SND_SOC_I2C_AND_SPI=y
# CONFIG_SND_SOC_ALL_CODECS is not set
CONFIG_SND_SOC_L3=y
CONFIG_SND_SOC_UDA134X=y
# CONFIG_SOUND_PRIME is not set
CONFIG_HID_SUPPORT=y
CONFIG_HID=y
# CONFIG_HID_DEBUG is not set
CONFIG_HIDRAW=y
#
# USB Input Devices
#
CONFIG_USB_HID=y
CONFIG_HID_PID=y
CONFIG_USB_HIDDEV=y
#
# Special HID drivers
#
CONFIG_HID_A4TECH=y
CONFIG_HID_APPLE=y
CONFIG_HID_BELKIN=y
CONFIG_HID_CHERRY=y
CONFIG_HID_CHICONY=y
CONFIG_HID_CYPRESS=y
# CONFIG_DRAGONRISE_FF is not set
CONFIG_HID_EZKEY=y
CONFIG_HID_KYE=y
CONFIG_HID_GYRATION=y
CONFIG_HID_KENSINGTON=y
CONFIG_HID_LOGITECH=y
# CONFIG_LOGITECH_FF is not set
# CONFIG_LOGIRUMBLEPAD2_FF is not set
CONFIG_HID_MICROSOFT=y
CONFIG_HID_MONTEREY=y
CONFIG_HID_NTRIG=y
CONFIG_HID_PANTHERLORD=y
# CONFIG_PANTHERLORD_FF is not set
CONFIG_HID_PETALYNX=y
CONFIG_HID_SAMSUNG=y
CONFIG_HID_SONY=y
CONFIG_HID_SUNPLUS=y
# CONFIG_GREENASIA_FF is not set
CONFIG_HID_TOPSEED=y
# CONFIG_THRUSTMASTER_FF is not set
# CONFIG_ZEROPLUS_FF is not set
CONFIG_USB_SUPPORT=y
CONFIG_USB_ARCH_HAS_HCD=y
CONFIG_USB_ARCH_HAS_OHCI=y
# CONFIG_USB_ARCH_HAS_EHCI is not set
CONFIG_USB=y
# CONFIG_USB_DEBUG is not set
# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
#
# Miscellaneous USB options
#
CONFIG_USB_DEVICEFS=y
# CONFIG_USB_DEVICE_CLASS is not set
# CONFIG_USB_DYNAMIC_MINORS is not set
# CONFIG_USB_SUSPEND is not set
# CONFIG_USB_OTG is not set
# CONFIG_USB_MON is not set
# CONFIG_USB_WUSB is not set
# CONFIG_USB_WUSB_CBAF is not set
#
# USB Host Controller Drivers
#
# CONFIG_USB_C67X00_HCD is not set
# CONFIG_USB_OXU210HP_HCD is not set
# CONFIG_USB_ISP116X_HCD is not set
# CONFIG_USB_ISP1760_HCD is not set
CONFIG_USB_OHCI_HCD=y
# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
CONFIG_USB_OHCI_LITTLE_ENDIAN=y
# CONFIG_USB_SL811_HCD is not set
# CONFIG_USB_R8A66597_HCD is not set
# CONFIG_USB_HWA_HCD is not set
# CONFIG_USB_MUSB_HDRC is not set
# CONFIG_USB_GADGET_MUSB_HDRC is not set
#
# USB Device Class drivers
#
CONFIG_USB_ACM=m
# CONFIG_USB_PRINTER is not set
CONFIG_USB_WDM=m
# CONFIG_USB_TMC is not set
#
# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
#
#
# also be needed; see USB_STORAGE Help for more info
#
CONFIG_USB_STORAGE=m
# CONFIG_USB_STORAGE_DEBUG is not set
CONFIG_USB_STORAGE_DATAFAB=m
# CONFIG_USB_STORAGE_FREECOM is not set
CONFIG_USB_STORAGE_ISD200=m
CONFIG_USB_STORAGE_USBAT=m
CONFIG_USB_STORAGE_SDDR09=m
CONFIG_USB_STORAGE_SDDR55=m
CONFIG_USB_STORAGE_JUMPSHOT=m
CONFIG_USB_STORAGE_ALAUDA=m
# CONFIG_USB_STORAGE_ONETOUCH is not set
# CONFIG_USB_STORAGE_KARMA is not set
# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
CONFIG_USB_LIBUSUAL=y
#
# USB Imaging devices
#
# CONFIG_USB_MDC800 is not set
# CONFIG_USB_MICROTEK is not set
#
# USB port drivers
#
CONFIG_USB_SERIAL=m
# CONFIG_USB_EZUSB is not set
# CONFIG_USB_SERIAL_GENERIC is not set
# CONFIG_USB_SERIAL_AIRCABLE is not set
# CONFIG_USB_SERIAL_ARK3116 is not set
# CONFIG_USB_SERIAL_BELKIN is not set
# CONFIG_USB_SERIAL_CH341 is not set
# CONFIG_USB_SERIAL_WHITEHEAT is not set
# CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set
CONFIG_USB_SERIAL_CP210X=m
# CONFIG_USB_SERIAL_CYPRESS_M8 is not set
# CONFIG_USB_SERIAL_EMPEG is not set
CONFIG_USB_SERIAL_FTDI_SIO=m
# CONFIG_USB_SERIAL_FUNSOFT is not set
# CONFIG_USB_SERIAL_VISOR is not set
# CONFIG_USB_SERIAL_IPAQ is not set
# CONFIG_USB_SERIAL_IR is not set
# CONFIG_USB_SERIAL_EDGEPORT is not set
# CONFIG_USB_SERIAL_EDGEPORT_TI is not set
# CONFIG_USB_SERIAL_GARMIN is not set
# CONFIG_USB_SERIAL_IPW is not set
# CONFIG_USB_SERIAL_IUU is not set
# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set
# CONFIG_USB_SERIAL_KEYSPAN is not set
# CONFIG_USB_SERIAL_KLSI is not set
# CONFIG_USB_SERIAL_KOBIL_SCT is not set
# CONFIG_USB_SERIAL_MCT_U232 is not set
# CONFIG_USB_SERIAL_MOS7720 is not set
# CONFIG_USB_SERIAL_MOS7840 is not set
# CONFIG_USB_SERIAL_MOTOROLA is not set
# CONFIG_USB_SERIAL_NAVMAN is not set
# CONFIG_USB_SERIAL_PL2303 is not set
# CONFIG_USB_SERIAL_OTI6858 is not set
# CONFIG_USB_SERIAL_QUALCOMM is not set
CONFIG_USB_SERIAL_SPCP8X5=m
# CONFIG_USB_SERIAL_HP4X is not set
# CONFIG_USB_SERIAL_SAFE is not set
# CONFIG_USB_SERIAL_SIEMENS_MPI is not set
# CONFIG_USB_SERIAL_SIERRAWIRELESS is not set
# CONFIG_USB_SERIAL_SYMBOL is not set
# CONFIG_USB_SERIAL_TI is not set
# CONFIG_USB_SERIAL_CYBERJACK is not set
# CONFIG_USB_SERIAL_XIRCOM is not set
# CONFIG_USB_SERIAL_OPTION is not set
# CONFIG_USB_SERIAL_OMNINET is not set
# CONFIG_USB_SERIAL_OPTICON is not set
# CONFIG_USB_SERIAL_DEBUG is not set
#
# USB Miscellaneous drivers
#
# CONFIG_USB_EMI62 is not set
# CONFIG_USB_EMI26 is not set
# CONFIG_USB_ADUTUX is not set
# CONFIG_USB_SEVSEG is not set
# CONFIG_USB_RIO500 is not set
# CONFIG_USB_LEGOTOWER is not set
# CONFIG_USB_LCD is not set
# CONFIG_USB_BERRY_CHARGE is not set
# CONFIG_USB_LED is not set
# CONFIG_USB_CYPRESS_CY7C63 is not set
# CONFIG_USB_CYTHERM is not set
# CONFIG_USB_IDMOUSE is not set
# CONFIG_USB_FTDI_ELAN is not set
# CONFIG_USB_APPLEDISPLAY is not set
# CONFIG_USB_LD is not set
# CONFIG_USB_TRANCEVIBRATOR is not set
# CONFIG_USB_IOWARRIOR is not set
# CONFIG_USB_TEST is not set
# CONFIG_USB_ISIGHTFW is not set
# CONFIG_USB_VST is not set
CONFIG_USB_GADGET=y
# CONFIG_USB_GADGET_DEBUG is not set
# CONFIG_USB_GADGET_DEBUG_FILES is not set
# CONFIG_USB_GADGET_DEBUG_FS is not set
CONFIG_USB_GADGET_VBUS_DRAW=2
CONFIG_USB_GADGET_SELECTED=y
# CONFIG_USB_GADGET_AT91 is not set
# CONFIG_USB_GADGET_ATMEL_USBA is not set
# CONFIG_USB_GADGET_FSL_USB2 is not set
# CONFIG_USB_GADGET_LH7A40X is not set
# CONFIG_USB_GADGET_OMAP is not set
# CONFIG_USB_GADGET_PXA25X is not set
# CONFIG_USB_GADGET_PXA27X is not set
CONFIG_USB_GADGET_S3C2410=y
CONFIG_USB_S3C2410=y
# CONFIG_USB_S3C2410_DEBUG is not set
# CONFIG_USB_GADGET_IMX is not set
# CONFIG_USB_GADGET_M66592 is not set
# CONFIG_USB_GADGET_AMD5536UDC is not set
# CONFIG_USB_GADGET_FSL_QE is not set
# CONFIG_USB_GADGET_CI13XXX is not set
# CONFIG_USB_GADGET_NET2280 is not set
# CONFIG_USB_GADGET_GOKU is not set
# CONFIG_USB_GADGET_DUMMY_HCD is not set
# CONFIG_USB_GADGET_DUALSPEED is not set
CONFIG_USB_ZERO=m
CONFIG_USB_ETH=m
CONFIG_USB_ETH_RNDIS=y
CONFIG_USB_GADGETFS=m
CONFIG_USB_FILE_STORAGE=m
# CONFIG_USB_FILE_STORAGE_TEST is not set
CONFIG_USB_G_SERIAL=m
# CONFIG_USB_MIDI_GADGET is not set
# CONFIG_USB_G_PRINTER is not set
CONFIG_USB_CDC_COMPOSITE=m
#
# OTG and related infrastructure
#
# CONFIG_USB_GPIO_VBUS is not set
# CONFIG_NOP_USB_XCEIV is not set
CONFIG_MMC=y
# CONFIG_MMC_DEBUG is not set
# CONFIG_MMC_UNSAFE_RESUME is not set
#
# MMC/SD/SDIO Card Drivers
#
CONFIG_MMC_BLOCK=y
CONFIG_MMC_BLOCK_BOUNCE=y
CONFIG_SDIO_UART=y
# CONFIG_MMC_TEST is not set
#
# MMC/SD/SDIO Host Controller Drivers
#
CONFIG_MMC_SDHCI=y
CONFIG_MMC_SPI=y
CONFIG_MMC_S3C=y
# CONFIG_MEMSTICK is not set
# CONFIG_ACCESSIBILITY is not set
CONFIG_NEW_LEDS=y
CONFIG_LEDS_CLASS=y
#
# LED drivers
#
CONFIG_LEDS_S3C24XX=y
# CONFIG_LEDS_PCA9532 is not set
CONFIG_LEDS_GPIO=y
CONFIG_LEDS_GPIO_PLATFORM=y
# CONFIG_LEDS_LP5521 is not set
# CONFIG_LEDS_PCA955X is not set
# CONFIG_LEDS_DAC124S085 is not set
# CONFIG_LEDS_PWM is not set
# CONFIG_LEDS_BD2802 is not set
#
# LED Triggers
#
CONFIG_LEDS_TRIGGERS=y
CONFIG_LEDS_TRIGGER_TIMER=y
CONFIG_LEDS_TRIGGER_HEARTBEAT=y
CONFIG_LEDS_TRIGGER_BACKLIGHT=y
CONFIG_LEDS_TRIGGER_GPIO=y
CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
#
# iptables trigger is under Netfilter config (LED target)
#
CONFIG_RTC_LIB=y
CONFIG_RTC_CLASS=y
CONFIG_RTC_HCTOSYS=y
CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
# CONFIG_RTC_DEBUG is not set
#
# RTC interfaces
#
CONFIG_RTC_INTF_SYSFS=y
CONFIG_RTC_INTF_PROC=y
CONFIG_RTC_INTF_DEV=y
CONFIG_RTC_INTF_DEV_UIE_EMUL=y
# CONFIG_RTC_DRV_TEST is not set
#
# I2C RTC drivers
#
# CONFIG_RTC_DRV_DS1307 is not set
# CONFIG_RTC_DRV_DS1374 is not set
# CONFIG_RTC_DRV_DS1672 is not set
# CONFIG_RTC_DRV_MAX6900 is not set
# CONFIG_RTC_DRV_RS5C372 is not set
# CONFIG_RTC_DRV_ISL1208 is not set
# CONFIG_RTC_DRV_X1205 is not set
# CONFIG_RTC_DRV_PCF8563 is not set
# CONFIG_RTC_DRV_PCF8583 is not set
# CONFIG_RTC_DRV_M41T80 is not set
# CONFIG_RTC_DRV_S35390A is not set
# CONFIG_RTC_DRV_FM3130 is not set
# CONFIG_RTC_DRV_RX8581 is not set
#
# SPI RTC drivers
#
# CONFIG_RTC_DRV_M41T94 is not set
# CONFIG_RTC_DRV_DS1305 is not set
# CONFIG_RTC_DRV_DS1390 is not set
# CONFIG_RTC_DRV_MAX6902 is not set
# CONFIG_RTC_DRV_R9701 is not set
# CONFIG_RTC_DRV_RS5C348 is not set
# CONFIG_RTC_DRV_DS3234 is not set
#
# Platform RTC drivers
#
# CONFIG_RTC_DRV_CMOS is not set
# CONFIG_RTC_DRV_DS1286 is not set
# CONFIG_RTC_DRV_DS1511 is not set
# CONFIG_RTC_DRV_DS1553 is not set
# CONFIG_RTC_DRV_DS1742 is not set
# CONFIG_RTC_DRV_STK17TA8 is not set
# CONFIG_RTC_DRV_M48T86 is not set
# CONFIG_RTC_DRV_M48T35 is not set
# CONFIG_RTC_DRV_M48T59 is not set
# CONFIG_RTC_DRV_BQ4802 is not set
# CONFIG_RTC_DRV_V3020 is not set
#
# on-CPU RTC drivers
#
CONFIG_RTC_DRV_S3C=y
CONFIG_DMADEVICES=y
#
# DMA Devices
#
# CONFIG_AUXDISPLAY is not set
# CONFIG_REGULATOR is not set
# CONFIG_UIO is not set
# CONFIG_STAGING is not set
#
# File systems
#
CONFIG_EXT2_FS=m
CONFIG_EXT2_FS_XATTR=y
CONFIG_EXT2_FS_POSIX_ACL=y
CONFIG_EXT2_FS_SECURITY=y
# CONFIG_EXT2_FS_XIP is not set
CONFIG_EXT3_FS=y
# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
CONFIG_EXT3_FS_XATTR=y
CONFIG_EXT3_FS_POSIX_ACL=y
CONFIG_EXT3_FS_SECURITY=y
# CONFIG_EXT4_FS is not set
CONFIG_JBD=y
# CONFIG_JBD_DEBUG is not set
CONFIG_FS_MBCACHE=y
# CONFIG_REISERFS_FS is not set
# CONFIG_JFS_FS is not set
CONFIG_FS_POSIX_ACL=y
CONFIG_FILE_LOCKING=y
# CONFIG_XFS_FS is not set
# CONFIG_GFS2_FS is not set
# CONFIG_OCFS2_FS is not set
# CONFIG_BTRFS_FS is not set
CONFIG_DNOTIFY=y
CONFIG_INOTIFY=y
CONFIG_INOTIFY_USER=y
# CONFIG_QUOTA is not set
CONFIG_AUTOFS_FS=y
CONFIG_AUTOFS4_FS=y
# CONFIG_FUSE_FS is not set
CONFIG_GENERIC_ACL=y
#
# Caches
#
# CONFIG_FSCACHE is not set
#
# CD-ROM/DVD Filesystems
#
# CONFIG_ISO9660_FS is not set
# CONFIG_UDF_FS is not set
#
# DOS/FAT/NT Filesystems
#
CONFIG_FAT_FS=y
CONFIG_MSDOS_FS=y
CONFIG_VFAT_FS=y
CONFIG_FAT_DEFAULT_CODEPAGE=437
CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
# CONFIG_NTFS_FS is not set
#
# Pseudo filesystems
#
CONFIG_PROC_FS=y
CONFIG_PROC_SYSCTL=y
CONFIG_PROC_PAGE_MONITOR=y
CONFIG_SYSFS=y
CONFIG_TMPFS=y
CONFIG_TMPFS_POSIX_ACL=y
# CONFIG_HUGETLB_PAGE is not set
CONFIG_CONFIGFS_FS=m
CONFIG_MISC_FILESYSTEMS=y
# CONFIG_ADFS_FS is not set
# CONFIG_AFFS_FS is not set
# CONFIG_ECRYPT_FS is not set
# CONFIG_HFS_FS is not set
# CONFIG_HFSPLUS_FS is not set
# CONFIG_BEFS_FS is not set
# CONFIG_BFS_FS is not set
# CONFIG_EFS_FS is not set
CONFIG_JFFS2_FS=y
CONFIG_JFFS2_FS_DEBUG=0
CONFIG_JFFS2_FS_WRITEBUFFER=y
# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
# CONFIG_JFFS2_SUMMARY is not set
# CONFIG_JFFS2_FS_XATTR is not set
# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
CONFIG_JFFS2_ZLIB=y
# CONFIG_JFFS2_LZO is not set
CONFIG_JFFS2_RTIME=y
# CONFIG_JFFS2_RUBIN is not set
CONFIG_CRAMFS=y
# CONFIG_SQUASHFS is not set
# CONFIG_VXFS_FS is not set
# CONFIG_MINIX_FS is not set
# CONFIG_OMFS_FS is not set
# CONFIG_HPFS_FS is not set
# CONFIG_QNX4FS_FS is not set
CONFIG_ROMFS_FS=y
# CONFIG_ROMFS_BACKED_BY_BLOCK is not set
# CONFIG_ROMFS_BACKED_BY_MTD is not set
CONFIG_ROMFS_BACKED_BY_BOTH=y
CONFIG_ROMFS_ON_BLOCK=y
CONFIG_ROMFS_ON_MTD=y
# CONFIG_SYSV_FS is not set
# CONFIG_UFS_FS is not set
# CONFIG_NILFS2_FS is not set
CONFIG_NETWORK_FILESYSTEMS=y
CONFIG_NFS_FS=y
CONFIG_NFS_V3=y
CONFIG_NFS_V3_ACL=y
CONFIG_NFS_V4=y
CONFIG_ROOT_NFS=y
# CONFIG_NFSD is not set
CONFIG_LOCKD=y
CONFIG_LOCKD_V4=y
CONFIG_NFS_ACL_SUPPORT=y
CONFIG_NFS_COMMON=y
CONFIG_SUNRPC=y
CONFIG_SUNRPC_GSS=y
CONFIG_RPCSEC_GSS_KRB5=y
# CONFIG_RPCSEC_GSS_SPKM3 is not set
# CONFIG_SMB_FS is not set
# CONFIG_CIFS is not set
# CONFIG_NCP_FS is not set
# CONFIG_CODA_FS is not set
# CONFIG_AFS_FS is not set
#
# Partition Types
#
CONFIG_PARTITION_ADVANCED=y
# CONFIG_ACORN_PARTITION is not set
# CONFIG_OSF_PARTITION is not set
# CONFIG_AMIGA_PARTITION is not set
# CONFIG_ATARI_PARTITION is not set
# CONFIG_MAC_PARTITION is not set
CONFIG_MSDOS_PARTITION=y
CONFIG_BSD_DISKLABEL=y
CONFIG_MINIX_SUBPARTITION=y
CONFIG_SOLARIS_X86_PARTITION=y
CONFIG_UNIXWARE_DISKLABEL=y
CONFIG_LDM_PARTITION=y
# CONFIG_LDM_DEBUG is not set
# CONFIG_SGI_PARTITION is not set
# CONFIG_ULTRIX_PARTITION is not set
# CONFIG_SUN_PARTITION is not set
# CONFIG_KARMA_PARTITION is not set
CONFIG_EFI_PARTITION=y
# CONFIG_SYSV68_PARTITION is not set
CONFIG_NLS=y
CONFIG_NLS_DEFAULT="cp437"
CONFIG_NLS_CODEPAGE_437=m
CONFIG_NLS_CODEPAGE_737=m
CONFIG_NLS_CODEPAGE_775=m
CONFIG_NLS_CODEPAGE_850=m
CONFIG_NLS_CODEPAGE_852=m
CONFIG_NLS_CODEPAGE_855=m
CONFIG_NLS_CODEPAGE_857=m
CONFIG_NLS_CODEPAGE_860=m
CONFIG_NLS_CODEPAGE_861=m
CONFIG_NLS_CODEPAGE_862=m
CONFIG_NLS_CODEPAGE_863=m
CONFIG_NLS_CODEPAGE_864=m
CONFIG_NLS_CODEPAGE_865=m
CONFIG_NLS_CODEPAGE_866=m
CONFIG_NLS_CODEPAGE_869=m
CONFIG_NLS_CODEPAGE_936=m
CONFIG_NLS_CODEPAGE_950=m
CONFIG_NLS_CODEPAGE_932=m
CONFIG_NLS_CODEPAGE_949=m
CONFIG_NLS_CODEPAGE_874=m
CONFIG_NLS_ISO8859_8=m
CONFIG_NLS_CODEPAGE_1250=m
CONFIG_NLS_CODEPAGE_1251=m
CONFIG_NLS_ASCII=m
CONFIG_NLS_ISO8859_1=m
CONFIG_NLS_ISO8859_2=m
CONFIG_NLS_ISO8859_3=m
CONFIG_NLS_ISO8859_4=m
CONFIG_NLS_ISO8859_5=m
CONFIG_NLS_ISO8859_6=m
CONFIG_NLS_ISO8859_7=m
CONFIG_NLS_ISO8859_9=m
CONFIG_NLS_ISO8859_13=m
CONFIG_NLS_ISO8859_14=m
CONFIG_NLS_ISO8859_15=m
CONFIG_NLS_KOI8_R=m
CONFIG_NLS_KOI8_U=m
CONFIG_NLS_UTF8=m
# CONFIG_DLM is not set
#
# Kernel hacking
#
# CONFIG_PRINTK_TIME is not set
# CONFIG_ENABLE_WARN_DEPRECATED is not set
# CONFIG_ENABLE_MUST_CHECK is not set
CONFIG_FRAME_WARN=1024
# CONFIG_MAGIC_SYSRQ is not set
# CONFIG_UNUSED_SYMBOLS is not set
CONFIG_DEBUG_FS=y
# CONFIG_HEADERS_CHECK is not set
CONFIG_DEBUG_KERNEL=y
# CONFIG_DEBUG_SHIRQ is not set
CONFIG_DETECT_SOFTLOCKUP=y
# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
CONFIG_DETECT_HUNG_TASK=y
# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
# CONFIG_SCHED_DEBUG is not set
# CONFIG_SCHEDSTATS is not set
# CONFIG_TIMER_STATS is not set
# CONFIG_DEBUG_OBJECTS is not set
# CONFIG_SLUB_DEBUG_ON is not set
# CONFIG_SLUB_STATS is not set
# CONFIG_DEBUG_RT_MUTEXES is not set
# CONFIG_RT_MUTEX_TESTER is not set
# CONFIG_DEBUG_SPINLOCK is not set
# CONFIG_DEBUG_MUTEXES is not set
# CONFIG_DEBUG_LOCK_ALLOC is not set
# CONFIG_PROVE_LOCKING is not set
# CONFIG_LOCK_STAT is not set
# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
# CONFIG_DEBUG_KOBJECT is not set
CONFIG_DEBUG_BUGVERBOSE=y
CONFIG_DEBUG_INFO=y
# CONFIG_DEBUG_VM is not set
# CONFIG_DEBUG_WRITECOUNT is not set
CONFIG_DEBUG_MEMORY_INIT=y
# CONFIG_DEBUG_LIST is not set
# CONFIG_DEBUG_SG is not set
# CONFIG_DEBUG_NOTIFIERS is not set
# CONFIG_BOOT_PRINTK_DELAY is not set
# CONFIG_RCU_TORTURE_TEST is not set
# CONFIG_RCU_CPU_STALL_DETECTOR is not set
# CONFIG_BACKTRACE_SELF_TEST is not set
# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
# CONFIG_FAULT_INJECTION is not set
# CONFIG_LATENCYTOP is not set
CONFIG_SYSCTL_SYSCALL_CHECK=y
# CONFIG_PAGE_POISONING is not set
CONFIG_HAVE_FUNCTION_TRACER=y
CONFIG_TRACING_SUPPORT=y
#
# Tracers
#
# CONFIG_FUNCTION_TRACER is not set
# CONFIG_SCHED_TRACER is not set
# CONFIG_CONTEXT_SWITCH_TRACER is not set
# CONFIG_EVENT_TRACER is not set
# CONFIG_BOOT_TRACER is not set
# CONFIG_TRACE_BRANCH_PROFILING is not set
# CONFIG_STACK_TRACER is not set
# CONFIG_KMEMTRACE is not set
# CONFIG_WORKQUEUE_TRACER is not set
# CONFIG_BLK_DEV_IO_TRACE is not set
# CONFIG_DYNAMIC_DEBUG is not set
# CONFIG_SAMPLES is not set
CONFIG_HAVE_ARCH_KGDB=y
# CONFIG_KGDB is not set
CONFIG_ARM_UNWIND=y
CONFIG_DEBUG_USER=y
# CONFIG_DEBUG_ERRORS is not set
# CONFIG_DEBUG_STACK_USAGE is not set
# CONFIG_DEBUG_LL is not set
CONFIG_DEBUG_S3C_UART=0
#
# Security options
#
CONFIG_KEYS=y
# CONFIG_KEYS_DEBUG_PROC_KEYS is not set
# CONFIG_SECURITY is not set
# CONFIG_SECURITYFS is not set
CONFIG_SECURITY_FILE_CAPABILITIES=y
CONFIG_CRYPTO=y
#
# Crypto core or helper
#
CONFIG_CRYPTO_FIPS=y
CONFIG_CRYPTO_ALGAPI=y
CONFIG_CRYPTO_ALGAPI2=y
CONFIG_CRYPTO_AEAD=m
CONFIG_CRYPTO_AEAD2=y
CONFIG_CRYPTO_BLKCIPHER=y
CONFIG_CRYPTO_BLKCIPHER2=y
CONFIG_CRYPTO_HASH=y
CONFIG_CRYPTO_HASH2=y
CONFIG_CRYPTO_RNG=m
CONFIG_CRYPTO_RNG2=y
CONFIG_CRYPTO_PCOMP=y
CONFIG_CRYPTO_MANAGER=y
CONFIG_CRYPTO_MANAGER2=y
CONFIG_CRYPTO_GF128MUL=m
CONFIG_CRYPTO_NULL=m
CONFIG_CRYPTO_WORKQUEUE=y
CONFIG_CRYPTO_CRYPTD=m
CONFIG_CRYPTO_AUTHENC=m
CONFIG_CRYPTO_TEST=m
#
# Authenticated Encryption with Associated Data
#
CONFIG_CRYPTO_CCM=m
CONFIG_CRYPTO_GCM=m
CONFIG_CRYPTO_SEQIV=m
#
# Block modes
#
CONFIG_CRYPTO_CBC=y
CONFIG_CRYPTO_CTR=m
CONFIG_CRYPTO_CTS=m
CONFIG_CRYPTO_ECB=y
CONFIG_CRYPTO_LRW=m
CONFIG_CRYPTO_PCBC=m
CONFIG_CRYPTO_XTS=m
#
# Hash modes
#
CONFIG_CRYPTO_HMAC=y
CONFIG_CRYPTO_XCBC=m
#
# Digest
#
CONFIG_CRYPTO_CRC32C=m
CONFIG_CRYPTO_MD4=m
CONFIG_CRYPTO_MD5=y
CONFIG_CRYPTO_MICHAEL_MIC=y
CONFIG_CRYPTO_RMD128=m
CONFIG_CRYPTO_RMD160=m
CONFIG_CRYPTO_RMD256=m
CONFIG_CRYPTO_RMD320=m
CONFIG_CRYPTO_SHA1=m
CONFIG_CRYPTO_SHA256=m
CONFIG_CRYPTO_SHA512=m
CONFIG_CRYPTO_TGR192=m
CONFIG_CRYPTO_WP512=m
#
# Ciphers
#
CONFIG_CRYPTO_AES=y
CONFIG_CRYPTO_ANUBIS=m
CONFIG_CRYPTO_ARC4=y
CONFIG_CRYPTO_BLOWFISH=m
CONFIG_CRYPTO_CAMELLIA=m
CONFIG_CRYPTO_CAST5=m
CONFIG_CRYPTO_CAST6=m
CONFIG_CRYPTO_DES=y
CONFIG_CRYPTO_FCRYPT=m
CONFIG_CRYPTO_KHAZAD=m
CONFIG_CRYPTO_SALSA20=m
CONFIG_CRYPTO_SEED=m
CONFIG_CRYPTO_SERPENT=m
CONFIG_CRYPTO_TEA=m
CONFIG_CRYPTO_TWOFISH=m
CONFIG_CRYPTO_TWOFISH_COMMON=m
#
# Compression
#
CONFIG_CRYPTO_DEFLATE=m
CONFIG_CRYPTO_ZLIB=m
CONFIG_CRYPTO_LZO=m
#
# Random Number Generation
#
CONFIG_CRYPTO_ANSI_CPRNG=m
CONFIG_CRYPTO_HW=y
# CONFIG_BINARY_PRINTF is not set
#
# Library routines
#
CONFIG_BITREVERSE=y
CONFIG_GENERIC_FIND_LAST_BIT=y
CONFIG_CRC_CCITT=m
CONFIG_CRC16=m
CONFIG_CRC_T10DIF=y
CONFIG_CRC_ITU_T=y
CONFIG_CRC32=y
CONFIG_CRC7=y
CONFIG_LIBCRC32C=m
CONFIG_ZLIB_INFLATE=y
CONFIG_ZLIB_DEFLATE=y
CONFIG_LZO_COMPRESS=m
CONFIG_LZO_DECOMPRESS=m
CONFIG_DECOMPRESS_GZIP=y
CONFIG_DECOMPRESS_BZIP2=y
CONFIG_DECOMPRESS_LZMA=y
CONFIG_HAS_IOMEM=y
CONFIG_HAS_DMA=y
CONFIG_NLATTR=y
arch/arm/mach-s3c2410/usb-simtec.c
View file @
413427b5
...
...
@@ -22,7 +22,6 @@
#include <linux/timer.h>
#include <linux/init.h>
#include <linux/device.h>
#include <linux/gpio.h>
#include <linux/io.h>
#include <asm/mach/arch.h>
...
...
arch/arm/mach-s3c2440/Kconfig
View file @
413427b5
...
...
@@ -84,5 +84,15 @@ config MACH_AT2440EVB
help
Say Y here if you are using the AT2440EVB development board
config MACH_MINI2440
bool "MINI2440 development board"
select CPU_S3C2440
select EEPROM_AT24
select LEDS_TRIGGER_BACKLIGHT
select SND_S3C24XX_SOC_S3C24XX_UDA134X
help
Say Y here to select support for the MINI2440. Is a 10cm x 10cm board
available via various sources. It can come with a 3.5" or 7" touch LCD.
endmenu
arch/arm/mach-s3c2440/Makefile
View file @
413427b5
...
...
@@ -22,3 +22,4 @@ obj-$(CONFIG_MACH_RX3715) += mach-rx3715.o
obj-$(CONFIG_ARCH_S3C2440)
+=
mach-smdk2440.o
obj-$(CONFIG_MACH_NEXCODER_2440)
+=
mach-nexcoder.o
obj-$(CONFIG_MACH_AT2440EVB)
+=
mach-at2440evb.o
obj-$(CONFIG_MACH_MINI2440)
+=
mach-mini2440.o
arch/arm/mach-s3c2440/mach-mini2440.c
0 → 100644
View file @
413427b5
/* linux/arch/arm/mach-s3c2440/mach-mini2440.c
*
* Copyright (c) 2008 Ramax Lo <ramaxlo@gmail.com>
* Based on mach-anubis.c by Ben Dooks <ben@simtec.co.uk>
* and modifications by SBZ <sbz@spgui.org> and
* Weibing <http://weibing.blogbus.com> and
* Michel Pollet <buserror@gmail.com>
*
* For product information, visit http://code.google.com/p/mini2440/
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*/
#include <linux/kernel.h>
#include <linux/types.h>
#include <linux/interrupt.h>
#include <linux/list.h>
#include <linux/timer.h>
#include <linux/init.h>
#include <linux/gpio.h>
#include <linux/input.h>
#include <linux/io.h>
#include <linux/serial_core.h>
#include <linux/dm9000.h>
#include <linux/i2c/at24.h>
#include <linux/platform_device.h>
#include <linux/gpio_keys.h>
#include <linux/i2c.h>
#include <linux/mmc/host.h>
#include <asm/mach/arch.h>
#include <asm/mach/map.h>
#include <mach/hardware.h>
#include <mach/fb.h>
#include <asm/mach-types.h>
#include <plat/regs-serial.h>
#include <mach/regs-gpio.h>
#include <mach/leds-gpio.h>
#include <mach/regs-mem.h>
#include <mach/regs-lcd.h>
#include <mach/irqs.h>
#include <plat/nand.h>
#include <plat/iic.h>
#include <plat/mci.h>
#include <plat/udc.h>
#include <plat/regs-serial.h>
#include <linux/mtd/mtd.h>
#include <linux/mtd/nand.h>
#include <linux/mtd/nand_ecc.h>
#include <linux/mtd/partitions.h>
#include <plat/clock.h>
#include <plat/devs.h>
#include <plat/cpu.h>
#include <sound/s3c24xx_uda134x.h>
#define MACH_MINI2440_DM9K_BASE (S3C2410_CS4 + 0x300)
static
struct
map_desc
mini2440_iodesc
[]
__initdata
=
{
/* nothing to declare, move along */
};
#define UCON S3C2410_UCON_DEFAULT
#define ULCON S3C2410_LCON_CS8 | S3C2410_LCON_PNONE | S3C2410_LCON_STOPB
#define UFCON S3C2410_UFCON_RXTRIG8 | S3C2410_UFCON_FIFOMODE
static
struct
s3c2410_uartcfg
mini2440_uartcfgs
[]
__initdata
=
{
[
0
]
=
{
.
hwport
=
0
,
.
flags
=
0
,
.
ucon
=
UCON
,
.
ulcon
=
ULCON
,
.
ufcon
=
UFCON
,
},
[
1
]
=
{
.
hwport
=
1
,
.
flags
=
0
,
.
ucon
=
UCON
,
.
ulcon
=
ULCON
,
.
ufcon
=
UFCON
,
},
[
2
]
=
{
.
hwport
=
2
,
.
flags
=
0
,
.
ucon
=
UCON
,
.
ulcon
=
ULCON
,
.
ufcon
=
UFCON
,
},
};
/* USB device UDC support */
static
void
mini2440_udc_pullup
(
enum
s3c2410_udc_cmd_e
cmd
)
{
pr_debug
(
"udc: pullup(%d)
\n
"
,
cmd
);
switch
(
cmd
)
{
case
S3C2410_UDC_P_ENABLE
:
s3c2410_gpio_setpin
(
S3C2410_GPC
(
5
),
1
);
break
;
case
S3C2410_UDC_P_DISABLE
:
s3c2410_gpio_setpin
(
S3C2410_GPC
(
5
),
0
);
break
;
case
S3C2410_UDC_P_RESET
:
break
;
default:
break
;
}
}
static
struct
s3c2410_udc_mach_info
mini2440_udc_cfg
__initdata
=
{
.
udc_command
=
mini2440_udc_pullup
,
};
/* LCD timing and setup */
/*
* This macro simplifies the table bellow
*/
#define _LCD_DECLARE(_clock,_xres,margin_left,margin_right,hsync, \
_yres,margin_top,margin_bottom,vsync, refresh) \
.width = _xres, \
.xres = _xres, \
.height = _yres, \
.yres = _yres, \
.left_margin = margin_left, \
.right_margin = margin_right, \
.upper_margin = margin_top, \
.lower_margin = margin_bottom, \
.hsync_len = hsync, \
.vsync_len = vsync, \
.pixclock = ((_clock*100000000000LL) / \
((refresh) * \
(hsync + margin_left + _xres + margin_right) * \
(vsync + margin_top + _yres + margin_bottom))), \
.bpp = 16,\
.type = (S3C2410_LCDCON1_TFT16BPP |\
S3C2410_LCDCON1_TFT)
struct
s3c2410fb_display
mini2440_lcd_cfg
[]
__initdata
=
{
[
0
]
=
{
/* mini2440 + 3.5" TFT + touchscreen */
_LCD_DECLARE
(
7
,
/* The 3.5 is quite fast */
240
,
21
,
38
,
6
,
/* x timing */
320
,
4
,
4
,
2
,
/* y timing */
60
),
/* refresh rate */
.
lcdcon5
=
(
S3C2410_LCDCON5_FRM565
|
S3C2410_LCDCON5_INVVLINE
|
S3C2410_LCDCON5_INVVFRAME
|
S3C2410_LCDCON5_INVVDEN
|
S3C2410_LCDCON5_PWREN
),
},
[
1
]
=
{
/* mini2440 + 7" TFT + touchscreen */
_LCD_DECLARE
(
10
,
/* the 7" runs slower */
800
,
40
,
40
,
48
,
/* x timing */
480
,
29
,
3
,
3
,
/* y timing */
50
),
/* refresh rate */
.
lcdcon5
=
(
S3C2410_LCDCON5_FRM565
|
S3C2410_LCDCON5_INVVLINE
|
S3C2410_LCDCON5_INVVFRAME
|
S3C2410_LCDCON5_PWREN
),
},
/* The VGA shield can outout at several resolutions. All share
* the same timings, however, anything smaller than 1024x768
* will only be displayed in the top left corner of a 1024x768
* XGA output unless you add optional dip switches to the shield.
* Therefore timings for other resolutions have been ommited here.
*/
[
2
]
=
{
_LCD_DECLARE
(
10
,
1024
,
1
,
2
,
2
,
/* y timing */
768
,
200
,
16
,
16
,
/* x timing */
24
),
/* refresh rate, maximum stable,
tested with the FPGA shield */
.
lcdcon5
=
(
S3C2410_LCDCON5_FRM565
|
S3C2410_LCDCON5_HWSWP
),
},
};
/* todo - put into gpio header */
#define S3C2410_GPCCON_MASK(x) (3 << ((x) * 2))
#define S3C2410_GPDCON_MASK(x) (3 << ((x) * 2))
struct
s3c2410fb_mach_info
mini2440_fb_info
__initdata
=
{
.
displays
=
&
mini2440_lcd_cfg
[
0
],
/* not constant! see init */
.
num_displays
=
1
,
.
default_display
=
0
,
/* Enable VD[2..7], VD[10..15], VD[18..23] and VCLK, syncs, VDEN
* and disable the pull down resistors on pins we are using for LCD
* data. */
.
gpcup
=
(
0xf
<<
1
)
|
(
0x3f
<<
10
),
.
gpccon
=
(
S3C2410_GPC1_VCLK
|
S3C2410_GPC2_VLINE
|
S3C2410_GPC3_VFRAME
|
S3C2410_GPC4_VM
|
S3C2410_GPC10_VD2
|
S3C2410_GPC11_VD3
|
S3C2410_GPC12_VD4
|
S3C2410_GPC13_VD5
|
S3C2410_GPC14_VD6
|
S3C2410_GPC15_VD7
),
.
gpccon_mask
=
(
S3C2410_GPCCON_MASK
(
1
)
|
S3C2410_GPCCON_MASK
(
2
)
|
S3C2410_GPCCON_MASK
(
3
)
|
S3C2410_GPCCON_MASK
(
4
)
|
S3C2410_GPCCON_MASK
(
10
)
|
S3C2410_GPCCON_MASK
(
11
)
|
S3C2410_GPCCON_MASK
(
12
)
|
S3C2410_GPCCON_MASK
(
13
)
|
S3C2410_GPCCON_MASK
(
14
)
|
S3C2410_GPCCON_MASK
(
15
)),
.
gpdup
=
(
0x3f
<<
2
)
|
(
0x3f
<<
10
),
.
gpdcon
=
(
S3C2410_GPD2_VD10
|
S3C2410_GPD3_VD11
|
S3C2410_GPD4_VD12
|
S3C2410_GPD5_VD13
|
S3C2410_GPD6_VD14
|
S3C2410_GPD7_VD15
|
S3C2410_GPD10_VD18
|
S3C2410_GPD11_VD19
|
S3C2410_GPD12_VD20
|
S3C2410_GPD13_VD21
|
S3C2410_GPD14_VD22
|
S3C2410_GPD15_VD23
),
.
gpdcon_mask
=
(
S3C2410_GPDCON_MASK
(
2
)
|
S3C2410_GPDCON_MASK
(
3
)
|
S3C2410_GPDCON_MASK
(
4
)
|
S3C2410_GPDCON_MASK
(
5
)
|
S3C2410_GPDCON_MASK
(
6
)
|
S3C2410_GPDCON_MASK
(
7
)
|
S3C2410_GPDCON_MASK
(
10
)
|
S3C2410_GPDCON_MASK
(
11
)
|
S3C2410_GPDCON_MASK
(
12
)
|
S3C2410_GPDCON_MASK
(
13
)
|
S3C2410_GPDCON_MASK
(
14
)
|
S3C2410_GPDCON_MASK
(
15
)),
};
/* MMC/SD */
static
struct
s3c24xx_mci_pdata
mini2440_mmc_cfg
__initdata
=
{
.
gpio_detect
=
S3C2410_GPG
(
8
),
.
gpio_wprotect
=
S3C2410_GPH
(
8
),
.
set_power
=
NULL
,
.
ocr_avail
=
MMC_VDD_32_33
|
MMC_VDD_33_34
,
};
/* NAND Flash on MINI2440 board */
static
struct
mtd_partition
mini2440_default_nand_part
[]
__initdata
=
{
[
0
]
=
{
.
name
=
"u-boot"
,
.
size
=
SZ_256K
,
.
offset
=
0
,
},
[
1
]
=
{
.
name
=
"u-boot-env"
,
.
size
=
SZ_128K
,
.
offset
=
SZ_256K
,
},
[
2
]
=
{
.
name
=
"kernel"
,
/* 5 megabytes, for a kernel with no modules
* or a uImage with a ramdisk attached */
.
size
=
0x00500000
,
.
offset
=
SZ_256K
+
SZ_128K
,
},
[
3
]
=
{
.
name
=
"root"
,
.
offset
=
SZ_256K
+
SZ_128K
+
0x00500000
,
.
size
=
MTDPART_SIZ_FULL
,
},
};
static
struct
s3c2410_nand_set
mini2440_nand_sets
[]
__initdata
=
{
[
0
]
=
{
.
name
=
"nand"
,
.
nr_chips
=
1
,
.
nr_partitions
=
ARRAY_SIZE
(
mini2440_default_nand_part
),
.
partitions
=
mini2440_default_nand_part
,
},
};
static
struct
s3c2410_platform_nand
mini2440_nand_info
__initdata
=
{
.
tacls
=
0
,
.
twrph0
=
25
,
.
twrph1
=
15
,
.
nr_sets
=
ARRAY_SIZE
(
mini2440_nand_sets
),
.
sets
=
mini2440_nand_sets
,
.
ignore_unset_ecc
=
1
,
};
/* DM9000AEP 10/100 ethernet controller */
static
struct
resource
mini2440_dm9k_resource
[]
__initdata
=
{
[
0
]
=
{
.
start
=
MACH_MINI2440_DM9K_BASE
,
.
end
=
MACH_MINI2440_DM9K_BASE
+
3
,
.
flags
=
IORESOURCE_MEM
},
[
1
]
=
{
.
start
=
MACH_MINI2440_DM9K_BASE
+
4
,
.
end
=
MACH_MINI2440_DM9K_BASE
+
7
,
.
flags
=
IORESOURCE_MEM
},
[
2
]
=
{
.
start
=
IRQ_EINT7
,
.
end
=
IRQ_EINT7
,
.
flags
=
IORESOURCE_IRQ
|
IORESOURCE_IRQ_HIGHEDGE
,
}
};
/*
* The DM9000 has no eeprom, and it's MAC address is set by
* the bootloader before starting the kernel.
*/
static
struct
dm9000_plat_data
mini2440_dm9k_pdata
__initdata
=
{
.
flags
=
(
DM9000_PLATF_16BITONLY
|
DM9000_PLATF_NO_EEPROM
),
};
static
struct
platform_device
mini2440_device_eth
__initdata
=
{
.
name
=
"dm9000"
,
.
id
=
-
1
,
.
num_resources
=
ARRAY_SIZE
(
mini2440_dm9k_resource
),
.
resource
=
mini2440_dm9k_resource
,
.
dev
=
{
.
platform_data
=
&
mini2440_dm9k_pdata
,
},
};
/* CON5
* +--+ /-----\
* | | | |
* | | | BAT |
* | | \_____/
* | |
* | | +----+ +----+
* | | | K5 | | K1 |
* | | +----+ +----+
* | | +----+ +----+
* | | | K4 | | K2 |
* | | +----+ +----+
* | | +----+ +----+
* | | | K6 | | K3 |
* | | +----+ +----+
* .....
*/
static
struct
gpio_keys_button
mini2440_buttons
[]
__initdata
=
{
{
.
gpio
=
S3C2410_GPG
(
0
),
/* K1 */
.
code
=
KEY_F1
,
.
desc
=
"Button 1"
,
.
active_low
=
1
,
},
{
.
gpio
=
S3C2410_GPG
(
3
),
/* K2 */
.
code
=
KEY_F2
,
.
desc
=
"Button 2"
,
.
active_low
=
1
,
},
{
.
gpio
=
S3C2410_GPG
(
5
),
/* K3 */
.
code
=
KEY_F3
,
.
desc
=
"Button 3"
,
.
active_low
=
1
,
},
{
.
gpio
=
S3C2410_GPG
(
6
),
/* K4 */
.
code
=
KEY_POWER
,
.
desc
=
"Power"
,
.
active_low
=
1
,
},
{
.
gpio
=
S3C2410_GPG
(
7
),
/* K5 */
.
code
=
KEY_F5
,
.
desc
=
"Button 5"
,
.
active_low
=
1
,
},
#if 0
/* this pin is also known as TCLK1 and seems to already
* marked as "in use" somehow in the kernel -- possibly wrongly */
{
.gpio = S3C2410_GPG(11), /* K6 */
.code = KEY_F6,
.desc = "Button 6",
.active_low = 1,
},
#endif
};
static
struct
gpio_keys_platform_data
mini2440_button_data
__initdata
=
{
.
buttons
=
mini2440_buttons
,
.
nbuttons
=
ARRAY_SIZE
(
mini2440_buttons
),
};
static
struct
platform_device
mini2440_button_device
__initdata
=
{
.
name
=
"gpio-keys"
,
.
id
=
-
1
,
.
dev
=
{
.
platform_data
=
&
mini2440_button_data
,
}
};
/* LEDS */
static
struct
s3c24xx_led_platdata
mini2440_led1_pdata
__initdata
=
{
.
name
=
"led1"
,
.
gpio
=
S3C2410_GPB
(
5
),
.
flags
=
S3C24XX_LEDF_ACTLOW
|
S3C24XX_LEDF_TRISTATE
,
.
def_trigger
=
"heartbeat"
,
};
static
struct
s3c24xx_led_platdata
mini2440_led2_pdata
__initdata
=
{
.
name
=
"led2"
,
.
gpio
=
S3C2410_GPB
(
6
),
.
flags
=
S3C24XX_LEDF_ACTLOW
|
S3C24XX_LEDF_TRISTATE
,
.
def_trigger
=
"nand-disk"
,
};
static
struct
s3c24xx_led_platdata
mini2440_led3_pdata
__initdata
=
{
.
name
=
"led3"
,
.
gpio
=
S3C2410_GPB
(
7
),
.
flags
=
S3C24XX_LEDF_ACTLOW
|
S3C24XX_LEDF_TRISTATE
,
.
def_trigger
=
"mmc0"
,
};
static
struct
s3c24xx_led_platdata
mini2440_led4_pdata
__initdata
=
{
.
name
=
"led4"
,
.
gpio
=
S3C2410_GPB
(
8
),
.
flags
=
S3C24XX_LEDF_ACTLOW
|
S3C24XX_LEDF_TRISTATE
,
.
def_trigger
=
""
,
};
static
struct
s3c24xx_led_platdata
mini2440_led_backlight_pdata
__initdata
=
{
.
name
=
"backlight"
,
.
gpio
=
S3C2410_GPG
(
4
),
.
def_trigger
=
"backlight"
,
};
static
struct
platform_device
mini2440_led1
__initdata
=
{
.
name
=
"s3c24xx_led"
,
.
id
=
1
,
.
dev
=
{
.
platform_data
=
&
mini2440_led1_pdata
,
},
};
static
struct
platform_device
mini2440_led2
__initdata
=
{
.
name
=
"s3c24xx_led"
,
.
id
=
2
,
.
dev
=
{
.
platform_data
=
&
mini2440_led2_pdata
,
},
};
static
struct
platform_device
mini2440_led3
__initdata
=
{
.
name
=
"s3c24xx_led"
,
.
id
=
3
,
.
dev
=
{
.
platform_data
=
&
mini2440_led3_pdata
,
},
};
static
struct
platform_device
mini2440_led4
__initdata
=
{
.
name
=
"s3c24xx_led"
,
.
id
=
4
,
.
dev
=
{
.
platform_data
=
&
mini2440_led4_pdata
,
},
};
static
struct
platform_device
mini2440_led_backlight
__initdata
=
{
.
name
=
"s3c24xx_led"
,
.
id
=
5
,
.
dev
=
{
.
platform_data
=
&
mini2440_led_backlight_pdata
,
},
};
/* AUDIO */
static
struct
s3c24xx_uda134x_platform_data
mini2440_audio_pins
__initdata
=
{
.
l3_clk
=
S3C2410_GPB
(
4
),
.
l3_mode
=
S3C2410_GPB
(
2
),
.
l3_data
=
S3C2410_GPB
(
3
),
.
model
=
UDA134X_UDA1341
};
static
struct
platform_device
mini2440_audio
__initdata
=
{
.
name
=
"s3c24xx_uda134x"
,
.
id
=
0
,
.
dev
=
{
.
platform_data
=
&
mini2440_audio_pins
,
},
};
/*
* I2C devices
*/
static
struct
at24_platform_data
at24c08
=
{
.
byte_len
=
SZ_8K
/
8
,
.
page_size
=
16
,
};
static
struct
i2c_board_info
mini2440_i2c_devs
[]
__initdata
=
{
{
I2C_BOARD_INFO
(
"24c08"
,
0x50
),
.
platform_data
=
&
at24c08
,
},
};
static
struct
platform_device
*
mini2440_devices
[]
__initdata
=
{
&
s3c_device_usb
,
&
s3c_device_wdt
,
/* &s3c_device_adc,*/
/* ADC doesn't like living with touchscreen ! */
&
s3c_device_i2c0
,
&
s3c_device_rtc
,
&
s3c_device_usbgadget
,
&
mini2440_device_eth
,
&
mini2440_led1
,
&
mini2440_led2
,
&
mini2440_led3
,
&
mini2440_led4
,
&
mini2440_button_device
,
&
s3c_device_nand
,
&
s3c_device_sdi
,
&
s3c_device_iis
,
&
mini2440_audio
,
/* &s3c_device_timer[0],*/
/* buzzer pwm, no API for it */
/* remaining devices are optional */
};
static
void
__init
mini2440_map_io
(
void
)
{
s3c24xx_init_io
(
mini2440_iodesc
,
ARRAY_SIZE
(
mini2440_iodesc
));
s3c24xx_init_clocks
(
12000000
);
s3c24xx_init_uarts
(
mini2440_uartcfgs
,
ARRAY_SIZE
(
mini2440_uartcfgs
));
s3c_device_nand
.
dev
.
platform_data
=
&
mini2440_nand_info
;
s3c_device_sdi
.
dev
.
platform_data
=
&
mini2440_mmc_cfg
;
}
/*
* mini2440_features string
*
* t = Touchscreen present
* b = backlight control
* c = camera [TODO]
* 0-9 LCD configuration
*
*/
static
char
mini2440_features_str
[
12
]
__initdata
=
"0tb"
;
static
int
__init
mini2440_features_setup
(
char
*
str
)
{
if
(
str
)
strlcpy
(
mini2440_features_str
,
str
,
sizeof
(
mini2440_features_str
));
return
1
;
}
__setup
(
"mini2440="
,
mini2440_features_setup
);
#define FEATURE_SCREEN (1 << 0)
#define FEATURE_BACKLIGHT (1 << 1)
#define FEATURE_TOUCH (1 << 2)
#define FEATURE_CAMERA (1 << 3)
struct
mini2440_features_t
{
int
count
;
int
done
;
int
lcd_index
;
struct
platform_device
*
optional
[
8
];
};
static
void
mini2440_parse_features
(
struct
mini2440_features_t
*
features
,
const
char
*
features_str
)
{
const
char
*
fp
=
features_str
;
features
->
count
=
0
;
features
->
done
=
0
;
features
->
lcd_index
=
-
1
;
while
(
*
fp
)
{
char
f
=
*
fp
++
;
switch
(
f
)
{
case
'0'
...
'9'
:
/* tft screen */
if
(
features
->
done
&
FEATURE_SCREEN
)
{
printk
(
KERN_INFO
"MINI2440: '%c' ignored, "
"screen type already set
\n
"
,
f
);
}
else
{
int
li
=
f
-
'0'
;
if
(
li
>=
ARRAY_SIZE
(
mini2440_lcd_cfg
))
printk
(
KERN_INFO
"MINI2440: "
"'%c' out of range LCD mode
\n
"
,
f
);
else
{
features
->
optional
[
features
->
count
++
]
=
&
s3c_device_lcd
;
features
->
lcd_index
=
li
;
}
}
features
->
done
|=
FEATURE_SCREEN
;
break
;
case
'b'
:
if
(
features
->
done
&
FEATURE_BACKLIGHT
)
printk
(
KERN_INFO
"MINI2440: '%c' ignored, "
"backlight already set
\n
"
,
f
);
else
{
features
->
optional
[
features
->
count
++
]
=
&
mini2440_led_backlight
;
}
features
->
done
|=
FEATURE_BACKLIGHT
;
break
;
case
't'
:
printk
(
KERN_INFO
"MINI2440: '%c' ignored, "
"touchscreen not compiled in
\n
"
,
f
);
break
;
case
'c'
:
if
(
features
->
done
&
FEATURE_CAMERA
)
printk
(
KERN_INFO
"MINI2440: '%c' ignored, "
"camera already registered
\n
"
,
f
);
else
features
->
optional
[
features
->
count
++
]
=
&
s3c_device_camif
;
features
->
done
|=
FEATURE_CAMERA
;
break
;
}
}
}
static
void
__init
mini2440_init
(
void
)
{
struct
mini2440_features_t
features
=
{
0
};
int
i
;
printk
(
KERN_INFO
"MINI2440: Option string mini2440=%s
\n
"
,
mini2440_features_str
);
/* Parse the feature string */
mini2440_parse_features
(
&
features
,
mini2440_features_str
);
/* turn LCD on */
s3c2410_gpio_cfgpin
(
S3C2410_GPC
(
0
),
S3C2410_GPC0_LEND
);
/* Turn the backlight early on */
s3c2410_gpio_setpin
(
S3C2410_GPG
(
4
),
1
);
s3c2410_gpio_cfgpin
(
S3C2410_GPG
(
4
),
S3C2410_GPIO_OUTPUT
);
/* remove pullup on optional PWM backlight -- unused on 3.5 and 7"s */
s3c2410_gpio_pullup
(
S3C2410_GPB
(
1
),
0
);
s3c2410_gpio_setpin
(
S3C2410_GPB
(
1
),
0
);
s3c2410_gpio_cfgpin
(
S3C2410_GPB
(
1
),
S3C2410_GPIO_INPUT
);
/* Make sure the D+ pullup pin is output */
s3c2410_gpio_cfgpin
(
S3C2410_GPC
(
5
),
S3C2410_GPIO_OUTPUT
);
/* mark the key as input, without pullups (there is one on the board) */
for
(
i
=
0
;
i
<
ARRAY_SIZE
(
mini2440_buttons
);
i
++
)
{
s3c2410_gpio_pullup
(
mini2440_buttons
[
i
].
gpio
,
0
);
s3c2410_gpio_cfgpin
(
mini2440_buttons
[
i
].
gpio
,
S3C2410_GPIO_INPUT
);
}
if
(
features
.
lcd_index
!=
-
1
)
{
int
li
;
mini2440_fb_info
.
displays
=
&
mini2440_lcd_cfg
[
features
.
lcd_index
];
printk
(
KERN_INFO
"MINI2440: LCD"
);
for
(
li
=
0
;
li
<
ARRAY_SIZE
(
mini2440_lcd_cfg
);
li
++
)
if
(
li
==
features
.
lcd_index
)
printk
(
" [%d:%dx%d]"
,
li
,
mini2440_lcd_cfg
[
li
].
width
,
mini2440_lcd_cfg
[
li
].
height
);
else
printk
(
" %d:%dx%d"
,
li
,
mini2440_lcd_cfg
[
li
].
width
,
mini2440_lcd_cfg
[
li
].
height
);
printk
(
"
\n
"
);
s3c24xx_fb_set_platdata
(
&
mini2440_fb_info
);
}
s3c24xx_udc_set_platdata
(
&
mini2440_udc_cfg
);
s3c_i2c0_set_platdata
(
NULL
);
i2c_register_board_info
(
0
,
mini2440_i2c_devs
,
ARRAY_SIZE
(
mini2440_i2c_devs
));
platform_add_devices
(
mini2440_devices
,
ARRAY_SIZE
(
mini2440_devices
));
if
(
features
.
count
)
/* the optional features */
platform_add_devices
(
features
.
optional
,
features
.
count
);
}
MACHINE_START
(
MINI2440
,
"MINI2440"
)
/* Maintainer: Michel Pollet <buserror@gmail.com> */
.
phys_io
=
S3C2410_PA_UART
,
.
io_pg_offst
=
(((
u32
)
S3C24XX_VA_UART
)
>>
18
)
&
0xfffc
,
.
boot_params
=
S3C2410_SDRAM_PA
+
0x100
,
.
map_io
=
mini2440_map_io
,
.
init_machine
=
mini2440_init
,
.
init_irq
=
s3c24xx_init_irq
,
.
timer
=
&
s3c24xx_timer
,
MACHINE_END
arch/arm/mach-s3c2442/Kconfig
View file @
413427b5
...
...
@@ -24,6 +24,18 @@ config SMDK2440_CPU2442
depends on ARCH_S3C2440
select CPU_S3C2442
config MACH_NEO1973_GTA02
bool "Openmoko GTA02 / Freerunner phone"
select CPU_S3C2442
select MFD_PCF50633
select PCF50633_GPIO
select I2C
select POWER_SUPPLY
select MACH_NEO1973
select S3C2410_PWM
help
Say Y here if you are using the Openmoko GTA02 / Freerunner GSM Phone
endmenu
arch/arm/mach-s3c2442/Makefile
View file @
413427b5
...
...
@@ -12,5 +12,7 @@ obj- :=
obj-$(CONFIG_CPU_S3C2442)
+=
s3c2442.o
obj-$(CONFIG_CPU_S3C2442)
+=
clock.o
obj-$(CONFIG_MACH_NEO1973_GTA02)
+=
mach-gta02.o
# Machine support
arch/arm/mach-s3c2442/include/mach/gta02.h
0 → 100644
View file @
413427b5
#ifndef _GTA02_H
#define _GTA02_H
#include <mach/regs-gpio.h>
/* Different hardware revisions, passed in ATAG_REVISION by u-boot */
#define GTA02v1_SYSTEM_REV 0x00000310
#define GTA02v2_SYSTEM_REV 0x00000320
#define GTA02v3_SYSTEM_REV 0x00000330
#define GTA02v4_SYSTEM_REV 0x00000340
#define GTA02v5_SYSTEM_REV 0x00000350
/* since A7 is basically same as A6, we use A6 PCB ID */
#define GTA02v6_SYSTEM_REV 0x00000360
#define GTA02_GPIO_n3DL_GSM S3C2410_GPA(13)
/* v1 + v2 + v3 only */
#define GTA02_GPIO_PWR_LED1 S3C2410_GPB(0)
#define GTA02_GPIO_PWR_LED2 S3C2410_GPB(1)
#define GTA02_GPIO_AUX_LED S3C2410_GPB(2)
#define GTA02_GPIO_VIBRATOR_ON S3C2410_GPB(3)
#define GTA02_GPIO_MODEM_RST S3C2410_GPB(5)
#define GTA02_GPIO_BT_EN S3C2410_GPB(6)
#define GTA02_GPIO_MODEM_ON S3C2410_GPB(7)
#define GTA02_GPIO_EXTINT8 S3C2410_GPB(8)
#define GTA02_GPIO_USB_PULLUP S3C2410_GPB(9)
#define GTA02_GPIO_PIO5 S3C2410_GPC(5)
/* v3 + v4 only */
#define GTA02v3_GPIO_nG1_CS S3C2410_GPD(12)
/* v3 + v4 only */
#define GTA02v3_GPIO_nG2_CS S3C2410_GPD(13)
/* v3 + v4 only */
#define GTA02v5_GPIO_HDQ S3C2410_GPD(14)
/* v5 + */
#define GTA02_GPIO_nG1_INT S3C2410_GPF(0)
#define GTA02_GPIO_IO1 S3C2410_GPF(1)
#define GTA02_GPIO_PIO_2 S3C2410_GPF(2)
/* v2 + v3 + v4 only */
#define GTA02_GPIO_JACK_INSERT S3C2410_GPF(4)
#define GTA02_GPIO_WLAN_GPIO1 S3C2410_GPF(5)
/* v2 + v3 + v4 only */
#define GTA02_GPIO_AUX_KEY S3C2410_GPF(6)
#define GTA02_GPIO_HOLD_KEY S3C2410_GPF(7)
#define GTA02_GPIO_3D_IRQ S3C2410_GPG(4)
#define GTA02v2_GPIO_nG2_INT S3C2410_GPG(8)
/* v2 + v3 + v4 only */
#define GTA02v3_GPIO_nUSB_OC S3C2410_GPG(9)
/* v3 + v4 only */
#define GTA02v3_GPIO_nUSB_FLT S3C2410_GPG(10)
/* v3 + v4 only */
#define GTA02v3_GPIO_nGSM_OC S3C2410_GPG(11)
/* v3 + v4 only */
#define GTA02_GPIO_AMP_SHUT S3C2440_GPJ1
/* v2 + v3 + v4 only */
#define GTA02v1_GPIO_WLAN_GPIO10 S3C2440_GPJ2
#define GTA02_GPIO_HP_IN S3C2440_GPJ2
/* v2 + v3 + v4 only */
#define GTA02_GPIO_INT0 S3C2440_GPJ3
/* v2 + v3 + v4 only */
#define GTA02_GPIO_nGSM_EN S3C2440_GPJ4
#define GTA02_GPIO_3D_RESET S3C2440_GPJ5
#define GTA02_GPIO_nDL_GSM S3C2440_GPJ6
/* v4 + v5 only */
#define GTA02_GPIO_WLAN_GPIO0 S3C2440_GPJ7
#define GTA02v1_GPIO_BAT_ID S3C2440_GPJ8
#define GTA02_GPIO_KEEPACT S3C2440_GPJ8
#define GTA02v1_GPIO_HP_IN S3C2440_GPJ10
#define GTA02_CHIP_PWD S3C2440_GPJ11
/* v2 + v3 + v4 only */
#define GTA02_GPIO_nWLAN_RESET S3C2440_GPJ12
/* v2 + v3 + v4 only */
#define GTA02_IRQ_GSENSOR_1 IRQ_EINT0
#define GTA02_IRQ_MODEM IRQ_EINT1
#define GTA02_IRQ_PIO_2 IRQ_EINT2
/* v2 + v3 + v4 only */
#define GTA02_IRQ_nJACK_INSERT IRQ_EINT4
#define GTA02_IRQ_WLAN_GPIO1 IRQ_EINT5
#define GTA02_IRQ_AUX IRQ_EINT6
#define GTA02_IRQ_nHOLD IRQ_EINT7
#define GTA02_IRQ_PCF50633 IRQ_EINT9
#define GTA02_IRQ_3D IRQ_EINT12
#define GTA02_IRQ_GSENSOR_2 IRQ_EINT16
/* v2 + v3 + v4 only */
#define GTA02v3_IRQ_nUSB_OC IRQ_EINT17
/* v3 + v4 only */
#define GTA02v3_IRQ_nUSB_FLT IRQ_EINT18
/* v3 + v4 only */
#define GTA02v3_IRQ_nGSM_OC IRQ_EINT19
/* v3 + v4 only */
/* returns 00 000 on GTA02 A5 and earlier, A6 returns 01 001 */
#define GTA02_PCB_ID1_0 S3C2410_GPC(13)
#define GTA02_PCB_ID1_1 S3C2410_GPC(15)
#define GTA02_PCB_ID1_2 S3C2410_GPD(0)
#define GTA02_PCB_ID2_0 S3C2410_GPD(3)
#define GTA02_PCB_ID2_1 S3C2410_GPD(4)
int
gta02_get_pcb_revision
(
void
);
#endif
/* _GTA02_H */
arch/arm/mach-s3c2442/mach-gta02.c
0 → 100644
View file @
413427b5
/*
* linux/arch/arm/mach-s3c2442/mach-gta02.c
*
* S3C2442 Machine Support for Openmoko GTA02 / FreeRunner.
*
* Copyright (C) 2006-2009 by Openmoko, Inc.
* Authors: Harald Welte <laforge@openmoko.org>
* Andy Green <andy@openmoko.org>
* Werner Almesberger <werner@openmoko.org>
* All rights reserved.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of
* the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
* MA 02111-1307 USA
*
*/
#include <linux/kernel.h>
#include <linux/types.h>
#include <linux/interrupt.h>
#include <linux/list.h>
#include <linux/delay.h>
#include <linux/timer.h>
#include <linux/init.h>
#include <linux/gpio.h>
#include <linux/workqueue.h>
#include <linux/platform_device.h>
#include <linux/serial_core.h>
#include <linux/spi/spi.h>
#include <linux/mmc/host.h>
#include <linux/mtd/mtd.h>
#include <linux/mtd/nand.h>
#include <linux/mtd/nand_ecc.h>
#include <linux/mtd/partitions.h>
#include <linux/mtd/physmap.h>
#include <linux/io.h>
#include <linux/i2c.h>
#include <linux/backlight.h>
#include <linux/regulator/machine.h>
#include <linux/mfd/pcf50633/core.h>
#include <linux/mfd/pcf50633/mbc.h>
#include <linux/mfd/pcf50633/adc.h>
#include <linux/mfd/pcf50633/gpio.h>
#include <linux/mfd/pcf50633/pmic.h>
#include <asm/mach/arch.h>
#include <asm/mach/map.h>
#include <asm/mach/irq.h>
#include <asm/irq.h>
#include <asm/mach-types.h>
#include <mach/regs-irq.h>
#include <mach/regs-gpio.h>
#include <mach/regs-gpioj.h>
#include <mach/fb.h>
#include <mach/spi.h>
#include <mach/spi-gpio.h>
#include <plat/usb-control.h>
#include <mach/regs-mem.h>
#include <mach/hardware.h>
#include <mach/gta02.h>
#include <plat/regs-serial.h>
#include <plat/nand.h>
#include <plat/devs.h>
#include <plat/cpu.h>
#include <plat/pm.h>
#include <plat/udc.h>
#include <plat/gpio-cfg.h>
#include <plat/iic.h>
static
struct
pcf50633
*
gta02_pcf
;
/*
* This gets called every 1ms when we paniced.
*/
static
long
gta02_panic_blink
(
long
count
)
{
long
delay
=
0
;
static
long
last_blink
;
static
char
led
;
/* Fast blink: 200ms period. */
if
(
count
-
last_blink
<
100
)
return
0
;
led
^=
1
;
gpio_direction_output
(
GTA02_GPIO_AUX_LED
,
led
);
last_blink
=
count
;
return
delay
;
}
static
struct
map_desc
gta02_iodesc
[]
__initdata
=
{
{
.
virtual
=
0xe0000000
,
.
pfn
=
__phys_to_pfn
(
S3C2410_CS3
+
0x01000000
),
.
length
=
SZ_1M
,
.
type
=
MT_DEVICE
},
};
#define UCON (S3C2410_UCON_DEFAULT | S3C2443_UCON_RXERR_IRQEN)
#define ULCON (S3C2410_LCON_CS8 | S3C2410_LCON_PNONE | S3C2410_LCON_STOPB)
#define UFCON (S3C2410_UFCON_RXTRIG8 | S3C2410_UFCON_FIFOMODE)
static
struct
s3c2410_uartcfg
gta02_uartcfgs
[]
=
{
[
0
]
=
{
.
hwport
=
0
,
.
flags
=
0
,
.
ucon
=
UCON
,
.
ulcon
=
ULCON
,
.
ufcon
=
UFCON
,
},
[
1
]
=
{
.
hwport
=
1
,
.
flags
=
0
,
.
ucon
=
UCON
,
.
ulcon
=
ULCON
,
.
ufcon
=
UFCON
,
},
[
2
]
=
{
.
hwport
=
2
,
.
flags
=
0
,
.
ucon
=
UCON
,
.
ulcon
=
ULCON
,
.
ufcon
=
UFCON
,
},
};
#ifdef CONFIG_CHARGER_PCF50633
/*
* On GTA02 the 1A charger features a 48K resistor to 0V on the ID pin.
* We use this to recognize that we can pull 1A from the USB socket.
*
* These constants are the measured pcf50633 ADC levels with the 1A
* charger / 48K resistor, and with no pulldown resistor.
*/
#define ADC_NOM_CHG_DETECT_1A 6
#define ADC_NOM_CHG_DETECT_USB 43
static
void
gta02_configure_pmu_for_charger
(
struct
pcf50633
*
pcf
,
void
*
unused
,
int
res
)
{
int
ma
;
/* Interpret charger type */
if
(
res
<
((
ADC_NOM_CHG_DETECT_USB
+
ADC_NOM_CHG_DETECT_1A
)
/
2
))
{
/*
* Sanity - stop GPO driving out now that we have a 1A charger
* GPO controls USB Host power generation on GTA02
*/
pcf50633_gpio_set
(
pcf
,
PCF50633_GPO
,
0
);
ma
=
1000
;
}
else
ma
=
100
;
pcf50633_mbc_usb_curlim_set
(
pcf
,
ma
);
}
static
struct
delayed_work
gta02_charger_work
;
static
int
gta02_usb_vbus_draw
;
static
void
gta02_charger_worker
(
struct
work_struct
*
work
)
{
if
(
gta02_usb_vbus_draw
)
{
pcf50633_mbc_usb_curlim_set
(
gta02_pcf
,
gta02_usb_vbus_draw
);
return
;
}
#ifdef CONFIG_PCF50633_ADC
pcf50633_adc_async_read
(
gta02_pcf
,
PCF50633_ADCC1_MUX_ADCIN1
,
PCF50633_ADCC1_AVERAGE_16
,
gta02_configure_pmu_for_charger
,
NULL
);
#else
/*
* If the PCF50633 ADC is disabled we fallback to a
* 100mA limit for safety.
*/
pcf50633_mbc_usb_curlim_set
(
pcf
,
100
);
#endif
}
#define GTA02_CHARGER_CONFIGURE_TIMEOUT ((3000 * HZ) / 1000)
static
void
gta02_pmu_event_callback
(
struct
pcf50633
*
pcf
,
int
irq
)
{
if
(
irq
==
PCF50633_IRQ_USBINS
)
{
schedule_delayed_work
(
&
gta02_charger_work
,
GTA02_CHARGER_CONFIGURE_TIMEOUT
);
return
;
}
if
(
irq
==
PCF50633_IRQ_USBREM
)
{
cancel_delayed_work_sync
(
&
gta02_charger_work
);
gta02_usb_vbus_draw
=
0
;
}
}
static
void
gta02_udc_vbus_draw
(
unsigned
int
ma
)
{
if
(
!
gta02_pcf
)
return
;
gta02_usb_vbus_draw
=
ma
;
schedule_delayed_work
(
&
gta02_charger_work
,
GTA02_CHARGER_CONFIGURE_TIMEOUT
);
}
#else
/* !CONFIG_CHARGER_PCF50633 */
#define gta02_pmu_event_callback NULL
#define gta02_udc_vbus_draw NULL
#endif
/*
* This is called when pc50633 is probed, unfortunately quite late in the
* day since it is an I2C bus device. Here we can belatedly define some
* platform devices with the advantage that we can mark the pcf50633 as the
* parent. This makes them get suspended and resumed with their parent
* the pcf50633 still around.
*/
static
void
gta02_pmu_attach_child_devices
(
struct
pcf50633
*
pcf
);
static
char
*
gta02_batteries
[]
=
{
"battery"
,
};
struct
pcf50633_platform_data
gta02_pcf_pdata
=
{
.
resumers
=
{
[
0
]
=
PCF50633_INT1_USBINS
|
PCF50633_INT1_USBREM
|
PCF50633_INT1_ALARM
,
[
1
]
=
PCF50633_INT2_ONKEYF
,
[
2
]
=
PCF50633_INT3_ONKEY1S
,
[
3
]
=
PCF50633_INT4_LOWSYS
|
PCF50633_INT4_LOWBAT
|
PCF50633_INT4_HIGHTMP
,
},
.
batteries
=
gta02_batteries
,
.
num_batteries
=
ARRAY_SIZE
(
gta02_batteries
),
.
reg_init_data
=
{
[
PCF50633_REGULATOR_AUTO
]
=
{
.
constraints
=
{
.
min_uV
=
3300000
,
.
max_uV
=
3300000
,
.
valid_modes_mask
=
REGULATOR_MODE_NORMAL
,
.
always_on
=
1
,
.
apply_uV
=
1
,
.
state_mem
=
{
.
enabled
=
1
,
},
},
},
[
PCF50633_REGULATOR_DOWN1
]
=
{
.
constraints
=
{
.
min_uV
=
1300000
,
.
max_uV
=
1600000
,
.
valid_modes_mask
=
REGULATOR_MODE_NORMAL
,
.
always_on
=
1
,
.
apply_uV
=
1
,
},
},
[
PCF50633_REGULATOR_DOWN2
]
=
{
.
constraints
=
{
.
min_uV
=
1800000
,
.
max_uV
=
1800000
,
.
valid_modes_mask
=
REGULATOR_MODE_NORMAL
,
.
apply_uV
=
1
,
.
always_on
=
1
,
.
state_mem
=
{
.
enabled
=
1
,
},
},
},
[
PCF50633_REGULATOR_HCLDO
]
=
{
.
constraints
=
{
.
min_uV
=
2000000
,
.
max_uV
=
3300000
,
.
valid_modes_mask
=
REGULATOR_MODE_NORMAL
,
.
valid_ops_mask
=
REGULATOR_CHANGE_VOLTAGE
,
.
always_on
=
1
,
},
},
[
PCF50633_REGULATOR_LDO1
]
=
{
.
constraints
=
{
.
min_uV
=
3300000
,
.
max_uV
=
3300000
,
.
valid_modes_mask
=
REGULATOR_MODE_NORMAL
,
.
apply_uV
=
1
,
.
state_mem
=
{
.
enabled
=
0
,
},
},
},
[
PCF50633_REGULATOR_LDO2
]
=
{
.
constraints
=
{
.
min_uV
=
3300000
,
.
max_uV
=
3300000
,
.
valid_modes_mask
=
REGULATOR_MODE_NORMAL
,
.
apply_uV
=
1
,
},
},
[
PCF50633_REGULATOR_LDO3
]
=
{
.
constraints
=
{
.
min_uV
=
3000000
,
.
max_uV
=
3000000
,
.
valid_modes_mask
=
REGULATOR_MODE_NORMAL
,
.
apply_uV
=
1
,
},
},
[
PCF50633_REGULATOR_LDO4
]
=
{
.
constraints
=
{
.
min_uV
=
3200000
,
.
max_uV
=
3200000
,
.
valid_modes_mask
=
REGULATOR_MODE_NORMAL
,
.
apply_uV
=
1
,
},
},
[
PCF50633_REGULATOR_LDO5
]
=
{
.
constraints
=
{
.
min_uV
=
3000000
,
.
max_uV
=
3000000
,
.
valid_modes_mask
=
REGULATOR_MODE_NORMAL
,
.
apply_uV
=
1
,
.
state_mem
=
{
.
enabled
=
1
,
},
},
},
[
PCF50633_REGULATOR_LDO6
]
=
{
.
constraints
=
{
.
min_uV
=
3000000
,
.
max_uV
=
3000000
,
.
valid_modes_mask
=
REGULATOR_MODE_NORMAL
,
},
},
[
PCF50633_REGULATOR_MEMLDO
]
=
{
.
constraints
=
{
.
min_uV
=
1800000
,
.
max_uV
=
1800000
,
.
valid_modes_mask
=
REGULATOR_MODE_NORMAL
,
.
state_mem
=
{
.
enabled
=
1
,
},
},
},
},
.
probe_done
=
gta02_pmu_attach_child_devices
,
.
mbc_event_callback
=
gta02_pmu_event_callback
,
};
/* NOR Flash. */
#define GTA02_FLASH_BASE 0x18000000
/* GCS3 */
#define GTA02_FLASH_SIZE 0x200000
/* 2MBytes */
static
struct
physmap_flash_data
gta02_nor_flash_data
=
{
.
width
=
2
,
};
static
struct
resource
gta02_nor_flash_resource
=
{
.
start
=
GTA02_FLASH_BASE
,
.
end
=
GTA02_FLASH_BASE
+
GTA02_FLASH_SIZE
-
1
,
.
flags
=
IORESOURCE_MEM
,
};
static
struct
platform_device
gta02_nor_flash
=
{
.
name
=
"physmap-flash"
,
.
id
=
0
,
.
dev
=
{
.
platform_data
=
&
gta02_nor_flash_data
,
},
.
resource
=
&
gta02_nor_flash_resource
,
.
num_resources
=
1
,
};
struct
platform_device
s3c24xx_pwm_device
=
{
.
name
=
"s3c24xx_pwm"
,
.
num_resources
=
0
,
};
static
struct
i2c_board_info
gta02_i2c_devs
[]
__initdata
=
{
{
I2C_BOARD_INFO
(
"pcf50633"
,
0x73
),
.
irq
=
GTA02_IRQ_PCF50633
,
.
platform_data
=
&
gta02_pcf_pdata
,
},
{
I2C_BOARD_INFO
(
"wm8753"
,
0x1a
),
},
};
static
struct
s3c2410_nand_set
gta02_nand_sets
[]
=
{
[
0
]
=
{
/*
* This name is also hard-coded in the boot loaders, so
* changing it would would require all users to upgrade
* their boot loaders, some of which are stored in a NOR
* that is considered to be immutable.
*/
.
name
=
"neo1973-nand"
,
.
nr_chips
=
1
,
.
use_bbt
=
1
,
.
force_soft_ecc
=
1
,
},
};
/*
* Choose a set of timings derived from S3C@2442B MCP54
* data sheet (K5D2G13ACM-D075 MCP Memory).
*/
static
struct
s3c2410_platform_nand
gta02_nand_info
=
{
.
tacls
=
0
,
.
twrph0
=
25
,
.
twrph1
=
15
,
.
nr_sets
=
ARRAY_SIZE
(
gta02_nand_sets
),
.
sets
=
gta02_nand_sets
,
};
static
void
gta02_udc_command
(
enum
s3c2410_udc_cmd_e
cmd
)
{
switch
(
cmd
)
{
case
S3C2410_UDC_P_ENABLE
:
pr_debug
(
"%s S3C2410_UDC_P_ENABLE
\n
"
,
__func__
);
gpio_direction_output
(
GTA02_GPIO_USB_PULLUP
,
1
);
break
;
case
S3C2410_UDC_P_DISABLE
:
pr_debug
(
"%s S3C2410_UDC_P_DISABLE
\n
"
,
__func__
);
gpio_direction_output
(
GTA02_GPIO_USB_PULLUP
,
0
);
break
;
case
S3C2410_UDC_P_RESET
:
pr_debug
(
"%s S3C2410_UDC_P_RESET
\n
"
,
__func__
);
/* FIXME: Do something here. */
}
}
/* Get PMU to set USB current limit accordingly. */
static
struct
s3c2410_udc_mach_info
gta02_udc_cfg
=
{
.
vbus_draw
=
gta02_udc_vbus_draw
,
.
udc_command
=
gta02_udc_command
,
};
static
void
gta02_bl_set_intensity
(
int
intensity
)
{
struct
pcf50633
*
pcf
=
gta02_pcf
;
int
old_intensity
=
pcf50633_reg_read
(
pcf
,
PCF50633_REG_LEDOUT
);
/* We map 8-bit intensity to 6-bit intensity in hardware. */
intensity
>>=
2
;
/*
* This can happen during, eg, print of panic on blanked console,
* but we can't service i2c without interrupts active, so abort.
*/
if
(
in_atomic
())
{
printk
(
KERN_ERR
"gta02_bl_set_intensity called while atomic
\n
"
);
return
;
}
old_intensity
=
pcf50633_reg_read
(
pcf
,
PCF50633_REG_LEDOUT
);
if
(
intensity
==
old_intensity
)
return
;
/* We can't do this anywhere else. */
pcf50633_reg_write
(
pcf
,
PCF50633_REG_LEDDIM
,
5
);
if
(
!
(
pcf50633_reg_read
(
pcf
,
PCF50633_REG_LEDENA
)
&
3
))
old_intensity
=
0
;
/*
* The PCF50633 cannot handle LEDOUT = 0 (datasheet p60)
* if seen, you have to re-enable the LED unit.
*/
if
(
!
intensity
||
!
old_intensity
)
pcf50633_reg_write
(
pcf
,
PCF50633_REG_LEDENA
,
0
);
/* Illegal to set LEDOUT to 0. */
if
(
!
intensity
)
pcf50633_reg_set_bit_mask
(
pcf
,
PCF50633_REG_LEDOUT
,
0x3f
,
2
);
else
pcf50633_reg_set_bit_mask
(
pcf
,
PCF50633_REG_LEDOUT
,
0x3f
,
intensity
);
if
(
intensity
)
pcf50633_reg_write
(
pcf
,
PCF50633_REG_LEDENA
,
2
);
}
static
struct
generic_bl_info
gta02_bl_info
=
{
.
name
=
"gta02-bl"
,
.
max_intensity
=
0xff
,
.
default_intensity
=
0xff
,
.
set_bl_intensity
=
gta02_bl_set_intensity
,
};
static
struct
platform_device
gta02_bl_dev
=
{
.
name
=
"generic-bl"
,
.
id
=
1
,
.
dev
=
{
.
platform_data
=
&
gta02_bl_info
,
},
};
/* USB */
static
struct
s3c2410_hcd_info
gta02_usb_info
=
{
.
port
[
0
]
=
{
.
flags
=
S3C_HCDFLG_USED
,
},
.
port
[
1
]
=
{
.
flags
=
0
,
},
};
static
void
__init
gta02_map_io
(
void
)
{
s3c24xx_init_io
(
gta02_iodesc
,
ARRAY_SIZE
(
gta02_iodesc
));
s3c24xx_init_clocks
(
12000000
);
s3c24xx_init_uarts
(
gta02_uartcfgs
,
ARRAY_SIZE
(
gta02_uartcfgs
));
}
/* These are the guys that don't need to be children of PMU. */
static
struct
platform_device
*
gta02_devices
[]
__initdata
=
{
&
s3c_device_usb
,
&
s3c_device_wdt
,
&
s3c_device_sdi
,
&
s3c_device_usbgadget
,
&
s3c_device_nand
,
&
gta02_nor_flash
,
&
s3c24xx_pwm_device
,
&
s3c_device_iis
,
&
s3c_device_i2c0
,
};
/* These guys DO need to be children of PMU. */
static
struct
platform_device
*
gta02_devices_pmu_children
[]
=
{
&
gta02_bl_dev
,
};
/*
* This is called when pc50633 is probed, quite late in the day since it is an
* I2C bus device. Here we can define platform devices with the advantage that
* we can mark the pcf50633 as the parent. This makes them get suspended and
* resumed with their parent the pcf50633 still around. All devices whose
* operation depends on something from pcf50633 must have this relationship
* made explicit like this, or suspend and resume will become an unreliable
* hellworld.
*/
static
void
gta02_pmu_attach_child_devices
(
struct
pcf50633
*
pcf
)
{
int
n
;
/* Grab a copy of the now probed PMU pointer. */
gta02_pcf
=
pcf
;
for
(
n
=
0
;
n
<
ARRAY_SIZE
(
gta02_devices_pmu_children
);
n
++
)
gta02_devices_pmu_children
[
n
]
->
dev
.
parent
=
pcf
->
dev
;
platform_add_devices
(
gta02_devices_pmu_children
,
ARRAY_SIZE
(
gta02_devices_pmu_children
));
}
static
void
gta02_poweroff
(
void
)
{
pcf50633_reg_set_bit_mask
(
gta02_pcf
,
PCF50633_REG_OOCSHDWN
,
1
,
1
);
}
static
void
__init
gta02_machine_init
(
void
)
{
/* Set the panic callback to make AUX LED blink at ~5Hz. */
panic_blink
=
gta02_panic_blink
;
s3c_pm_init
();
#ifdef CONFIG_CHARGER_PCF50633
INIT_DELAYED_WORK
(
&
gta02_charger_work
,
gta02_charger_worker
);
#endif
s3c_device_usb
.
dev
.
platform_data
=
&
gta02_usb_info
;
s3c_device_nand
.
dev
.
platform_data
=
&
gta02_nand_info
;
s3c24xx_udc_set_platdata
(
&
gta02_udc_cfg
);
s3c_i2c0_set_platdata
(
NULL
);
i2c_register_board_info
(
0
,
gta02_i2c_devs
,
ARRAY_SIZE
(
gta02_i2c_devs
));
platform_add_devices
(
gta02_devices
,
ARRAY_SIZE
(
gta02_devices
));
pm_power_off
=
gta02_poweroff
;
}
MACHINE_START
(
NEO1973_GTA02
,
"GTA02"
)
/* Maintainer: Nelson Castillo <arhuaco@freaks-unidos.net> */
.
phys_io
=
S3C2410_PA_UART
,
.
io_pg_offst
=
(((
u32
)
S3C24XX_VA_UART
)
>>
18
)
&
0xfffc
,
.
boot_params
=
S3C2410_SDRAM_PA
+
0x100
,
.
map_io
=
gta02_map_io
,
.
init_irq
=
s3c24xx_init_irq
,
.
init_machine
=
gta02_machine_init
,
.
timer
=
&
s3c24xx_timer
,
MACHINE_END
arch/arm/plat-s3c/Makefile
View file @
413427b5
...
...
@@ -34,6 +34,7 @@ obj-$(CONFIG_S3C_DEV_HSMMC) += dev-hsmmc.o
obj-$(CONFIG_S3C_DEV_HSMMC1)
+=
dev-hsmmc1.o
obj-y
+=
dev-i2c0.o
obj-$(CONFIG_S3C_DEV_I2C1)
+=
dev-i2c1.o
obj-$(CONFIG_SND_S3C24XX_SOC)
+=
dev-audio.o
obj-$(CONFIG_S3C_DEV_FB)
+=
dev-fb.o
obj-$(CONFIG_S3C_DEV_USB_HOST)
+=
dev-usb.o
obj-$(CONFIG_S3C_DEV_USB_HSOTG)
+=
dev-usb-hsotg.o
arch/arm/plat-s3c/dev-audio.c
0 → 100644
View file @
413427b5
/* linux/arch/arm/plat-s3c/dev-audio.c
*
* Copyright 2009 Wolfson Microelectronics
* Mark Brown <broonie@opensource.wolfsonmicro.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*/
#include <linux/kernel.h>
#include <linux/string.h>
#include <linux/platform_device.h>
#include <mach/irqs.h>
#include <mach/map.h>
#include <plat/devs.h>
static
struct
resource
s3c64xx_iis0_resource
[]
=
{
[
0
]
=
{
.
start
=
S3C64XX_PA_IIS0
,
.
end
=
S3C64XX_PA_IIS0
+
0x100
-
1
,
.
flags
=
IORESOURCE_MEM
,
},
};
struct
platform_device
s3c64xx_device_iis0
=
{
.
name
=
"s3c64xx-iis"
,
.
id
=
0
,
.
num_resources
=
ARRAY_SIZE
(
s3c64xx_iis0_resource
),
.
resource
=
s3c64xx_iis0_resource
,
};
EXPORT_SYMBOL
(
s3c64xx_device_iis0
);
static
struct
resource
s3c64xx_iis1_resource
[]
=
{
[
0
]
=
{
.
start
=
S3C64XX_PA_IIS1
,
.
end
=
S3C64XX_PA_IIS1
+
0x100
-
1
,
.
flags
=
IORESOURCE_MEM
,
},
};
struct
platform_device
s3c64xx_device_iis1
=
{
.
name
=
"s3c64xx-iis"
,
.
id
=
1
,
.
num_resources
=
ARRAY_SIZE
(
s3c64xx_iis1_resource
),
.
resource
=
s3c64xx_iis1_resource
,
};
EXPORT_SYMBOL
(
s3c64xx_device_iis1
);
static
struct
resource
s3c64xx_iisv4_resource
[]
=
{
[
0
]
=
{
.
start
=
S3C64XX_PA_IISV4
,
.
end
=
S3C64XX_PA_IISV4
+
0x100
-
1
,
.
flags
=
IORESOURCE_MEM
,
},
};
struct
platform_device
s3c64xx_device_iisv4
=
{
.
name
=
"s3c64xx-iis-v4"
,
.
id
=
-
1
,
.
num_resources
=
ARRAY_SIZE
(
s3c64xx_iisv4_resource
),
.
resource
=
s3c64xx_iisv4_resource
,
};
EXPORT_SYMBOL
(
s3c64xx_device_iisv4
);
arch/arm/plat-s3c/include/plat/devs.h
View file @
413427b5
...
...
@@ -24,13 +24,16 @@ extern struct platform_device *s3c24xx_uart_src[];
extern
struct
platform_device
s3c_device_timer
[];
extern
struct
platform_device
s3c64xx_device_iis0
;
extern
struct
platform_device
s3c64xx_device_iis1
;
extern
struct
platform_device
s3c64xx_device_iisv4
;
extern
struct
platform_device
s3c_device_fb
;
extern
struct
platform_device
s3c_device_usb
;
extern
struct
platform_device
s3c_device_lcd
;
extern
struct
platform_device
s3c_device_wdt
;
extern
struct
platform_device
s3c_device_i2c0
;
extern
struct
platform_device
s3c_device_i2c1
;
extern
struct
platform_device
s3c_device_iis
;
extern
struct
platform_device
s3c_device_rtc
;
extern
struct
platform_device
s3c_device_adc
;
extern
struct
platform_device
s3c_device_sdi
;
...
...
arch/arm/plat-s3c64xx/Makefile
View file @
413427b5
...
...
@@ -23,6 +23,7 @@ obj-y += gpiolib.o
obj-$(CONFIG_CPU_S3C6400_INIT)
+=
s3c6400-init.o
obj-$(CONFIG_CPU_S3C6400_CLOCK)
+=
s3c6400-clock.o
obj-$(CONFIG_CPU_FREQ_S3C64XX)
+=
cpufreq.o
# PM support
...
...
arch/arm/plat-s3c64xx/cpufreq.c
0 → 100644
View file @
413427b5
/* linux/arch/arm/plat-s3c64xx/cpufreq.c
*
* Copyright 2009 Wolfson Microelectronics plc
*
* S3C64xx CPUfreq Support
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*/
#include <linux/kernel.h>
#include <linux/types.h>
#include <linux/init.h>
#include <linux/cpufreq.h>
#include <linux/clk.h>
#include <linux/err.h>
#include <linux/regulator/consumer.h>
static
struct
clk
*
armclk
;
static
struct
regulator
*
vddarm
;
#ifdef CONFIG_CPU_S3C6410
struct
s3c64xx_dvfs
{
unsigned
int
vddarm_min
;
unsigned
int
vddarm_max
;
};
static
struct
s3c64xx_dvfs
s3c64xx_dvfs_table
[]
=
{
[
0
]
=
{
1000000
,
1000000
},
[
1
]
=
{
1000000
,
1050000
},
[
2
]
=
{
1050000
,
1100000
},
[
3
]
=
{
1050000
,
1150000
},
[
4
]
=
{
1250000
,
1350000
},
};
static
struct
cpufreq_frequency_table
s3c64xx_freq_table
[]
=
{
{
0
,
66000
},
{
0
,
133000
},
{
1
,
222000
},
{
1
,
266000
},
{
2
,
333000
},
{
2
,
400000
},
{
3
,
532000
},
{
3
,
533000
},
{
4
,
667000
},
{
0
,
CPUFREQ_TABLE_END
},
};
#endif
static
int
s3c64xx_cpufreq_verify_speed
(
struct
cpufreq_policy
*
policy
)
{
if
(
policy
->
cpu
!=
0
)
return
-
EINVAL
;
return
cpufreq_frequency_table_verify
(
policy
,
s3c64xx_freq_table
);
}
static
unsigned
int
s3c64xx_cpufreq_get_speed
(
unsigned
int
cpu
)
{
if
(
cpu
!=
0
)
return
0
;
return
clk_get_rate
(
armclk
)
/
1000
;
}
static
int
s3c64xx_cpufreq_set_target
(
struct
cpufreq_policy
*
policy
,
unsigned
int
target_freq
,
unsigned
int
relation
)
{
int
ret
;
unsigned
int
i
;
struct
cpufreq_freqs
freqs
;
struct
s3c64xx_dvfs
*
dvfs
;
ret
=
cpufreq_frequency_table_target
(
policy
,
s3c64xx_freq_table
,
target_freq
,
relation
,
&
i
);
if
(
ret
!=
0
)
return
ret
;
freqs
.
cpu
=
0
;
freqs
.
old
=
clk_get_rate
(
armclk
)
/
1000
;
freqs
.
new
=
s3c64xx_freq_table
[
i
].
frequency
;
freqs
.
flags
=
0
;
dvfs
=
&
s3c64xx_dvfs_table
[
s3c64xx_freq_table
[
i
].
index
];
if
(
freqs
.
old
==
freqs
.
new
)
return
0
;
pr_debug
(
"cpufreq: Transition %d-%dkHz
\n
"
,
freqs
.
old
,
freqs
.
new
);
cpufreq_notify_transition
(
&
freqs
,
CPUFREQ_PRECHANGE
);
#ifdef CONFIG_REGULATOR
if
(
vddarm
&&
freqs
.
new
>
freqs
.
old
)
{
ret
=
regulator_set_voltage
(
vddarm
,
dvfs
->
vddarm_min
,
dvfs
->
vddarm_max
);
if
(
ret
!=
0
)
{
pr_err
(
"cpufreq: Failed to set VDDARM for %dkHz: %d
\n
"
,
freqs
.
new
,
ret
);
goto
err
;
}
}
#endif
ret
=
clk_set_rate
(
armclk
,
freqs
.
new
*
1000
);
if
(
ret
<
0
)
{
pr_err
(
"cpufreq: Failed to set rate %dkHz: %d
\n
"
,
freqs
.
new
,
ret
);
goto
err
;
}
#ifdef CONFIG_REGULATOR
if
(
vddarm
&&
freqs
.
new
<
freqs
.
old
)
{
ret
=
regulator_set_voltage
(
vddarm
,
dvfs
->
vddarm_min
,
dvfs
->
vddarm_max
);
if
(
ret
!=
0
)
{
pr_err
(
"cpufreq: Failed to set VDDARM for %dkHz: %d
\n
"
,
freqs
.
new
,
ret
);
goto
err_clk
;
}
}
#endif
cpufreq_notify_transition
(
&
freqs
,
CPUFREQ_POSTCHANGE
);
pr_debug
(
"cpufreq: Set actual frequency %lukHz
\n
"
,
clk_get_rate
(
armclk
)
/
1000
);
return
0
;
err_clk:
if
(
clk_set_rate
(
armclk
,
freqs
.
old
*
1000
)
<
0
)
pr_err
(
"Failed to restore original clock rate
\n
"
);
err:
cpufreq_notify_transition
(
&
freqs
,
CPUFREQ_POSTCHANGE
);
return
ret
;
}
#ifdef CONFIG_REGULATOR
static
void
__init
s3c64xx_cpufreq_constrain_voltages
(
void
)
{
int
count
,
v
,
i
,
found
;
struct
cpufreq_frequency_table
*
freq
;
struct
s3c64xx_dvfs
*
dvfs
;
count
=
regulator_count_voltages
(
vddarm
);
if
(
count
<
0
)
{
pr_err
(
"cpufreq: Unable to check supported voltages
\n
"
);
return
;
}
freq
=
s3c64xx_freq_table
;
while
(
freq
->
frequency
!=
CPUFREQ_TABLE_END
)
{
if
(
freq
->
frequency
==
CPUFREQ_ENTRY_INVALID
)
continue
;
dvfs
=
&
s3c64xx_dvfs_table
[
freq
->
index
];
found
=
0
;
for
(
i
=
0
;
i
<
count
;
i
++
)
{
v
=
regulator_list_voltage
(
vddarm
,
i
);
if
(
v
>=
dvfs
->
vddarm_min
&&
v
<=
dvfs
->
vddarm_max
)
found
=
1
;
}
if
(
!
found
)
{
pr_debug
(
"cpufreq: %dkHz unsupported by regulator
\n
"
,
freq
->
frequency
);
freq
->
frequency
=
CPUFREQ_ENTRY_INVALID
;
}
freq
++
;
}
}
#endif
static
int
__init
s3c64xx_cpufreq_driver_init
(
struct
cpufreq_policy
*
policy
)
{
int
ret
;
struct
cpufreq_frequency_table
*
freq
;
if
(
policy
->
cpu
!=
0
)
return
-
EINVAL
;
if
(
s3c64xx_freq_table
==
NULL
)
{
pr_err
(
"cpufreq: No frequency information for this CPU
\n
"
);
return
-
ENODEV
;
}
armclk
=
clk_get
(
NULL
,
"armclk"
);
if
(
IS_ERR
(
armclk
))
{
pr_err
(
"cpufreq: Unable to obtain ARMCLK: %ld
\n
"
,
PTR_ERR
(
armclk
));
return
PTR_ERR
(
armclk
);
}
#ifdef CONFIG_REGULATOR
vddarm
=
regulator_get
(
NULL
,
"vddarm"
);
if
(
IS_ERR
(
vddarm
))
{
ret
=
PTR_ERR
(
vddarm
);
pr_err
(
"cpufreq: Failed to obtain VDDARM: %d
\n
"
,
ret
);
pr_err
(
"cpufreq: Only frequency scaling available
\n
"
);
vddarm
=
NULL
;
}
else
{
s3c64xx_cpufreq_constrain_voltages
();
}
#endif
freq
=
s3c64xx_freq_table
;
while
(
freq
->
frequency
!=
CPUFREQ_TABLE_END
)
{
unsigned
long
r
;
/* Check for frequencies we can generate */
r
=
clk_round_rate
(
armclk
,
freq
->
frequency
*
1000
);
r
/=
1000
;
if
(
r
!=
freq
->
frequency
)
freq
->
frequency
=
CPUFREQ_ENTRY_INVALID
;
/* If we have no regulator then assume startup
* frequency is the maximum we can support. */
if
(
!
vddarm
&&
freq
->
frequency
>
s3c64xx_cpufreq_get_speed
(
0
))
freq
->
frequency
=
CPUFREQ_ENTRY_INVALID
;
freq
++
;
}
policy
->
cur
=
clk_get_rate
(
armclk
)
/
1000
;
/* Pick a conservative guess in ns: we'll need ~1 I2C/SPI
* write plus clock reprogramming. */
policy
->
cpuinfo
.
transition_latency
=
2
*
1000
*
1000
;
ret
=
cpufreq_frequency_table_cpuinfo
(
policy
,
s3c64xx_freq_table
);
if
(
ret
!=
0
)
{
pr_err
(
"cpufreq: Failed to configure frequency table: %d
\n
"
,
ret
);
regulator_put
(
vddarm
);
clk_put
(
armclk
);
}
return
ret
;
}
static
struct
cpufreq_driver
s3c64xx_cpufreq_driver
=
{
.
owner
=
THIS_MODULE
,
.
flags
=
0
,
.
verify
=
s3c64xx_cpufreq_verify_speed
,
.
target
=
s3c64xx_cpufreq_set_target
,
.
get
=
s3c64xx_cpufreq_get_speed
,
.
init
=
s3c64xx_cpufreq_driver_init
,
.
name
=
"s3c"
,
};
static
int
__init
s3c64xx_cpufreq_init
(
void
)
{
return
cpufreq_register_driver
(
&
s3c64xx_cpufreq_driver
);
}
module_init
(
s3c64xx_cpufreq_init
);
drivers/mmc/host/s3cmci.c
View file @
413427b5
...
...
@@ -794,7 +794,7 @@ static void s3cmci_dma_setup(struct s3cmci_host *host,
host
->
mem
->
start
+
host
->
sdidata
);
if
(
!
setup_ok
)
{
s3c2410_dma_config
(
host
->
dma
,
4
,
0
);
s3c2410_dma_config
(
host
->
dma
,
4
);
s3c2410_dma_set_buffdone_fn
(
host
->
dma
,
s3cmci_dma_done_callback
);
s3c2410_dma_setflags
(
host
->
dma
,
S3C2410_DMAF_AUTOSTART
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment