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
92633b72
Commit
92633b72
authored
Oct 12, 2007
by
Russell King
Committed by
Russell King
Oct 12, 2007
Browse files
Options
Browse Files
Download
Plain Diff
Merge branches 'omap1-upstream' and 'omap2-upstream' into devel
parents
58273e55
06767fb2
8777297b
Changes
52
Hide whitespace changes
Inline
Side-by-side
Showing
52 changed files
with
4723 additions
and
344 deletions
+4723
-344
arch/arm/configs/omap_h2_1610_defconfig
arch/arm/configs/omap_h2_1610_defconfig
+205
-194
arch/arm/configs/omap_osk_5912_defconfig
arch/arm/configs/omap_osk_5912_defconfig
+1073
-0
arch/arm/mach-omap1/Kconfig
arch/arm/mach-omap1/Kconfig
+33
-5
arch/arm/mach-omap1/Makefile
arch/arm/mach-omap1/Makefile
+3
-0
arch/arm/mach-omap1/board-ams-delta.c
arch/arm/mach-omap1/board-ams-delta.c
+120
-0
arch/arm/mach-omap1/board-h2.c
arch/arm/mach-omap1/board-h2.c
+79
-0
arch/arm/mach-omap1/board-h3.c
arch/arm/mach-omap1/board-h3.c
+41
-0
arch/arm/mach-omap1/board-nokia770.c
arch/arm/mach-omap1/board-nokia770.c
+89
-9
arch/arm/mach-omap1/board-osk.c
arch/arm/mach-omap1/board-osk.c
+55
-0
arch/arm/mach-omap1/board-palmte.c
arch/arm/mach-omap1/board-palmte.c
+359
-18
arch/arm/mach-omap1/board-palmtt.c
arch/arm/mach-omap1/board-palmtt.c
+357
-0
arch/arm/mach-omap1/board-palmz71.c
arch/arm/mach-omap1/board-palmz71.c
+383
-0
arch/arm/mach-omap1/board-sx1.c
arch/arm/mach-omap1/board-sx1.c
+494
-0
arch/arm/mach-omap1/board-voiceblue.c
arch/arm/mach-omap1/board-voiceblue.c
+1
-1
arch/arm/mach-omap1/clock.c
arch/arm/mach-omap1/clock.c
+34
-0
arch/arm/mach-omap1/clock.h
arch/arm/mach-omap1/clock.h
+26
-9
arch/arm/mach-omap1/mux.c
arch/arm/mach-omap1/mux.c
+24
-0
arch/arm/mach-omap1/pm.c
arch/arm/mach-omap1/pm.c
+1
-4
arch/arm/mach-omap2/Kconfig
arch/arm/mach-omap2/Kconfig
+10
-1
arch/arm/mach-omap2/Makefile
arch/arm/mach-omap2/Makefile
+1
-0
arch/arm/mach-omap2/board-2430sdp.c
arch/arm/mach-omap2/board-2430sdp.c
+218
-0
arch/arm/mach-omap2/board-apollon.c
arch/arm/mach-omap2/board-apollon.c
+90
-9
arch/arm/mach-omap2/board-h4.c
arch/arm/mach-omap2/board-h4.c
+3
-43
arch/arm/mach-omap2/devices.c
arch/arm/mach-omap2/devices.c
+4
-2
arch/arm/mach-omap2/gpmc.c
arch/arm/mach-omap2/gpmc.c
+36
-11
arch/arm/mach-omap2/id.c
arch/arm/mach-omap2/id.c
+6
-0
arch/arm/mach-omap2/io.c
arch/arm/mach-omap2/io.c
+22
-0
arch/arm/mach-omap2/irq.c
arch/arm/mach-omap2/irq.c
+11
-8
arch/arm/mach-omap2/memory.c
arch/arm/mach-omap2/memory.c
+18
-0
arch/arm/mach-omap2/mux.c
arch/arm/mach-omap2/mux.c
+19
-19
arch/arm/mach-omap2/usb-tusb6010.c
arch/arm/mach-omap2/usb-tusb6010.c
+349
-0
arch/arm/plat-omap/Kconfig
arch/arm/plat-omap/Kconfig
+7
-2
arch/arm/plat-omap/Makefile
arch/arm/plat-omap/Makefile
+1
-0
arch/arm/plat-omap/debug-devices.c
arch/arm/plat-omap/debug-devices.c
+86
-0
arch/arm/plat-omap/dma.c
arch/arm/plat-omap/dma.c
+0
-6
include/asm-arm/arch-omap/blizzard.h
include/asm-arm/arch-omap/blizzard.h
+12
-0
include/asm-arm/arch-omap/board-2430sdp.h
include/asm-arm/arch-omap/board-2430sdp.h
+44
-0
include/asm-arm/arch-omap/board-palmte.h
include/asm-arm/arch-omap/board-palmte.h
+34
-0
include/asm-arm/arch-omap/board-palmtt.h
include/asm-arm/arch-omap/board-palmtt.h
+23
-0
include/asm-arm/arch-omap/board-palmz71.h
include/asm-arm/arch-omap/board-palmz71.h
+26
-0
include/asm-arm/arch-omap/board-sx1.h
include/asm-arm/arch-omap/board-sx1.h
+46
-0
include/asm-arm/arch-omap/board.h
include/asm-arm/arch-omap/board.h
+4
-0
include/asm-arm/arch-omap/dma.h
include/asm-arm/arch-omap/dma.h
+0
-1
include/asm-arm/arch-omap/eac.h
include/asm-arm/arch-omap/eac.h
+101
-0
include/asm-arm/arch-omap/gpmc.h
include/asm-arm/arch-omap/gpmc.h
+4
-1
include/asm-arm/arch-omap/hardware.h
include/asm-arm/arch-omap/hardware.h
+20
-0
include/asm-arm/arch-omap/io.h
include/asm-arm/arch-omap/io.h
+10
-0
include/asm-arm/arch-omap/menelaus.h
include/asm-arm/arch-omap/menelaus.h
+19
-1
include/asm-arm/arch-omap/mmc.h
include/asm-arm/arch-omap/mmc.h
+66
-0
include/asm-arm/arch-omap/mux.h
include/asm-arm/arch-omap/mux.h
+23
-0
include/asm-arm/arch-omap/omap24xx.h
include/asm-arm/arch-omap/omap24xx.h
+12
-0
include/asm-arm/arch-omap/onenand.h
include/asm-arm/arch-omap/onenand.h
+21
-0
No files found.
arch/arm/configs/omap_h2_1610_defconfig
View file @
92633b72
#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.
17
#
Thu Jun 29 15:25:18 2006
# Linux kernel version: 2.6.
23-rc6
#
Mon Sep 17 14:21:45 2007
#
CONFIG_ARM=y
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
CONFIG_GENERIC_GPIO=y
CONFIG_GENERIC_TIME=y
CONFIG_GENERIC_CLOCKEVENTS=y
CONFIG_MMU=y
# CONFIG_NO_IOPORT is not set
CONFIG_GENERIC_HARDIRQS=y
CONFIG_STACKTRACE_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_ZONE_DMA=y
CONFIG_VECTORS_BASE=0xffff0000
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
#
#
Code maturity level options
#
General setup
#
CONFIG_EXPERIMENTAL=y
CONFIG_BROKEN_ON_SMP=y
CONFIG_LOCK_KERNEL=y
CONFIG_INIT_ENV_ARG_LIMIT=32
#
# General setup
#
CONFIG_LOCALVERSION=""
CONFIG_LOCALVERSION_AUTO=y
CONFIG_SWAP=y
CONFIG_SYSVIPC=y
CONFIG_SYSVIPC_SYSCTL=y
# CONFIG_POSIX_MQUEUE is not set
# CONFIG_BSD_PROCESS_ACCT is not set
CONFIG_SYSCTL=y
# CONFIG_TASKSTATS is not set
# CONFIG_USER_NS is not set
# CONFIG_AUDIT is not set
# CONFIG_IKCONFIG is not set
CONFIG_LOG_BUF_SHIFT=14
# CONFIG_SYSFS_DEPRECATED is not set
# CONFIG_RELAY is not set
CONFIG_BLK_DEV_INITRD=y
CONFIG_INITRAMFS_SOURCE=""
CONFIG_UID16=y
CONFIG_CC_OPTIMIZE_FOR_SIZE=y
CONFIG_SYSCTL=y
# CONFIG_EMBEDDED is not set
CONFIG_UID16=y
CONFIG_SYSCTL_SYSCALL=y
CONFIG_KALLSYMS=y
# CONFIG_KALLSYMS_EXTRA_PASS is not set
CONFIG_HOTPLUG=y
...
...
@@ -44,27 +61,30 @@ CONFIG_BUG=y
CONFIG_ELF_CORE=y
CONFIG_BASE_FULL=y
CONFIG_FUTEX=y
CONFIG_ANON_INODES=y
CONFIG_EPOLL=y
CONFIG_SIGNALFD=y
CONFIG_TIMERFD=y
CONFIG_EVENTFD=y
CONFIG_SHMEM=y
CONFIG_VM_EVENT_COUNTERS=y
CONFIG_SLAB=y
# CONFIG_SLUB is not set
# CONFIG_SLOB is not set
CONFIG_RT_MUTEXES=y
# CONFIG_TINY_SHMEM is not set
CONFIG_BASE_SMALL=0
# CONFIG_SLOB is not set
#
# Loadable module support
#
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
# CONFIG_MODULE_FORCE_UNLOAD is not set
# CONFIG_MODVERSIONS is not set
# CONFIG_MODULE_SRCVERSION_ALL is not set
# CONFIG_KMOD is not set
#
# Block layer
#
CONFIG_BLOCK=y
# CONFIG_LBD is not set
# CONFIG_BLK_DEV_IO_TRACE is not set
# CONFIG_LSF is not set
# CONFIG_BLK_DEV_BSG is not set
#
# IO Schedulers
...
...
@@ -86,7 +106,7 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
# CONFIG_ARCH_INTEGRATOR is not set
# CONFIG_ARCH_REALVIEW is not set
# CONFIG_ARCH_VERSATILE is not set
# CONFIG_ARCH_AT91
RM9200
is not set
# CONFIG_ARCH_AT91 is not set
# CONFIG_ARCH_CLPS7500 is not set
# CONFIG_ARCH_CLPS711X is not set
# CONFIG_ARCH_CO285 is not set
...
...
@@ -96,11 +116,16 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
# CONFIG_ARCH_NETX is not set
# CONFIG_ARCH_H720X is not set
# CONFIG_ARCH_IMX is not set
# CONFIG_ARCH_IOP3XX is not set
# CONFIG_ARCH_I
XP4X
X is not set
# CONFIG_ARCH_I
XP2000
is not set
# CONFIG_ARCH_IOP
1
3XX is not set
# CONFIG_ARCH_I
OP32
X is not set
# CONFIG_ARCH_I
OP33X
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_KS8695 is not set
# CONFIG_ARCH_NS9XXX is not set
# CONFIG_ARCH_MXC is not set
# CONFIG_ARCH_PNX4008 is not set
# CONFIG_ARCH_PXA is not set
# CONFIG_ARCH_RPC is not set
...
...
@@ -108,6 +133,7 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
# CONFIG_ARCH_S3C2410 is not set
# CONFIG_ARCH_SHARK is not set
# CONFIG_ARCH_LH7A40X is not set
# CONFIG_ARCH_DAVINCI is not set
CONFIG_ARCH_OMAP=y
#
...
...
@@ -124,6 +150,7 @@ CONFIG_ARCH_OMAP1=y
CONFIG_OMAP_MUX=y
# CONFIG_OMAP_MUX_DEBUG is not set
CONFIG_OMAP_MUX_WARNINGS=y
CONFIG_OMAP_MCBSP=y
# CONFIG_OMAP_MPU_TIMER is not set
CONFIG_OMAP_32K_TIMER=y
CONFIG_OMAP_32K_TIMER_HZ=128
...
...
@@ -161,6 +188,14 @@ CONFIG_OMAP_ARM_192MHZ=y
# CONFIG_OMAP_ARM_60MHZ is not set
# CONFIG_OMAP_ARM_30MHZ is not set
#
# Boot options
#
#
# Power management
#
#
# Processor Type
#
...
...
@@ -171,6 +206,8 @@ CONFIG_CPU_ABRT_EV5TJ=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
...
...
@@ -180,10 +217,13 @@ CONFIG_ARM_THUMB=y
# CONFIG_CPU_DCACHE_DISABLE is not set
# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
# CONFIG_CPU_CACHE_ROUND_ROBIN is not set
# CONFIG_OUTER_CACHE is not set
#
# Bus support
#
# CONFIG_PCI_SYSCALL is not set
# CONFIG_ARCH_SUPPORTS_MSI is not set
#
# PCCARD (PCMCIA/CardBus) support
...
...
@@ -193,10 +233,13 @@ CONFIG_ARM_THUMB=y
#
# Kernel Features
#
CONFIG_TICK_ONESHOT=y
CONFIG_NO_HZ=y
CONFIG_HIGH_RES_TIMERS=y
CONFIG_PREEMPT=y
CONFIG_NO_IDLE_HZ=y
CONFIG_HZ=128
# CONFIG_AEABI is not set
CONFIG_AEABI=y
CONFIG_OABI_COMPAT=y
# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
CONFIG_SELECT_MEMORY_MODEL=y
CONFIG_FLATMEM_MANUAL=y
...
...
@@ -206,6 +249,10 @@ CONFIG_FLATMEM=y
CONFIG_FLAT_NODE_MEM_MAP=y
# CONFIG_SPARSEMEM_STATIC is not set
CONFIG_SPLIT_PTLOCK_CPUS=4096
# CONFIG_RESOURCES_64BIT is not set
CONFIG_ZONE_DMA_FLAG=1
CONFIG_BOUNCE=y
CONFIG_VIRT_TO_BUS=y
# CONFIG_LEDS is not set
CONFIG_ALIGNMENT_TRAP=y
...
...
@@ -216,6 +263,7 @@ CONFIG_ZBOOT_ROM_TEXT=0x0
CONFIG_ZBOOT_ROM_BSS=0x0
CONFIG_CMDLINE="mem=32M console=ttyS0,115200n8 root=0801 ro init=/bin/sh"
# CONFIG_XIP_KERNEL is not set
# CONFIG_KEXEC is not set
#
# CPU Frequency scaling
...
...
@@ -251,7 +299,6 @@ CONFIG_FPE_NWFPE=y
CONFIG_BINFMT_ELF=y
CONFIG_BINFMT_AOUT=y
# CONFIG_BINFMT_MISC is not set
# CONFIG_ARTHUR is not set
#
# Power management options
...
...
@@ -259,7 +306,10 @@ CONFIG_BINFMT_AOUT=y
CONFIG_PM=y
# CONFIG_PM_LEGACY is not set
# CONFIG_PM_DEBUG is not set
# CONFIG_APM is not set
CONFIG_PM_SLEEP=y
CONFIG_SUSPEND_UP_POSSIBLE=y
CONFIG_SUSPEND=y
# CONFIG_APM_EMULATION is not set
#
# Networking
...
...
@@ -269,12 +319,13 @@ CONFIG_NET=y
#
# Networking options
#
# CONFIG_NETDEBUG is not set
CONFIG_PACKET=y
# CONFIG_PACKET_MMAP is not set
CONFIG_UNIX=y
CONFIG_XFRM=y
# CONFIG_XFRM_USER is not set
# CONFIG_XFRM_SUB_POLICY is not set
# CONFIG_XFRM_MIGRATE is not set
# CONFIG_NET_KEY is not set
CONFIG_INET=y
# CONFIG_IP_MULTICAST is not set
...
...
@@ -295,29 +346,20 @@ CONFIG_IP_PNP_BOOTP=y
# CONFIG_INET_TUNNEL is not set
CONFIG_INET_XFRM_MODE_TRANSPORT=y
CONFIG_INET_XFRM_MODE_TUNNEL=y
CONFIG_INET_XFRM_MODE_BEET=y
CONFIG_INET_DIAG=y
CONFIG_INET_TCP_DIAG=y
# CONFIG_TCP_CONG_ADVANCED is not set
CONFIG_TCP_CONG_BIC=y
CONFIG_TCP_CONG_CUBIC=y
CONFIG_DEFAULT_TCP_CONG="cubic"
# CONFIG_TCP_MD5SIG is not set
# CONFIG_IPV6 is not set
# CONFIG_INET6_XFRM_TUNNEL is not set
# CONFIG_INET6_TUNNEL is not set
# CONFIG_NETWORK_SECMARK is not set
# CONFIG_NETFILTER is not set
#
# DCCP Configuration (EXPERIMENTAL)
#
# CONFIG_IP_DCCP is not set
#
# SCTP Configuration (EXPERIMENTAL)
#
# CONFIG_IP_SCTP is not set
#
# TIPC Configuration (EXPERIMENTAL)
#
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_BRIDGE is not set
...
...
@@ -328,7 +370,6 @@ CONFIG_TCP_CONG_BIC=y
# CONFIG_ATALK is not set
# CONFIG_X25 is not set
# CONFIG_LAPB is not set
# CONFIG_NET_DIVERT is not set
# CONFIG_ECONET is not set
# CONFIG_WAN_ROUTER is not set
...
...
@@ -344,7 +385,17 @@ CONFIG_TCP_CONG_BIC=y
# CONFIG_HAMRADIO is not set
# CONFIG_IRDA is not set
# CONFIG_BT is not set
# CONFIG_AF_RXRPC is not set
#
# Wireless
#
# CONFIG_CFG80211 is not set
# CONFIG_WIRELESS_EXT is not set
# CONFIG_MAC80211 is not set
# CONFIG_IEEE80211 is not set
# CONFIG_RFKILL is not set
# CONFIG_NET_9P is not set
#
# Device Drivers
...
...
@@ -357,29 +408,10 @@ CONFIG_STANDALONE=y
CONFIG_PREVENT_FIRMWARE_BUILD=y
# CONFIG_FW_LOADER is not set
# CONFIG_SYS_HYPERVISOR is not set
#
# Connector - unified userspace <-> kernelspace linker
#
# CONFIG_CONNECTOR is not set
#
# Memory Technology Devices (MTD)
#
# CONFIG_MTD is not set
#
# Parallel port support
#
# CONFIG_PARPORT is not set
#
# Plug and Play support
#
#
# Block devices
#
CONFIG_BLK_DEV=y
# CONFIG_BLK_DEV_COW_COMMON is not set
CONFIG_BLK_DEV_LOOP=y
# CONFIG_BLK_DEV_CRYPTOLOOP is not set
...
...
@@ -387,7 +419,7 @@ CONFIG_BLK_DEV_LOOP=y
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_COUNT=16
CONFIG_BLK_DEV_RAM_SIZE=8192
CONFIG_BLK_DEV_
INITRD=y
CONFIG_BLK_DEV_
RAM_BLOCKSIZE=1024
# CONFIG_CDROM_PKTCDVD is not set
CONFIG_ATA_OVER_ETH=m
...
...
@@ -396,6 +428,9 @@ CONFIG_ATA_OVER_ETH=m
#
# CONFIG_RAID_ATTRS is not set
CONFIG_SCSI=y
CONFIG_SCSI_DMA=y
# CONFIG_SCSI_TGT is not set
# CONFIG_SCSI_NETLINK is not set
CONFIG_SCSI_PROC_FS=y
#
...
...
@@ -414,82 +449,42 @@ CONFIG_SCSI_PROC_FS=y
# 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 Transport
Attribute
s
# SCSI Transports
#
# CONFIG_SCSI_SPI_ATTRS is not set
# CONFIG_SCSI_FC_ATTRS is not set
# CONFIG_SCSI_ISCSI_ATTRS is not set
# CONFIG_SCSI_SAS_ATTRS is not set
#
# SCSI low-level drivers
#
# CONFIG_SCSI_SAS_LIBSAS is not set
CONFIG_SCSI_LOWLEVEL=y
# CONFIG_ISCSI_TCP is not set
# CONFIG_SCSI_SATA is not set
# CONFIG_SCSI_DEBUG is not set
#
# Multi-device support (RAID and LVM)
#
# CONFIG_ATA is not set
# CONFIG_MD is not set
#
# Fusion MPT device support
#
# CONFIG_FUSION is not set
#
# IEEE 1394 (FireWire) support
#
#
# I2O device support
#
#
# Network device support
#
CONFIG_NETDEVICES=y
# CONFIG_NETDEVICES_MULTIQUEUE is not set
# CONFIG_DUMMY is not set
# CONFIG_BONDING is not set
# CONFIG_MACVLAN is not set
# CONFIG_EQUALIZER is not set
# CONFIG_TUN is not set
#
# PHY device support
#
# CONFIG_PHYLIB is not set
#
# Ethernet (10 or 100Mbit)
#
CONFIG_NET_ETHERNET=y
CONFIG_MII=y
# CONFIG_AX88796 is not set
CONFIG_SMC91X=y
# CONFIG_DM9000 is not set
CONFIG_NETDEV_1000=y
CONFIG_NETDEV_10000=y
#
# Ethernet (1000 Mbit)
#
#
# Ethernet (10000 Mbit)
#
#
# Token Ring devices
#
#
# Wireless LAN (non-hamradio)
#
# CONFIG_NET_RADIO is not set
#
# Wan interfaces
# Wireless LAN
#
# CONFIG_WLAN_PRE80211 is not set
# CONFIG_WLAN_80211 is not set
# CONFIG_WAN is not set
CONFIG_PPP=y
# CONFIG_PPP_MULTILINK is not set
...
...
@@ -500,24 +495,24 @@ CONFIG_PPP=y
# CONFIG_PPP_BSDCOMP is not set
# CONFIG_PPP_MPPE is not set
# CONFIG_PPPOE is not set
# CONFIG_PPPOL2TP is not set
CONFIG_SLIP=y
CONFIG_SLIP_COMPRESSED=y
CONFIG_SLHC=y
# CONFIG_SLIP_SMART is not set
# CONFIG_SLIP_MODE_SLIP6 is not set
# CONFIG_SHAPER is not set
# CONFIG_NETCONSOLE is not set
# CONFIG_NETPOLL is not set
# CONFIG_NET_POLL_CONTROLLER is not set
#
# ISDN subsystem
#
# CONFIG_ISDN is not set
#
# Input device support
#
CONFIG_INPUT=y
# CONFIG_INPUT_FF_MEMLESS is not set
# CONFIG_INPUT_POLLDEV is not set
#
# Userland interfaces
...
...
@@ -537,8 +532,14 @@ CONFIG_INPUT_EVBUG=y
# CONFIG_INPUT_KEYBOARD is not set
# CONFIG_INPUT_MOUSE is not set
# CONFIG_INPUT_JOYSTICK is not set
# CONFIG_INPUT_TABLET is not set
# CONFIG_INPUT_TOUCHSCREEN is not set
CONFIG_INPUT_MISC=y
# CONFIG_INPUT_ATI_REMOTE is not set
# CONFIG_INPUT_ATI_REMOTE2 is not set
# CONFIG_INPUT_KEYSPAN_REMOTE is not set
# CONFIG_INPUT_POWERMATE is not set
# CONFIG_INPUT_YEALINK is not set
CONFIG_INPUT_UINPUT=y
#
...
...
@@ -574,15 +575,7 @@ CONFIG_SERIAL_CORE=y
CONFIG_SERIAL_CORE_CONSOLE=y
CONFIG_UNIX98_PTYS=y
# CONFIG_LEGACY_PTYS is not set
#
# IPMI
#
# CONFIG_IPMI_HANDLER is not set
#
# Watchdog Cards
#
CONFIG_WATCHDOG=y
CONFIG_WATCHDOG_NOWAYOUT=y
...
...
@@ -590,25 +583,12 @@ CONFIG_WATCHDOG_NOWAYOUT=y
# Watchdog Device Drivers
#
# CONFIG_SOFT_WATCHDOG is not set
# CONFIG_OMAP_WATCHDOG is not set
# CONFIG_HW_RANDOM is not set
# CONFIG_NVRAM is not set
# CONFIG_DTLK is not set
# CONFIG_R3964 is not set
#
# Ftape, the floppy tape device driver
#
# CONFIG_RAW_DRIVER is not set
#
# TPM devices
#
# CONFIG_TCG_TPM is not set
# CONFIG_TELCLOCK is not set
#
# I2C support
#
# CONFIG_I2C is not set
#
...
...
@@ -616,61 +596,70 @@ CONFIG_WATCHDOG_NOWAYOUT=y
#
# CONFIG_SPI is not set
# CONFIG_SPI_MASTER is not set
#
# Dallas's 1-wire bus
#
#
# Hardware Monitoring support
#
# CONFIG_W1 is not set
CONFIG_HWMON=y
# CONFIG_HWMON_VID is not set
# CONFIG_SENSORS_ABITUGURU is not set
# CONFIG_SENSORS_ABITUGURU3 is not set
# CONFIG_SENSORS_F71805F is not set
# CONFIG_SENSORS_IT87 is not set
# CONFIG_SENSORS_PC87360 is not set
# CONFIG_SENSORS_PC87427 is not set
# CONFIG_SENSORS_SMSC47M1 is not set
# CONFIG_SENSORS_SMSC47B397 is not set
# CONFIG_SENSORS_VT1211 is not set
# CONFIG_SENSORS_W83627HF is not set
# CONFIG_SENSORS_W83627EHF is not set
# CONFIG_HWMON_DEBUG_CHIP is not set
CONFIG_MISC_DEVICES=y
# CONFIG_EEPROM_93CX6 is not set
#
# Misc devices
#
#
# LED devices
# Multifunction device drivers
#
# CONFIG_MFD_SM501 is not set
# CONFIG_NEW_LEDS is not set
#
# LED drivers
#
#
# LED Triggers
#
#
# Multimedia devices
#
# CONFIG_VIDEO_DEV is not set
CONFIG_VIDEO_V4L2=y
# CONFIG_DVB_CORE is not set
CONFIG_DAB=y
#
#
Digital Video Broadcasting Devices
#
Graphics support
#
# CONFIG_
DVB
is not set
# CONFIG_
BACKLIGHT_LCD_SUPPORT
is not set
#
#
Graphics
support
#
Display device
support
#
CONFIG_FIRMWARE_EDID=y
# CONFIG_DISPLAY_SUPPORT is not set
# CONFIG_VGASTATE is not set
CONFIG_VIDEO_OUTPUT_CONTROL=m
CONFIG_FB=y
CONFIG_FIRMWARE_EDID=y
# CONFIG_FB_DDC is not set
# CONFIG_FB_CFB_FILLRECT is not set
# CONFIG_FB_CFB_COPYAREA is not set
# CONFIG_FB_CFB_IMAGEBLIT 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_SYS_FOPS is not set
CONFIG_FB_DEFERRED_IO=y
# 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 is not set
#
# Frame buffer hardware drivers
#
# CONFIG_FB_S1D13XXX is not set
# CONFIG_FB_OMAP is not set
# CONFIG_FB_VIRTUAL is not set
#
...
...
@@ -679,6 +668,7 @@ CONFIG_FB_MODE_HELPERS=y
# CONFIG_VGA_CONSOLE is not set
CONFIG_DUMMY_CONSOLE=y
CONFIG_FRAMEBUFFER_CONSOLE=y
# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
CONFIG_FONTS=y
CONFIG_FONT_8x8=y
...
...
@@ -691,15 +681,10 @@ CONFIG_FONT_8x16=y
# CONFIG_FONT_SUN8x16 is not set
# CONFIG_FONT_SUN12x22 is not set
# CONFIG_FONT_10x18 is not set
#
# Logo configuration
#
CONFIG_LOGO=y
# CONFIG_LOGO_LINUX_MONO is not set
# CONFIG_LOGO_LINUX_VGA16 is not set
CONFIG_LOGO_LINUX_CLUT224=y
# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
#
# Sound
...
...
@@ -717,10 +702,10 @@ CONFIG_SOUND=y
CONFIG_SOUND_PRIME=y
# CONFIG_SOUND_MSNDCLAS is not set
# CONFIG_SOUND_MSNDPIN is not set
#
# USB support
#
CONFIG_HID_SUPPORT=y
CONFIG_HID=y
CONFIG_HID_DEBUG=y
CONFIG_USB_SUPPORT=y
CONFIG_USB_ARCH_HAS_HCD=y
CONFIG_USB_ARCH_HAS_OHCI=y
# CONFIG_USB_ARCH_HAS_EHCI is not set
...
...
@@ -734,17 +719,22 @@ CONFIG_USB_ARCH_HAS_OHCI=y
# USB Gadget Support
#
# CONFIG_USB_GADGET is not set
# CONFIG_MMC is not set
CONFIG_RTC_LIB=y
# CONFIG_RTC_CLASS is not set
#
#
MMC/SD Card
support
#
DMA Engine
support
#
# CONFIG_
MMC
is not set
# CONFIG_
DMA_ENGINE
is not set
#
# Real Time Clock
# DMA Clients
#
#
# DMA Devices
#
CONFIG_RTC_LIB=y
# CONFIG_RTC_CLASS is not set
#
# File systems
...
...
@@ -753,10 +743,12 @@ CONFIG_EXT2_FS=y
# CONFIG_EXT2_FS_XATTR is not set
# CONFIG_EXT2_FS_XIP is not set
# CONFIG_EXT3_FS is not set
# CONFIG_EXT4DEV_FS is not set
# CONFIG_REISERFS_FS is not set
# CONFIG_JFS_FS is not set
# CONFIG_FS_POSIX_ACL is not set
# CONFIG_XFS_FS is not set
# CONFIG_GFS2_FS is not set
# CONFIG_OCFS2_FS is not set
# CONFIG_MINIX_FS is not set
CONFIG_ROMFS_FS=y
...
...
@@ -787,6 +779,7 @@ CONFIG_FAT_DEFAULT_CODEPAGE=437
# Pseudo filesystems
#
CONFIG_PROC_FS=y
CONFIG_PROC_SYSCTL=y
CONFIG_SYSFS=y
# CONFIG_TMPFS is not set
# CONFIG_HUGETLB_PAGE is not set
...
...
@@ -825,6 +818,7 @@ CONFIG_LOCKD_V4=y
CONFIG_NFS_COMMON=y
CONFIG_SUNRPC=y
CONFIG_SUNRPC_GSS=y
# CONFIG_SUNRPC_BIND34 is not set
CONFIG_RPCSEC_GSS_KRB5=y
# CONFIG_RPCSEC_GSS_SPKM3 is not set
# CONFIG_SMB_FS is not set
...
...
@@ -832,7 +826,6 @@ CONFIG_RPCSEC_GSS_KRB5=y
# CONFIG_NCP_FS is not set
# CONFIG_CODA_FS is not set
# CONFIG_AFS_FS is not set
# CONFIG_9P_FS is not set
#
# Partition Types
...
...
@@ -884,6 +877,11 @@ CONFIG_NLS_DEFAULT="iso8859-1"
# CONFIG_NLS_KOI8_U is not set
# CONFIG_NLS_UTF8 is not set
#
# Distributed Lock Manager
#
# CONFIG_DLM is not set
#
# Profiling support
#
...
...
@@ -893,13 +891,14 @@ CONFIG_NLS_DEFAULT="iso8859-1"
# Kernel hacking
#
# CONFIG_PRINTK_TIME is not set
CONFIG_ENABLE_MUST_CHECK=y
# CONFIG_MAGIC_SYSRQ is not set
# CONFIG_UNUSED_SYMBOLS is not set
# CONFIG_DEBUG_FS is not set
# CONFIG_HEADERS_CHECK is not set
# CONFIG_DEBUG_KERNEL is not set
CONFIG_LOG_BUF_SHIFT=14
CONFIG_DEBUG_BUGVERBOSE=y
# CONFIG_DEBUG_FS is not set
CONFIG_FRAME_POINTER=y
# CONFIG_UNWIND_INFO is not set
# CONFIG_DEBUG_USER is not set
#
...
...
@@ -907,12 +906,12 @@ CONFIG_FRAME_POINTER=y
#
# CONFIG_KEYS is not set
# CONFIG_SECURITY is not set
#
# Cryptographic options
#
CONFIG_CRYPTO=y
CONFIG_CRYPTO_ALGAPI=y
CONFIG_CRYPTO_BLKCIPHER=y
CONFIG_CRYPTO_MANAGER=y
# CONFIG_CRYPTO_HMAC is not set
# CONFIG_CRYPTO_XCBC is not set
# CONFIG_CRYPTO_NULL is not set
# CONFIG_CRYPTO_MD4 is not set
CONFIG_CRYPTO_MD5=y
...
...
@@ -921,7 +920,14 @@ CONFIG_CRYPTO_MD5=y
# CONFIG_CRYPTO_SHA512 is not set
# CONFIG_CRYPTO_WP512 is not set
# CONFIG_CRYPTO_TGR192 is not set
# CONFIG_CRYPTO_GF128MUL is not set
CONFIG_CRYPTO_ECB=m
CONFIG_CRYPTO_CBC=y
CONFIG_CRYPTO_PCBC=m
# CONFIG_CRYPTO_LRW is not set
# CONFIG_CRYPTO_CRYPTD is not set
CONFIG_CRYPTO_DES=y
# CONFIG_CRYPTO_FCRYPT is not set
# CONFIG_CRYPTO_BLOWFISH is not set
# CONFIG_CRYPTO_TWOFISH is not set
# CONFIG_CRYPTO_SERPENT is not set
...
...
@@ -935,17 +941,22 @@ CONFIG_CRYPTO_DES=y
# CONFIG_CRYPTO_DEFLATE is not set
# CONFIG_CRYPTO_MICHAEL_MIC is not set
# CONFIG_CRYPTO_CRC32C is not set
# CONFIG_CRYPTO_CAMELLIA is not set
# CONFIG_CRYPTO_TEST is not set
#
# Hardware crypto devices
#
CONFIG_CRYPTO_HW=y
#
# Library routines
#
CONFIG_BITREVERSE=y
# CONFIG_CRC_CCITT is not set
# CONFIG_CRC16 is not set
# CONFIG_CRC_ITU_T is not set
CONFIG_CRC32=y
# CONFIG_CRC7 is not set
# CONFIG_LIBCRC32C is not set
CONFIG_ZLIB_INFLATE=y
CONFIG_PLIST=y
CONFIG_HAS_IOMEM=y
CONFIG_HAS_IOPORT=y
CONFIG_HAS_DMA=y
arch/arm/configs/omap_osk_5912_defconfig
0 → 100644
View file @
92633b72
#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.23-rc6
# Mon Sep 17 14:15:05 2007
#
CONFIG_ARM=y
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
CONFIG_GENERIC_GPIO=y
CONFIG_GENERIC_TIME=y
CONFIG_GENERIC_CLOCKEVENTS=y
CONFIG_MMU=y
# CONFIG_NO_IOPORT is not set
CONFIG_GENERIC_HARDIRQS=y
CONFIG_STACKTRACE_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_ZONE_DMA=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=y
CONFIG_SWAP=y
CONFIG_SYSVIPC=y
CONFIG_SYSVIPC_SYSCTL=y
# CONFIG_POSIX_MQUEUE is not set
# CONFIG_BSD_PROCESS_ACCT is not set
# CONFIG_TASKSTATS is not set
# CONFIG_USER_NS is not set
# CONFIG_AUDIT is not set
# CONFIG_IKCONFIG is not set
CONFIG_LOG_BUF_SHIFT=14
# CONFIG_SYSFS_DEPRECATED is not set
# CONFIG_RELAY is not set
CONFIG_BLK_DEV_INITRD=y
CONFIG_INITRAMFS_SOURCE=""
CONFIG_CC_OPTIMIZE_FOR_SIZE=y
CONFIG_SYSCTL=y
# CONFIG_EMBEDDED is not set
CONFIG_UID16=y
CONFIG_SYSCTL_SYSCALL=y
CONFIG_KALLSYMS=y
# CONFIG_KALLSYMS_EXTRA_PASS is not set
CONFIG_HOTPLUG=y
CONFIG_PRINTK=y
CONFIG_BUG=y
CONFIG_ELF_CORE=y
CONFIG_BASE_FULL=y
CONFIG_FUTEX=y
CONFIG_ANON_INODES=y
CONFIG_EPOLL=y
CONFIG_SIGNALFD=y
CONFIG_TIMERFD=y
CONFIG_EVENTFD=y
CONFIG_SHMEM=y
CONFIG_VM_EVENT_COUNTERS=y
CONFIG_SLAB=y
# CONFIG_SLUB is not set
# CONFIG_SLOB is not set
CONFIG_RT_MUTEXES=y
# CONFIG_TINY_SHMEM is not set
CONFIG_BASE_SMALL=0
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
# CONFIG_MODULE_FORCE_UNLOAD is not set
# CONFIG_MODVERSIONS is not set
# CONFIG_MODULE_SRCVERSION_ALL is not set
CONFIG_KMOD=y
CONFIG_BLOCK=y
# CONFIG_LBD is not set
# CONFIG_BLK_DEV_IO_TRACE is not set
# CONFIG_LSF is not set
# CONFIG_BLK_DEV_BSG is not set
#
# IO Schedulers
#
CONFIG_IOSCHED_NOOP=y
CONFIG_IOSCHED_AS=y
CONFIG_IOSCHED_DEADLINE=y
CONFIG_IOSCHED_CFQ=y
# CONFIG_DEFAULT_AS is not set
# CONFIG_DEFAULT_DEADLINE is not set
CONFIG_DEFAULT_CFQ=y
# CONFIG_DEFAULT_NOOP is not set
CONFIG_DEFAULT_IOSCHED="cfq"
#
# 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_CLPS7500 is not set
# CONFIG_ARCH_CLPS711X is not set
# CONFIG_ARCH_CO285 is not set
# CONFIG_ARCH_EBSA110 is not set
# CONFIG_ARCH_EP93XX 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_KS8695 is not set
# CONFIG_ARCH_NS9XXX is not set
# CONFIG_ARCH_MXC is not set
# CONFIG_ARCH_PNX4008 is not set
# CONFIG_ARCH_PXA is not set
# CONFIG_ARCH_RPC is not set
# CONFIG_ARCH_SA1100 is not set
# CONFIG_ARCH_S3C2410 is not set
# CONFIG_ARCH_SHARK is not set
# CONFIG_ARCH_LH7A40X is not set
# CONFIG_ARCH_DAVINCI is not set
CONFIG_ARCH_OMAP=y
#
# TI OMAP Implementations
#
CONFIG_ARCH_OMAP_OTG=y
CONFIG_ARCH_OMAP1=y
# CONFIG_ARCH_OMAP2 is not set
#
# OMAP Feature Selections
#
CONFIG_OMAP_RESET_CLOCKS=y
CONFIG_OMAP_MUX=y
# CONFIG_OMAP_MUX_DEBUG is not set
CONFIG_OMAP_MUX_WARNINGS=y
CONFIG_OMAP_MCBSP=y
# CONFIG_OMAP_MPU_TIMER is not set
CONFIG_OMAP_32K_TIMER=y
CONFIG_OMAP_32K_TIMER_HZ=128
# CONFIG_OMAP_DM_TIMER is not set
CONFIG_OMAP_LL_DEBUG_UART1=y
# CONFIG_OMAP_LL_DEBUG_UART2 is not set
# CONFIG_OMAP_LL_DEBUG_UART3 is not set
CONFIG_OMAP_SERIAL_WAKE=y
#
# OMAP Core Type
#
# CONFIG_ARCH_OMAP730 is not set
# CONFIG_ARCH_OMAP15XX is not set
CONFIG_ARCH_OMAP16XX=y
#
# OMAP Board Type
#
# CONFIG_MACH_OMAP_INNOVATOR is not set
# CONFIG_MACH_OMAP_H2 is not set
# CONFIG_MACH_OMAP_H3 is not set
CONFIG_MACH_OMAP_OSK=y
# CONFIG_OMAP_OSK_MISTRAL is not set
# CONFIG_MACH_NOKIA770 is not set
# CONFIG_MACH_OMAP_GENERIC is not set
#
# OMAP CPU Speed
#
# CONFIG_OMAP_CLOCKS_SET_BY_BOOTLOADER is not set
# CONFIG_OMAP_ARM_216MHZ is not set
CONFIG_OMAP_ARM_192MHZ=y
# CONFIG_OMAP_ARM_168MHZ is not set
# CONFIG_OMAP_ARM_120MHZ is not set
# CONFIG_OMAP_ARM_60MHZ is not set
# CONFIG_OMAP_ARM_30MHZ is not set
#
# Boot options
#
#
# Power management
#
#
# Processor Type
#
CONFIG_CPU_32=y
CONFIG_CPU_ARM926T=y
CONFIG_CPU_32v5=y
CONFIG_CPU_ABRT_EV5TJ=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 is not set
# CONFIG_CPU_ICACHE_DISABLE is not set
# CONFIG_CPU_DCACHE_DISABLE is not set
# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
# CONFIG_CPU_CACHE_ROUND_ROBIN is not set
# CONFIG_OUTER_CACHE is not set
#
# Bus support
#
# CONFIG_PCI_SYSCALL is not set
# CONFIG_ARCH_SUPPORTS_MSI is not set
#
# PCCARD (PCMCIA/CardBus) support
#
CONFIG_PCCARD=y
# CONFIG_PCMCIA_DEBUG is not set
CONFIG_PCMCIA=y
CONFIG_PCMCIA_LOAD_CIS=y
CONFIG_PCMCIA_IOCTL=y
#
# PC-card bridges
#
CONFIG_OMAP_CF=y
#
# Kernel Features
#
CONFIG_TICK_ONESHOT=y
CONFIG_NO_HZ=y
CONFIG_HIGH_RES_TIMERS=y
# CONFIG_PREEMPT is not set
CONFIG_HZ=128
CONFIG_AEABI=y
CONFIG_OABI_COMPAT=y
# CONFIG_ARCH_DISCONTIGMEM_ENABLE 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_SPARSEMEM_STATIC is not set
CONFIG_SPLIT_PTLOCK_CPUS=4096
# CONFIG_RESOURCES_64BIT is not set
CONFIG_ZONE_DMA_FLAG=1
CONFIG_BOUNCE=y
CONFIG_VIRT_TO_BUS=y
# CONFIG_LEDS is not set
CONFIG_ALIGNMENT_TRAP=y
#
# Boot options
#
CONFIG_ZBOOT_ROM_TEXT=0x0
CONFIG_ZBOOT_ROM_BSS=0x0
CONFIG_CMDLINE="mem=32M console=ttyS0,115200 initrd=0x10400000,8M root=/dev/ram0 rw"
# CONFIG_XIP_KERNEL is not set
# CONFIG_KEXEC is not set
#
# CPU Frequency scaling
#
# CONFIG_CPU_FREQ is not set
#
# Floating point emulation
#
#
# At least one emulation must be selected
#
CONFIG_FPE_NWFPE=y
# CONFIG_FPE_NWFPE_XP is not set
# CONFIG_FPE_FASTFPE is not set
# CONFIG_VFP is not set
#
# Userspace binary formats
#
CONFIG_BINFMT_ELF=y
# CONFIG_BINFMT_AOUT is not set
# CONFIG_BINFMT_MISC is not set
#
# Power management options
#
CONFIG_PM=y
# CONFIG_PM_LEGACY is not set
# CONFIG_PM_DEBUG is not set
CONFIG_PM_SLEEP=y
CONFIG_SUSPEND_UP_POSSIBLE=y
CONFIG_SUSPEND=y
# CONFIG_APM_EMULATION is not set
#
# Networking
#
CONFIG_NET=y
#
# Networking options
#
CONFIG_PACKET=m
# CONFIG_PACKET_MMAP is not set
CONFIG_UNIX=y
CONFIG_XFRM=y
# CONFIG_XFRM_USER is not set
# CONFIG_XFRM_SUB_POLICY is not set
# CONFIG_XFRM_MIGRATE is not set
# CONFIG_NET_KEY is not set
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
# CONFIG_IP_ADVANCED_ROUTER is not set
CONFIG_IP_FIB_HASH=y
CONFIG_IP_PNP=y
CONFIG_IP_PNP_DHCP=y
CONFIG_IP_PNP_BOOTP=y
# CONFIG_IP_PNP_RARP is not set
# CONFIG_NET_IPIP is not set
# CONFIG_NET_IPGRE is not set
# CONFIG_IP_MROUTE is not set
# CONFIG_ARPD is not set
# CONFIG_SYN_COOKIES is not set
# 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=y
CONFIG_INET_XFRM_MODE_TUNNEL=y
CONFIG_INET_XFRM_MODE_BEET=y
CONFIG_INET_DIAG=y
CONFIG_INET_TCP_DIAG=y
# 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_INET6_XFRM_TUNNEL is not set
# CONFIG_INET6_TUNNEL is not set
# CONFIG_NETWORK_SECMARK is not set
# CONFIG_NETFILTER 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_BRIDGE is not set
# CONFIG_VLAN_8021Q is not set
# CONFIG_DECNET is not set
# CONFIG_LLC2 is not set
# CONFIG_IPX is not set
# CONFIG_ATALK is not set
# CONFIG_X25 is not set
# CONFIG_LAPB is not set
# CONFIG_ECONET is not set
# CONFIG_WAN_ROUTER is not set
#
# QoS and/or fair queueing
#
# CONFIG_NET_SCHED is not set
#
# Network testing
#
# CONFIG_NET_PKTGEN is not set
# CONFIG_HAMRADIO is not set
# CONFIG_IRDA is not set
# CONFIG_BT is not set
# CONFIG_AF_RXRPC is not set
#
# Wireless
#
# CONFIG_CFG80211 is not set
# CONFIG_WIRELESS_EXT is not set
# CONFIG_MAC80211 is not set
# CONFIG_IEEE80211 is not set
# CONFIG_RFKILL is not set
# CONFIG_NET_9P is not set
#
# Device Drivers
#
#
# Generic Driver Options
#
CONFIG_STANDALONE=y
CONFIG_PREVENT_FIRMWARE_BUILD=y
CONFIG_FW_LOADER=y
# CONFIG_SYS_HYPERVISOR is not set
# CONFIG_CONNECTOR is not set
CONFIG_MTD=y
# CONFIG_MTD_DEBUG is not set
# CONFIG_MTD_CONCAT is not set
CONFIG_MTD_PARTITIONS=y
# CONFIG_MTD_REDBOOT_PARTS is not set
CONFIG_MTD_CMDLINE_PARTS=y
# CONFIG_MTD_AFS_PARTS is not set
#
# User Modules And Translation Layers
#
CONFIG_MTD_CHAR=y
CONFIG_MTD_BLKDEVS=y
CONFIG_MTD_BLOCK=y
# CONFIG_FTL is not set
# CONFIG_NFTL is not set
# CONFIG_INFTL is not set
# CONFIG_RFD_FTL is not set
# CONFIG_SSFDC is not set
#
# RAM/ROM/Flash chip drivers
#
CONFIG_MTD_CFI=y
# CONFIG_MTD_JEDECPROBE is not set
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=y
# CONFIG_MTD_CFI_AMDSTD is not set
# CONFIG_MTD_CFI_STAA is not set
CONFIG_MTD_CFI_UTIL=y
# CONFIG_MTD_RAM is not set
# CONFIG_MTD_ROM is not set
# CONFIG_MTD_ABSENT is not set
#
# Mapping drivers for chip access
#
# CONFIG_MTD_COMPLEX_MAPPINGS is not set
# CONFIG_MTD_PHYSMAP is not set
# CONFIG_MTD_ARM_INTEGRATOR is not set
CONFIG_MTD_OMAP_NOR=y
# CONFIG_MTD_PLATRAM is not set
#
# Self-contained MTD device drivers
#
# CONFIG_MTD_SLRAM is not set
# CONFIG_MTD_PHRAM is not set
# CONFIG_MTD_MTDRAM is not set
# CONFIG_MTD_BLOCK2MTD is not set
#
# Disk-On-Chip Device Drivers
#
# CONFIG_MTD_DOC2000 is not set
# CONFIG_MTD_DOC2001 is not set
# CONFIG_MTD_DOC2001PLUS is not set
# CONFIG_MTD_NAND is not set
# CONFIG_MTD_ONENAND is not set
#
# 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=y
# CONFIG_BLK_DEV_CRYPTOLOOP is not set
# CONFIG_BLK_DEV_NBD is not set
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_COUNT=16
CONFIG_BLK_DEV_RAM_SIZE=8192
CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
# CONFIG_CDROM_PKTCDVD is not set
# CONFIG_ATA_OVER_ETH is not set
CONFIG_IDE=m
CONFIG_BLK_DEV_IDE=m
#
# Please see Documentation/ide.txt for help/info on IDE drives
#
# CONFIG_BLK_DEV_IDE_SATA is not set
CONFIG_BLK_DEV_IDEDISK=m
# CONFIG_IDEDISK_MULTI_MODE is not set
CONFIG_BLK_DEV_IDECS=m
# CONFIG_BLK_DEV_IDECD is not set
# CONFIG_BLK_DEV_IDETAPE is not set
# CONFIG_BLK_DEV_IDEFLOPPY is not set
# CONFIG_IDE_TASK_IOCTL is not set
CONFIG_IDE_PROC_FS=y
#
# IDE chipset support/bugfixes
#
# CONFIG_IDE_GENERIC is not set
# CONFIG_IDEPCI_PCIBUS_ORDER is not set
# CONFIG_IDE_ARM is not set
# CONFIG_BLK_DEV_IDEDMA is not set
# CONFIG_BLK_DEV_HD is not set
#
# SCSI device support
#
# CONFIG_RAID_ATTRS is not set
# CONFIG_SCSI is not set
# CONFIG_SCSI_DMA is not set
# CONFIG_SCSI_NETLINK is not set
# CONFIG_ATA is not set
# CONFIG_MD is not set
CONFIG_NETDEVICES=y
# CONFIG_NETDEVICES_MULTIQUEUE is not set
# CONFIG_DUMMY is not set
# CONFIG_BONDING is not set
# CONFIG_MACVLAN is not set
# CONFIG_EQUALIZER is not set
# CONFIG_TUN is not set
# CONFIG_PHYLIB is not set
CONFIG_NET_ETHERNET=y
CONFIG_MII=y
# CONFIG_AX88796 is not set
CONFIG_SMC91X=y
# CONFIG_DM9000 is not set
CONFIG_NETDEV_1000=y
CONFIG_NETDEV_10000=y
#
# Wireless LAN
#
# CONFIG_WLAN_PRE80211 is not set
# CONFIG_WLAN_80211 is not set
# CONFIG_NET_PCMCIA is not set
# CONFIG_WAN is not set
CONFIG_PPP=y
CONFIG_PPP_MULTILINK=y
# CONFIG_PPP_FILTER is not set
# CONFIG_PPP_ASYNC is not set
# CONFIG_PPP_SYNC_TTY is not set
# CONFIG_PPP_DEFLATE is not set
# CONFIG_PPP_BSDCOMP is not set
# CONFIG_PPP_MPPE is not set
# CONFIG_PPPOE is not set
# CONFIG_PPPOL2TP is not set
# CONFIG_SLIP is not set
CONFIG_SLHC=y
# CONFIG_SHAPER is not set
# 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 is not set
# CONFIG_INPUT_POLLDEV is not set
#
# Userland interfaces
#
CONFIG_INPUT_MOUSEDEV=y
# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
# CONFIG_INPUT_JOYDEV is not set
# CONFIG_INPUT_TSDEV is not set
CONFIG_INPUT_EVDEV=y
# CONFIG_INPUT_EVBUG is not set
#
# 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_OMAP=y
# CONFIG_KEYBOARD_GPIO is not set
# CONFIG_INPUT_MOUSE is not set
# CONFIG_INPUT_JOYSTICK is not set
# CONFIG_INPUT_TABLET is not set
CONFIG_INPUT_TOUCHSCREEN=y
# CONFIG_TOUCHSCREEN_FUJITSU is not set
# CONFIG_TOUCHSCREEN_GUNZE is not set
# CONFIG_TOUCHSCREEN_ELO is not set
# CONFIG_TOUCHSCREEN_MTOUCH 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_UCB1400 is not set
# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set
# CONFIG_INPUT_MISC is not set
#
# Hardware I/O ports
#
# CONFIG_SERIO is not set
# CONFIG_GAMEPORT is not set
#
# Character devices
#
CONFIG_VT=y
CONFIG_VT_CONSOLE=y
CONFIG_HW_CONSOLE=y
# CONFIG_VT_HW_CONSOLE_BINDING is not set
# CONFIG_SERIAL_NONSTANDARD is not set
#
# Serial drivers
#
CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250_CONSOLE=y
# CONFIG_SERIAL_8250_CS is not set
CONFIG_SERIAL_8250_NR_UARTS=4
CONFIG_SERIAL_8250_RUNTIME_UARTS=4
# CONFIG_SERIAL_8250_EXTENDED is not set
#
# Non-8250 serial port support
#
CONFIG_SERIAL_CORE=y
CONFIG_SERIAL_CORE_CONSOLE=y
CONFIG_UNIX98_PTYS=y
CONFIG_LEGACY_PTYS=y
CONFIG_LEGACY_PTY_COUNT=256
# CONFIG_IPMI_HANDLER is not set
# CONFIG_WATCHDOG is not set
CONFIG_HW_RANDOM=m
CONFIG_HW_RANDOM_OMAP=m
# CONFIG_NVRAM is not set
# CONFIG_R3964 is not set
#
# PCMCIA character devices
#
# CONFIG_SYNCLINK_CS is not set
# CONFIG_CARDMAN_4000 is not set
# CONFIG_CARDMAN_4040 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
#
# I2C Algorithms
#
# CONFIG_I2C_ALGOBIT is not set
# CONFIG_I2C_ALGOPCF is not set
# CONFIG_I2C_ALGOPCA is not set
#
# I2C Hardware Bus support
#
# CONFIG_I2C_GPIO is not set
# CONFIG_I2C_OCORES is not set
CONFIG_I2C_OMAP=y
# CONFIG_I2C_PARPORT_LIGHT is not set
# CONFIG_I2C_SIMTEC is not set
# CONFIG_I2C_TAOS_EVM is not set
# CONFIG_I2C_STUB is not set
#
# Miscellaneous I2C Chip support
#
# CONFIG_SENSORS_DS1337 is not set
# CONFIG_SENSORS_DS1374 is not set
# CONFIG_DS1682 is not set
# CONFIG_SENSORS_EEPROM is not set
# CONFIG_SENSORS_PCF8574 is not set
# CONFIG_SENSORS_PCA9539 is not set
# CONFIG_SENSORS_PCF8591 is not set
# CONFIG_ISP1301_OMAP is not set
CONFIG_TPS65010=y
# CONFIG_SENSORS_MAX6875 is not set
# CONFIG_SENSORS_TSL2550 is not set
# CONFIG_I2C_DEBUG_CORE is not set
# CONFIG_I2C_DEBUG_ALGO is not set
# CONFIG_I2C_DEBUG_BUS is not set
# CONFIG_I2C_DEBUG_CHIP is not set
#
# SPI support
#
# CONFIG_SPI is not set
# CONFIG_SPI_MASTER is not set
# CONFIG_W1 is not set
CONFIG_HWMON=y
# CONFIG_HWMON_VID is not set
# CONFIG_SENSORS_ABITUGURU is not set
# CONFIG_SENSORS_ABITUGURU3 is not set
# CONFIG_SENSORS_AD7418 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_ASB100 is not set
# CONFIG_SENSORS_ATXP1 is not set
# CONFIG_SENSORS_DS1621 is not set
# CONFIG_SENSORS_F71805F is not set
# CONFIG_SENSORS_FSCHER is not set
# CONFIG_SENSORS_FSCPOS is not set
# CONFIG_SENSORS_GL518SM is not set
# CONFIG_SENSORS_GL520SM is not set
# CONFIG_SENSORS_IT87 is not set
# CONFIG_SENSORS_LM63 is not set
# CONFIG_SENSORS_LM75 is not set
# 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_MAX1619 is not set
# CONFIG_SENSORS_MAX6650 is not set
# CONFIG_SENSORS_PC87360 is not set
# CONFIG_SENSORS_PC87427 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_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_W83627HF is not set
# CONFIG_SENSORS_W83627EHF is not set
# CONFIG_HWMON_DEBUG_CHIP is not set
CONFIG_MISC_DEVICES=y
# CONFIG_EEPROM_93CX6 is not set
#
# Multifunction device drivers
#
# CONFIG_MFD_SM501 is not set
# CONFIG_NEW_LEDS is not set
#
# Multimedia devices
#
# CONFIG_VIDEO_DEV is not set
# CONFIG_DVB_CORE is not set
CONFIG_DAB=y
#
# Graphics support
#
# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
#
# Display device support
#
# CONFIG_DISPLAY_SUPPORT is not set
# CONFIG_VGASTATE is not set
CONFIG_VIDEO_OUTPUT_CONTROL=m
CONFIG_FB=y
CONFIG_FIRMWARE_EDID=y
# CONFIG_FB_DDC is not set
# CONFIG_FB_CFB_FILLRECT is not set
# CONFIG_FB_CFB_COPYAREA is not set
# CONFIG_FB_CFB_IMAGEBLIT 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_SYS_FOPS is not set
CONFIG_FB_DEFERRED_IO=y
# 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 is not set
#
# Frame buffer hardware drivers
#
# CONFIG_FB_S1D13XXX is not set
# CONFIG_FB_OMAP is not set
# CONFIG_FB_VIRTUAL is not set
#
# Console display driver support
#
# CONFIG_VGA_CONSOLE is not set
CONFIG_DUMMY_CONSOLE=y
CONFIG_FRAMEBUFFER_CONSOLE=y
# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
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 is not set
# 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
#
# Sound
#
# CONFIG_SOUND is not set
CONFIG_HID_SUPPORT=y
CONFIG_HID=y
CONFIG_HID_DEBUG=y
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 is not set
#
# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
#
#
# USB Gadget Support
#
# CONFIG_USB_GADGET is not set
# CONFIG_MMC is not set
CONFIG_RTC_LIB=y
# CONFIG_RTC_CLASS is not set
#
# DMA Engine support
#
# CONFIG_DMA_ENGINE is not set
#
# DMA Clients
#
#
# DMA Devices
#
#
# File systems
#
CONFIG_EXT2_FS=y
# CONFIG_EXT2_FS_XATTR is not set
# CONFIG_EXT2_FS_XIP is not set
# CONFIG_EXT3_FS is not set
# CONFIG_EXT4DEV_FS is not set
# CONFIG_REISERFS_FS is not set
# CONFIG_JFS_FS is not set
# CONFIG_FS_POSIX_ACL is not set
# CONFIG_XFS_FS is not set
# CONFIG_GFS2_FS is not set
# CONFIG_OCFS2_FS is not set
# CONFIG_MINIX_FS is not set
# CONFIG_ROMFS_FS is not set
CONFIG_INOTIFY=y
CONFIG_INOTIFY_USER=y
# CONFIG_QUOTA is not set
CONFIG_DNOTIFY=y
CONFIG_AUTOFS_FS=y
CONFIG_AUTOFS4_FS=y
# CONFIG_FUSE_FS 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=m
CONFIG_MSDOS_FS=m
CONFIG_VFAT_FS=m
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_SYSFS=y
# CONFIG_TMPFS is not set
# CONFIG_HUGETLB_PAGE is not set
CONFIG_RAMFS=y
# CONFIG_CONFIGFS_FS is not set
#
# Miscellaneous filesystems
#
# CONFIG_ADFS_FS is not set
# CONFIG_AFFS_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_SUMMARY is not set
# CONFIG_JFFS2_FS_XATTR is not set
# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
CONFIG_JFFS2_ZLIB=y
CONFIG_JFFS2_RTIME=y
# CONFIG_JFFS2_RUBIN is not set
# CONFIG_CRAMFS is not set
# CONFIG_VXFS_FS is not set
# CONFIG_HPFS_FS is not set
# CONFIG_QNX4FS_FS is not set
# CONFIG_SYSV_FS is not set
# CONFIG_UFS_FS is not set
#
# Network File Systems
#
CONFIG_NFS_FS=y
CONFIG_NFS_V3=y
# CONFIG_NFS_V3_ACL is not set
# CONFIG_NFS_V4 is not set
# CONFIG_NFS_DIRECTIO is not set
# CONFIG_NFSD is not set
CONFIG_ROOT_NFS=y
CONFIG_LOCKD=y
CONFIG_LOCKD_V4=y
CONFIG_NFS_COMMON=y
CONFIG_SUNRPC=y
# CONFIG_SUNRPC_BIND34 is not set
# CONFIG_RPCSEC_GSS_KRB5 is not set
# 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 is not set
CONFIG_MSDOS_PARTITION=y
#
# Native Language Support
#
CONFIG_NLS=m
CONFIG_NLS_DEFAULT="iso8859-1"
CONFIG_NLS_CODEPAGE_437=m
# CONFIG_NLS_CODEPAGE_737 is not set
# CONFIG_NLS_CODEPAGE_775 is not set
# CONFIG_NLS_CODEPAGE_850 is not set
# CONFIG_NLS_CODEPAGE_852 is not set
# CONFIG_NLS_CODEPAGE_855 is not set
# CONFIG_NLS_CODEPAGE_857 is not set
# CONFIG_NLS_CODEPAGE_860 is not set
# CONFIG_NLS_CODEPAGE_861 is not set
# CONFIG_NLS_CODEPAGE_862 is not set
# CONFIG_NLS_CODEPAGE_863 is not set
# CONFIG_NLS_CODEPAGE_864 is not set
# CONFIG_NLS_CODEPAGE_865 is not set
# CONFIG_NLS_CODEPAGE_866 is not set
# CONFIG_NLS_CODEPAGE_869 is not set
# CONFIG_NLS_CODEPAGE_936 is not set
# CONFIG_NLS_CODEPAGE_950 is not set
# CONFIG_NLS_CODEPAGE_932 is not set
# CONFIG_NLS_CODEPAGE_949 is not set
# CONFIG_NLS_CODEPAGE_874 is not set
# CONFIG_NLS_ISO8859_8 is not set
# CONFIG_NLS_CODEPAGE_1250 is not set
# CONFIG_NLS_CODEPAGE_1251 is not set
# CONFIG_NLS_ASCII is not set
CONFIG_NLS_ISO8859_1=m
# CONFIG_NLS_ISO8859_2 is not set
# CONFIG_NLS_ISO8859_3 is not set
# CONFIG_NLS_ISO8859_4 is not set
# CONFIG_NLS_ISO8859_5 is not set
# CONFIG_NLS_ISO8859_6 is not set
# CONFIG_NLS_ISO8859_7 is not set
# CONFIG_NLS_ISO8859_9 is not set
# CONFIG_NLS_ISO8859_13 is not set
# CONFIG_NLS_ISO8859_14 is not set
# CONFIG_NLS_ISO8859_15 is not set
# CONFIG_NLS_KOI8_R is not set
# CONFIG_NLS_KOI8_U is not set
# CONFIG_NLS_UTF8 is not set
#
# Distributed Lock Manager
#
# CONFIG_DLM is not set
#
# Profiling support
#
# CONFIG_PROFILING is not set
#
# Kernel hacking
#
# CONFIG_PRINTK_TIME is not set
CONFIG_ENABLE_MUST_CHECK=y
# CONFIG_MAGIC_SYSRQ is not set
# CONFIG_UNUSED_SYMBOLS is not set
# CONFIG_DEBUG_FS is not set
# CONFIG_HEADERS_CHECK is not set
# CONFIG_DEBUG_KERNEL is not set
CONFIG_DEBUG_BUGVERBOSE=y
CONFIG_FRAME_POINTER=y
# CONFIG_DEBUG_USER is not set
#
# Security options
#
# CONFIG_KEYS is not set
# CONFIG_SECURITY is not set
# CONFIG_CRYPTO is not set
#
# Library routines
#
CONFIG_BITREVERSE=y
# CONFIG_CRC_CCITT is not set
# CONFIG_CRC16 is not set
# CONFIG_CRC_ITU_T is not set
CONFIG_CRC32=y
# CONFIG_CRC7 is not set
# CONFIG_LIBCRC32C is not set
CONFIG_ZLIB_INFLATE=y
CONFIG_ZLIB_DEFLATE=y
CONFIG_PLIST=y
CONFIG_HAS_IOMEM=y
CONFIG_HAS_IOPORT=y
CONFIG_HAS_DMA=y
arch/arm/mach-omap1/Kconfig
View file @
92633b72
...
...
@@ -84,11 +84,39 @@ config MACH_OMAP_PALMTE
bool "Palm Tungsten E"
depends on ARCH_OMAP1 && ARCH_OMAP15XX
help
Support for the Palm Tungsten E PDA. Currently only the LCD panel
is supported. To boot the kernel, you'll need a PalmOS compatible
bootloader; check out http://palmtelinux.sourceforge.net for more
information.
Say Y here if you have such a PDA, say NO otherwise.
Support for the Palm Tungsten E PDA. To boot the kernel, you'll
need a PalmOS compatible bootloader; check out
http://palmtelinux.sourceforge.net/ for more information.
Say Y here if you have this PDA model, say N otherwise.
config MACH_OMAP_PALMZ71
bool "Palm Zire71"
depends on ARCH_OMAP1 && ARCH_OMAP15XX
help
Support for the Palm Zire71 PDA. To boot the kernel,
you'll need a PalmOS compatible bootloader; check out
http://hackndev.com/palm/z71 for more informations.
Say Y here if you have such a PDA, say N otherwise.
config MACH_OMAP_PALMTT
bool "Palm Tungsten|T"
depends on ARCH_OMAP1 && ARCH_OMAP15XX
help
Support for the Palm Tungsten|T PDA. To boot the kernel, you'll
need a PalmOS compatible bootloader (Garux); check out
http://www.hackndev.com/palm/tt/ for more information.
Say Y here if you have this PDA model, say N otherwise.
config MACH_SX1
bool "Siemens SX1"
depends on ARCH_OMAP1 && ARCH_OMAP15XX
help
Support for the Siemens SX1 phone. To boot the kernel,
you'll need a SX1 compatible bootloader; check out
http://forum.oslik.ru and
http://www.handhelds.org/moin/moin.cgi/SiemensSX1
for more information.
Say Y here if you have such a phone, say NO otherwise.
config MACH_NOKIA770
bool "Nokia 770"
...
...
arch/arm/mach-omap1/Makefile
View file @
92633b72
...
...
@@ -22,8 +22,11 @@ obj-$(CONFIG_MACH_OMAP_OSK) += board-osk.o
obj-$(CONFIG_MACH_OMAP_H3)
+=
board-h3.o
obj-$(CONFIG_MACH_VOICEBLUE)
+=
board-voiceblue.o
obj-$(CONFIG_MACH_OMAP_PALMTE)
+=
board-palmte.o
obj-$(CONFIG_MACH_OMAP_PALMZ71)
+=
board-palmz71.o
obj-$(CONFIG_MACH_OMAP_PALMTT)
+=
board-palmtt.o
obj-$(CONFIG_MACH_NOKIA770)
+=
board-nokia770.o
obj-$(CONFIG_MACH_AMS_DELTA)
+=
board-ams-delta.o
obj-$(CONFIG_MACH_SX1)
+=
board-sx1.o
ifeq
($(CONFIG_ARCH_OMAP15XX),y)
# Innovator-1510 FPGA
...
...
arch/arm/mach-omap1/board-ams-delta.c
View file @
92633b72
...
...
@@ -14,6 +14,7 @@
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/input.h>
#include <linux/platform_device.h>
#include <asm/hardware.h>
...
...
@@ -23,6 +24,7 @@
#include <asm/arch/board-ams-delta.h>
#include <asm/arch/gpio.h>
#include <asm/arch/keypad.h>
#include <asm/arch/mux.h>
#include <asm/arch/usb.h>
#include <asm/arch/board.h>
...
...
@@ -31,6 +33,86 @@
static
u8
ams_delta_latch1_reg
;
static
u16
ams_delta_latch2_reg
;
static
int
ams_delta_keymap
[]
=
{
KEY
(
0
,
0
,
KEY_F1
),
/* Advert */
KEY
(
3
,
0
,
KEY_COFFEE
),
/* Games */
KEY
(
2
,
0
,
KEY_QUESTION
),
/* Directory */
KEY
(
3
,
2
,
KEY_CONNECT
),
/* Internet */
KEY
(
2
,
1
,
KEY_SHOP
),
/* Services */
KEY
(
1
,
1
,
KEY_PHONE
),
/* VoiceMail */
KEY
(
1
,
0
,
KEY_DELETE
),
/* Delete */
KEY
(
2
,
2
,
KEY_PLAY
),
/* Play */
KEY
(
0
,
1
,
KEY_PAGEUP
),
/* Up */
KEY
(
3
,
1
,
KEY_PAGEDOWN
),
/* Down */
KEY
(
0
,
2
,
KEY_EMAIL
),
/* ReadEmail */
KEY
(
1
,
2
,
KEY_STOP
),
/* Stop */
/* Numeric keypad portion */
KEY
(
7
,
0
,
KEY_KP1
),
KEY
(
6
,
0
,
KEY_KP2
),
KEY
(
5
,
0
,
KEY_KP3
),
KEY
(
7
,
1
,
KEY_KP4
),
KEY
(
6
,
1
,
KEY_KP5
),
KEY
(
5
,
1
,
KEY_KP6
),
KEY
(
7
,
2
,
KEY_KP7
),
KEY
(
6
,
2
,
KEY_KP8
),
KEY
(
5
,
2
,
KEY_KP9
),
KEY
(
6
,
3
,
KEY_KP0
),
KEY
(
7
,
3
,
KEY_KPASTERISK
),
KEY
(
5
,
3
,
KEY_KPDOT
),
/* # key */
KEY
(
2
,
7
,
KEY_NUMLOCK
),
/* Mute */
KEY
(
1
,
7
,
KEY_KPMINUS
),
/* Recall */
KEY
(
1
,
6
,
KEY_KPPLUS
),
/* Redial */
KEY
(
6
,
7
,
KEY_KPSLASH
),
/* Handsfree */
KEY
(
0
,
6
,
KEY_ENTER
),
/* Video */
KEY
(
4
,
7
,
KEY_CAMERA
),
/* Photo */
KEY
(
4
,
0
,
KEY_F2
),
/* Home */
KEY
(
4
,
1
,
KEY_F3
),
/* Office */
KEY
(
4
,
2
,
KEY_F4
),
/* Mobile */
KEY
(
7
,
7
,
KEY_F5
),
/* SMS */
KEY
(
5
,
7
,
KEY_F6
),
/* Email */
/* QWERTY portion of keypad */
KEY
(
4
,
3
,
KEY_Q
),
KEY
(
3
,
3
,
KEY_W
),
KEY
(
2
,
3
,
KEY_E
),
KEY
(
1
,
3
,
KEY_R
),
KEY
(
0
,
3
,
KEY_T
),
KEY
(
7
,
4
,
KEY_Y
),
KEY
(
6
,
4
,
KEY_U
),
KEY
(
5
,
4
,
KEY_I
),
KEY
(
4
,
4
,
KEY_O
),
KEY
(
3
,
4
,
KEY_P
),
KEY
(
2
,
4
,
KEY_A
),
KEY
(
1
,
4
,
KEY_S
),
KEY
(
0
,
4
,
KEY_D
),
KEY
(
7
,
5
,
KEY_F
),
KEY
(
6
,
5
,
KEY_G
),
KEY
(
5
,
5
,
KEY_H
),
KEY
(
4
,
5
,
KEY_J
),
KEY
(
3
,
5
,
KEY_K
),
KEY
(
2
,
5
,
KEY_L
),
KEY
(
1
,
5
,
KEY_Z
),
KEY
(
0
,
5
,
KEY_X
),
KEY
(
7
,
6
,
KEY_C
),
KEY
(
6
,
6
,
KEY_V
),
KEY
(
5
,
6
,
KEY_B
),
KEY
(
4
,
6
,
KEY_N
),
KEY
(
3
,
6
,
KEY_M
),
KEY
(
2
,
6
,
KEY_SPACE
),
KEY
(
0
,
7
,
KEY_LEFTSHIFT
),
/* Vol up */
KEY
(
3
,
7
,
KEY_LEFTCTRL
),
/* Vol down */
0
};
void
ams_delta_latch1_write
(
u8
mask
,
u8
value
)
{
ams_delta_latch1_reg
&=
~
mask
;
...
...
@@ -76,6 +158,10 @@ static struct map_desc ams_delta_io_desc[] __initdata = {
}
};
static
struct
omap_lcd_config
ams_delta_lcd_config
__initdata
=
{
.
ctrl_name
=
"internal"
,
};
static
struct
omap_uart_config
ams_delta_uart_config
__initdata
=
{
.
enabled_uarts
=
1
,
};
...
...
@@ -87,16 +173,50 @@ static struct omap_usb_config ams_delta_usb_config __initdata = {
};
static
struct
omap_board_config_kernel
ams_delta_config
[]
=
{
{
OMAP_TAG_LCD
,
&
ams_delta_lcd_config
},
{
OMAP_TAG_UART
,
&
ams_delta_uart_config
},
{
OMAP_TAG_USB
,
&
ams_delta_usb_config
},
};
static
struct
resource
ams_delta_kp_resources
[]
=
{
[
0
]
=
{
.
start
=
INT_KEYBOARD
,
.
end
=
INT_KEYBOARD
,
.
flags
=
IORESOURCE_IRQ
,
},
};
static
struct
omap_kp_platform_data
ams_delta_kp_data
=
{
.
rows
=
8
,
.
cols
=
8
,
.
keymap
=
ams_delta_keymap
,
.
keymapsize
=
ARRAY_SIZE
(
ams_delta_keymap
),
.
delay
=
9
,
};
static
struct
platform_device
ams_delta_kp_device
=
{
.
name
=
"omap-keypad"
,
.
id
=
-
1
,
.
dev
=
{
.
platform_data
=
&
ams_delta_kp_data
,
},
.
num_resources
=
ARRAY_SIZE
(
ams_delta_kp_resources
),
.
resource
=
ams_delta_kp_resources
,
};
static
struct
platform_device
ams_delta_lcd_device
=
{
.
name
=
"lcd_ams_delta"
,
.
id
=
-
1
,
};
static
struct
platform_device
ams_delta_led_device
=
{
.
name
=
"ams-delta-led"
,
.
id
=
-
1
};
static
struct
platform_device
*
ams_delta_devices
[]
__initdata
=
{
&
ams_delta_kp_device
,
&
ams_delta_lcd_device
,
&
ams_delta_led_device
,
};
...
...
arch/arm/mach-omap1/board-h2.c
View file @
92633b72
...
...
@@ -139,6 +139,66 @@ static struct platform_device h2_nor_device = {
.
resource
=
&
h2_nor_resource
,
};
#if 0 /* REVISIT: Enable when nand_platform_data is applied */
static struct mtd_partition h2_nand_partitions[] = {
#if 0
/* REVISIT: enable these partitions if you make NAND BOOT
* work on your H2 (rev C or newer); published versions of
* x-load only support P2 and H3.
*/
{
.name = "xloader",
.offset = 0,
.size = 64 * 1024,
.mask_flags = MTD_WRITEABLE, /* force read-only */
},
{
.name = "bootloader",
.offset = MTDPART_OFS_APPEND,
.size = 256 * 1024,
.mask_flags = MTD_WRITEABLE, /* force read-only */
},
{
.name = "params",
.offset = MTDPART_OFS_APPEND,
.size = 192 * 1024,
},
{
.name = "kernel",
.offset = MTDPART_OFS_APPEND,
.size = 2 * SZ_1M,
},
#endif
{
.name = "filesystem",
.size = MTDPART_SIZ_FULL,
.offset = MTDPART_OFS_APPEND,
},
};
/* dip switches control NAND chip access: 8 bit, 16 bit, or neither */
static struct nand_platform_data h2_nand_data = {
.options = NAND_SAMSUNG_LP_OPTIONS,
.parts = h2_nand_partitions,
.nr_parts = ARRAY_SIZE(h2_nand_partitions),
};
static struct resource h2_nand_resource = {
.flags = IORESOURCE_MEM,
};
static struct platform_device h2_nand_device = {
.name = "omapnand",
.id = 0,
.dev = {
.platform_data = &h2_nand_data,
},
.num_resources = 1,
.resource = &h2_nand_resource,
};
#endif
static
struct
resource
h2_smc91x_resources
[]
=
{
[
0
]
=
{
.
start
=
OMAP1610_ETHR_START
,
/* Physical */
...
...
@@ -218,11 +278,15 @@ static struct resource h2_irda_resources[] = {
.
flags
=
IORESOURCE_IRQ
,
},
};
static
u64
irda_dmamask
=
0xffffffff
;
static
struct
platform_device
h2_irda_device
=
{
.
name
=
"omapirda"
,
.
id
=
0
,
.
dev
=
{
.
platform_data
=
&
h2_irda_data
,
.
dma_mask
=
&
irda_dmamask
,
},
.
num_resources
=
ARRAY_SIZE
(
h2_irda_resources
),
.
resource
=
h2_irda_resources
,
...
...
@@ -270,6 +334,7 @@ static struct platform_device h2_mcbsp1_device = {
static
struct
platform_device
*
h2_devices
[]
__initdata
=
{
&
h2_nor_device
,
//&h2_nand_device,
&
h2_smc91x_device
,
&
h2_irda_device
,
&
h2_kp_device
,
...
...
@@ -333,6 +398,13 @@ static struct omap_board_config_kernel h2_config[] __initdata = {
{
OMAP_TAG_LCD
,
&
h2_lcd_config
},
};
#define H2_NAND_RB_GPIO_PIN 62
static
int
h2_nand_dev_ready
(
struct
nand_platform_data
*
data
)
{
return
omap_get_gpio_datain
(
H2_NAND_RB_GPIO_PIN
);
}
static
void
__init
h2_init
(
void
)
{
/* Here we assume the NOR boot config: NOR on CS3 (possibly swapped
...
...
@@ -347,6 +419,13 @@ static void __init h2_init(void)
h2_nor_resource
.
end
=
h2_nor_resource
.
start
=
omap_cs3_phys
();
h2_nor_resource
.
end
+=
SZ_32M
-
1
;
#if 0 /* REVISIT: Enable when nand_platform_data is applied */
h2_nand_resource.end = h2_nand_resource.start = OMAP_CS2B_PHYS;
h2_nand_resource.end += SZ_4K - 1;
if (!(omap_request_gpio(H2_NAND_RB_GPIO_PIN)))
h2_nand_data.dev_ready = h2_nand_dev_ready;
#endif
omap_cfg_reg
(
L3_1610_FLASH_CS2B_OE
);
omap_cfg_reg
(
M8_1610_FLASH_CS2B_WE
);
...
...
arch/arm/mach-omap1/board-h3.c
View file @
92633b72
...
...
@@ -44,6 +44,8 @@
#include <asm/arch/keypad.h>
#include <asm/arch/dma.h>
#include <asm/arch/common.h>
#include <asm/arch/mcbsp.h>
#include <asm/arch/omap-alsa.h>
extern
int
omap_gpio_init
(
void
);
...
...
@@ -351,11 +353,14 @@ static struct resource h3_irda_resources[] = {
},
};
static
u64
irda_dmamask
=
0xffffffff
;
static
struct
platform_device
h3_irda_device
=
{
.
name
=
"omapirda"
,
.
id
=
0
,
.
dev
=
{
.
platform_data
=
&
h3_irda_data
,
.
dma_mask
=
&
irda_dmamask
,
},
.
num_resources
=
ARRAY_SIZE
(
h3_irda_resources
),
.
resource
=
h3_irda_resources
,
...
...
@@ -366,6 +371,41 @@ static struct platform_device h3_lcd_device = {
.
id
=
-
1
,
};
static
struct
omap_mcbsp_reg_cfg
mcbsp_regs
=
{
.
spcr2
=
FREE
|
FRST
|
GRST
|
XRST
|
XINTM
(
3
),
.
spcr1
=
RINTM
(
3
)
|
RRST
,
.
rcr2
=
RPHASE
|
RFRLEN2
(
OMAP_MCBSP_WORD_8
)
|
RWDLEN2
(
OMAP_MCBSP_WORD_16
)
|
RDATDLY
(
1
),
.
rcr1
=
RFRLEN1
(
OMAP_MCBSP_WORD_8
)
|
RWDLEN1
(
OMAP_MCBSP_WORD_16
),
.
xcr2
=
XPHASE
|
XFRLEN2
(
OMAP_MCBSP_WORD_8
)
|
XWDLEN2
(
OMAP_MCBSP_WORD_16
)
|
XDATDLY
(
1
)
|
XFIG
,
.
xcr1
=
XFRLEN1
(
OMAP_MCBSP_WORD_8
)
|
XWDLEN1
(
OMAP_MCBSP_WORD_16
),
.
srgr1
=
FWID
(
15
),
.
srgr2
=
GSYNC
|
CLKSP
|
FSGM
|
FPER
(
31
),
.
pcr0
=
CLKRM
|
SCLKME
|
FSXP
|
FSRP
|
CLKXP
|
CLKRP
,
//.pcr0 = CLKXP | CLKRP, /* mcbsp: slave */
};
static
struct
omap_alsa_codec_config
alsa_config
=
{
.
name
=
"H3 TSC2101"
,
.
mcbsp_regs_alsa
=
&
mcbsp_regs
,
.
codec_configure_dev
=
NULL
,
// tsc2101_configure,
.
codec_set_samplerate
=
NULL
,
// tsc2101_set_samplerate,
.
codec_clock_setup
=
NULL
,
// tsc2101_clock_setup,
.
codec_clock_on
=
NULL
,
// tsc2101_clock_on,
.
codec_clock_off
=
NULL
,
// tsc2101_clock_off,
.
get_default_samplerate
=
NULL
,
// tsc2101_get_default_samplerate,
};
static
struct
platform_device
h3_mcbsp1_device
=
{
.
name
=
"omap_alsa_mcbsp"
,
.
id
=
1
,
.
dev
=
{
.
platform_data
=
&
alsa_config
,
},
};
static
struct
platform_device
*
devices
[]
__initdata
=
{
&
nor_device
,
&
nand_device
,
...
...
@@ -374,6 +414,7 @@ static struct platform_device *devices[] __initdata = {
&
h3_irda_device
,
&
h3_kp_device
,
&
h3_lcd_device
,
&
h3_mcbsp1_device
,
};
static
struct
omap_usb_config
h3_usb_config
__initdata
=
{
...
...
arch/arm/mach-omap1/board-nokia770.c
View file @
92633b72
...
...
@@ -33,6 +33,12 @@
#include <asm/arch/dsp_common.h>
#include <asm/arch/aic23.h>
#include <asm/arch/gpio.h>
#include <asm/arch/omapfb.h>
#include <asm/arch/lcd_mipid.h>
#include "../plat-omap/dsp/dsp_common.h"
#define ADS7846_PENDOWN_GPIO 15
static
void
__init
omap_nokia770_init_irq
(
void
)
{
...
...
@@ -91,9 +97,44 @@ static struct platform_device nokia770_kp_device = {
};
static
struct
platform_device
*
nokia770_devices
[]
__initdata
=
{
&
nokia770_kp_device
,
&
nokia770_kp_device
,
};
static
void
mipid_shutdown
(
struct
mipid_platform_data
*
pdata
)
{
if
(
pdata
->
nreset_gpio
!=
-
1
)
{
printk
(
KERN_INFO
"shutdown LCD
\n
"
);
omap_set_gpio_dataout
(
pdata
->
nreset_gpio
,
0
);
msleep
(
120
);
}
}
static
struct
mipid_platform_data
nokia770_mipid_platform_data
=
{
.
shutdown
=
mipid_shutdown
,
};
static
void
mipid_dev_init
(
void
)
{
const
struct
omap_lcd_config
*
conf
;
conf
=
omap_get_config
(
OMAP_TAG_LCD
,
struct
omap_lcd_config
);
if
(
conf
!=
NULL
)
{
nokia770_mipid_platform_data
.
nreset_gpio
=
conf
->
nreset_gpio
;
nokia770_mipid_platform_data
.
data_lines
=
conf
->
data_lines
;
}
}
static
void
ads7846_dev_init
(
void
)
{
if
(
omap_request_gpio
(
ADS7846_PENDOWN_GPIO
)
<
0
)
printk
(
KERN_ERR
"can't get ads7846 pen down GPIO
\n
"
);
}
static
int
ads7846_get_pendown_state
(
void
)
{
return
!
omap_get_gpio_datain
(
ADS7846_PENDOWN_GPIO
);
}
static
struct
ads7846_platform_data
nokia770_ads7846_platform_data
__initdata
=
{
.
x_max
=
0x0fff
,
.
y_max
=
0x0fff
,
...
...
@@ -101,14 +142,17 @@ static struct ads7846_platform_data nokia770_ads7846_platform_data __initdata =
.
pressure_max
=
255
,
.
debounce_max
=
10
,
.
debounce_tol
=
3
,
.
debounce_rep
=
1
,
.
get_pendown_state
=
ads7846_get_pendown_state
,
};
static
struct
spi_board_info
nokia770_spi_board_info
[]
__initdata
=
{
[
0
]
=
{
.
modalias
=
"lcd_mipid"
,
.
modalias
=
"lcd_mipid"
,
.
bus_num
=
2
,
.
chip_select
=
3
,
.
max_speed_hz
=
12000000
,
.
platform_data
=
&
nokia770_mipid_platform_data
,
},
[
1
]
=
{
.
modalias
=
"ads7846"
,
...
...
@@ -153,6 +197,7 @@ static struct omap_board_config_kernel nokia770_config[] = {
{
OMAP_TAG_MMC
,
&
nokia770_mmc_config
},
};
#if defined(CONFIG_OMAP_DSP)
/*
* audio power control
*/
...
...
@@ -183,7 +228,7 @@ static void nokia770_audio_pwr_up(void)
clk_enable
(
dspxor_ck
);
/* Turn on codec */
tlv320
aic23_power_up
();
aic23_power_up
();
if
(
omap_get_gpio_datain
(
HEADPHONE_GPIO
))
/* HP not connected, turn on amplifier */
...
...
@@ -197,7 +242,7 @@ static void codec_delayed_power_down(struct work_struct *work)
{
down
(
&
audio_pwr_sem
);
if
(
audio_pwr_state
==
-
1
)
tlv320
aic23_power_down
();
aic23_power_down
();
clk_disable
(
dspxor_ck
);
up
(
&
audio_pwr_sem
);
}
...
...
@@ -213,7 +258,8 @@ static void nokia770_audio_pwr_down(void)
schedule_delayed_work
(
&
codec_power_down_work
,
HZ
/
20
);
/* 50ms */
}
void
nokia770_audio_pwr_up_request
(
int
stage
)
static
int
nokia770_audio_pwr_up_request
(
struct
dsp_kfunc_device
*
kdev
,
int
stage
)
{
down
(
&
audio_pwr_sem
);
if
(
audio_pwr_state
==
-
1
)
...
...
@@ -221,9 +267,11 @@ void nokia770_audio_pwr_up_request(int stage)
/* force audio_pwr_state = 0, even if it was 1. */
audio_pwr_state
=
0
;
up
(
&
audio_pwr_sem
);
return
0
;
}
void
nokia770_audio_pwr_down_request
(
int
stage
)
static
int
nokia770_audio_pwr_down_request
(
struct
dsp_kfunc_device
*
kdev
,
int
stage
)
{
down
(
&
audio_pwr_sem
);
switch
(
stage
)
{
...
...
@@ -239,8 +287,39 @@ void nokia770_audio_pwr_down_request(int stage)
break
;
}
up
(
&
audio_pwr_sem
);
return
0
;
}
static
struct
dsp_kfunc_device
nokia770_audio_device
=
{
.
name
=
"audio"
,
.
type
=
DSP_KFUNC_DEV_TYPE_AUDIO
,
.
enable
=
nokia770_audio_pwr_up_request
,
.
disable
=
nokia770_audio_pwr_down_request
,
};
static
__init
int
omap_dsp_init
(
void
)
{
int
ret
;
dspxor_ck
=
clk_get
(
0
,
"dspxor_ck"
);
if
(
IS_ERR
(
dspxor_ck
))
{
printk
(
KERN_ERR
"couldn't acquire dspxor_ck
\n
"
);
return
PTR_ERR
(
dspxor_ck
);
}
ret
=
dsp_kfunc_device_register
(
&
nokia770_audio_device
);
if
(
ret
)
{
printk
(
KERN_ERR
"KFUNC device registration faild: %s
\n
"
,
nokia770_audio_device
.
name
);
goto
out
;
}
return
0
;
out:
return
ret
;
}
#endif
/* CONFIG_OMAP_DSP */
static
void
__init
omap_nokia770_init
(
void
)
{
nokia770_config
[
0
].
data
=
&
nokia770_usb_config
;
...
...
@@ -250,10 +329,11 @@ static void __init omap_nokia770_init(void)
ARRAY_SIZE
(
nokia770_spi_board_info
));
omap_board_config
=
nokia770_config
;
omap_board_config_size
=
ARRAY_SIZE
(
nokia770_config
);
omap_gpio_init
();
omap_serial_init
();
omap_dsp_
audio_pwr_up_request
=
nokia770_audio_pwr_up_request
;
omap_dsp_audio_pwr_down_request
=
nokia770_audio_pwr_down_request
;
dspxor_ck
=
clk_get
(
0
,
"dspxor_ck"
);
omap_dsp_
init
()
;
ads7846_dev_init
()
;
mipid_dev_init
(
);
}
static
void
__init
omap_nokia770_map_io
(
void
)
...
...
arch/arm/mach-omap1/board-osk.c
View file @
92633b72
...
...
@@ -29,6 +29,7 @@
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/platform_device.h>
#include <linux/interrupt.h>
#include <linux/irq.h>
#include <linux/interrupt.h>
...
...
@@ -292,6 +293,18 @@ static struct platform_device osk5912_kp_device = {
.
resource
=
osk5912_kp_resources
,
};
static
struct
omap_backlight_config
mistral_bl_data
=
{
.
default_intensity
=
0xa0
,
};
static
struct
platform_device
mistral_bl_device
=
{
.
name
=
"omap-bl"
,
.
id
=
-
1
,
.
dev
=
{
.
platform_data
=
&
mistral_bl_data
,
},
};
static
struct
platform_device
osk5912_lcd_device
=
{
.
name
=
"lcd_osk"
,
.
id
=
-
1
,
...
...
@@ -299,6 +312,7 @@ static struct platform_device osk5912_lcd_device = {
static
struct
platform_device
*
mistral_devices
[]
__initdata
=
{
&
osk5912_kp_device
,
&
mistral_bl_device
,
&
osk5912_lcd_device
,
};
...
...
@@ -342,6 +356,38 @@ static void __init osk_mistral_init(void)
* can't talk to the ads or even the i2c eeprom.
*/
/* parallel camera interface */
omap_cfg_reg
(
J15_1610_CAM_LCLK
);
omap_cfg_reg
(
J18_1610_CAM_D7
);
omap_cfg_reg
(
J19_1610_CAM_D6
);
omap_cfg_reg
(
J14_1610_CAM_D5
);
omap_cfg_reg
(
K18_1610_CAM_D4
);
omap_cfg_reg
(
K19_1610_CAM_D3
);
omap_cfg_reg
(
K15_1610_CAM_D2
);
omap_cfg_reg
(
K14_1610_CAM_D1
);
omap_cfg_reg
(
L19_1610_CAM_D0
);
omap_cfg_reg
(
L18_1610_CAM_VS
);
omap_cfg_reg
(
L15_1610_CAM_HS
);
omap_cfg_reg
(
M19_1610_CAM_RSTZ
);
omap_cfg_reg
(
Y15_1610_CAM_OUTCLK
);
/* serial camera interface */
omap_cfg_reg
(
H19_1610_CAM_EXCLK
);
omap_cfg_reg
(
W13_1610_CCP_CLKM
);
omap_cfg_reg
(
Y12_1610_CCP_CLKP
);
/* CCP_DATAM CONFLICTS WITH UART1.TX (and serial console) */
// omap_cfg_reg(Y14_1610_CCP_DATAM);
omap_cfg_reg
(
W14_1610_CCP_DATAP
);
/* CAM_PWDN */
if
(
omap_request_gpio
(
11
)
==
0
)
{
omap_cfg_reg
(
N20_1610_GPIO11
);
omap_set_gpio_direction
(
11
,
0
/* out */
);
omap_set_gpio_dataout
(
11
,
0
/* off */
);
}
else
pr_debug
(
"OSK+Mistral: CAM_PWDN is awol
\n
"
);
// omap_cfg_reg(P19_1610_GPIO6); // BUSY
omap_cfg_reg
(
P20_1610_GPIO4
);
// PENIRQ
set_irq_type
(
OMAP_GPIO_IRQ
(
4
),
IRQT_FALLING
);
...
...
@@ -372,6 +418,15 @@ static void __init osk_mistral_init(void)
}
else
printk
(
KERN_ERR
"OSK+Mistral: wakeup button is awol
\n
"
);
/* LCD: backlight, and power; power controls other devices on the
* board, like the touchscreen, EEPROM, and wakeup (!) switch.
*/
omap_cfg_reg
(
PWL
);
if
(
omap_request_gpio
(
2
)
==
0
)
{
omap_set_gpio_direction
(
2
,
0
/* out */
);
omap_set_gpio_dataout
(
2
,
1
/* on */
);
}
platform_add_devices
(
mistral_devices
,
ARRAY_SIZE
(
mistral_devices
));
}
#else
...
...
arch/arm/mach-omap1/board-palmte.c
View file @
92633b72
...
...
@@ -17,49 +17,189 @@
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/input.h>
#include <linux/platform_device.h>
#include <linux/notifier.h>
#include <linux/clk.h>
#include <linux/mtd/mtd.h>
#include <linux/mtd/partitions.h>
#include <linux/spi/spi.h>
#include <linux/spi/tsc2102.h>
#include <linux/interrupt.h>
#include <asm/apm.h>
#include <asm/hardware.h>
#include <asm/mach-types.h>
#include <asm/mach/arch.h>
#include <asm/mach/map.h>
#include <asm/mach/flash.h>
#include <asm/arch/gpio.h>
#include <asm/arch/mux.h>
#include <asm/arch/usb.h>
#include <asm/arch/tc.h>
#include <asm/arch/dma.h>
#include <asm/arch/board.h>
#include <asm/arch/irda.h>
#include <asm/arch/keypad.h>
#include <asm/arch/common.h>
#include <asm/arch/mcbsp.h>
#include <asm/arch/omap-alsa.h>
static
void
__init
omap_
generic
_init_irq
(
void
)
static
void
__init
omap_
palmte
_init_irq
(
void
)
{
omap1_init_common_hw
();
omap_init_irq
();
omap_gpio_init
();
}
static
int
palmte_keymap
[]
=
{
KEY
(
0
,
0
,
KEY_F1
),
KEY
(
0
,
1
,
KEY_F2
),
KEY
(
0
,
2
,
KEY_F3
),
KEY
(
0
,
3
,
KEY_F4
),
KEY
(
0
,
4
,
KEY_POWER
),
KEY
(
1
,
0
,
KEY_LEFT
),
KEY
(
1
,
1
,
KEY_DOWN
),
KEY
(
1
,
2
,
KEY_UP
),
KEY
(
1
,
3
,
KEY_RIGHT
),
KEY
(
1
,
4
,
KEY_CENTER
),
0
,
};
static
struct
omap_kp_platform_data
palmte_kp_data
=
{
.
rows
=
8
,
.
cols
=
8
,
.
keymap
=
palmte_keymap
,
.
rep
=
1
,
.
delay
=
12
,
};
static
struct
resource
palmte_kp_resources
[]
=
{
[
0
]
=
{
.
start
=
INT_KEYBOARD
,
.
end
=
INT_KEYBOARD
,
.
flags
=
IORESOURCE_IRQ
,
},
};
static
struct
platform_device
palmte_kp_device
=
{
.
name
=
"omap-keypad"
,
.
id
=
-
1
,
.
dev
=
{
.
platform_data
=
&
palmte_kp_data
,
},
.
num_resources
=
ARRAY_SIZE
(
palmte_kp_resources
),
.
resource
=
palmte_kp_resources
,
};
static
struct
mtd_partition
palmte_rom_partitions
[]
=
{
/* PalmOS "Small ROM", contains the bootloader and the debugger */
{
.
name
=
"smallrom"
,
.
offset
=
0
,
.
size
=
0xa000
,
.
mask_flags
=
MTD_WRITEABLE
,
},
/* PalmOS "Big ROM", a filesystem with all the OS code and data */
{
.
name
=
"bigrom"
,
.
offset
=
SZ_128K
,
/*
* 0x5f0000 bytes big in the multi-language ("EFIGS") version,
* 0x7b0000 bytes in the English-only ("enUS") version.
*/
.
size
=
0x7b0000
,
.
mask_flags
=
MTD_WRITEABLE
,
},
};
static
struct
flash_platform_data
palmte_rom_data
=
{
.
map_name
=
"map_rom"
,
.
width
=
2
,
.
parts
=
palmte_rom_partitions
,
.
nr_parts
=
ARRAY_SIZE
(
palmte_rom_partitions
),
};
static
struct
resource
palmte_rom_resource
=
{
.
start
=
OMAP_CS0_PHYS
,
.
end
=
OMAP_CS0_PHYS
+
SZ_8M
-
1
,
.
flags
=
IORESOURCE_MEM
,
};
static
struct
platform_device
palmte_rom_device
=
{
.
name
=
"omapflash"
,
.
id
=
-
1
,
.
dev
=
{
.
platform_data
=
&
palmte_rom_data
,
},
.
num_resources
=
1
,
.
resource
=
&
palmte_rom_resource
,
};
static
struct
platform_device
palmte_lcd_device
=
{
.
name
=
"lcd_palmte"
,
.
id
=
-
1
,
};
static
struct
omap_backlight_config
palmte_backlight_config
=
{
.
default_intensity
=
0xa0
,
};
static
struct
platform_device
palmte_backlight_device
=
{
.
name
=
"omap-bl"
,
.
id
=
-
1
,
.
dev
=
{
.
platform_data
=
&
palmte_backlight_config
,
},
};
static
struct
omap_irda_config
palmte_irda_config
=
{
.
transceiver_cap
=
IR_SIRMODE
,
.
rx_channel
=
OMAP_DMA_UART3_RX
,
.
tx_channel
=
OMAP_DMA_UART3_TX
,
.
dest_start
=
UART3_THR
,
.
src_start
=
UART3_RHR
,
.
tx_trigger
=
0
,
.
rx_trigger
=
0
,
};
static
struct
resource
palmte_irda_resources
[]
=
{
[
0
]
=
{
.
start
=
INT_UART3
,
.
end
=
INT_UART3
,
.
flags
=
IORESOURCE_IRQ
,
},
};
static
struct
platform_device
palmte_irda_device
=
{
.
name
=
"omapirda"
,
.
id
=
-
1
,
.
dev
=
{
.
platform_data
=
&
palmte_irda_config
,
},
.
num_resources
=
ARRAY_SIZE
(
palmte_irda_resources
),
.
resource
=
palmte_irda_resources
,
};
static
struct
platform_device
*
devices
[]
__initdata
=
{
&
palmte_rom_device
,
&
palmte_kp_device
,
&
palmte_lcd_device
,
&
palmte_backlight_device
,
&
palmte_irda_device
,
};
static
struct
omap_usb_config
palmte_usb_config
__initdata
=
{
.
register_dev
=
1
,
.
register_dev
=
1
,
/* Mini-B only receptacle */
.
hmc_mode
=
0
,
.
pins
[
0
]
=
3
,
.
pins
[
0
]
=
2
,
};
static
struct
omap_mmc_config
palmte_mmc_config
__initdata
=
{
.
mmc
[
0
]
=
{
.
mmc
[
0
]
=
{
.
enabled
=
1
,
.
wire4
=
1
,
.
wp_pin
=
OMAP_MPUIO
(
3
),
.
power_pin
=
-
1
,
.
switch_pin
=
-
1
,
.
wp_pin
=
PALMTE_MMC_WP_GPIO
,
.
power_pin
=
PALMTE_MMC_POWER_GPIO
,
.
switch_pin
=
PALMTE_MMC_SWITCH_GPIO
,
},
};
...
...
@@ -67,21 +207,222 @@ static struct omap_lcd_config palmte_lcd_config __initdata = {
.
ctrl_name
=
"internal"
,
};
static
struct
omap_uart_config
palmte_uart_config
__initdata
=
{
.
enabled_uarts
=
(
1
<<
0
)
|
(
1
<<
1
)
|
(
0
<<
2
),
};
static
struct
omap_mcbsp_reg_cfg
palmte_mcbsp1_regs
=
{
.
spcr2
=
FRST
|
GRST
|
XRST
|
XINTM
(
3
),
.
xcr2
=
XDATDLY
(
1
)
|
XFIG
,
.
xcr1
=
XWDLEN1
(
OMAP_MCBSP_WORD_32
),
.
pcr0
=
SCLKME
|
FSXP
|
CLKXP
,
};
static
struct
omap_alsa_codec_config
palmte_alsa_config
=
{
.
name
=
"TSC2102 audio"
,
.
mcbsp_regs_alsa
=
&
palmte_mcbsp1_regs
,
.
codec_configure_dev
=
NULL
,
/* tsc2102_configure, */
.
codec_set_samplerate
=
NULL
,
/* tsc2102_set_samplerate, */
.
codec_clock_setup
=
NULL
,
/* tsc2102_clock_setup, */
.
codec_clock_on
=
NULL
,
/* tsc2102_clock_on, */
.
codec_clock_off
=
NULL
,
/* tsc2102_clock_off, */
.
get_default_samplerate
=
NULL
,
/* tsc2102_get_default_samplerate, */
};
#ifdef CONFIG_APM
/*
* Values measured in 10 minute intervals averaged over 10 samples.
* May differ slightly from device to device but should be accurate
* enough to give basic idea of battery life left and trigger
* potential alerts.
*/
static
const
int
palmte_battery_sample
[]
=
{
2194
,
2157
,
2138
,
2120
,
2104
,
2089
,
2075
,
2061
,
2048
,
2038
,
2026
,
2016
,
2008
,
1998
,
1989
,
1980
,
1970
,
1958
,
1945
,
1928
,
1910
,
1888
,
1860
,
1827
,
1791
,
1751
,
1709
,
1656
,
};
#define INTERVAL 10
#define BATTERY_HIGH_TRESHOLD 66
#define BATTERY_LOW_TRESHOLD 33
static
void
palmte_get_power_status
(
struct
apm_power_info
*
info
,
int
*
battery
)
{
int
charging
,
batt
,
hi
,
lo
,
mid
;
charging
=
!
omap_get_gpio_datain
(
PALMTE_DC_GPIO
);
batt
=
battery
[
0
];
if
(
charging
)
batt
-=
60
;
hi
=
ARRAY_SIZE
(
palmte_battery_sample
);
lo
=
0
;
info
->
battery_flag
=
0
;
info
->
units
=
APM_UNITS_MINS
;
if
(
batt
>
palmte_battery_sample
[
lo
])
{
info
->
battery_life
=
100
;
info
->
time
=
INTERVAL
*
ARRAY_SIZE
(
palmte_battery_sample
);
}
else
if
(
batt
<=
palmte_battery_sample
[
hi
-
1
])
{
info
->
battery_life
=
0
;
info
->
time
=
0
;
}
else
{
while
(
hi
>
lo
+
1
)
{
mid
=
(
hi
+
lo
)
>>
2
;
if
(
batt
<=
palmte_battery_sample
[
mid
])
lo
=
mid
;
else
hi
=
mid
;
}
mid
=
palmte_battery_sample
[
lo
]
-
palmte_battery_sample
[
hi
];
hi
=
palmte_battery_sample
[
lo
]
-
batt
;
info
->
battery_life
=
100
-
(
100
*
lo
+
100
*
hi
/
mid
)
/
ARRAY_SIZE
(
palmte_battery_sample
);
info
->
time
=
INTERVAL
*
(
ARRAY_SIZE
(
palmte_battery_sample
)
-
lo
)
-
INTERVAL
*
hi
/
mid
;
}
if
(
charging
)
{
info
->
ac_line_status
=
APM_AC_ONLINE
;
info
->
battery_status
=
APM_BATTERY_STATUS_CHARGING
;
info
->
battery_flag
|=
APM_BATTERY_FLAG_CHARGING
;
}
else
{
info
->
ac_line_status
=
APM_AC_OFFLINE
;
if
(
info
->
battery_life
>
BATTERY_HIGH_TRESHOLD
)
info
->
battery_status
=
APM_BATTERY_STATUS_HIGH
;
else
if
(
info
->
battery_life
>
BATTERY_LOW_TRESHOLD
)
info
->
battery_status
=
APM_BATTERY_STATUS_LOW
;
else
info
->
battery_status
=
APM_BATTERY_STATUS_CRITICAL
;
}
if
(
info
->
battery_life
>
BATTERY_HIGH_TRESHOLD
)
info
->
battery_flag
|=
APM_BATTERY_FLAG_HIGH
;
else
if
(
info
->
battery_life
>
BATTERY_LOW_TRESHOLD
)
info
->
battery_flag
|=
APM_BATTERY_FLAG_LOW
;
else
info
->
battery_flag
|=
APM_BATTERY_FLAG_CRITICAL
;
}
#else
#define palmte_get_power_status NULL
#endif
static
struct
tsc2102_config
palmte_tsc2102_config
=
{
.
use_internal
=
0
,
.
monitor
=
TSC_BAT1
|
TSC_AUX
|
TSC_TEMP
,
.
temp_at25c
=
{
2200
,
2615
},
.
apm_report
=
palmte_get_power_status
,
.
alsa_config
=
&
palmte_alsa_config
,
};
static
struct
omap_board_config_kernel
palmte_config
[]
=
{
{
OMAP_TAG_USB
,
&
palmte_usb_config
},
{
OMAP_TAG_MMC
,
&
palmte_mmc_config
},
{
OMAP_TAG_LCD
,
&
palmte_lcd_config
},
{
OMAP_TAG_USB
,
&
palmte_usb_config
},
{
OMAP_TAG_MMC
,
&
palmte_mmc_config
},
{
OMAP_TAG_LCD
,
&
palmte_lcd_config
},
{
OMAP_TAG_UART
,
&
palmte_uart_config
},
};
static
void
__init
omap_generic_init
(
void
)
static
struct
spi_board_info
palmte_spi_info
[]
__initdata
=
{
{
.
modalias
=
"tsc2102"
,
.
bus_num
=
2
,
/* uWire (officially) */
.
chip_select
=
0
,
/* As opposed to 3 */
.
irq
=
OMAP_GPIO_IRQ
(
PALMTE_PINTDAV_GPIO
),
.
platform_data
=
&
palmte_tsc2102_config
,
.
max_speed_hz
=
8000000
,
},
};
/* Periodically check for changes on important input pins */
struct
timer_list
palmte_pin_timer
;
int
prev_power
,
prev_headphones
;
static
void
palmte_pin_handler
(
unsigned
long
data
)
{
int
power
,
headphones
;
power
=
!
omap_get_gpio_datain
(
PALMTE_DC_GPIO
);
headphones
=
omap_get_gpio_datain
(
PALMTE_HEADPHONES_GPIO
);
if
(
power
&&
!
prev_power
)
printk
(
KERN_INFO
"PM: cable connected
\n
"
);
else
if
(
!
power
&&
prev_power
)
printk
(
KERN_INFO
"PM: cable disconnected
\n
"
);
if
(
headphones
&&
!
prev_headphones
)
{
/* Headphones connected, disable speaker */
omap_set_gpio_dataout
(
PALMTE_SPEAKER_GPIO
,
0
);
printk
(
KERN_INFO
"PM: speaker off
\n
"
);
}
else
if
(
!
headphones
&&
prev_headphones
)
{
/* Headphones unplugged, re-enable speaker */
omap_set_gpio_dataout
(
PALMTE_SPEAKER_GPIO
,
1
);
printk
(
KERN_INFO
"PM: speaker on
\n
"
);
}
prev_power
=
power
;
prev_headphones
=
headphones
;
mod_timer
(
&
palmte_pin_timer
,
jiffies
+
msecs_to_jiffies
(
500
));
}
static
void
__init
palmte_gpio_setup
(
void
)
{
/* Set TSC2102 PINTDAV pin as input */
if
(
omap_request_gpio
(
PALMTE_PINTDAV_GPIO
))
{
printk
(
KERN_ERR
"Could not reserve PINTDAV GPIO!
\n
"
);
return
;
}
omap_set_gpio_direction
(
PALMTE_PINTDAV_GPIO
,
1
);
/* Monitor cable-connected signals */
if
(
omap_request_gpio
(
PALMTE_DC_GPIO
)
||
omap_request_gpio
(
PALMTE_USB_OR_DC_GPIO
)
||
omap_request_gpio
(
PALMTE_USBDETECT_GPIO
))
{
printk
(
KERN_ERR
"Could not reserve cable signal GPIO!
\n
"
);
return
;
}
omap_set_gpio_direction
(
PALMTE_DC_GPIO
,
1
);
omap_set_gpio_direction
(
PALMTE_USB_OR_DC_GPIO
,
1
);
omap_set_gpio_direction
(
PALMTE_USBDETECT_GPIO
,
1
);
/* Set speaker-enable pin as output */
if
(
omap_request_gpio
(
PALMTE_SPEAKER_GPIO
))
{
printk
(
KERN_ERR
"Could not reserve speaker GPIO!
\n
"
);
return
;
}
omap_set_gpio_direction
(
PALMTE_SPEAKER_GPIO
,
0
);
/* Monitor the headphones-connected signal */
if
(
omap_request_gpio
(
PALMTE_HEADPHONES_GPIO
))
{
printk
(
KERN_ERR
"Could not reserve headphones signal GPIO!
\n
"
);
return
;
}
omap_set_gpio_direction
(
PALMTE_HEADPHONES_GPIO
,
1
);
prev_power
=
omap_get_gpio_datain
(
PALMTE_DC_GPIO
);
prev_headphones
=
!
omap_get_gpio_datain
(
PALMTE_HEADPHONES_GPIO
);
setup_timer
(
&
palmte_pin_timer
,
palmte_pin_handler
,
0
);
palmte_pin_handler
(
0
);
}
static
void
__init
omap_palmte_init
(
void
)
{
omap_board_config
=
palmte_config
;
omap_board_config_size
=
ARRAY_SIZE
(
palmte_config
);
platform_add_devices
(
devices
,
ARRAY_SIZE
(
devices
));
spi_register_board_info
(
palmte_spi_info
,
ARRAY_SIZE
(
palmte_spi_info
));
omap_serial_init
();
palmte_gpio_setup
();
}
static
void
__init
omap_
generic
_map_io
(
void
)
static
void
__init
omap_
palmte
_map_io
(
void
)
{
omap1_map_common_io
();
}
...
...
@@ -90,8 +431,8 @@ MACHINE_START(OMAP_PALMTE, "OMAP310 based Palm Tungsten E")
.
phys_io
=
0xfff00000
,
.
io_pg_offst
=
((
0xfef00000
)
>>
18
)
&
0xfffc
,
.
boot_params
=
0x10000100
,
.
map_io
=
omap_
generic
_map_io
,
.
init_irq
=
omap_
generic
_init_irq
,
.
init_machine
=
omap_
generic
_init
,
.
map_io
=
omap_
palmte
_map_io
,
.
init_irq
=
omap_
palmte
_init_irq
,
.
init_machine
=
omap_
palmte
_init
,
.
timer
=
&
omap_timer
,
MACHINE_END
arch/arm/mach-omap1/board-palmtt.c
0 → 100644
View file @
92633b72
/*
* linux/arch/arm/mach-omap1/board-palmtt.c
*
* Modified from board-palmtt2.c
*
* Modified and amended for Palm Tungsten|T
* by Marek Vasut <marek.vasut@gmail.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/delay.h>
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/platform_device.h>
#include <linux/notifier.h>
#include <linux/clk.h>
#include <linux/input.h>
#include <linux/interrupt.h>
#include <linux/mtd/mtd.h>
#include <linux/mtd/partitions.h>
#include <linux/leds.h>
#include <asm/hardware.h>
#include <asm/mach-types.h>
#include <asm/mach/arch.h>
#include <asm/mach/map.h>
#include <asm/mach/flash.h>
#include <asm/arch/led.h>
#include <asm/arch/mcbsp.h>
#include <asm/arch/gpio.h>
#include <asm/arch/mux.h>
#include <asm/arch/usb.h>
#include <asm/arch/dma.h>
#include <asm/arch/tc.h>
#include <asm/arch/board.h>
#include <asm/arch/irda.h>
#include <asm/arch/keypad.h>
#include <asm/arch/common.h>
#include <asm/arch/omap-alsa.h>
#include <linux/input.h>
#include <linux/spi/spi.h>
#include <linux/spi/ads7846.h>
static
int
palmtt_keymap
[]
=
{
KEY
(
0
,
0
,
KEY_ESC
),
KEY
(
0
,
1
,
KEY_SPACE
),
KEY
(
0
,
2
,
KEY_LEFTCTRL
),
KEY
(
0
,
3
,
KEY_TAB
),
KEY
(
0
,
4
,
KEY_ENTER
),
KEY
(
1
,
0
,
KEY_LEFT
),
KEY
(
1
,
1
,
KEY_DOWN
),
KEY
(
1
,
2
,
KEY_UP
),
KEY
(
1
,
3
,
KEY_RIGHT
),
KEY
(
2
,
0
,
KEY_SLEEP
),
KEY
(
2
,
4
,
KEY_Y
),
0
};
static
struct
mtd_partition
palmtt_partitions
[]
=
{
{
.
name
=
"write8k"
,
.
offset
=
0
,
.
size
=
SZ_8K
,
.
mask_flags
=
0
,
},
{
.
name
=
"PalmOS-BootLoader(ro)"
,
.
offset
=
SZ_8K
,
.
size
=
7
*
SZ_8K
,
.
mask_flags
=
MTD_WRITEABLE
,
},
{
.
name
=
"u-boot"
,
.
offset
=
MTDPART_OFS_APPEND
,
.
size
=
8
*
SZ_8K
,
.
mask_flags
=
0
,
},
{
.
name
=
"PalmOS-FS(ro)"
,
.
offset
=
MTDPART_OFS_APPEND
,
.
size
=
7
*
SZ_1M
+
4
*
SZ_64K
-
16
*
SZ_8K
,
.
mask_flags
=
MTD_WRITEABLE
,
},
{
.
name
=
"u-boot(rez)"
,
.
offset
=
MTDPART_OFS_APPEND
,
.
size
=
SZ_128K
,
.
mask_flags
=
0
},
{
.
name
=
"empty"
,
.
offset
=
MTDPART_OFS_APPEND
,
.
size
=
MTDPART_SIZ_FULL
,
.
mask_flags
=
0
}
};
static
struct
flash_platform_data
palmtt_flash_data
=
{
.
map_name
=
"cfi_probe"
,
.
width
=
2
,
.
parts
=
palmtt_partitions
,
.
nr_parts
=
ARRAY_SIZE
(
palmtt_partitions
),
};
static
struct
resource
palmtt_flash_resource
=
{
.
start
=
OMAP_CS0_PHYS
,
.
end
=
OMAP_CS0_PHYS
+
SZ_8M
-
1
,
.
flags
=
IORESOURCE_MEM
,
};
static
struct
platform_device
palmtt_flash_device
=
{
.
name
=
"omapflash"
,
.
id
=
0
,
.
dev
=
{
.
platform_data
=
&
palmtt_flash_data
,
},
.
num_resources
=
1
,
.
resource
=
&
palmtt_flash_resource
,
};
#define DEFAULT_BITPERSAMPLE 16
static
struct
omap_mcbsp_reg_cfg
mcbsp_regs
=
{
.
spcr2
=
FREE
|
FRST
|
GRST
|
XRST
|
XINTM
(
3
),
.
spcr1
=
RINTM
(
3
)
|
RRST
,
.
rcr2
=
RPHASE
|
RFRLEN2
(
OMAP_MCBSP_WORD_8
)
|
RWDLEN2
(
OMAP_MCBSP_WORD_16
)
|
RDATDLY
(
0
),
.
rcr1
=
RFRLEN1
(
OMAP_MCBSP_WORD_8
)
|
RWDLEN1
(
OMAP_MCBSP_WORD_16
),
.
xcr2
=
XPHASE
|
XFRLEN2
(
OMAP_MCBSP_WORD_8
)
|
XWDLEN2
(
OMAP_MCBSP_WORD_16
)
|
XDATDLY
(
0
)
|
XFIG
,
.
xcr1
=
XFRLEN1
(
OMAP_MCBSP_WORD_8
)
|
XWDLEN1
(
OMAP_MCBSP_WORD_16
),
.
srgr1
=
FWID
(
DEFAULT_BITPERSAMPLE
-
1
),
.
srgr2
=
GSYNC
|
CLKSP
|
FSGM
|
FPER
(
DEFAULT_BITPERSAMPLE
*
2
-
1
),
.
pcr0
=
CLKXP
|
CLKRP
,
/* mcbsp: slave */
};
static
struct
omap_alsa_codec_config
alsa_config
=
{
.
name
=
"PalmTT AIC23"
,
.
mcbsp_regs_alsa
=
&
mcbsp_regs
,
.
codec_configure_dev
=
NULL
,
// aic23_configure,
.
codec_set_samplerate
=
NULL
,
// aic23_set_samplerate,
.
codec_clock_setup
=
NULL
,
// aic23_clock_setup,
.
codec_clock_on
=
NULL
,
// aic23_clock_on,
.
codec_clock_off
=
NULL
,
// aic23_clock_off,
.
get_default_samplerate
=
NULL
,
// aic23_get_default_samplerate,
};
static
struct
platform_device
palmtt_mcbsp1_device
=
{
.
name
=
"omap_alsa_mcbsp"
,
.
id
=
1
,
.
dev
=
{
.
platform_data
=
&
alsa_config
,
},
};
static
struct
resource
palmtt_kp_resources
[]
=
{
[
0
]
=
{
.
start
=
INT_KEYBOARD
,
.
end
=
INT_KEYBOARD
,
.
flags
=
IORESOURCE_IRQ
,
},
};
static
struct
omap_kp_platform_data
palmtt_kp_data
=
{
.
rows
=
6
,
.
cols
=
3
,
.
keymap
=
palmtt_keymap
,
};
static
struct
platform_device
palmtt_kp_device
=
{
.
name
=
"omap-keypad"
,
.
id
=
-
1
,
.
dev
=
{
.
platform_data
=
&
palmtt_kp_data
,
},
.
num_resources
=
ARRAY_SIZE
(
palmtt_kp_resources
),
.
resource
=
palmtt_kp_resources
,
};
static
struct
platform_device
palmtt_lcd_device
=
{
.
name
=
"lcd_palmtt"
,
.
id
=
-
1
,
};
static
struct
omap_irda_config
palmtt_irda_config
=
{
.
transceiver_cap
=
IR_SIRMODE
,
.
rx_channel
=
OMAP_DMA_UART3_RX
,
.
tx_channel
=
OMAP_DMA_UART3_TX
,
.
dest_start
=
UART3_THR
,
.
src_start
=
UART3_RHR
,
.
tx_trigger
=
0
,
.
rx_trigger
=
0
,
};
static
struct
resource
palmtt_irda_resources
[]
=
{
[
0
]
=
{
.
start
=
INT_UART3
,
.
end
=
INT_UART3
,
.
flags
=
IORESOURCE_IRQ
,
},
};
static
struct
platform_device
palmtt_irda_device
=
{
.
name
=
"omapirda"
,
.
id
=
-
1
,
.
dev
=
{
.
platform_data
=
&
palmtt_irda_config
,
},
.
num_resources
=
ARRAY_SIZE
(
palmtt_irda_resources
),
.
resource
=
palmtt_irda_resources
,
};
static
struct
platform_device
palmtt_spi_device
=
{
.
name
=
"spi_palmtt"
,
.
id
=
-
1
,
};
static
struct
omap_backlight_config
palmtt_backlight_config
=
{
.
default_intensity
=
0xa0
,
};
static
struct
platform_device
palmtt_backlight_device
=
{
.
name
=
"omap-bl"
,
.
id
=
-
1
,
.
dev
=
{
.
platform_data
=
&
palmtt_backlight_config
,
},
};
static
struct
omap_led_config
palmtt_led_config
[]
=
{
{
.
cdev
=
{
.
name
=
"palmtt:led0"
,
},
.
gpio
=
PALMTT_LED_GPIO
,
},
};
static
struct
omap_led_platform_data
palmtt_led_data
=
{
.
nr_leds
=
ARRAY_SIZE
(
palmtt_led_config
),
.
leds
=
palmtt_led_config
,
};
static
struct
platform_device
palmtt_led_device
=
{
.
name
=
"omap-led"
,
.
id
=
-
1
,
.
dev
=
{
.
platform_data
=
&
palmtt_led_data
,
},
};
static
struct
platform_device
*
palmtt_devices
[]
__initdata
=
{
&
palmtt_flash_device
,
&
palmtt_mcbsp1_device
,
&
palmtt_kp_device
,
&
palmtt_lcd_device
,
&
palmtt_irda_device
,
&
palmtt_spi_device
,
&
palmtt_backlight_device
,
&
palmtt_led_device
,
};
static
int
palmtt_get_pendown_state
(
void
)
{
return
!
omap_get_gpio_datain
(
6
);
}
static
const
struct
ads7846_platform_data
palmtt_ts_info
=
{
.
model
=
7846
,
.
vref_delay_usecs
=
100
,
/* internal, no capacitor */
.
x_plate_ohms
=
419
,
.
y_plate_ohms
=
486
,
.
get_pendown_state
=
palmtt_get_pendown_state
,
};
static
struct
spi_board_info
__initdata
palmtt_boardinfo
[]
=
{
{
/* MicroWire (bus 2) CS0 has an ads7846e */
.
modalias
=
"ads7846"
,
.
platform_data
=
&
palmtt_ts_info
,
.
irq
=
OMAP_GPIO_IRQ
(
6
),
.
max_speed_hz
=
120000
/* max sample rate at 3V */
*
26
/* command + data + overhead */
,
.
bus_num
=
2
,
.
chip_select
=
0
,
}
};
static
void
__init
omap_palmtt_init_irq
(
void
)
{
omap1_init_common_hw
();
omap_init_irq
();
}
static
struct
omap_usb_config
palmtt_usb_config
__initdata
=
{
.
register_dev
=
1
,
.
hmc_mode
=
0
,
.
pins
[
0
]
=
2
,
};
static
struct
omap_lcd_config
palmtt_lcd_config
__initdata
=
{
.
ctrl_name
=
"internal"
,
};
static
struct
omap_uart_config
palmtt_uart_config
__initdata
=
{
.
enabled_uarts
=
(
1
<<
0
)
|
(
1
<<
1
)
|
(
0
<<
2
),
};
static
struct
omap_board_config_kernel
palmtt_config
[]
=
{
{
OMAP_TAG_USB
,
&
palmtt_usb_config
},
{
OMAP_TAG_LCD
,
&
palmtt_lcd_config
},
{
OMAP_TAG_UART
,
&
palmtt_uart_config
},
};
static
void
__init
omap_mpu_wdt_mode
(
int
mode
)
{
if
(
mode
)
omap_writew
(
0x8000
,
OMAP_WDT_TIMER_MODE
);
else
{
omap_writew
(
0x00f5
,
OMAP_WDT_TIMER_MODE
);
omap_writew
(
0x00a0
,
OMAP_WDT_TIMER_MODE
);
}
}
static
void
__init
omap_palmtt_init
(
void
)
{
omap_mpu_wdt_mode
(
0
);
omap_board_config
=
palmtt_config
;
omap_board_config_size
=
ARRAY_SIZE
(
palmtt_config
);
platform_add_devices
(
palmtt_devices
,
ARRAY_SIZE
(
palmtt_devices
));
spi_register_board_info
(
palmtt_boardinfo
,
ARRAY_SIZE
(
palmtt_boardinfo
));
omap_serial_init
();
}
static
void
__init
omap_palmtt_map_io
(
void
)
{
omap1_map_common_io
();
}
MACHINE_START
(
OMAP_PALMTT
,
"OMAP1510 based Palm Tungsten|T"
)
.
phys_io
=
0xfff00000
,
.
io_pg_offst
=
((
0xfef00000
)
>>
18
)
&
0xfffc
,
.
boot_params
=
0x10000100
,
.
map_io
=
omap_palmtt_map_io
,
.
init_irq
=
omap_palmtt_init_irq
,
.
init_machine
=
omap_palmtt_init
,
.
timer
=
&
omap_timer
,
MACHINE_END
arch/arm/mach-omap1/board-palmz71.c
0 → 100644
View file @
92633b72
/*
* linux/arch/arm/mach-omap1/board-palmz71.c
*
* Modified from board-generic.c
*
* Support for the Palm Zire71 PDA.
*
* Original version : Laurent Gonzalez
*
* Modified for zire71 : Marek Vasut
*
* 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/delay.h>
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/platform_device.h>
#include <linux/notifier.h>
#include <linux/clk.h>
#include <linux/irq.h>
#include <linux/input.h>
#include <linux/interrupt.h>
#include <linux/mtd/mtd.h>
#include <linux/mtd/partitions.h>
#include <asm/hardware.h>
#include <asm/mach-types.h>
#include <asm/mach/arch.h>
#include <asm/mach/map.h>
#include <asm/mach/flash.h>
#include <asm/arch/mcbsp.h>
#include <asm/arch/gpio.h>
#include <asm/arch/mux.h>
#include <asm/arch/usb.h>
#include <asm/arch/dma.h>
#include <asm/arch/tc.h>
#include <asm/arch/board.h>
#include <asm/arch/irda.h>
#include <asm/arch/keypad.h>
#include <asm/arch/common.h>
#include <asm/arch/omap-alsa.h>
#include <linux/input.h>
#include <linux/spi/spi.h>
#include <linux/spi/ads7846.h>
static
void
__init
omap_palmz71_init_irq
(
void
)
{
omap1_init_common_hw
();
omap_init_irq
();
omap_gpio_init
();
}
static
int
palmz71_keymap
[]
=
{
KEY
(
0
,
0
,
KEY_F1
),
KEY
(
0
,
1
,
KEY_F2
),
KEY
(
0
,
2
,
KEY_F3
),
KEY
(
0
,
3
,
KEY_F4
),
KEY
(
0
,
4
,
KEY_POWER
),
KEY
(
1
,
0
,
KEY_LEFT
),
KEY
(
1
,
1
,
KEY_DOWN
),
KEY
(
1
,
2
,
KEY_UP
),
KEY
(
1
,
3
,
KEY_RIGHT
),
KEY
(
1
,
4
,
KEY_CENTER
),
KEY
(
2
,
0
,
KEY_CAMERA
),
0
,
};
static
struct
omap_kp_platform_data
palmz71_kp_data
=
{
.
rows
=
8
,
.
cols
=
8
,
.
keymap
=
palmz71_keymap
,
.
rep
=
1
,
.
delay
=
80
,
};
static
struct
resource
palmz71_kp_resources
[]
=
{
[
0
]
=
{
.
start
=
INT_KEYBOARD
,
.
end
=
INT_KEYBOARD
,
.
flags
=
IORESOURCE_IRQ
,
},
};
static
struct
platform_device
palmz71_kp_device
=
{
.
name
=
"omap-keypad"
,
.
id
=
-
1
,
.
dev
=
{
.
platform_data
=
&
palmz71_kp_data
,
},
.
num_resources
=
ARRAY_SIZE
(
palmz71_kp_resources
),
.
resource
=
palmz71_kp_resources
,
};
static
struct
mtd_partition
palmz71_rom_partitions
[]
=
{
/* PalmOS "Small ROM", contains the bootloader and the debugger */
{
.
name
=
"smallrom"
,
.
offset
=
0
,
.
size
=
0xa000
,
.
mask_flags
=
MTD_WRITEABLE
,
},
/* PalmOS "Big ROM", a filesystem with all the OS code and data */
{
.
name
=
"bigrom"
,
.
offset
=
SZ_128K
,
/*
* 0x5f0000 bytes big in the multi-language ("EFIGS") version,
* 0x7b0000 bytes in the English-only ("enUS") version.
*/
.
size
=
0x7b0000
,
.
mask_flags
=
MTD_WRITEABLE
,
},
};
static
struct
flash_platform_data
palmz71_rom_data
=
{
.
map_name
=
"map_rom"
,
.
name
=
"onboardrom"
,
.
width
=
2
,
.
parts
=
palmz71_rom_partitions
,
.
nr_parts
=
ARRAY_SIZE
(
palmz71_rom_partitions
),
};
static
struct
resource
palmz71_rom_resource
=
{
.
start
=
OMAP_CS0_PHYS
,
.
end
=
OMAP_CS0_PHYS
+
SZ_8M
-
1
,
.
flags
=
IORESOURCE_MEM
,
};
static
struct
platform_device
palmz71_rom_device
=
{
.
name
=
"omapflash"
,
.
id
=
-
1
,
.
dev
=
{
.
platform_data
=
&
palmz71_rom_data
,
},
.
num_resources
=
1
,
.
resource
=
&
palmz71_rom_resource
,
};
static
struct
platform_device
palmz71_lcd_device
=
{
.
name
=
"lcd_palmz71"
,
.
id
=
-
1
,
};
static
struct
omap_irda_config
palmz71_irda_config
=
{
.
transceiver_cap
=
IR_SIRMODE
,
.
rx_channel
=
OMAP_DMA_UART3_RX
,
.
tx_channel
=
OMAP_DMA_UART3_TX
,
.
dest_start
=
UART3_THR
,
.
src_start
=
UART3_RHR
,
.
tx_trigger
=
0
,
.
rx_trigger
=
0
,
};
static
struct
resource
palmz71_irda_resources
[]
=
{
[
0
]
=
{
.
start
=
INT_UART3
,
.
end
=
INT_UART3
,
.
flags
=
IORESOURCE_IRQ
,
},
};
static
struct
platform_device
palmz71_irda_device
=
{
.
name
=
"omapirda"
,
.
id
=
-
1
,
.
dev
=
{
.
platform_data
=
&
palmz71_irda_config
,
},
.
num_resources
=
ARRAY_SIZE
(
palmz71_irda_resources
),
.
resource
=
palmz71_irda_resources
,
};
static
struct
platform_device
palmz71_spi_device
=
{
.
name
=
"spi_palmz71"
,
.
id
=
-
1
,
};
#define DEFAULT_BITPERSAMPLE 16
static
struct
omap_mcbsp_reg_cfg
mcbsp_regs
=
{
.
spcr2
=
FREE
|
FRST
|
GRST
|
XRST
|
XINTM
(
3
),
.
spcr1
=
RINTM
(
3
)
|
RRST
,
.
rcr2
=
RPHASE
|
RFRLEN2
(
OMAP_MCBSP_WORD_8
)
|
RWDLEN2
(
OMAP_MCBSP_WORD_16
)
|
RDATDLY
(
0
),
.
rcr1
=
RFRLEN1
(
OMAP_MCBSP_WORD_8
)
|
RWDLEN1
(
OMAP_MCBSP_WORD_16
),
.
xcr2
=
XPHASE
|
XFRLEN2
(
OMAP_MCBSP_WORD_8
)
|
XWDLEN2
(
OMAP_MCBSP_WORD_16
)
|
XDATDLY
(
0
)
|
XFIG
,
.
xcr1
=
XFRLEN1
(
OMAP_MCBSP_WORD_8
)
|
XWDLEN1
(
OMAP_MCBSP_WORD_16
),
.
srgr1
=
FWID
(
DEFAULT_BITPERSAMPLE
-
1
),
.
srgr2
=
GSYNC
|
CLKSP
|
FSGM
|
FPER
(
DEFAULT_BITPERSAMPLE
*
2
-
1
),
.
pcr0
=
CLKXP
|
CLKRP
,
/* mcbsp: slave */
};
static
struct
omap_alsa_codec_config
alsa_config
=
{
.
name
=
"PalmZ71 AIC23"
,
.
mcbsp_regs_alsa
=
&
mcbsp_regs
,
.
codec_configure_dev
=
NULL
,
/* aic23_configure */
.
codec_set_samplerate
=
NULL
,
/* aic23_set_samplerate */
.
codec_clock_setup
=
NULL
,
/* aic23_clock_setup */
.
codec_clock_on
=
NULL
,
/* aic23_clock_on */
.
codec_clock_off
=
NULL
,
/* aic23_clock_off */
.
get_default_samplerate
=
NULL
,
/* aic23_get_default_samplerate */
};
static
struct
platform_device
palmz71_mcbsp1_device
=
{
.
name
=
"omap_alsa_mcbsp"
,
.
id
=
1
,
.
dev
=
{
.
platform_data
=
&
alsa_config
,
},
};
static
struct
omap_backlight_config
palmz71_backlight_config
=
{
.
default_intensity
=
0xa0
,
};
static
struct
platform_device
palmz71_backlight_device
=
{
.
name
=
"omap-bl"
,
.
id
=
-
1
,
.
dev
=
{
.
platform_data
=
&
palmz71_backlight_config
,
},
};
static
struct
platform_device
*
devices
[]
__initdata
=
{
&
palmz71_rom_device
,
&
palmz71_kp_device
,
&
palmz71_mcbsp1_device
,
&
palmz71_lcd_device
,
&
palmz71_irda_device
,
&
palmz71_spi_device
,
&
palmz71_backlight_device
,
};
static
int
palmz71_get_pendown_state
(
void
)
{
return
!
omap_get_gpio_datain
(
PALMZ71_PENIRQ_GPIO
);
}
static
const
struct
ads7846_platform_data
palmz71_ts_info
=
{
.
model
=
7846
,
.
vref_delay_usecs
=
100
,
/* internal, no capacitor */
.
x_plate_ohms
=
419
,
.
y_plate_ohms
=
486
,
.
get_pendown_state
=
palmz71_get_pendown_state
,
};
static
struct
spi_board_info
__initdata
palmz71_boardinfo
[]
=
{
{
/* MicroWire (bus 2) CS0 has an ads7846e */
.
modalias
=
"ads7846"
,
.
platform_data
=
&
palmz71_ts_info
,
.
irq
=
OMAP_GPIO_IRQ
(
PALMZ71_PENIRQ_GPIO
),
.
max_speed_hz
=
120000
/* max sample rate at 3V */
*
26
/* command + data + overhead */
,
.
bus_num
=
2
,
.
chip_select
=
0
,
}
};
static
struct
omap_usb_config
palmz71_usb_config
__initdata
=
{
.
register_dev
=
1
,
/* Mini-B only receptacle */
.
hmc_mode
=
0
,
.
pins
[
0
]
=
2
,
};
static
struct
omap_mmc_config
palmz71_mmc_config
__initdata
=
{
.
mmc
[
0
]
=
{
.
enabled
=
1
,
.
wire4
=
0
,
.
wp_pin
=
PALMZ71_MMC_WP_GPIO
,
.
power_pin
=
-
1
,
.
switch_pin
=
PALMZ71_MMC_IN_GPIO
,
},
};
static
struct
omap_lcd_config
palmz71_lcd_config
__initdata
=
{
.
ctrl_name
=
"internal"
,
};
static
struct
omap_uart_config
palmz71_uart_config
__initdata
=
{
.
enabled_uarts
=
(
1
<<
0
)
|
(
1
<<
1
)
|
(
0
<<
2
),
};
static
struct
omap_board_config_kernel
palmz71_config
[]
=
{
{
OMAP_TAG_USB
,
&
palmz71_usb_config
},
{
OMAP_TAG_MMC
,
&
palmz71_mmc_config
},
{
OMAP_TAG_LCD
,
&
palmz71_lcd_config
},
{
OMAP_TAG_UART
,
&
palmz71_uart_config
},
};
static
irqreturn_t
palmz71_powercable
(
int
irq
,
void
*
dev_id
)
{
if
(
omap_get_gpio_datain
(
PALMZ71_USBDETECT_GPIO
))
{
printk
(
KERN_INFO
"PM: Power cable connected
\n
"
);
set_irq_type
(
OMAP_GPIO_IRQ
(
PALMZ71_USBDETECT_GPIO
),
IRQT_FALLING
);
}
else
{
printk
(
KERN_INFO
"PM: Power cable disconnected
\n
"
);
set_irq_type
(
OMAP_GPIO_IRQ
(
PALMZ71_USBDETECT_GPIO
),
IRQT_RISING
);
}
return
IRQ_HANDLED
;
}
static
void
__init
omap_mpu_wdt_mode
(
int
mode
)
{
if
(
mode
)
omap_writew
(
0x8000
,
OMAP_WDT_TIMER_MODE
);
else
{
omap_writew
(
0x00f5
,
OMAP_WDT_TIMER_MODE
);
omap_writew
(
0x00a0
,
OMAP_WDT_TIMER_MODE
);
}
}
static
void
__init
palmz71_gpio_setup
(
int
early
)
{
if
(
early
)
{
/* Only set GPIO1 so we have a working serial */
omap_set_gpio_dataout
(
1
,
1
);
omap_set_gpio_direction
(
1
,
0
);
}
else
{
/* Set MMC/SD host WP pin as input */
if
(
omap_request_gpio
(
PALMZ71_MMC_WP_GPIO
))
{
printk
(
KERN_ERR
"Could not reserve WP GPIO!
\n
"
);
return
;
}
omap_set_gpio_direction
(
PALMZ71_MMC_WP_GPIO
,
1
);
/* Monitor the Power-cable-connected signal */
if
(
omap_request_gpio
(
PALMZ71_USBDETECT_GPIO
))
{
printk
(
KERN_ERR
"Could not reserve cable signal GPIO!
\n
"
);
return
;
}
omap_set_gpio_direction
(
PALMZ71_USBDETECT_GPIO
,
1
);
if
(
request_irq
(
OMAP_GPIO_IRQ
(
PALMZ71_USBDETECT_GPIO
),
palmz71_powercable
,
IRQF_SAMPLE_RANDOM
,
"palmz71-cable"
,
0
))
printk
(
KERN_ERR
"IRQ request for power cable failed!
\n
"
);
palmz71_powercable
(
OMAP_GPIO_IRQ
(
PALMZ71_USBDETECT_GPIO
),
0
);
}
}
static
void
__init
omap_palmz71_init
(
void
)
{
palmz71_gpio_setup
(
1
);
omap_mpu_wdt_mode
(
0
);
omap_board_config
=
palmz71_config
;
omap_board_config_size
=
ARRAY_SIZE
(
palmz71_config
);
platform_add_devices
(
devices
,
ARRAY_SIZE
(
devices
));
spi_register_board_info
(
palmz71_boardinfo
,
ARRAY_SIZE
(
palmz71_boardinfo
));
omap_serial_init
();
palmz71_gpio_setup
(
0
);
}
static
void
__init
omap_palmz71_map_io
(
void
)
{
omap1_map_common_io
();
}
MACHINE_START
(
OMAP_PALMZ71
,
"OMAP310 based Palm Zire71"
)
.
phys_io
=
0xfff00000
,
.
io_pg_offst
=
((
0xfef00000
)
>>
18
)
&
0xfffc
,
.
boot_params
=
0x10000100
,.
map_io
=
omap_palmz71_map_io
,
.
init_irq
=
omap_palmz71_init_irq
,
.
init_machine
=
omap_palmz71_init
,
.
timer
=
&
omap_timer
,
MACHINE_END
arch/arm/mach-omap1/board-sx1.c
0 → 100644
View file @
92633b72
/*
* linux/arch/arm/mach-omap1/board-sx1.c
*
* Modified from board-generic.c
*
* Support for the Siemens SX1 mobile phone.
*
* Original version : Vladimir Ananiev (Vovan888-at-gmail com)
*
* Maintainters : Vladimir Ananiev (aka Vovan888), Sergge
* oslik.ru
*
* 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/init.h>
#include <linux/input.h>
#include <linux/platform_device.h>
#include <linux/notifier.h>
#include <linux/mtd/mtd.h>
#include <linux/mtd/partitions.h>
#include <linux/types.h>
#include <linux/i2c.h>
#include <linux/errno.h>
#include <asm/hardware.h>
#include <asm/mach-types.h>
#include <asm/mach/arch.h>
#include <asm/mach/flash.h>
#include <asm/mach/map.h>
#include <asm/arch/gpio.h>
#include <asm/arch/mux.h>
#include <asm/arch/irda.h>
#include <asm/arch/usb.h>
#include <asm/arch/tc.h>
#include <asm/arch/board.h>
#include <asm/arch/common.h>
#include <asm/arch/mcbsp.h>
#include <asm/arch/omap-alsa.h>
#include <asm/arch/keypad.h>
/* Write to I2C device */
int
i2c_write_byte
(
u8
devaddr
,
u8
regoffset
,
u8
value
)
{
struct
i2c_adapter
*
adap
;
int
err
;
struct
i2c_msg
msg
[
1
];
unsigned
char
data
[
2
];
adap
=
i2c_get_adapter
(
0
);
if
(
!
adap
)
return
-
ENODEV
;
msg
->
addr
=
devaddr
;
/* I2C address of chip */
msg
->
flags
=
0
;
msg
->
len
=
2
;
msg
->
buf
=
data
;
data
[
0
]
=
regoffset
;
/* register num */
data
[
1
]
=
value
;
/* register data */
err
=
i2c_transfer
(
adap
,
msg
,
1
);
if
(
err
>=
0
)
return
0
;
return
err
;
}
/* Read from I2C device */
int
i2c_read_byte
(
u8
devaddr
,
u8
regoffset
,
u8
*
value
)
{
struct
i2c_adapter
*
adap
;
int
err
;
struct
i2c_msg
msg
[
1
];
unsigned
char
data
[
2
];
adap
=
i2c_get_adapter
(
0
);
if
(
!
adap
)
return
-
ENODEV
;
msg
->
addr
=
devaddr
;
/* I2C address of chip */
msg
->
flags
=
0
;
msg
->
len
=
1
;
msg
->
buf
=
data
;
data
[
0
]
=
regoffset
;
/* register num */
err
=
i2c_transfer
(
adap
,
msg
,
1
);
msg
->
addr
=
devaddr
;
/* I2C address */
msg
->
flags
=
I2C_M_RD
;
msg
->
len
=
1
;
msg
->
buf
=
data
;
err
=
i2c_transfer
(
adap
,
msg
,
1
);
*
value
=
data
[
0
];
if
(
err
>=
0
)
return
0
;
return
err
;
}
/* set keyboard backlight intensity */
int
sx1_setkeylight
(
u8
keylight
)
{
if
(
keylight
>
SOFIA_MAX_LIGHT_VAL
)
keylight
=
SOFIA_MAX_LIGHT_VAL
;
return
i2c_write_byte
(
SOFIA_I2C_ADDR
,
SOFIA_KEYLIGHT_REG
,
keylight
);
}
/* get current keylight intensity */
int
sx1_getkeylight
(
u8
*
keylight
)
{
return
i2c_read_byte
(
SOFIA_I2C_ADDR
,
SOFIA_KEYLIGHT_REG
,
keylight
);
}
/* set LCD backlight intensity */
int
sx1_setbacklight
(
u8
backlight
)
{
if
(
backlight
>
SOFIA_MAX_LIGHT_VAL
)
backlight
=
SOFIA_MAX_LIGHT_VAL
;
return
i2c_write_byte
(
SOFIA_I2C_ADDR
,
SOFIA_BACKLIGHT_REG
,
backlight
);
}
/* get current LCD backlight intensity */
int
sx1_getbacklight
(
u8
*
backlight
)
{
return
i2c_read_byte
(
SOFIA_I2C_ADDR
,
SOFIA_BACKLIGHT_REG
,
backlight
);
}
/* set LCD backlight power on/off */
int
sx1_setmmipower
(
u8
onoff
)
{
int
err
;
u8
dat
=
0
;
err
=
i2c_read_byte
(
SOFIA_I2C_ADDR
,
SOFIA_POWER1_REG
,
&
dat
);
if
(
err
<
0
)
return
err
;
if
(
onoff
)
dat
|=
SOFIA_MMILIGHT_POWER
;
else
dat
&=
~
SOFIA_MMILIGHT_POWER
;
return
i2c_write_byte
(
SOFIA_I2C_ADDR
,
SOFIA_POWER1_REG
,
dat
);
}
/* set MMC power on/off */
int
sx1_setmmcpower
(
u8
onoff
)
{
int
err
;
u8
dat
=
0
;
err
=
i2c_read_byte
(
SOFIA_I2C_ADDR
,
SOFIA_POWER1_REG
,
&
dat
);
if
(
err
<
0
)
return
err
;
if
(
onoff
)
dat
|=
SOFIA_MMC_POWER
;
else
dat
&=
~
SOFIA_MMC_POWER
;
return
i2c_write_byte
(
SOFIA_I2C_ADDR
,
SOFIA_POWER1_REG
,
dat
);
}
/* set USB power on/off */
int
sx1_setusbpower
(
u8
onoff
)
{
int
err
;
u8
dat
=
0
;
err
=
i2c_read_byte
(
SOFIA_I2C_ADDR
,
SOFIA_POWER1_REG
,
&
dat
);
if
(
err
<
0
)
return
err
;
if
(
onoff
)
dat
|=
SOFIA_USB_POWER
;
else
dat
&=
~
SOFIA_USB_POWER
;
return
i2c_write_byte
(
SOFIA_I2C_ADDR
,
SOFIA_POWER1_REG
,
dat
);
}
EXPORT_SYMBOL
(
sx1_setkeylight
);
EXPORT_SYMBOL
(
sx1_getkeylight
);
EXPORT_SYMBOL
(
sx1_setbacklight
);
EXPORT_SYMBOL
(
sx1_getbacklight
);
EXPORT_SYMBOL
(
sx1_setmmipower
);
EXPORT_SYMBOL
(
sx1_setmmcpower
);
EXPORT_SYMBOL
(
sx1_setusbpower
);
/*----------- Keypad -------------------------*/
static
int
sx1_keymap
[]
=
{
KEY
(
5
,
3
,
GROUP_0
|
117
),
/* camera Qt::Key_F17 */
KEY
(
0
,
4
,
GROUP_0
|
114
),
/* voice memo Qt::Key_F14 */
KEY
(
1
,
4
,
GROUP_2
|
114
),
/* voice memo */
KEY
(
2
,
4
,
GROUP_3
|
114
),
/* voice memo */
KEY
(
0
,
0
,
GROUP_1
|
KEY_F12
),
/* red button Qt::Key_Hangup */
KEY
(
4
,
3
,
GROUP_1
|
KEY_LEFT
),
KEY
(
2
,
3
,
GROUP_1
|
KEY_DOWN
),
KEY
(
1
,
3
,
GROUP_1
|
KEY_RIGHT
),
KEY
(
0
,
3
,
GROUP_1
|
KEY_UP
),
KEY
(
3
,
3
,
GROUP_1
|
KEY_POWER
),
/* joystick press or Qt::Key_Select */
KEY
(
5
,
0
,
GROUP_1
|
KEY_1
),
KEY
(
4
,
0
,
GROUP_1
|
KEY_2
),
KEY
(
3
,
0
,
GROUP_1
|
KEY_3
),
KEY
(
3
,
4
,
GROUP_1
|
KEY_4
),
KEY
(
4
,
4
,
GROUP_1
|
KEY_5
),
KEY
(
5
,
4
,
GROUP_1
|
KEY_KPASTERISK
),
/* "*" */
KEY
(
4
,
1
,
GROUP_1
|
KEY_6
),
KEY
(
5
,
1
,
GROUP_1
|
KEY_7
),
KEY
(
3
,
1
,
GROUP_1
|
KEY_8
),
KEY
(
3
,
2
,
GROUP_1
|
KEY_9
),
KEY
(
5
,
2
,
GROUP_1
|
KEY_0
),
KEY
(
4
,
2
,
GROUP_1
|
113
),
/* # F13 Toggle input method Qt::Key_F13 */
KEY
(
0
,
1
,
GROUP_1
|
KEY_F11
),
/* green button Qt::Key_Call */
KEY
(
1
,
2
,
GROUP_1
|
KEY_YEN
),
/* left soft Qt::Key_Context1 */
KEY
(
2
,
2
,
GROUP_1
|
KEY_F8
),
/* right soft Qt::Key_Back */
KEY
(
2
,
1
,
GROUP_1
|
KEY_LEFTSHIFT
),
/* shift */
KEY
(
1
,
1
,
GROUP_1
|
KEY_BACKSPACE
),
/* C (clear) */
KEY
(
0
,
2
,
GROUP_1
|
KEY_F7
),
/* menu Qt::Key_Menu */
0
};
static
struct
resource
sx1_kp_resources
[]
=
{
[
0
]
=
{
.
start
=
INT_KEYBOARD
,
.
end
=
INT_KEYBOARD
,
.
flags
=
IORESOURCE_IRQ
,
},
};
static
struct
omap_kp_platform_data
sx1_kp_data
=
{
.
rows
=
6
,
.
cols
=
6
,
.
keymap
=
sx1_keymap
,
.
keymapsize
=
ARRAY_SIZE
(
sx1_keymap
),
.
delay
=
80
,
};
static
struct
platform_device
sx1_kp_device
=
{
.
name
=
"omap-keypad"
,
.
id
=
-
1
,
.
dev
=
{
.
platform_data
=
&
sx1_kp_data
,
},
.
num_resources
=
ARRAY_SIZE
(
sx1_kp_resources
),
.
resource
=
sx1_kp_resources
,
};
/*----------- IRDA -------------------------*/
static
struct
omap_irda_config
sx1_irda_data
=
{
.
transceiver_cap
=
IR_SIRMODE
,
.
rx_channel
=
OMAP_DMA_UART3_RX
,
.
tx_channel
=
OMAP_DMA_UART3_TX
,
.
dest_start
=
UART3_THR
,
.
src_start
=
UART3_RHR
,
.
tx_trigger
=
0
,
.
rx_trigger
=
0
,
};
static
struct
resource
sx1_irda_resources
[]
=
{
[
0
]
=
{
.
start
=
INT_UART3
,
.
end
=
INT_UART3
,
.
flags
=
IORESOURCE_IRQ
,
},
};
static
u64
irda_dmamask
=
0xffffffff
;
static
struct
platform_device
sx1_irda_device
=
{
.
name
=
"omapirda"
,
.
id
=
0
,
.
dev
=
{
.
platform_data
=
&
sx1_irda_data
,
.
dma_mask
=
&
irda_dmamask
,
},
.
num_resources
=
ARRAY_SIZE
(
sx1_irda_resources
),
.
resource
=
sx1_irda_resources
,
};
/*----------- McBSP & Sound -------------------------*/
/* Playback interface - McBSP1 */
static
struct
omap_mcbsp_reg_cfg
mcbsp1_regs
=
{
.
spcr2
=
XINTM
(
3
),
/* SPCR2=30 */
.
spcr1
=
RINTM
(
3
),
/* SPCR1=30 */
.
rcr2
=
0
,
/* RCR2 =00 */
.
rcr1
=
RFRLEN1
(
1
)
|
RWDLEN1
(
OMAP_MCBSP_WORD_16
),
/* RCR1=140 */
.
xcr2
=
0
,
/* XCR2 = 0 */
.
xcr1
=
XFRLEN1
(
1
)
|
XWDLEN1
(
OMAP_MCBSP_WORD_16
),
/* XCR1 = 140 */
.
srgr1
=
FWID
(
15
)
|
CLKGDV
(
12
),
/* SRGR1=0f0c */
.
srgr2
=
FSGM
|
FPER
(
31
),
/* SRGR2=101f */
.
pcr0
=
FSXM
|
FSRM
|
CLKXM
|
CLKRM
|
FSXP
|
FSRP
|
CLKXP
|
CLKRP
,
/* PCR0 =0f0f */
};
/* TODO: PCM interface - McBSP2 */
static
struct
omap_mcbsp_reg_cfg
mcbsp2_regs
=
{
.
spcr2
=
FRST
|
GRST
|
XRST
|
XINTM
(
3
),
/* SPCR2=F1 */
.
spcr1
=
RINTM
(
3
)
|
RRST
,
/* SPCR1=30 */
.
rcr2
=
0
,
/* RCR2 =00 */
.
rcr1
=
RFRLEN1
(
1
)
|
RWDLEN1
(
OMAP_MCBSP_WORD_16
),
/* RCR1 = 140 */
.
xcr2
=
0
,
/* XCR2 = 0 */
.
xcr1
=
XFRLEN1
(
1
)
|
XWDLEN1
(
OMAP_MCBSP_WORD_16
),
/* XCR1 = 140 */
.
srgr1
=
FWID
(
15
)
|
CLKGDV
(
12
),
/* SRGR1=0f0c */
.
srgr2
=
FSGM
|
FPER
(
31
),
/* SRGR2=101f */
.
pcr0
=
FSXM
|
FSRM
|
CLKXM
|
CLKRM
|
FSXP
|
FSRP
|
CLKXP
|
CLKRP
,
/* PCR0=0f0f */
/* mcbsp: slave */
};
static
struct
omap_alsa_codec_config
sx1_alsa_config
=
{
.
name
=
"SX1 EGold"
,
.
mcbsp_regs_alsa
=
&
mcbsp1_regs
,
};
static
struct
platform_device
sx1_mcbsp1_device
=
{
.
name
=
"omap_alsa_mcbsp"
,
.
id
=
1
,
.
dev
=
{
.
platform_data
=
&
sx1_alsa_config
,
},
};
/*----------- MTD -------------------------*/
static
struct
mtd_partition
sx1_partitions
[]
=
{
/* bootloader (U-Boot, etc) in first sector */
{
.
name
=
"bootloader"
,
.
offset
=
0x01800000
,
.
size
=
SZ_128K
,
.
mask_flags
=
MTD_WRITEABLE
,
/* force read-only */
},
/* bootloader params in the next sector */
{
.
name
=
"params"
,
.
offset
=
MTDPART_OFS_APPEND
,
.
size
=
SZ_128K
,
.
mask_flags
=
0
,
},
/* kernel */
{
.
name
=
"kernel"
,
.
offset
=
MTDPART_OFS_APPEND
,
.
size
=
SZ_2M
-
2
*
SZ_128K
,
.
mask_flags
=
0
},
/* file system */
{
.
name
=
"filesystem"
,
.
offset
=
MTDPART_OFS_APPEND
,
.
size
=
MTDPART_SIZ_FULL
,
.
mask_flags
=
0
}
};
static
struct
flash_platform_data
sx1_flash_data
=
{
.
map_name
=
"cfi_probe"
,
.
width
=
2
,
.
parts
=
sx1_partitions
,
.
nr_parts
=
ARRAY_SIZE
(
sx1_partitions
),
};
#ifdef CONFIG_SX1_OLD_FLASH
/* MTD Intel StrataFlash - old flashes */
static
struct
resource
sx1_old_flash_resource
[]
=
{
[
0
]
=
{
.
start
=
OMAP_CS0_PHYS
,
/* Physical */
.
end
=
OMAP_CS0_PHYS
+
SZ_16M
-
1
,,
.
flags
=
IORESOURCE_MEM
,
},
[
1
]
=
{
.
start
=
OMAP_CS1_PHYS
,
.
end
=
OMAP_CS1_PHYS
+
SZ_8M
-
1
,
.
flags
=
IORESOURCE_MEM
,
},
};
static
struct
platform_device
sx1_flash_device
=
{
.
name
=
"omapflash"
,
.
id
=
0
,
.
dev
=
{
.
platform_data
=
&
sx1_flash_data
,
},
.
num_resources
=
2
,
.
resource
=
&
sx1_old_flash_resource
,
};
#else
/* MTD Intel 4000 flash - new flashes */
static
struct
resource
sx1_new_flash_resource
=
{
.
start
=
OMAP_CS0_PHYS
,
.
end
=
OMAP_CS0_PHYS
+
SZ_32M
-
1
,
.
flags
=
IORESOURCE_MEM
,
};
static
struct
platform_device
sx1_flash_device
=
{
.
name
=
"omapflash"
,
.
id
=
0
,
.
dev
=
{
.
platform_data
=
&
sx1_flash_data
,
},
.
num_resources
=
1
,
.
resource
=
&
sx1_new_flash_resource
,
};
#endif
/*----------- USB -------------------------*/
static
struct
omap_usb_config
sx1_usb_config
__initdata
=
{
.
otg
=
0
,
.
register_dev
=
1
,
.
register_host
=
0
,
.
hmc_mode
=
0
,
.
pins
[
0
]
=
2
,
.
pins
[
1
]
=
0
,
.
pins
[
2
]
=
0
,
};
/*----------- MMC -------------------------*/
static
struct
omap_mmc_config
sx1_mmc_config
__initdata
=
{
.
mmc
[
0
]
=
{
.
enabled
=
1
,
.
wire4
=
0
,
.
wp_pin
=
-
1
,
.
power_pin
=
-
1
,
/* power is in Sofia */
.
switch_pin
=
OMAP_MPUIO
(
3
),
},
};
/*----------- LCD -------------------------*/
static
struct
platform_device
sx1_lcd_device
=
{
.
name
=
"lcd_sx1"
,
.
id
=
-
1
,
};
static
struct
omap_lcd_config
sx1_lcd_config
__initdata
=
{
.
ctrl_name
=
"internal"
,
};
/*-----------------------------------------*/
static
struct
platform_device
*
sx1_devices
[]
__initdata
=
{
&
sx1_flash_device
,
&
sx1_kp_device
,
&
sx1_lcd_device
,
&
sx1_mcbsp1_device
,
&
sx1_irda_device
,
};
/*-----------------------------------------*/
static
struct
omap_uart_config
sx1_uart_config
__initdata
=
{
.
enabled_uarts
=
((
1
<<
0
)
|
(
1
<<
1
)
|
(
1
<<
2
)),
};
static
struct
omap_board_config_kernel
sx1_config
[]
=
{
{
OMAP_TAG_USB
,
&
sx1_usb_config
},
{
OMAP_TAG_MMC
,
&
sx1_mmc_config
},
{
OMAP_TAG_LCD
,
&
sx1_lcd_config
},
{
OMAP_TAG_UART
,
&
sx1_uart_config
},
};
/*-----------------------------------------*/
static
void
__init
omap_sx1_init
(
void
)
{
platform_add_devices
(
sx1_devices
,
ARRAY_SIZE
(
sx1_devices
));
omap_board_config
=
sx1_config
;
omap_board_config_size
=
ARRAY_SIZE
(
sx1_config
);
omap_serial_init
();
/* turn on USB power */
/* sx1_setusbpower(1); cant do it here because i2c is not ready */
omap_request_gpio
(
1
);
/* A_IRDA_OFF */
omap_request_gpio
(
11
);
/* A_SWITCH */
omap_request_gpio
(
15
);
/* A_USB_ON */
omap_set_gpio_direction
(
1
,
0
);
/* gpio1 -> output */
omap_set_gpio_direction
(
11
,
0
);
/* gpio11 -> output */
omap_set_gpio_direction
(
15
,
0
);
/* gpio15 -> output */
/* set GPIO data */
omap_set_gpio_dataout
(
1
,
1
);
/*A_IRDA_OFF = 1 */
omap_set_gpio_dataout
(
11
,
0
);
/*A_SWITCH = 0 */
omap_set_gpio_dataout
(
15
,
0
);
/*A_USB_ON = 0 */
}
/*----------------------------------------*/
static
void
__init
omap_sx1_init_irq
(
void
)
{
omap1_init_common_hw
();
omap_init_irq
();
omap_gpio_init
();
}
/*----------------------------------------*/
static
void
__init
omap_sx1_map_io
(
void
)
{
omap1_map_common_io
();
}
MACHINE_START
(
SX1
,
"OMAP310 based Siemens SX1"
)
.
phys_io
=
0xfff00000
,
.
io_pg_offst
=
((
0xfef00000
)
>>
18
)
&
0xfffc
,
.
boot_params
=
0x10000100
,
.
map_io
=
omap_sx1_map_io
,
.
init_irq
=
omap_sx1_init_irq
,
.
init_machine
=
omap_sx1_init
,
.
timer
=
&
omap_timer
,
MACHINE_END
arch/arm/mach-omap1/board-voiceblue.c
View file @
92633b72
...
...
@@ -235,7 +235,7 @@ static struct notifier_block panic_block = {
static
int
__init
voiceblue_setup
(
void
)
{
/* Setup panic notifier */
notifier_chain_register
(
&
panic_notifier_list
,
&
panic_block
);
atomic_
notifier_chain_register
(
&
panic_notifier_list
,
&
panic_block
);
return
0
;
}
...
...
arch/arm/mach-omap1/clock.c
View file @
92633b72
...
...
@@ -49,6 +49,15 @@ static void omap1_uart_recalc(struct clk * clk)
clk
->
rate
=
12000000
;
}
static
void
omap1_sossi_recalc
(
struct
clk
*
clk
)
{
u32
div
=
omap_readl
(
MOD_CONF_CTRL_1
);
div
=
(
div
>>
17
)
&
0x7
;
div
++
;
clk
->
rate
=
clk
->
parent
->
rate
/
div
;
}
static
int
omap1_clk_enable_dsp_domain
(
struct
clk
*
clk
)
{
int
retval
;
...
...
@@ -396,6 +405,31 @@ static int omap1_set_ext_clk_rate(struct clk * clk, unsigned long rate)
return
0
;
}
static
int
omap1_set_sossi_rate
(
struct
clk
*
clk
,
unsigned
long
rate
)
{
u32
l
;
int
div
;
unsigned
long
p_rate
;
p_rate
=
clk
->
parent
->
rate
;
/* Round towards slower frequency */
div
=
(
p_rate
+
rate
-
1
)
/
rate
;
div
--
;
if
(
div
<
0
||
div
>
7
)
return
-
EINVAL
;
l
=
omap_readl
(
MOD_CONF_CTRL_1
);
l
&=
~
(
7
<<
17
);
l
|=
div
<<
17
;
omap_writel
(
l
,
MOD_CONF_CTRL_1
);
clk
->
rate
=
p_rate
/
(
div
+
1
);
if
(
unlikely
(
clk
->
flags
&
RATE_PROPAGATES
))
propagate_rate
(
clk
);
return
0
;
}
static
long
omap1_round_ext_clk_rate
(
struct
clk
*
clk
,
unsigned
long
rate
)
{
return
96000000
/
calc_ext_dsor
(
rate
);
...
...
arch/arm/mach-omap1/clock.h
View file @
92633b72
...
...
@@ -17,6 +17,8 @@ static int omap1_clk_enable_generic(struct clk * clk);
static
void
omap1_clk_disable_generic
(
struct
clk
*
clk
);
static
void
omap1_ckctl_recalc
(
struct
clk
*
clk
);
static
void
omap1_watchdog_recalc
(
struct
clk
*
clk
);
static
int
omap1_set_sossi_rate
(
struct
clk
*
clk
,
unsigned
long
rate
);
static
void
omap1_sossi_recalc
(
struct
clk
*
clk
);
static
void
omap1_ckctl_recalc_dsp_domain
(
struct
clk
*
clk
);
static
int
omap1_clk_enable_dsp_domain
(
struct
clk
*
clk
);
static
int
omap1_clk_set_rate_dsp_domain
(
struct
clk
*
clk
,
unsigned
long
rate
);
...
...
@@ -168,9 +170,10 @@ static struct clk ck_dpll1 = {
static
struct
arm_idlect1_clk
ck_dpll1out
=
{
.
clk
=
{
.
name
=
"ck_dpll1out"
,
.
name
=
"ck_dpll1out"
,
.
parent
=
&
ck_dpll1
,
.
flags
=
CLOCK_IN_OMAP16XX
|
CLOCK_IDLE_CONTROL
,
.
flags
=
CLOCK_IN_OMAP16XX
|
CLOCK_IDLE_CONTROL
|
ENABLE_REG_32BIT
|
RATE_PROPAGATES
,
.
enable_reg
=
(
void
__iomem
*
)
ARM_IDLECT2
,
.
enable_bit
=
EN_CKOUT_ARM
,
.
recalc
=
&
followparent_recalc
,
...
...
@@ -180,6 +183,19 @@ static struct arm_idlect1_clk ck_dpll1out = {
.
idlect_shift
=
12
,
};
static
struct
clk
sossi_ck
=
{
.
name
=
"ck_sossi"
,
.
parent
=
&
ck_dpll1out
.
clk
,
.
flags
=
CLOCK_IN_OMAP16XX
|
CLOCK_NO_IDLE_PARENT
|
ENABLE_REG_32BIT
,
.
enable_reg
=
(
void
__iomem
*
)
MOD_CONF_CTRL_1
,
.
enable_bit
=
16
,
.
recalc
=
&
omap1_sossi_recalc
,
.
set_rate
=
&
omap1_set_sossi_rate
,
.
enable
=
&
omap1_clk_enable_generic
,
.
disable
=
&
omap1_clk_disable_generic
,
};
static
struct
clk
arm_ck
=
{
.
name
=
"arm_ck"
,
.
parent
=
&
ck_dpll1
,
...
...
@@ -282,7 +298,7 @@ static struct clk arminth_ck16xx = {
static
struct
clk
dsp_ck
=
{
.
name
=
"dsp_ck"
,
.
parent
=
&
ck_dpll1
,
.
flags
=
CLOCK_IN_OMAP1510
|
CLOCK_IN_OMAP16XX
|
.
flags
=
CLOCK_IN_OMAP
310
|
CLOCK_IN_OMAP
1510
|
CLOCK_IN_OMAP16XX
|
RATE_CKCTL
,
.
enable_reg
=
(
void
__iomem
*
)
ARM_CKCTL
,
.
enable_bit
=
EN_DSPCK
,
...
...
@@ -295,7 +311,7 @@ static struct clk dsp_ck = {
static
struct
clk
dspmmu_ck
=
{
.
name
=
"dspmmu_ck"
,
.
parent
=
&
ck_dpll1
,
.
flags
=
CLOCK_IN_OMAP1510
|
CLOCK_IN_OMAP16XX
|
.
flags
=
CLOCK_IN_OMAP
310
|
CLOCK_IN_OMAP
1510
|
CLOCK_IN_OMAP16XX
|
RATE_CKCTL
|
ALWAYS_ENABLED
,
.
rate_offset
=
CKCTL_DSPMMUDIV_OFFSET
,
.
recalc
=
&
omap1_ckctl_recalc
,
...
...
@@ -306,7 +322,7 @@ static struct clk dspmmu_ck = {
static
struct
clk
dspper_ck
=
{
.
name
=
"dspper_ck"
,
.
parent
=
&
ck_dpll1
,
.
flags
=
CLOCK_IN_OMAP1510
|
CLOCK_IN_OMAP16XX
|
.
flags
=
CLOCK_IN_OMAP
310
|
CLOCK_IN_OMAP
1510
|
CLOCK_IN_OMAP16XX
|
RATE_CKCTL
|
VIRTUAL_IO_ADDRESS
,
.
enable_reg
=
(
void
__iomem
*
)
DSP_IDLECT2
,
.
enable_bit
=
EN_PERCK
,
...
...
@@ -320,7 +336,7 @@ static struct clk dspper_ck = {
static
struct
clk
dspxor_ck
=
{
.
name
=
"dspxor_ck"
,
.
parent
=
&
ck_ref
,
.
flags
=
CLOCK_IN_OMAP1510
|
CLOCK_IN_OMAP16XX
|
.
flags
=
CLOCK_IN_OMAP
310
|
CLOCK_IN_OMAP
1510
|
CLOCK_IN_OMAP16XX
|
VIRTUAL_IO_ADDRESS
,
.
enable_reg
=
(
void
__iomem
*
)
DSP_IDLECT2
,
.
enable_bit
=
EN_XORPCK
,
...
...
@@ -332,7 +348,7 @@ static struct clk dspxor_ck = {
static
struct
clk
dsptim_ck
=
{
.
name
=
"dsptim_ck"
,
.
parent
=
&
ck_ref
,
.
flags
=
CLOCK_IN_OMAP1510
|
CLOCK_IN_OMAP16XX
|
.
flags
=
CLOCK_IN_OMAP
310
|
CLOCK_IN_OMAP
1510
|
CLOCK_IN_OMAP16XX
|
VIRTUAL_IO_ADDRESS
,
.
enable_reg
=
(
void
__iomem
*
)
DSP_IDLECT2
,
.
enable_bit
=
EN_DSPTIMCK
,
...
...
@@ -374,7 +390,7 @@ static struct clk arminth_ck1510 = {
static
struct
clk
tipb_ck
=
{
/* No-idle controlled by "tc_ck" */
.
name
=
"ti
bp
_ck"
,
.
name
=
"ti
pb
_ck"
,
.
parent
=
&
tc_ck
.
clk
,
.
flags
=
CLOCK_IN_OMAP1510
|
CLOCK_IN_OMAP310
|
ALWAYS_ENABLED
,
...
...
@@ -733,7 +749,7 @@ remains active during MPU idle whenever this is enabled */
static
struct
clk
i2c_fck
=
{
.
name
=
"i2c_fck"
,
.
id
=
1
,
.
flags
=
CLOCK_IN_OMAP1510
|
CLOCK_IN_OMAP16XX
|
.
flags
=
CLOCK_IN_OMAP
310
|
CLOCK_IN_OMAP
1510
|
CLOCK_IN_OMAP16XX
|
VIRTUAL_CLOCK
|
CLOCK_NO_IDLE_PARENT
|
ALWAYS_ENABLED
,
.
parent
=
&
armxor_ck
.
clk
,
...
...
@@ -760,6 +776,7 @@ static struct clk * onchip_clks[] = {
&
ck_dpll1
,
/* CK_GEN1 clocks */
&
ck_dpll1out
.
clk
,
&
sossi_ck
,
&
arm_ck
,
&
armper_ck
.
clk
,
&
arm_gpio_ck
,
...
...
arch/arm/mach-omap1/mux.c
View file @
92633b72
...
...
@@ -283,6 +283,30 @@ MUX_CFG("R11_1610_CF_IOIS16", B, 0, 3, 2, 16, 1, 2, 1, 1)
MUX_CFG
(
"V10_1610_CF_IREQ"
,
A
,
24
,
3
,
2
,
14
,
0
,
2
,
0
,
1
)
MUX_CFG
(
"W10_1610_CF_RESET"
,
A
,
18
,
3
,
2
,
12
,
1
,
2
,
1
,
1
)
MUX_CFG
(
"W11_1610_CF_CD1"
,
10
,
15
,
3
,
3
,
8
,
1
,
3
,
1
,
1
)
/* parallel camera */
MUX_CFG
(
"J15_1610_CAM_LCLK"
,
4
,
24
,
0
,
0
,
18
,
1
,
0
,
0
,
0
)
MUX_CFG
(
"J18_1610_CAM_D7"
,
4
,
27
,
0
,
0
,
19
,
1
,
0
,
0
,
0
)
MUX_CFG
(
"J19_1610_CAM_D6"
,
5
,
0
,
0
,
0
,
20
,
1
,
0
,
0
,
0
)
MUX_CFG
(
"J14_1610_CAM_D5"
,
5
,
3
,
0
,
0
,
21
,
1
,
0
,
0
,
0
)
MUX_CFG
(
"K18_1610_CAM_D4"
,
5
,
6
,
0
,
0
,
22
,
1
,
0
,
0
,
0
)
MUX_CFG
(
"K19_1610_CAM_D3"
,
5
,
9
,
0
,
0
,
23
,
1
,
0
,
0
,
0
)
MUX_CFG
(
"K15_1610_CAM_D2"
,
5
,
12
,
0
,
0
,
24
,
1
,
0
,
0
,
0
)
MUX_CFG
(
"K14_1610_CAM_D1"
,
5
,
15
,
0
,
0
,
25
,
1
,
0
,
0
,
0
)
MUX_CFG
(
"L19_1610_CAM_D0"
,
5
,
18
,
0
,
0
,
26
,
1
,
0
,
0
,
0
)
MUX_CFG
(
"L18_1610_CAM_VS"
,
5
,
21
,
0
,
0
,
27
,
1
,
0
,
0
,
0
)
MUX_CFG
(
"L15_1610_CAM_HS"
,
5
,
24
,
0
,
0
,
28
,
1
,
0
,
0
,
0
)
MUX_CFG
(
"M19_1610_CAM_RSTZ"
,
5
,
27
,
0
,
0
,
29
,
0
,
0
,
0
,
0
)
MUX_CFG
(
"Y15_1610_CAM_OUTCLK"
,
A
,
0
,
6
,
2
,
6
,
0
,
2
,
0
,
0
)
/* serial camera */
MUX_CFG
(
"H19_1610_CAM_EXCLK"
,
4
,
21
,
0
,
0
,
17
,
0
,
0
,
0
,
0
)
/* REVISIT 5912 spec sez CCP_* can't pullup or pulldown ... ? */
MUX_CFG
(
"Y12_1610_CCP_CLKP"
,
8
,
18
,
6
,
1
,
24
,
1
,
1
,
0
,
0
)
MUX_CFG
(
"W13_1610_CCP_CLKM"
,
9
,
0
,
6
,
1
,
28
,
1
,
1
,
0
,
0
)
MUX_CFG
(
"W14_1610_CCP_DATAP"
,
9
,
24
,
6
,
2
,
4
,
1
,
2
,
0
,
0
)
MUX_CFG
(
"Y14_1610_CCP_DATAM"
,
9
,
21
,
6
,
2
,
3
,
1
,
2
,
0
,
0
)
};
#endif
/* CONFIG_ARCH_OMAP15XX || CONFIG_ARCH_OMAP16XX */
...
...
arch/arm/mach-omap1/pm.c
View file @
92633b72
...
...
@@ -153,11 +153,8 @@ void omap_pm_idle(void)
use_idlect1
=
omap_dm_timer_modify_idlect_mask
(
use_idlect1
);
#endif
if
(
omap_dma_running
())
{
if
(
omap_dma_running
())
use_idlect1
&=
~
(
1
<<
6
);
if
(
omap_lcd_dma_ext_running
())
use_idlect1
&=
~
(
1
<<
12
);
}
/* We should be able to remove the do_sleep variable and multiple
* tests above as soon as drivers, timer and DMA code have been fixed.
...
...
arch/arm/mach-omap2/Kconfig
View file @
92633b72
...
...
@@ -11,6 +11,10 @@ config ARCH_OMAP2420
select OMAP_DM_TIMER
select ARCH_OMAP_OTG
config ARCH_OMAP2430
bool "OMAP2430 support"
depends on ARCH_OMAP24XX
comment "OMAP Board Type"
depends on ARCH_OMAP2
...
...
@@ -21,8 +25,13 @@ config MACH_OMAP_GENERIC
config MACH_OMAP_H4
bool "OMAP 2420 H4 board"
depends on ARCH_OMAP2 && ARCH_OMAP24XX
select OMAP_DEBUG_
LEDS if LEDS || LEDS_OMAP_DEBUG
select OMAP_DEBUG_
DEVICES
config MACH_OMAP_APOLLON
bool "OMAP 2420 Apollon board"
depends on ARCH_OMAP2 && ARCH_OMAP24XX
config MACH_OMAP_2430SDP
bool "OMAP 2430 SDP board"
depends on ARCH_OMAP2 && ARCH_OMAP24XX
arch/arm/mach-omap2/Makefile
View file @
92633b72
...
...
@@ -14,5 +14,6 @@ obj-$(CONFIG_PM) += pm.o pm-domain.o sleep.o
# Specific board support
obj-$(CONFIG_MACH_OMAP_GENERIC)
+=
board-generic.o
obj-$(CONFIG_MACH_OMAP_H4)
+=
board-h4.o
obj-$(CONFIG_MACH_OMAP_2430SDP)
+=
board-2430sdp.o
obj-$(CONFIG_MACH_OMAP_APOLLON)
+=
board-apollon.o
arch/arm/mach-omap2/board-2430sdp.c
0 → 100644
View file @
92633b72
/*
* linux/arch/arm/mach-omap2/board-2430sdp.c
*
* Copyright (C) 2006 Texas Instruments
*
* Modified from mach-omap2/board-generic.c
*
* Initial Code : Based on a patch from Komal Shah and Richard Woodruff
* Updated the Code for 2430 SDP : Syed Mohammed Khasim
*
* 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/init.h>
#include <linux/platform_device.h>
#include <linux/mtd/mtd.h>
#include <linux/mtd/partitions.h>
#include <linux/delay.h>
#include <linux/err.h>
#include <linux/clk.h>
#include <asm/hardware.h>
#include <asm/mach-types.h>
#include <asm/mach/arch.h>
#include <asm/mach/map.h>
#include <asm/mach/flash.h>
#include <asm/arch/gpio.h>
#include <asm/arch/mux.h>
#include <asm/arch/board.h>
#include <asm/arch/common.h>
#include <asm/arch/gpmc.h>
#include "prcm-regs.h"
#include <asm/io.h>
#define SDP2430_FLASH_CS 0
#define SDP2430_SMC91X_CS 5
static
struct
mtd_partition
sdp2430_partitions
[]
=
{
/* bootloader (U-Boot, etc) in first sector */
{
.
name
=
"bootloader"
,
.
offset
=
0
,
.
size
=
SZ_256K
,
.
mask_flags
=
MTD_WRITEABLE
,
/* force read-only */
},
/* bootloader params in the next sector */
{
.
name
=
"params"
,
.
offset
=
MTDPART_OFS_APPEND
,
.
size
=
SZ_128K
,
.
mask_flags
=
0
,
},
/* kernel */
{
.
name
=
"kernel"
,
.
offset
=
MTDPART_OFS_APPEND
,
.
size
=
SZ_2M
,
.
mask_flags
=
0
},
/* file system */
{
.
name
=
"filesystem"
,
.
offset
=
MTDPART_OFS_APPEND
,
.
size
=
MTDPART_SIZ_FULL
,
.
mask_flags
=
0
}
};
static
struct
flash_platform_data
sdp2430_flash_data
=
{
.
map_name
=
"cfi_probe"
,
.
width
=
2
,
.
parts
=
sdp2430_partitions
,
.
nr_parts
=
ARRAY_SIZE
(
sdp2430_partitions
),
};
static
struct
resource
sdp2430_flash_resource
=
{
.
start
=
SDP2430_CS0_BASE
,
.
end
=
SDP2430_CS0_BASE
+
SZ_64M
-
1
,
.
flags
=
IORESOURCE_MEM
,
};
static
struct
platform_device
sdp2430_flash_device
=
{
.
name
=
"omapflash"
,
.
id
=
0
,
.
dev
=
{
.
platform_data
=
&
sdp2430_flash_data
,
},
.
num_resources
=
1
,
.
resource
=
&
sdp2430_flash_resource
,
};
static
struct
resource
sdp2430_smc91x_resources
[]
=
{
[
0
]
=
{
.
start
=
SDP2430_CS0_BASE
,
.
end
=
SDP2430_CS0_BASE
+
SZ_64M
-
1
,
.
flags
=
IORESOURCE_MEM
,
},
[
1
]
=
{
.
start
=
OMAP_GPIO_IRQ
(
OMAP24XX_ETHR_GPIO_IRQ
),
.
end
=
OMAP_GPIO_IRQ
(
OMAP24XX_ETHR_GPIO_IRQ
),
.
flags
=
IORESOURCE_IRQ
,
},
};
static
struct
platform_device
sdp2430_smc91x_device
=
{
.
name
=
"smc91x"
,
.
id
=
-
1
,
.
num_resources
=
ARRAY_SIZE
(
sdp2430_smc91x_resources
),
.
resource
=
sdp2430_smc91x_resources
,
};
static
struct
platform_device
*
sdp2430_devices
[]
__initdata
=
{
&
sdp2430_smc91x_device
,
&
sdp2430_flash_device
,
};
static
inline
void
__init
sdp2430_init_smc91x
(
void
)
{
int
eth_cs
;
unsigned
long
cs_mem_base
;
unsigned
int
rate
;
struct
clk
*
l3ck
;
eth_cs
=
SDP2430_SMC91X_CS
;
l3ck
=
clk_get
(
NULL
,
"core_l3_ck"
);
if
(
IS_ERR
(
l3ck
))
rate
=
100000000
;
else
rate
=
clk_get_rate
(
l3ck
);
/* Make sure CS1 timings are correct, for 2430 always muxed */
gpmc_cs_write_reg
(
eth_cs
,
GPMC_CS_CONFIG1
,
0x00011200
);
if
(
rate
>=
160000000
)
{
gpmc_cs_write_reg
(
eth_cs
,
GPMC_CS_CONFIG2
,
0x001f1f01
);
gpmc_cs_write_reg
(
eth_cs
,
GPMC_CS_CONFIG3
,
0x00080803
);
gpmc_cs_write_reg
(
eth_cs
,
GPMC_CS_CONFIG4
,
0x1c0b1c0a
);
gpmc_cs_write_reg
(
eth_cs
,
GPMC_CS_CONFIG5
,
0x041f1F1F
);
gpmc_cs_write_reg
(
eth_cs
,
GPMC_CS_CONFIG6
,
0x000004C4
);
}
else
if
(
rate
>=
130000000
)
{
gpmc_cs_write_reg
(
eth_cs
,
GPMC_CS_CONFIG2
,
0x001f1f00
);
gpmc_cs_write_reg
(
eth_cs
,
GPMC_CS_CONFIG3
,
0x00080802
);
gpmc_cs_write_reg
(
eth_cs
,
GPMC_CS_CONFIG4
,
0x1C091C09
);
gpmc_cs_write_reg
(
eth_cs
,
GPMC_CS_CONFIG5
,
0x041f1F1F
);
gpmc_cs_write_reg
(
eth_cs
,
GPMC_CS_CONFIG6
,
0x000004C4
);
}
else
{
/* rate = 100000000 */
gpmc_cs_write_reg
(
eth_cs
,
GPMC_CS_CONFIG2
,
0x001f1f00
);
gpmc_cs_write_reg
(
eth_cs
,
GPMC_CS_CONFIG3
,
0x00080802
);
gpmc_cs_write_reg
(
eth_cs
,
GPMC_CS_CONFIG4
,
0x1C091C09
);
gpmc_cs_write_reg
(
eth_cs
,
GPMC_CS_CONFIG5
,
0x031A1F1F
);
gpmc_cs_write_reg
(
eth_cs
,
GPMC_CS_CONFIG6
,
0x000003C2
);
}
if
(
gpmc_cs_request
(
eth_cs
,
SZ_16M
,
&
cs_mem_base
)
<
0
)
{
printk
(
KERN_ERR
"Failed to request GPMC mem for smc91x
\n
"
);
return
;
}
sdp2430_smc91x_resources
[
0
].
start
=
cs_mem_base
+
0x300
;
sdp2430_smc91x_resources
[
0
].
end
=
cs_mem_base
+
0x30f
;
udelay
(
100
);
if
(
omap_request_gpio
(
OMAP24XX_ETHR_GPIO_IRQ
)
<
0
)
{
printk
(
KERN_ERR
"Failed to request GPIO%d for smc91x IRQ
\n
"
,
OMAP24XX_ETHR_GPIO_IRQ
);
gpmc_cs_free
(
eth_cs
);
return
;
}
omap_set_gpio_direction
(
OMAP24XX_ETHR_GPIO_IRQ
,
1
);
}
static
void
__init
omap_2430sdp_init_irq
(
void
)
{
omap2_init_common_hw
();
omap_init_irq
();
omap_gpio_init
();
sdp2430_init_smc91x
();
}
static
struct
omap_uart_config
sdp2430_uart_config
__initdata
=
{
.
enabled_uarts
=
((
1
<<
0
)
|
(
1
<<
1
)
|
(
1
<<
2
)),
};
static
struct
omap_board_config_kernel
sdp2430_config
[]
=
{
{
OMAP_TAG_UART
,
&
sdp2430_uart_config
},
};
static
void
__init
omap_2430sdp_init
(
void
)
{
platform_add_devices
(
sdp2430_devices
,
ARRAY_SIZE
(
sdp2430_devices
));
omap_board_config
=
sdp2430_config
;
omap_board_config_size
=
ARRAY_SIZE
(
sdp2430_config
);
omap_serial_init
();
}
static
void
__init
omap_2430sdp_map_io
(
void
)
{
omap2_map_common_io
();
}
MACHINE_START
(
OMAP_2430SDP
,
"OMAP2430 sdp2430 board"
)
/* Maintainer: Syed Khasim - Texas Instruments Inc */
.
phys_io
=
0x48000000
,
.
io_pg_offst
=
((
0xd8000000
)
>>
18
)
&
0xfffc
,
.
boot_params
=
0x80000100
,
.
map_io
=
omap_2430sdp_map_io
,
.
init_irq
=
omap_2430sdp_init_irq
,
.
init_machine
=
omap_2430sdp_init
,
.
timer
=
&
omap_timer
,
MACHINE_END
arch/arm/mach-omap2/board-apollon.c
View file @
92633b72
...
...
@@ -25,6 +25,8 @@
#include <linux/irq.h>
#include <linux/interrupt.h>
#include <linux/delay.h>
#include <linux/leds.h>
#include <linux/irq.h>
#include <asm/hardware.h>
#include <asm/mach-types.h>
...
...
@@ -32,10 +34,12 @@
#include <asm/mach/flash.h>
#include <asm/arch/gpio.h>
#include <asm/arch/led.h>
#include <asm/arch/mux.h>
#include <asm/arch/usb.h>
#include <asm/arch/board.h>
#include <asm/arch/common.h>
#include <asm/arch/gpmc.h>
#include "prcm-regs.h"
/* LED & Switch macros */
...
...
@@ -46,6 +50,9 @@
#define SW_UP_GPIO17 17
#define SW_DOWN_GPIO58 58
#define APOLLON_FLASH_CS 0
#define APOLLON_ETH_CS 1
static
struct
mtd_partition
apollon_partitions
[]
=
{
{
.
name
=
"X-Loader + U-Boot"
,
...
...
@@ -85,10 +92,10 @@ static struct flash_platform_data apollon_flash_data = {
.
nr_parts
=
ARRAY_SIZE
(
apollon_partitions
),
};
static
struct
resource
apollon_flash_resource
=
{
.
start
=
APOLLON_CS0_BASE
,
.
end
=
APOLLON_CS0_BASE
+
SZ_128K
,
.
flags
=
IORESOURCE_MEM
,
static
struct
resource
apollon_flash_resource
[]
=
{
[
0
]
=
{
.
flags
=
IORESOURCE_MEM
,
}
,
};
static
struct
platform_device
apollon_onenand_device
=
{
...
...
@@ -97,14 +104,24 @@ static struct platform_device apollon_onenand_device = {
.
dev
=
{
.
platform_data
=
&
apollon_flash_data
,
},
.
num_resources
=
ARRAY_SIZE
(
&
apollon_flash_resource
),
.
resource
=
&
apollon_flash_resource
,
.
num_resources
=
ARRAY_SIZE
(
apollon_flash_resource
),
.
resource
=
apollon_flash_resource
,
};
static
void
__init
apollon_flash_init
(
void
)
{
unsigned
long
base
;
if
(
gpmc_cs_request
(
APOLLON_FLASH_CS
,
SZ_128K
,
&
base
)
<
0
)
{
printk
(
KERN_ERR
"Cannot request OneNAND GPMC CS
\n
"
);
return
;
}
apollon_flash_resource
[
0
].
start
=
base
;
apollon_flash_resource
[
0
].
end
=
base
+
SZ_128K
-
1
;
}
static
struct
resource
apollon_smc91x_resources
[]
=
{
[
0
]
=
{
.
start
=
APOLLON_ETHR_START
,
/* Physical */
.
end
=
APOLLON_ETHR_START
+
0xf
,
.
flags
=
IORESOURCE_MEM
,
},
[
1
]
=
{
...
...
@@ -126,14 +143,51 @@ static struct platform_device apollon_lcd_device = {
.
id
=
-
1
,
};
static
struct
omap_led_config
apollon_led_config
[]
=
{
{
.
cdev
=
{
.
name
=
"apollon:led0"
,
},
.
gpio
=
LED0_GPIO13
,
},
{
.
cdev
=
{
.
name
=
"apollon:led1"
,
},
.
gpio
=
LED1_GPIO14
,
},
{
.
cdev
=
{
.
name
=
"apollon:led2"
,
},
.
gpio
=
LED2_GPIO15
,
},
};
static
struct
omap_led_platform_data
apollon_led_data
=
{
.
nr_leds
=
ARRAY_SIZE
(
apollon_led_config
),
.
leds
=
apollon_led_config
,
};
static
struct
platform_device
apollon_led_device
=
{
.
name
=
"omap-led"
,
.
id
=
-
1
,
.
dev
=
{
.
platform_data
=
&
apollon_led_data
,
},
};
static
struct
platform_device
*
apollon_devices
[]
__initdata
=
{
&
apollon_onenand_device
,
&
apollon_smc91x_device
,
&
apollon_lcd_device
,
&
apollon_led_device
,
};
static
inline
void
__init
apollon_init_smc91x
(
void
)
{
unsigned
long
base
;
/* Make sure CS1 timings are correct */
GPMC_CONFIG1_1
=
0x00011203
;
GPMC_CONFIG2_1
=
0x001f1f01
;
...
...
@@ -141,13 +195,20 @@ static inline void __init apollon_init_smc91x(void)
GPMC_CONFIG4_1
=
0x1c091c09
;
GPMC_CONFIG5_1
=
0x041f1f1f
;
GPMC_CONFIG6_1
=
0x000004c4
;
GPMC_CONFIG7_1
=
0x00000f40
|
(
APOLLON_CS1_BASE
>>
24
);
if
(
gpmc_cs_request
(
APOLLON_ETH_CS
,
SZ_16M
,
&
base
)
<
0
)
{
printk
(
KERN_ERR
"Failed to request GPMC CS for smc91x
\n
"
);
return
;
}
apollon_smc91x_resources
[
0
].
start
=
base
+
0x300
;
apollon_smc91x_resources
[
0
].
end
=
base
+
0x30f
;
udelay
(
100
);
omap_cfg_reg
(
W4__24XX_GPIO74
);
if
(
omap_request_gpio
(
APOLLON_ETHR_GPIO_IRQ
)
<
0
)
{
printk
(
KERN_ERR
"Failed to request GPIO%d for smc91x IRQ
\n
"
,
APOLLON_ETHR_GPIO_IRQ
);
gpmc_cs_free
(
APOLLON_ETH_CS
);
return
;
}
omap_set_gpio_direction
(
APOLLON_ETHR_GPIO_IRQ
,
1
);
...
...
@@ -175,6 +236,13 @@ static struct omap_mmc_config apollon_mmc_config __initdata = {
},
};
static
struct
omap_usb_config
apollon_usb_config
__initdata
=
{
.
register_dev
=
1
,
.
hmc_mode
=
0x14
,
/* 0:dev 1:host1 2:disable */
.
pins
[
0
]
=
6
,
};
static
struct
omap_lcd_config
apollon_lcd_config
__initdata
=
{
.
ctrl_name
=
"internal"
,
};
...
...
@@ -182,6 +250,7 @@ static struct omap_lcd_config apollon_lcd_config __initdata = {
static
struct
omap_board_config_kernel
apollon_config
[]
=
{
{
OMAP_TAG_UART
,
&
apollon_uart_config
},
{
OMAP_TAG_MMC
,
&
apollon_mmc_config
},
{
OMAP_TAG_USB
,
&
apollon_usb_config
},
{
OMAP_TAG_LCD
,
&
apollon_lcd_config
},
};
...
...
@@ -250,10 +319,22 @@ static void __init apollon_sw_init(void)
return
;
}
static
void
__init
apollon_usb_init
(
void
)
{
/* USB device */
/* DEVICE_SUSPEND */
omap_cfg_reg
(
P21_242X_GPIO12
);
omap_request_gpio
(
12
);
omap_set_gpio_direction
(
12
,
0
);
/* OUT */
omap_set_gpio_dataout
(
12
,
0
);
}
static
void
__init
omap_apollon_init
(
void
)
{
apollon_led_init
();
apollon_sw_init
();
apollon_flash_init
();
apollon_usb_init
();
/* REVISIT: where's the correct place */
omap_cfg_reg
(
W19_24XX_SYS_NIRQ
);
...
...
arch/arm/mach-omap2/board-h4.c
View file @
92633b72
...
...
@@ -131,26 +131,6 @@ static struct platform_device h4_flash_device = {
.
resource
=
&
h4_flash_resource
,
};
static
struct
resource
h4_smc91x_resources
[]
=
{
[
0
]
=
{
.
start
=
OMAP24XX_ETHR_START
,
/* Physical */
.
end
=
OMAP24XX_ETHR_START
+
0xf
,
.
flags
=
IORESOURCE_MEM
,
},
[
1
]
=
{
.
start
=
OMAP_GPIO_IRQ
(
OMAP24XX_ETHR_GPIO_IRQ
),
.
end
=
OMAP_GPIO_IRQ
(
OMAP24XX_ETHR_GPIO_IRQ
),
.
flags
=
IORESOURCE_IRQ
,
},
};
static
struct
platform_device
h4_smc91x_device
=
{
.
name
=
"smc91x"
,
.
id
=
-
1
,
.
num_resources
=
ARRAY_SIZE
(
h4_smc91x_resources
),
.
resource
=
h4_smc91x_resources
,
};
/* Select between the IrDA and aGPS module
*/
static
int
h4_select_irda
(
struct
device
*
dev
,
int
state
)
...
...
@@ -266,29 +246,14 @@ static struct platform_device h4_lcd_device = {
.
id
=
-
1
,
};
static
struct
resource
h4_led_resources
[]
=
{
[
0
]
=
{
.
flags
=
IORESOURCE_MEM
,
},
};
static
struct
platform_device
h4_led_device
=
{
.
name
=
"omap_dbg_led"
,
.
id
=
-
1
,
.
num_resources
=
ARRAY_SIZE
(
h4_led_resources
),
.
resource
=
h4_led_resources
,
};
static
struct
platform_device
*
h4_devices
[]
__initdata
=
{
&
h4_smc91x_device
,
&
h4_flash_device
,
&
h4_irda_device
,
&
h4_kp_device
,
&
h4_lcd_device
,
&
h4_led_device
,
};
static
inline
void
__init
h4_init_
smc91x
(
void
)
static
inline
void
__init
h4_init_
debug
(
void
)
{
/* Make sure CS1 timings are correct */
GPMC_CONFIG1_1
=
0x00011200
;
...
...
@@ -301,12 +266,8 @@ static inline void __init h4_init_smc91x(void)
udelay
(
100
);
omap_cfg_reg
(
M15_24XX_GPIO92
);
if
(
omap_request_gpio
(
OMAP24XX_ETHR_GPIO_IRQ
)
<
0
)
{
printk
(
KERN_ERR
"Failed to request GPIO%d for smc91x IRQ
\n
"
,
OMAP24XX_ETHR_GPIO_IRQ
);
return
;
}
omap_set_gpio_direction
(
OMAP24XX_ETHR_GPIO_IRQ
,
1
);
if
(
debug_card_init
(
cs_mem_base
,
OMAP24XX_ETHR_GPIO_IRQ
)
<
0
)
gpmc_cs_free
(
eth_cs
);
}
static
void
__init
omap_h4_init_irq
(
void
)
...
...
@@ -314,7 +275,6 @@ static void __init omap_h4_init_irq(void)
omap2_init_common_hw
();
omap_init_irq
();
omap_gpio_init
();
h4_init_smc91x
();
}
static
struct
omap_uart_config
h4_uart_config
__initdata
=
{
...
...
arch/arm/mach-omap2/devices.c
View file @
92633b72
...
...
@@ -55,8 +55,10 @@ static void omap_init_i2c(void)
if
(
machine_is_omap_h4
())
return
;
omap_cfg_reg
(
J15_24XX_I2C2_SCL
);
omap_cfg_reg
(
H19_24XX_I2C2_SDA
);
if
(
!
cpu_is_omap2430
())
{
omap_cfg_reg
(
J15_24XX_I2C2_SCL
);
omap_cfg_reg
(
H19_24XX_I2C2_SDA
);
}
(
void
)
platform_device_register
(
&
omap_i2c_device2
);
}
...
...
arch/arm/mach-omap2/gpmc.c
View file @
92633b72
...
...
@@ -22,7 +22,14 @@
#undef DEBUG
#ifdef CONFIG_ARCH_OMAP2420
#define GPMC_BASE 0x6800a000
#endif
#ifdef CONFIG_ARCH_OMAP2430
#define GPMC_BASE 0x6E000000
#endif
#define GPMC_REVISION 0x00
#define GPMC_SYSCONFIG 0x10
#define GPMC_SYSSTATUS 0x14
...
...
@@ -88,7 +95,7 @@ u32 gpmc_cs_read_reg(int cs, int idx)
}
/* TODO: Add support for gpmc_fck to clock framework and use it */
static
unsigned
long
gpmc_get_fclk_period
(
void
)
unsigned
long
gpmc_get_fclk_period
(
void
)
{
/* In picoseconds */
return
1000000000
/
((
clk_get_rate
(
gpmc_l3_clk
))
/
1000
);
...
...
@@ -104,6 +111,13 @@ unsigned int gpmc_ns_to_ticks(unsigned int time_ns)
return
(
time_ns
*
1000
+
tick_ps
-
1
)
/
tick_ps
;
}
unsigned
int
gpmc_round_ns_to_ticks
(
unsigned
int
time_ns
)
{
unsigned
long
ticks
=
gpmc_ns_to_ticks
(
time_ns
);
return
ticks
*
gpmc_get_fclk_period
()
/
1000
;
}
#ifdef DEBUG
static
int
set_gpmc_timing_reg
(
int
cs
,
int
reg
,
int
st_bit
,
int
end_bit
,
int
time
,
const
char
*
name
)
...
...
@@ -120,15 +134,21 @@ static int set_gpmc_timing_reg(int cs, int reg, int st_bit, int end_bit,
else
ticks
=
gpmc_ns_to_ticks
(
time
);
nr_bits
=
end_bit
-
st_bit
+
1
;
if
(
ticks
>=
1
<<
nr_bits
)
if
(
ticks
>=
1
<<
nr_bits
)
{
#ifdef DEBUG
printk
(
KERN_INFO
"GPMC CS%d: %-10s* %3d ns, %3d ticks >= %d
\n
"
,
cs
,
name
,
time
,
ticks
,
1
<<
nr_bits
);
#endif
return
-
1
;
}
mask
=
(
1
<<
nr_bits
)
-
1
;
l
=
gpmc_cs_read_reg
(
cs
,
reg
);
#ifdef DEBUG
printk
(
KERN_INFO
"GPMC CS%d: %-10s: %d ticks, %3lu ns (was %i ticks)
\n
"
,
printk
(
KERN_INFO
"GPMC CS%d: %-10s: %3d ticks, %3lu ns (was %3i ticks) %3d ns
\n
"
,
cs
,
name
,
ticks
,
gpmc_get_fclk_period
()
*
ticks
/
1000
,
(
l
>>
st_bit
)
&
mask
);
(
l
>>
st_bit
)
&
mask
,
time
);
#endif
l
&=
~
(
mask
<<
st_bit
);
l
|=
ticks
<<
st_bit
;
...
...
@@ -157,7 +177,7 @@ int gpmc_cs_calc_divider(int cs, unsigned int sync_clk)
div
=
l
/
gpmc_get_fclk_period
();
if
(
div
>
4
)
return
-
1
;
if
(
div
<
0
)
if
(
div
<
=
0
)
div
=
1
;
return
div
;
...
...
@@ -191,14 +211,19 @@ int gpmc_cs_set_timings(int cs, const struct gpmc_timings *t)
GPMC_SET_ONE
(
GPMC_CS_CONFIG5
,
24
,
27
,
page_burst_access
);
/* caller is expected to have initialized CONFIG1 to cover
* at least sync vs async
*/
l
=
gpmc_cs_read_reg
(
cs
,
GPMC_CS_CONFIG1
);
if
(
l
&
(
GPMC_CONFIG1_READTYPE_SYNC
|
GPMC_CONFIG1_WRITETYPE_SYNC
))
{
#ifdef DEBUG
printk
(
KERN_INFO
"GPMC CS%d CLK period is %lu
(div %d)
\n
"
,
cs
,
gpmc_get_fclk_period
()
,
div
);
printk
(
KERN_INFO
"GPMC CS%d CLK period is %lu ns
(div %d)
\n
"
,
cs
,
(
div
*
gpmc_get_fclk_period
())
/
1000
,
div
);
#endif
l
=
gpmc_cs_read_reg
(
cs
,
GPMC_CS_CONFIG
1
);
l
&=
~
0x03
;
l
|=
(
div
-
1
);
l
&=
~
0x03
;
l
|=
(
div
-
1
);
gpmc_cs_write_reg
(
cs
,
GPMC_CS_CONFIG1
,
l
)
;
}
return
0
;
}
...
...
arch/arm/mach-omap2/id.c
View file @
92633b72
...
...
@@ -17,7 +17,13 @@
#include <asm/io.h>
#if defined(CONFIG_ARCH_OMAP2420)
#define OMAP24XX_TAP_BASE io_p2v(0x48014000)
#endif
#if defined(CONFIG_ARCH_OMAP2430)
#define OMAP24XX_TAP_BASE io_p2v(0x4900A000)
#endif
#define OMAP_TAP_IDCODE 0x0204
#define OMAP_TAP_PROD_ID 0x0208
...
...
arch/arm/mach-omap2/io.c
View file @
92633b72
...
...
@@ -5,6 +5,7 @@
*
* Copyright (C) 2005 Nokia Corporation
* Author: Juha Yrjl <juha.yrjola@nokia.com>
* Updated map desc to add 2430 support : <x0khasim@ti.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
...
...
@@ -26,6 +27,7 @@
extern
void
omap_sram_init
(
void
);
extern
int
omap2_clk_init
(
void
);
extern
void
omap2_check_revision
(
void
);
extern
void
omap2_init_memory
(
void
);
extern
void
gpmc_init
(
void
);
extern
void
omapfb_reserve_sdram
(
void
);
...
...
@@ -40,6 +42,20 @@ static struct map_desc omap2_io_desc[] __initdata = {
.
length
=
L3_24XX_SIZE
,
.
type
=
MT_DEVICE
},
#ifdef CONFIG_ARCH_OMAP2430
{
.
virtual
=
L4_WK_243X_VIRT
,
.
pfn
=
__phys_to_pfn
(
L4_WK_243X_PHYS
),
.
length
=
L4_WK_243X_SIZE
,
.
type
=
MT_DEVICE
},
{
.
virtual
=
OMAP243X_GPMC_VIRT
,
.
pfn
=
__phys_to_pfn
(
OMAP243X_GPMC_PHYS
),
.
length
=
OMAP243X_GPMC_SIZE
,
.
type
=
MT_DEVICE
},
#endif
{
.
virtual
=
DSP_MEM_24XX_VIRT
,
.
pfn
=
__phys_to_pfn
(
DSP_MEM_24XX_PHYS
),
...
...
@@ -80,5 +96,11 @@ void __init omap2_init_common_hw(void)
{
omap2_mux_init
();
omap2_clk_init
();
/*
* Need to Fix this for 2430
*/
#ifndef CONFIG_ARCH_OMAP2430
omap2_init_memory
();
#endif
gpmc_init
();
}
arch/arm/mach-omap2/irq.c
View file @
92633b72
...
...
@@ -37,7 +37,7 @@ static struct omap_irq_bank {
}
__attribute__
((
aligned
(
4
)))
irq_banks
[]
=
{
{
/* MPU INTC */
.
base_reg
=
OMAP24XX_IC_BASE
,
.
base_reg
=
IO_ADDRESS
(
OMAP24XX_IC_BASE
)
,
.
nr_irqs
=
96
,
},
{
/* XXX: DSP INTC */
...
...
@@ -47,7 +47,7 @@ static struct omap_irq_bank {
/* XXX: FIQ and additional INTC support (only MPU at the moment) */
static
void
omap_ack_irq
(
unsigned
int
irq
)
{
omap
_writel
(
0x1
,
irq_banks
[
0
].
base_reg
+
INTC_CONTROL
);
__raw
_writel
(
0x1
,
irq_banks
[
0
].
base_reg
+
INTC_CONTROL
);
}
static
void
omap_mask_irq
(
unsigned
int
irq
)
...
...
@@ -60,7 +60,7 @@ static void omap_mask_irq(unsigned int irq)
irq
%=
32
;
}
omap
_writel
(
1
<<
irq
,
irq_banks
[
0
].
base_reg
+
INTC_MIR_SET0
+
offset
);
__raw
_writel
(
1
<<
irq
,
irq_banks
[
0
].
base_reg
+
INTC_MIR_SET0
+
offset
);
}
static
void
omap_unmask_irq
(
unsigned
int
irq
)
...
...
@@ -73,7 +73,7 @@ static void omap_unmask_irq(unsigned int irq)
irq
%=
32
;
}
omap
_writel
(
1
<<
irq
,
irq_banks
[
0
].
base_reg
+
INTC_MIR_CLEAR0
+
offset
);
__raw
_writel
(
1
<<
irq
,
irq_banks
[
0
].
base_reg
+
INTC_MIR_CLEAR0
+
offset
);
}
static
void
omap_mask_ack_irq
(
unsigned
int
irq
)
...
...
@@ -93,17 +93,20 @@ static void __init omap_irq_bank_init_one(struct omap_irq_bank *bank)
{
unsigned
long
tmp
;
tmp
=
omap
_readl
(
bank
->
base_reg
+
INTC_REVISION
)
&
0xff
;
tmp
=
__raw
_readl
(
bank
->
base_reg
+
INTC_REVISION
)
&
0xff
;
printk
(
KERN_INFO
"IRQ: Found an INTC at 0x%08lx "
"(revision %ld.%ld) with %d interrupts
\n
"
,
bank
->
base_reg
,
tmp
>>
4
,
tmp
&
0xf
,
bank
->
nr_irqs
);
tmp
=
omap
_readl
(
bank
->
base_reg
+
INTC_SYSCONFIG
);
tmp
=
__raw
_readl
(
bank
->
base_reg
+
INTC_SYSCONFIG
);
tmp
|=
1
<<
1
;
/* soft reset */
omap
_writel
(
tmp
,
bank
->
base_reg
+
INTC_SYSCONFIG
);
__raw
_writel
(
tmp
,
bank
->
base_reg
+
INTC_SYSCONFIG
);
while
(
!
(
omap
_readl
(
bank
->
base_reg
+
INTC_SYSSTATUS
)
&
0x1
))
while
(
!
(
__raw
_readl
(
bank
->
base_reg
+
INTC_SYSSTATUS
)
&
0x1
))
/* Wait for reset to complete */
;
/* Enable autoidle */
__raw_writel
(
1
<<
0
,
bank
->
base_reg
+
INTC_SYSCONFIG
);
}
void
__init
omap_init_irq
(
void
)
...
...
arch/arm/mach-omap2/memory.c
View file @
92633b72
...
...
@@ -30,6 +30,7 @@
#include "prcm-regs.h"
#include "memory.h"
static
struct
memory_timings
mem_timings
;
u32
omap2_memory_get_slow_dll_ctrl
(
void
)
...
...
@@ -99,3 +100,20 @@ void omap2_init_memory_params(u32 force_lock_to_unlock_mode)
/* 90 degree phase for anything below 133Mhz + disable DLL filter */
mem_timings
.
slow_dll_ctrl
|=
((
1
<<
1
)
|
(
3
<<
8
));
}
/* turn on smart idle modes for SDRAM scheduler and controller */
void
__init
omap2_init_memory
(
void
)
{
u32
l
;
l
=
SMS_SYSCONFIG
;
l
&=
~
(
0x3
<<
3
);
l
|=
(
0x2
<<
3
);
SMS_SYSCONFIG
=
l
;
l
=
SDRC_SYSCONFIG
;
l
&=
~
(
0x3
<<
3
);
l
|=
(
0x2
<<
3
);
SDRC_SYSCONFIG
=
l
;
}
arch/arm/mach-omap2/mux.c
View file @
92633b72
...
...
@@ -53,8 +53,8 @@ MUX_CFG_24XX("W19_24XX_SYS_NIRQ", 0x12c, 0, 1, 1, 1)
MUX_CFG_24XX
(
"W14_24XX_SYS_CLKOUT"
,
0x137
,
0
,
1
,
1
,
1
)
/* 24xx GPMC chipselects, wait pin monitoring */
MUX_CFG_24XX
(
"E2_GPMC_NCS2"
,
0x08e
,
0
,
1
,
1
,
1
)
MUX_CFG_24XX
(
"L2_GPMC_NCS7"
,
0x093
,
0
,
1
,
1
,
1
)
MUX_CFG_24XX
(
"E2_GPMC_NCS2"
,
0x08e
,
0
,
1
,
1
,
1
)
MUX_CFG_24XX
(
"L2_GPMC_NCS7"
,
0x093
,
0
,
1
,
1
,
1
)
MUX_CFG_24XX
(
"L3_GPMC_WAIT0"
,
0x09a
,
0
,
1
,
1
,
1
)
MUX_CFG_24XX
(
"N7_GPMC_WAIT1"
,
0x09b
,
0
,
1
,
1
,
1
)
MUX_CFG_24XX
(
"M1_GPMC_WAIT2"
,
0x09c
,
0
,
1
,
1
,
1
)
...
...
@@ -67,18 +67,18 @@ MUX_CFG_24XX("W15_24XX_MCBSP2_DR", 0x126, 1, 1, 0, 1)
MUX_CFG_24XX
(
"V15_24XX_MCBSP2_DX"
,
0x127
,
1
,
1
,
0
,
1
)
/* 24xx GPIO */
MUX_CFG_24XX
(
"M21_242X_GPIO11"
,
0x0c9
,
3
,
1
,
1
,
1
)
MUX_CFG_24XX
(
"P21_242X_GPIO12"
,
0x0ca
,
3
,
0
,
0
,
1
)
MUX_CFG_24XX
(
"AA10_242X_GPIO13"
,
0x0e5
,
3
,
0
,
0
,
1
)
MUX_CFG_24XX
(
"AA6_242X_GPIO14"
,
0x0e6
,
3
,
0
,
0
,
1
)
MUX_CFG_24XX
(
"AA4_242X_GPIO15"
,
0x0e7
,
3
,
0
,
0
,
1
)
MUX_CFG_24XX
(
"Y11_242X_GPIO16"
,
0x0e8
,
3
,
0
,
0
,
1
)
MUX_CFG_24XX
(
"AA12_242X_GPIO17"
,
0x0e9
,
3
,
0
,
0
,
1
)
MUX_CFG_24XX
(
"AA8_242X_GPIO58"
,
0x0ea
,
3
,
0
,
0
,
1
)
MUX_CFG_24XX
(
"M21_242X_GPIO11"
,
0x0c9
,
3
,
1
,
1
,
1
)
MUX_CFG_24XX
(
"P21_242X_GPIO12"
,
0x0ca
,
3
,
0
,
0
,
1
)
MUX_CFG_24XX
(
"AA10_242X_GPIO13"
,
0x0e5
,
3
,
0
,
0
,
1
)
MUX_CFG_24XX
(
"AA6_242X_GPIO14"
,
0x0e6
,
3
,
0
,
0
,
1
)
MUX_CFG_24XX
(
"AA4_242X_GPIO15"
,
0x0e7
,
3
,
0
,
0
,
1
)
MUX_CFG_24XX
(
"Y11_242X_GPIO16"
,
0x0e8
,
3
,
0
,
0
,
1
)
MUX_CFG_24XX
(
"AA12_242X_GPIO17"
,
0x0e9
,
3
,
0
,
0
,
1
)
MUX_CFG_24XX
(
"AA8_242X_GPIO58"
,
0x0ea
,
3
,
0
,
0
,
1
)
MUX_CFG_24XX
(
"Y20_24XX_GPIO60"
,
0x12c
,
3
,
0
,
0
,
1
)
MUX_CFG_24XX
(
"W4__24XX_GPIO74"
,
0x0f2
,
3
,
0
,
0
,
1
)
MUX_CFG_24XX
(
"W4__24XX_GPIO74"
,
0x0f2
,
3
,
0
,
0
,
1
)
MUX_CFG_24XX
(
"M15_24XX_GPIO92"
,
0x10a
,
3
,
0
,
0
,
1
)
MUX_CFG_24XX
(
"J15_24XX_GPIO99"
,
0x113
,
3
,
1
,
1
,
1
)
MUX_CFG_24XX
(
"J15_24XX_GPIO99"
,
0x113
,
3
,
1
,
1
,
1
)
MUX_CFG_24XX
(
"V14_24XX_GPIO117"
,
0x128
,
3
,
1
,
0
,
1
)
MUX_CFG_24XX
(
"P14_24XX_GPIO125"
,
0x140
,
3
,
1
,
1
,
1
)
...
...
@@ -95,17 +95,17 @@ MUX_CFG_24XX("T3_242X_GPIO55", 0xd9, 3, 0, 0, 1)
MUX_CFG_24XX
(
"U2_242X_GPIO56"
,
0xda
,
3
,
0
,
0
,
1
)
/* 24xx external DMA requests */
MUX_CFG_24XX
(
"AA10_242X_DMAREQ0"
,
0x0e5
,
2
,
0
,
0
,
1
)
MUX_CFG_24XX
(
"AA6_242X_DMAREQ1"
,
0x0e6
,
2
,
0
,
0
,
1
)
MUX_CFG_24XX
(
"E4_242X_DMAREQ2"
,
0x074
,
2
,
0
,
0
,
1
)
MUX_CFG_24XX
(
"G4_242X_DMAREQ3"
,
0x073
,
2
,
0
,
0
,
1
)
MUX_CFG_24XX
(
"D3_242X_DMAREQ4"
,
0x072
,
2
,
0
,
0
,
1
)
MUX_CFG_24XX
(
"E3_242X_DMAREQ5"
,
0x071
,
2
,
0
,
0
,
1
)
MUX_CFG_24XX
(
"AA10_242X_DMAREQ0"
,
0x0e5
,
2
,
0
,
0
,
1
)
MUX_CFG_24XX
(
"AA6_242X_DMAREQ1"
,
0x0e6
,
2
,
0
,
0
,
1
)
MUX_CFG_24XX
(
"E4_242X_DMAREQ2"
,
0x074
,
2
,
0
,
0
,
1
)
MUX_CFG_24XX
(
"G4_242X_DMAREQ3"
,
0x073
,
2
,
0
,
0
,
1
)
MUX_CFG_24XX
(
"D3_242X_DMAREQ4"
,
0x072
,
2
,
0
,
0
,
1
)
MUX_CFG_24XX
(
"E3_242X_DMAREQ5"
,
0x071
,
2
,
0
,
0
,
1
)
/* TSC IRQ */
MUX_CFG_24XX
(
"P20_24XX_TSC_IRQ"
,
0x108
,
0
,
0
,
0
,
1
)
/* UART3
*/
/* UART3 */
MUX_CFG_24XX
(
"K15_24XX_UART3_TX"
,
0x118
,
0
,
0
,
0
,
1
)
MUX_CFG_24XX
(
"K14_24XX_UART3_RX"
,
0x119
,
0
,
0
,
0
,
1
)
...
...
arch/arm/mach-omap2/usb-tusb6010.c
0 → 100644
View file @
92633b72
/*
* linux/arch/arm/mach-omap2/usb-tusb6010.c
*
* Copyright (C) 2006 Nokia Corporation
*
* 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/types.h>
#include <linux/errno.h>
#include <linux/delay.h>
#include <linux/platform_device.h>
#include <linux/usb/musb.h>
#include <asm/arch/gpmc.h>
#include <asm/arch/gpio.h>
#include <asm/arch/mux.h>
static
u8
async_cs
,
sync_cs
;
static
unsigned
refclk_psec
;
/* t2_ps, when quantized to fclk units, must happen no earlier than
* the clock after after t1_NS.
*
* Return a possibly updated value of t2_ps, converted to nsec.
*/
static
unsigned
next_clk
(
unsigned
t1_NS
,
unsigned
t2_ps
,
unsigned
fclk_ps
)
{
unsigned
t1_ps
=
t1_NS
*
1000
;
unsigned
t1_f
,
t2_f
;
if
((
t1_ps
+
fclk_ps
)
<
t2_ps
)
return
t2_ps
/
1000
;
t1_f
=
(
t1_ps
+
fclk_ps
-
1
)
/
fclk_ps
;
t2_f
=
(
t2_ps
+
fclk_ps
-
1
)
/
fclk_ps
;
if
(
t1_f
>=
t2_f
)
t2_f
=
t1_f
+
1
;
return
(
t2_f
*
fclk_ps
)
/
1000
;
}
/* NOTE: timings are from tusb 6010 datasheet Rev 1.8, 12-Sept 2006 */
static
int
tusb_set_async_mode
(
unsigned
sysclk_ps
,
unsigned
fclk_ps
)
{
struct
gpmc_timings
t
;
unsigned
t_acsnh_advnh
=
sysclk_ps
+
3000
;
unsigned
tmp
;
memset
(
&
t
,
0
,
sizeof
(
t
));
/* CS_ON = t_acsnh_acsnl */
t
.
cs_on
=
8
;
/* ADV_ON = t_acsnh_advnh - t_advn */
t
.
adv_on
=
next_clk
(
t
.
cs_on
,
t_acsnh_advnh
-
7000
,
fclk_ps
);
/*
* READ ... from omap2420 TRM fig 12-13
*/
/* ADV_RD_OFF = t_acsnh_advnh */
t
.
adv_rd_off
=
next_clk
(
t
.
adv_on
,
t_acsnh_advnh
,
fclk_ps
);
/* OE_ON = t_acsnh_advnh + t_advn_oen (then wait for nRDY) */
t
.
oe_on
=
next_clk
(
t
.
adv_on
,
t_acsnh_advnh
+
1000
,
fclk_ps
);
/* ACCESS = counters continue only after nRDY */
tmp
=
t
.
oe_on
*
1000
+
300
;
t
.
access
=
next_clk
(
t
.
oe_on
,
tmp
,
fclk_ps
);
/* OE_OFF = after data gets sampled */
tmp
=
t
.
access
*
1000
;
t
.
oe_off
=
next_clk
(
t
.
access
,
tmp
,
fclk_ps
);
t
.
cs_rd_off
=
t
.
oe_off
;
tmp
=
t
.
cs_rd_off
*
1000
+
7000
/* t_acsn_rdy_z */
;
t
.
rd_cycle
=
next_clk
(
t
.
cs_rd_off
,
tmp
,
fclk_ps
);
/*
* WRITE ... from omap2420 TRM fig 12-15
*/
/* ADV_WR_OFF = t_acsnh_advnh */
t
.
adv_wr_off
=
t
.
adv_rd_off
;
/* WE_ON = t_acsnh_advnh + t_advn_wen (then wait for nRDY) */
t
.
we_on
=
next_clk
(
t
.
adv_wr_off
,
t_acsnh_advnh
+
1000
,
fclk_ps
);
/* WE_OFF = after data gets sampled */
tmp
=
t
.
we_on
*
1000
+
300
;
t
.
we_off
=
next_clk
(
t
.
we_on
,
tmp
,
fclk_ps
);
t
.
cs_wr_off
=
t
.
we_off
;
tmp
=
t
.
cs_wr_off
*
1000
+
7000
/* t_acsn_rdy_z */
;
t
.
wr_cycle
=
next_clk
(
t
.
cs_wr_off
,
tmp
,
fclk_ps
);
return
gpmc_cs_set_timings
(
async_cs
,
&
t
);
}
static
int
tusb_set_sync_mode
(
unsigned
sysclk_ps
,
unsigned
fclk_ps
)
{
struct
gpmc_timings
t
;
unsigned
t_scsnh_advnh
=
sysclk_ps
+
3000
;
unsigned
tmp
;
memset
(
&
t
,
0
,
sizeof
(
t
));
t
.
cs_on
=
8
;
/* ADV_ON = t_acsnh_advnh - t_advn */
t
.
adv_on
=
next_clk
(
t
.
cs_on
,
t_scsnh_advnh
-
7000
,
fclk_ps
);
/* GPMC_CLK rate = fclk rate / div */
t
.
sync_clk
=
12
/* 11.1 nsec */
;
tmp
=
(
t
.
sync_clk
*
1000
+
fclk_ps
-
1
)
/
fclk_ps
;
if
(
tmp
>
4
)
return
-
ERANGE
;
if
(
tmp
<=
0
)
tmp
=
1
;
t
.
page_burst_access
=
(
fclk_ps
*
tmp
)
/
1000
;
/*
* READ ... based on omap2420 TRM fig 12-19, 12-20
*/
/* ADV_RD_OFF = t_scsnh_advnh */
t
.
adv_rd_off
=
next_clk
(
t
.
adv_on
,
t_scsnh_advnh
,
fclk_ps
);
/* OE_ON = t_scsnh_advnh + t_advn_oen * fclk_ps (then wait for nRDY) */
tmp
=
(
t
.
adv_rd_off
*
1000
)
+
(
3
*
fclk_ps
);
t
.
oe_on
=
next_clk
(
t
.
adv_on
,
tmp
,
fclk_ps
);
/* ACCESS = number of clock cycles after t_adv_eon */
tmp
=
(
t
.
oe_on
*
1000
)
+
(
5
*
fclk_ps
);
t
.
access
=
next_clk
(
t
.
oe_on
,
tmp
,
fclk_ps
);
/* OE_OFF = after data gets sampled */
tmp
=
(
t
.
access
*
1000
)
+
(
1
*
fclk_ps
);
t
.
oe_off
=
next_clk
(
t
.
access
,
tmp
,
fclk_ps
);
t
.
cs_rd_off
=
t
.
oe_off
;
tmp
=
t
.
cs_rd_off
*
1000
+
7000
/* t_scsn_rdy_z */
;
t
.
rd_cycle
=
next_clk
(
t
.
cs_rd_off
,
tmp
,
fclk_ps
);
/*
* WRITE ... based on omap2420 TRM fig 12-21
*/
/* ADV_WR_OFF = t_scsnh_advnh */
t
.
adv_wr_off
=
t
.
adv_rd_off
;
/* WE_ON = t_scsnh_advnh + t_advn_wen * fclk_ps (then wait for nRDY) */
tmp
=
(
t
.
adv_wr_off
*
1000
)
+
(
3
*
fclk_ps
);
t
.
we_on
=
next_clk
(
t
.
adv_wr_off
,
tmp
,
fclk_ps
);
/* WE_OFF = number of clock cycles after t_adv_wen */
tmp
=
(
t
.
we_on
*
1000
)
+
(
6
*
fclk_ps
);
t
.
we_off
=
next_clk
(
t
.
we_on
,
tmp
,
fclk_ps
);
t
.
cs_wr_off
=
t
.
we_off
;
tmp
=
t
.
cs_wr_off
*
1000
+
7000
/* t_scsn_rdy_z */
;
t
.
wr_cycle
=
next_clk
(
t
.
cs_wr_off
,
tmp
,
fclk_ps
);
return
gpmc_cs_set_timings
(
sync_cs
,
&
t
);
}
extern
unsigned
long
gpmc_get_fclk_period
(
void
);
/* tusb driver calls this when it changes the chip's clocking */
int
tusb6010_platform_retime
(
unsigned
is_refclk
)
{
static
const
char
error
[]
=
KERN_ERR
"tusb6010 %s retime error %d
\n
"
;
unsigned
fclk_ps
=
gpmc_get_fclk_period
();
unsigned
sysclk_ps
;
int
status
;
if
(
!
refclk_psec
)
return
-
ENODEV
;
sysclk_ps
=
is_refclk
?
refclk_psec
:
TUSB6010_OSCCLK_60
;
status
=
tusb_set_async_mode
(
sysclk_ps
,
fclk_ps
);
if
(
status
<
0
)
{
printk
(
error
,
"async"
,
status
);
goto
done
;
}
status
=
tusb_set_sync_mode
(
sysclk_ps
,
fclk_ps
);
if
(
status
<
0
)
printk
(
error
,
"sync"
,
status
);
done:
return
status
;
}
EXPORT_SYMBOL_GPL
(
tusb6010_platform_retime
);
static
struct
resource
tusb_resources
[]
=
{
/* Order is significant! The start/end fields
* are updated during setup..
*/
{
/* Asynchronous access */
.
flags
=
IORESOURCE_MEM
,
},
{
/* Synchronous access */
.
flags
=
IORESOURCE_MEM
,
},
{
/* IRQ */
.
flags
=
IORESOURCE_IRQ
,
},
};
static
u64
tusb_dmamask
=
~
(
u32
)
0
;
static
struct
platform_device
tusb_device
=
{
.
name
=
"musb_hdrc"
,
.
id
=
-
1
,
.
dev
=
{
.
dma_mask
=
&
tusb_dmamask
,
.
coherent_dma_mask
=
0xffffffff
,
},
.
num_resources
=
ARRAY_SIZE
(
tusb_resources
),
.
resource
=
tusb_resources
,
};
/* this may be called only from board-*.c setup code */
int
__init
tusb6010_setup_interface
(
struct
musb_hdrc_platform_data
*
data
,
unsigned
ps_refclk
,
unsigned
waitpin
,
unsigned
async
,
unsigned
sync
,
unsigned
irq
,
unsigned
dmachan
)
{
int
status
;
static
char
error
[]
__initdata
=
KERN_ERR
"tusb6010 init error %d, %d
\n
"
;
/* ASYNC region, primarily for PIO */
status
=
gpmc_cs_request
(
async
,
SZ_16M
,
(
unsigned
long
*
)
&
tusb_resources
[
0
].
start
);
if
(
status
<
0
)
{
printk
(
error
,
1
,
status
);
return
status
;
}
tusb_resources
[
0
].
end
=
tusb_resources
[
0
].
start
+
0x9ff
;
async_cs
=
async
;
gpmc_cs_write_reg
(
async
,
GPMC_CS_CONFIG1
,
GPMC_CONFIG1_PAGE_LEN
(
2
)
|
GPMC_CONFIG1_WAIT_READ_MON
|
GPMC_CONFIG1_WAIT_WRITE_MON
|
GPMC_CONFIG1_WAIT_PIN_SEL
(
waitpin
)
|
GPMC_CONFIG1_READTYPE_ASYNC
|
GPMC_CONFIG1_WRITETYPE_ASYNC
|
GPMC_CONFIG1_DEVICESIZE_16
|
GPMC_CONFIG1_DEVICETYPE_NOR
|
GPMC_CONFIG1_MUXADDDATA
);
/* SYNC region, primarily for DMA */
status
=
gpmc_cs_request
(
sync
,
SZ_16M
,
(
unsigned
long
*
)
&
tusb_resources
[
1
].
start
);
if
(
status
<
0
)
{
printk
(
error
,
2
,
status
);
return
status
;
}
tusb_resources
[
1
].
end
=
tusb_resources
[
1
].
start
+
0x9ff
;
sync_cs
=
sync
;
gpmc_cs_write_reg
(
sync
,
GPMC_CS_CONFIG1
,
GPMC_CONFIG1_READMULTIPLE_SUPP
|
GPMC_CONFIG1_READTYPE_SYNC
|
GPMC_CONFIG1_WRITEMULTIPLE_SUPP
|
GPMC_CONFIG1_WRITETYPE_SYNC
|
GPMC_CONFIG1_CLKACTIVATIONTIME
(
1
)
|
GPMC_CONFIG1_PAGE_LEN
(
2
)
|
GPMC_CONFIG1_WAIT_READ_MON
|
GPMC_CONFIG1_WAIT_WRITE_MON
|
GPMC_CONFIG1_WAIT_PIN_SEL
(
waitpin
)
|
GPMC_CONFIG1_DEVICESIZE_16
|
GPMC_CONFIG1_DEVICETYPE_NOR
|
GPMC_CONFIG1_MUXADDDATA
/* fclk divider gets set later */
);
/* IRQ */
status
=
omap_request_gpio
(
irq
);
if
(
status
<
0
)
{
printk
(
error
,
3
,
status
);
return
status
;
}
omap_set_gpio_direction
(
irq
,
1
);
tusb_resources
[
2
].
start
=
irq
+
IH_GPIO_BASE
;
/* set up memory timings ... can speed them up later */
if
(
!
ps_refclk
)
{
printk
(
error
,
4
,
status
);
return
-
ENODEV
;
}
refclk_psec
=
ps_refclk
;
status
=
tusb6010_platform_retime
(
1
);
if
(
status
<
0
)
{
printk
(
error
,
5
,
status
);
return
status
;
}
/* finish device setup ... */
if
(
!
data
)
{
printk
(
error
,
6
,
status
);
return
-
ENODEV
;
}
data
->
multipoint
=
1
;
tusb_device
.
dev
.
platform_data
=
data
;
/* REVISIT let the driver know what DMA channels work */
if
(
!
dmachan
)
tusb_device
.
dev
.
dma_mask
=
NULL
;
else
{
/* assume OMAP 2420 ES2.0 and later */
if
(
dmachan
&
(
1
<<
0
))
omap_cfg_reg
(
AA10_242X_DMAREQ0
);
if
(
dmachan
&
(
1
<<
1
))
omap_cfg_reg
(
AA6_242X_DMAREQ1
);
if
(
dmachan
&
(
1
<<
2
))
omap_cfg_reg
(
E4_242X_DMAREQ2
);
if
(
dmachan
&
(
1
<<
3
))
omap_cfg_reg
(
G4_242X_DMAREQ3
);
if
(
dmachan
&
(
1
<<
4
))
omap_cfg_reg
(
D3_242X_DMAREQ4
);
if
(
dmachan
&
(
1
<<
5
))
omap_cfg_reg
(
E3_242X_DMAREQ5
);
}
/* so far so good ... register the device */
status
=
platform_device_register
(
&
tusb_device
);
if
(
status
<
0
)
{
printk
(
error
,
7
,
status
);
return
status
;
}
return
0
;
}
arch/arm/plat-omap/Kconfig
View file @
92633b72
...
...
@@ -20,10 +20,15 @@ endchoice
comment "OMAP Feature Selections"
config OMAP_DEBUG_
LED
S
config OMAP_DEBUG_
DEVICE
S
bool
help
For debug card leds on TI reference boards.
For debug cards on TI reference boards.
config OMAP_DEBUG_LEDS
bool
depends on OMAP_DEBUG_DEVICES
default y if LEDS || LEDS_OMAP_DEBUG
config OMAP_RESET_CLOCKS
bool "Reset unused clocks during boot"
...
...
arch/arm/plat-omap/Makefile
View file @
92633b72
...
...
@@ -17,4 +17,5 @@ obj-$(CONFIG_ARCH_OMAP16XX) += ocpi.o
obj-$(CONFIG_CPU_FREQ)
+=
cpu-omap.o
obj-$(CONFIG_OMAP_DM_TIMER)
+=
dmtimer.o
obj-$(CONFIG_OMAP_DEBUG_DEVICES)
+=
debug-devices.o
obj-$(CONFIG_OMAP_DEBUG_LEDS)
+=
debug-leds.o
arch/arm/plat-omap/debug-devices.c
0 → 100644
View file @
92633b72
/*
* linux/arch/arm/plat-omap/debug-devices.c
*
* Copyright (C) 2005 Nokia Corporation
* Modified from mach-omap2/board-h4.c
*
* 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/init.h>
#include <linux/platform_device.h>
#include <asm/hardware.h>
#include <asm/io.h>
#include <asm/arch/board.h>
#include <asm/arch/gpio.h>
/* Many OMAP development platforms reuse the same "debug board"; these
* platforms include H2, H3, H4, and Perseus2.
*/
static
struct
resource
smc91x_resources
[]
=
{
[
0
]
=
{
.
flags
=
IORESOURCE_MEM
,
},
[
1
]
=
{
.
flags
=
IORESOURCE_IRQ
,
},
};
static
struct
platform_device
smc91x_device
=
{
.
name
=
"smc91x"
,
.
id
=
-
1
,
.
num_resources
=
ARRAY_SIZE
(
smc91x_resources
),
.
resource
=
smc91x_resources
,
};
static
struct
resource
led_resources
[]
=
{
[
0
]
=
{
.
flags
=
IORESOURCE_MEM
,
},
};
static
struct
platform_device
led_device
=
{
.
name
=
"omap_dbg_led"
,
.
id
=
-
1
,
.
num_resources
=
ARRAY_SIZE
(
led_resources
),
.
resource
=
led_resources
,
};
static
struct
platform_device
*
debug_devices
[]
__initdata
=
{
&
smc91x_device
,
&
led_device
,
/* ps2 kbd + mouse ports */
/* 4 extra uarts */
/* 6 input dip switches */
/* 8 output pins */
};
int
__init
debug_card_init
(
u32
addr
,
unsigned
gpio
)
{
int
status
;
smc91x_resources
[
0
].
start
=
addr
+
0x300
;
smc91x_resources
[
0
].
end
=
addr
+
0x30f
;
smc91x_resources
[
1
].
start
=
OMAP_GPIO_IRQ
(
gpio
);
smc91x_resources
[
1
].
end
=
OMAP_GPIO_IRQ
(
gpio
);
status
=
omap_request_gpio
(
gpio
);
if
(
status
<
0
)
{
printk
(
KERN_ERR
"GPIO%d unavailable for smc91x IRQ
\n
"
,
gpio
);
return
status
;
}
omap_set_gpio_direction
(
gpio
,
1
);
led_resources
[
0
].
start
=
addr
;
led_resources
[
0
].
end
=
addr
+
SZ_4K
-
1
;
return
platform_add_devices
(
debug_devices
,
ARRAY_SIZE
(
debug_devices
));
}
arch/arm/plat-omap/dma.c
View file @
92633b72
...
...
@@ -1347,11 +1347,6 @@ void omap_stop_lcd_dma(void)
omap_writew
(
w
,
OMAP1610_DMA_LCD_CTRL
);
}
int
omap_lcd_dma_ext_running
(
void
)
{
return
lcd_dma
.
ext_ctrl
&&
lcd_dma
.
active
;
}
/*----------------------------------------------------------------------------*/
static
int
__init
omap_init_dma
(
void
)
...
...
@@ -1493,7 +1488,6 @@ EXPORT_SYMBOL(omap_free_lcd_dma);
EXPORT_SYMBOL
(
omap_enable_lcd_dma
);
EXPORT_SYMBOL
(
omap_setup_lcd_dma
);
EXPORT_SYMBOL
(
omap_stop_lcd_dma
);
EXPORT_SYMBOL
(
omap_lcd_dma_ext_running
);
EXPORT_SYMBOL
(
omap_set_lcd_dma_b1
);
EXPORT_SYMBOL
(
omap_set_lcd_dma_single_transfer
);
EXPORT_SYMBOL
(
omap_set_lcd_dma_ext_controller
);
...
...
include/asm-arm/arch-omap/blizzard.h
0 → 100644
View file @
92633b72
#ifndef _BLIZZARD_H
#define _BLIZZARD_H
struct
blizzard_platform_data
{
void
(
*
power_up
)(
struct
device
*
dev
);
void
(
*
power_down
)(
struct
device
*
dev
);
unsigned
long
(
*
get_clock_rate
)(
struct
device
*
dev
);
unsigned
te_connected
:
1
;
};
#endif
include/asm-arm/arch-omap/board-2430sdp.h
0 → 100644
View file @
92633b72
/*
* linux/include/asm-arm/arch-omap/board-2430sdp.h
*
* Hardware definitions for TI OMAP2430 SDP board.
*
* Based on board-h4.h by Dirk Behme <dirk.behme@de.bosch.com>
*
* 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 SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
* NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* 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.,
* 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#ifndef __ASM_ARCH_OMAP_2430SDP_H
#define __ASM_ARCH_OMAP_2430SDP_H
/* Placeholder for 2430SDP specific defines */
#define OMAP24XX_ETHR_START 0x08000300
#define OMAP24XX_ETHR_GPIO_IRQ 149
#define SDP2430_CS0_BASE 0x04000000
#define TWL4030_IRQNUM INT_24XX_SYS_NIRQ
/* TWL4030 Primary Interrupt Handler (PIH) interrupts */
#define IH_TWL4030_BASE IH_BOARD_BASE
#define IH_TWL4030_END (IH_TWL4030_BASE+8)
#define NR_IRQS (IH_TWL4030_END)
#endif
/* __ASM_ARCH_OMAP_2430SDP_H */
include/asm-arm/arch-omap/board-palmte.h
0 → 100644
View file @
92633b72
/*
* linux/include/asm-arm/arch-omap/board-palmte.h
*
* Hardware definitions for the Palm Tungsten E device.
*
* Maintainters : http://palmtelinux.sf.net
* palmtelinux-developpers@lists.sf.net
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*/
#ifndef __OMAP_BOARD_PALMTE_H
#define __OMAP_BOARD_PALMTE_H
#include <asm/arch/gpio.h>
#define PALMTE_USBDETECT_GPIO 0
#define PALMTE_USB_OR_DC_GPIO 1
#define PALMTE_TSC_GPIO 4
#define PALMTE_PINTDAV_GPIO 6
#define PALMTE_MMC_WP_GPIO 8
#define PALMTE_MMC_POWER_GPIO 9
#define PALMTE_HDQ_GPIO 11
#define PALMTE_HEADPHONES_GPIO 14
#define PALMTE_SPEAKER_GPIO 15
#define PALMTE_DC_GPIO OMAP_MPUIO(2)
#define PALMTE_MMC_SWITCH_GPIO OMAP_MPUIO(4)
#define PALMTE_MMC1_GPIO OMAP_MPUIO(6)
#define PALMTE_MMC2_GPIO OMAP_MPUIO(7)
#define PALMTE_MMC3_GPIO OMAP_MPUIO(11)
#endif
/* __OMAP_BOARD_PALMTE_H */
include/asm-arm/arch-omap/board-palmtt.h
0 → 100644
View file @
92633b72
/*
* linux/include/asm-arm/arch-omap/board-palmte.h
*
* Hardware definitions for the Palm Tungsten|T device.
*
* Maintainters : Marek Vasut <marek.vasut@gmail.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.
*/
#ifndef __OMAP_BOARD_PALMTT_H
#define __OMAP_BOARD_PALMTT_H
#define PALMTT_USBDETECT_GPIO 0
#define PALMTT_CABLE_GPIO 1
#define PALMTT_LED_GPIO 3
#define PALMTT_PENIRQ_GPIO 6
#define PALMTT_MMC_WP_GPIO 8
#define PALMTT_HDQ_GPIO 11
#endif
/* __OMAP_BOARD_PALMTT_H */
include/asm-arm/arch-omap/board-palmz71.h
0 → 100644
View file @
92633b72
/*
* linux/include/asm-arm/arch-omap/board-palmz71.h
*
* Hardware definitions for the Palm Zire71 device.
*
* Maintainters : Marek Vasut <marek.vasut@gmail.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.
*/
#ifndef __OMAP_BOARD_PALMZ71_H
#define __OMAP_BOARD_PALMZ71_H
#define PALMZ71_USBDETECT_GPIO 0
#define PALMZ71_PENIRQ_GPIO 6
#define PALMZ71_MMC_WP_GPIO 8
#define PALMZ71_HDQ_GPIO 11
#define PALMZ71_HOTSYNC_GPIO OMAP_MPUIO(1)
#define PALMZ71_CABLE_GPIO OMAP_MPUIO(2)
#define PALMZ71_SLIDER_GPIO OMAP_MPUIO(3)
#define PALMZ71_MMC_IN_GPIO OMAP_MPUIO(4)
#endif
/* __OMAP_BOARD_PALMZ71_H */
include/asm-arm/arch-omap/board-sx1.h
0 → 100644
View file @
92633b72
/*
* Siemens SX1 board definitions
*
* Copyright: Vovan888 at gmail com
*
* This package 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.
*
* THIS PACKAGE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*/
#ifndef __ASM_ARCH_SX1_I2C_CHIPS_H
#define __ASM_ARCH_SX1_I2C_CHIPS_H
#define SOFIA_MAX_LIGHT_VAL 0x2B
#define SOFIA_I2C_ADDR 0x32
/* Sofia reg 3 bits masks */
#define SOFIA_POWER1_REG 0x03
#define SOFIA_USB_POWER 0x01
#define SOFIA_MMC_POWER 0x04
#define SOFIA_BLUETOOTH_POWER 0x08
#define SOFIA_MMILIGHT_POWER 0x20
#define SOFIA_POWER2_REG 0x04
#define SOFIA_BACKLIGHT_REG 0x06
#define SOFIA_KEYLIGHT_REG 0x07
#define SOFIA_DIMMING_REG 0x09
/* Function Prototypes for SX1 devices control on I2C bus */
int
sx1_setbacklight
(
u8
backlight
);
int
sx1_getbacklight
(
u8
*
backlight
);
int
sx1_setkeylight
(
u8
keylight
);
int
sx1_getkeylight
(
u8
*
keylight
);
int
sx1_setmmipower
(
u8
onoff
);
int
sx1_setusbpower
(
u8
onoff
);
int
sx1_setmmcpower
(
u8
onoff
);
#endif
/* __ASM_ARCH_SX1_I2C_CHIPS_H */
include/asm-arm/arch-omap/board.h
View file @
92633b72
...
...
@@ -179,4 +179,8 @@ extern const void *omap_get_var_config(u16 tag, size_t *len);
extern
struct
omap_board_config_kernel
*
omap_board_config
;
extern
int
omap_board_config_size
;
/* for TI reference platforms sharing the same debug card */
extern
int
debug_card_init
(
u32
addr
,
unsigned
gpio
);
#endif
include/asm-arm/arch-omap/dma.h
View file @
92633b72
...
...
@@ -417,7 +417,6 @@ extern void omap_free_lcd_dma(void);
extern
void
omap_setup_lcd_dma
(
void
);
extern
void
omap_enable_lcd_dma
(
void
);
extern
void
omap_stop_lcd_dma
(
void
);
extern
int
omap_lcd_dma_ext_running
(
void
);
extern
void
omap_set_lcd_dma_ext_controller
(
int
external
);
extern
void
omap_set_lcd_dma_single_transfer
(
int
single
);
extern
void
omap_set_lcd_dma_b1
(
unsigned
long
addr
,
u16
fb_xres
,
u16
fb_yres
,
...
...
include/asm-arm/arch-omap/eac.h
0 → 100644
View file @
92633b72
/*
* linux/include/asm-arm/arch-omap2/eac.h
*
* Defines for Enhanced Audio Controller
*
* Contact: Jarkko Nikula <jarkko.nikula@nokia.com>
*
* Copyright (C) 2006 Nokia Corporation
* Copyright (C) 2004 Texas Instruments, Inc.
*
* 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.
*
* 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., 51 Franklin St, Fifth Floor, Boston, MA
* 02110-1301 USA
*
*/
#ifndef __ASM_ARM_ARCH_OMAP2_EAC_H
#define __ASM_ARM_ARCH_OMAP2_EAC_H
#include <asm/arch/io.h>
#include <asm/arch/hardware.h>
#include <asm/irq.h>
#include <sound/driver.h>
#include <sound/core.h>
/* master codec clock source */
#define EAC_MCLK_EXT_MASK 0x100
enum
eac_mclk_src
{
EAC_MCLK_INT_11290000
,
/* internal 96 MHz / 8.5 = 11.29 Mhz */
EAC_MCLK_EXT_11289600
=
EAC_MCLK_EXT_MASK
,
EAC_MCLK_EXT_12288000
,
EAC_MCLK_EXT_2x11289600
,
EAC_MCLK_EXT_2x12288000
,
};
/* codec port interface mode */
enum
eac_codec_mode
{
EAC_CODEC_PCM
,
EAC_CODEC_AC97
,
EAC_CODEC_I2S_MASTER
,
/* codec port, I.e. EAC is the master */
EAC_CODEC_I2S_SLAVE
,
};
/* configuration structure for I2S mode */
struct
eac_i2s_conf
{
/* if enabled, then first data slot (left channel) is signaled as
* positive level of frame sync EAC.AC_FS */
unsigned
polarity_changed_mode
:
1
;
/* if enabled, then serial data starts one clock cycle after the
* of EAC.AC_FS for first audio slot */
unsigned
sync_delay_enable
:
1
;
};
/* configuration structure for EAC codec port */
struct
eac_codec
{
enum
eac_mclk_src
mclk_src
;
enum
eac_codec_mode
codec_mode
;
union
{
struct
eac_i2s_conf
i2s
;
}
codec_conf
;
int
default_rate
;
/* audio sampling rate */
int
(
*
set_power
)(
void
*
private_data
,
int
dac
,
int
adc
);
int
(
*
register_controls
)(
void
*
private_data
,
struct
snd_card
*
card
);
const
char
*
short_name
;
void
*
private_data
;
};
/* structure for passing platform dependent data to the EAC driver */
struct
eac_platform_data
{
int
(
*
init
)(
struct
device
*
eac_dev
);
void
(
*
cleanup
)(
struct
device
*
eac_dev
);
/* these callbacks are used to configure & control external MCLK
* source. NULL if not used */
int
(
*
enable_ext_clocks
)(
struct
device
*
eac_dev
);
void
(
*
disable_ext_clocks
)(
struct
device
*
eac_dev
);
};
extern
void
omap_init_eac
(
struct
eac_platform_data
*
pdata
);
extern
int
eac_register_codec
(
struct
device
*
eac_dev
,
struct
eac_codec
*
codec
);
extern
void
eac_unregister_codec
(
struct
device
*
eac_dev
);
extern
int
eac_set_mode
(
struct
device
*
eac_dev
,
int
play
,
int
rec
);
#endif
/* __ASM_ARM_ARCH_OMAP2_EAC_H */
include/asm-arm/arch-omap/gpmc.h
View file @
92633b72
...
...
@@ -23,9 +23,10 @@
#define GPMC_CS_NAND_DATA 0x24
#define GPMC_CONFIG1_WRAPBURST_SUPP (1 << 31)
#define GPMC_CONFIG1_READMULTIPLE_SUPP (1 <<
2
0)
#define GPMC_CONFIG1_READMULTIPLE_SUPP (1 <<
3
0)
#define GPMC_CONFIG1_READTYPE_ASYNC (0 << 29)
#define GPMC_CONFIG1_READTYPE_SYNC (1 << 29)
#define GPMC_CONFIG1_WRITEMULTIPLE_SUPP (1 << 28)
#define GPMC_CONFIG1_WRITETYPE_ASYNC (0 << 27)
#define GPMC_CONFIG1_WRITETYPE_SYNC (1 << 27)
#define GPMC_CONFIG1_CLKACTIVATIONTIME(val) ((val & 3) << 25)
...
...
@@ -80,6 +81,8 @@ struct gpmc_timings {
};
extern
unsigned
int
gpmc_ns_to_ticks
(
unsigned
int
time_ns
);
extern
unsigned
int
gpmc_round_ns_to_ticks
(
unsigned
int
time_ns
);
extern
unsigned
long
gpmc_get_fclk_period
(
void
);
extern
void
gpmc_cs_write_reg
(
int
cs
,
int
idx
,
u32
val
);
extern
u32
gpmc_cs_read_reg
(
int
cs
,
int
idx
);
...
...
include/asm-arm/arch-omap/hardware.h
View file @
92633b72
...
...
@@ -318,6 +318,10 @@
#include "board-h4.h"
#endif
#ifdef CONFIG_MACH_OMAP_2430SDP
#include "board-2430sdp.h"
#endif
#ifdef CONFIG_MACH_OMAP_APOLLON
#include "board-apollon.h"
#endif
...
...
@@ -330,6 +334,22 @@
#include "board-voiceblue.h"
#endif
#ifdef CONFIG_MACH_OMAP_PALMTE
#include "board-palmte.h"
#endif
#ifdef CONFIG_MACH_OMAP_PALMZ71
#include "board-palmz71.h"
#endif
#ifdef CONFIG_MACH_OMAP_PALMTT
#include "board-palmtt.h"
#endif
#ifdef CONFIG_MACH_SX1
#include "board-sx1.h"
#endif
#endif
/* !__ASSEMBLER__ */
#endif
/* __ASM_ARCH_OMAP_HARDWARE_H */
include/asm-arm/arch-omap/io.h
View file @
92633b72
...
...
@@ -72,6 +72,16 @@
#define L4_24XX_PHYS L4_24XX_BASE
/* 0x48000000 */
#define L4_24XX_VIRT 0xd8000000
#define L4_24XX_SIZE SZ_1M
/* 1MB of 128MB used, want 1MB sect */
#ifdef CONFIG_ARCH_OMAP2430
#define L4_WK_243X_PHYS L4_WK_243X_BASE
/* 0x49000000 */
#define L4_WK_243X_VIRT 0xd9000000
#define L4_WK_243X_SIZE SZ_1M
#define OMAP243X_GPMC_PHYS OMAP243X_GPMC_BASE
/* 0x49000000 */
#define OMAP243X_GPMC_VIRT 0xFE000000
#define OMAP243X_GPMC_SIZE SZ_1M
#endif
#define IO_OFFSET 0x90000000
#define IO_ADDRESS(pa) ((pa) + IO_OFFSET)
/* Works for L3 and L4 */
#define io_p2v(pa) ((pa) + IO_OFFSET)
/* Works for L3 and L4 */
...
...
include/asm-arm/arch-omap/menelaus.h
View file @
92633b72
...
...
@@ -7,6 +7,12 @@
#ifndef __ASM_ARCH_MENELAUS_H
#define __ASM_ARCH_MENELAUS_H
struct
device
;
struct
menelaus_platform_data
{
int
(
*
late_init
)(
struct
device
*
dev
);
};
extern
int
menelaus_register_mmc_callback
(
void
(
*
callback
)(
void
*
data
,
u8
card_mask
),
void
*
data
);
extern
void
menelaus_unregister_mmc_callback
(
void
);
...
...
@@ -20,6 +26,19 @@ extern int menelaus_set_vaux(unsigned int mV);
extern
int
menelaus_set_vdcdc
(
int
dcdc
,
unsigned
int
mV
);
extern
int
menelaus_set_slot_sel
(
int
enable
);
extern
int
menelaus_get_slot_pin_states
(
void
);
extern
int
menelaus_set_vcore_sw
(
unsigned
int
mV
);
extern
int
menelaus_set_vcore_hw
(
unsigned
int
roof_mV
,
unsigned
int
floor_mV
);
#define EN_VPLL_SLEEP (1 << 7)
#define EN_VMMC_SLEEP (1 << 6)
#define EN_VAUX_SLEEP (1 << 5)
#define EN_VIO_SLEEP (1 << 4)
#define EN_VMEM_SLEEP (1 << 3)
#define EN_DC3_SLEEP (1 << 2)
#define EN_DC2_SLEEP (1 << 1)
#define EN_VC_SLEEP (1 << 0)
extern
int
menelaus_set_regulator_sleep
(
int
enable
,
u32
val
);
#if defined(CONFIG_ARCH_OMAP24XX) && defined(CONFIG_MENELAUS)
#define omap_has_menelaus() 1
...
...
@@ -28,4 +47,3 @@ extern int menelaus_get_slot_pin_states(void);
#endif
#endif
include/asm-arm/arch-omap/mmc.h
0 → 100644
View file @
92633b72
/*
* MMC definitions for OMAP2
*
* Copyright (C) 2006 Nokia Corporation
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*/
#ifndef __OMAP2_MMC_H
#define __OMAP2_MMC_H
#include <linux/types.h>
#include <linux/device.h>
#include <linux/mmc/host.h>
#define OMAP_MMC_MAX_SLOTS 2
struct
omap_mmc_platform_data
{
unsigned
enabled
:
1
;
/* number of slots on board */
unsigned
nr_slots
:
2
;
/* nomux means "standard" muxing is wrong on this board, and that
* board-specific code handled it before common init logic.
*/
unsigned
nomux
:
1
;
/* 4 wire signaling is optional, and is only used for SD/SDIO and
* MMCv4 */
unsigned
wire4
:
1
;
/* set if your board has components or wiring that limits the
* maximum frequency on the MMC bus */
unsigned
int
max_freq
;
/* switch the bus to a new slot */
int
(
*
switch_slot
)(
struct
device
*
dev
,
int
slot
);
/* initialize board-specific MMC functionality, can be NULL if
* not supported */
int
(
*
init
)(
struct
device
*
dev
);
void
(
*
cleanup
)(
struct
device
*
dev
);
struct
omap_mmc_slot_data
{
int
(
*
set_bus_mode
)(
struct
device
*
dev
,
int
slot
,
int
bus_mode
);
int
(
*
set_power
)(
struct
device
*
dev
,
int
slot
,
int
power_on
,
int
vdd
);
int
(
*
get_ro
)(
struct
device
*
dev
,
int
slot
);
/* return MMC cover switch state, can be NULL if not supported.
*
* possible return values:
* 0 - open
* 1 - closed
*/
int
(
*
get_cover_state
)(
struct
device
*
dev
,
int
slot
);
const
char
*
name
;
u32
ocr_mask
;
}
slots
[
OMAP_MMC_MAX_SLOTS
];
};
extern
void
omap_set_mmc_info
(
int
host
,
const
struct
omap_mmc_platform_data
*
info
);
/* called from board-specific card detection service routine */
extern
void
omap_mmc_notify_card_detect
(
struct
device
*
dev
,
int
slot
,
int
detected
);
extern
void
omap_mmc_notify_cover_event
(
struct
device
*
dev
,
int
slot
,
int
is_closed
);
#endif
include/asm-arm/arch-omap/mux.h
View file @
92633b72
...
...
@@ -406,6 +406,29 @@ enum omap1xxx_index {
V10_1610_CF_IREQ
,
W10_1610_CF_RESET
,
W11_1610_CF_CD1
,
/* parallel camera */
J15_1610_CAM_LCLK
,
J18_1610_CAM_D7
,
J19_1610_CAM_D6
,
J14_1610_CAM_D5
,
K18_1610_CAM_D4
,
K19_1610_CAM_D3
,
K15_1610_CAM_D2
,
K14_1610_CAM_D1
,
L19_1610_CAM_D0
,
L18_1610_CAM_VS
,
L15_1610_CAM_HS
,
M19_1610_CAM_RSTZ
,
Y15_1610_CAM_OUTCLK
,
/* serial camera */
H19_1610_CAM_EXCLK
,
Y12_1610_CCP_CLKP
,
W13_1610_CCP_CLKM
,
W14_1610_CCP_DATAP
,
Y14_1610_CCP_DATAM
,
};
enum
omap24xx_index
{
...
...
include/asm-arm/arch-omap/omap24xx.h
View file @
92633b72
...
...
@@ -8,6 +8,7 @@
*/
#define L4_24XX_BASE 0x48000000
#define L4_WK_243X_BASE 0x49000000
#define L3_24XX_BASE 0x68000000
/* interrupt controller */
...
...
@@ -16,9 +17,20 @@
#define OMAP24XX_IVA_INTC_BASE 0x40000000
#define IRQ_SIR_IRQ 0x0040
#ifdef CONFIG_ARCH_OMAP2420
#define OMAP24XX_32KSYNCT_BASE (L4_24XX_BASE + 0x4000)
#define OMAP24XX_PRCM_BASE (L4_24XX_BASE + 0x8000)
#define OMAP24XX_SDRC_BASE (L3_24XX_BASE + 0x9000)
#define OMAP242X_CONTROL_STATUS (L4_24XX_BASE + 0x2f8)
#endif
#ifdef CONFIG_ARCH_OMAP2430
#define OMAP24XX_32KSYNCT_BASE (L4_WK_243X_BASE + 0x20000)
#define OMAP24XX_PRCM_BASE (L4_WK_243X_BASE + 0x6000)
#define OMAP24XX_SDRC_BASE (0x6D000000)
#define OMAP242X_CONTROL_STATUS (L4_24XX_BASE + 0x2f8)
#define OMAP243X_GPMC_BASE 0x6E000000
#endif
/* DSP SS */
#define OMAP24XX_DSP_BASE 0x58000000
...
...
include/asm-arm/arch-omap/onenand.h
0 → 100644
View file @
92633b72
/*
* include/asm-arm/arch-omap/onenand.h
*
* Copyright (C) 2006 Nokia Corporation
* Author: Juha Yrjola
*
* 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/mtd/partitions.h>
struct
omap_onenand_platform_data
{
int
cs
;
int
gpio_irq
;
struct
mtd_partition
*
parts
;
int
nr_parts
;
int
(
*
onenand_setup
)(
void
__iomem
*
);
int
dma_channel
;
};
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