Commit 01539ba2 authored by Linus Torvalds's avatar Linus Torvalds

Merge branch 'omap-for-linus' of...

Merge branch 'omap-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6

* 'omap-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6: (243 commits)
  omap2: Make OMAP2PLUS select OMAP_DM_TIMER
  OMAP4: hwmod data: Fix alignment and end of line in structurefields
  OMAP4: hwmod data: Move the DMA structures
  OMAP4: hwmod data: Move the smartreflex structures
  OMAP4: hwmod data: Fix missing SIDLE_SMART_WKUP in smartreflexsysc
  arm: omap: tusb6010: add name for MUSB IRQ
  arm: omap: craneboard: Add USB EHCI support
  omap2+: Initialize serial port for dynamic remuxing for n8x0
  omap2+: Add struct omap_board_data and use it for platform level serial init
  omap2+: Allow hwmod state changes to mux pads based on the state changes
  omap2+: Add support for hwmod specific muxing of devices
  omap2+: Add omap_mux_get_by_name
  OMAP2: PM: fix compile error when !CONFIG_SUSPEND
  MAINTAINERS: OMAP: hwmod: update hwmod code, data maintainership
  OMAP4: Smartreflex framework extensions
  OMAP4: hwmod: Add inital data for smartreflex modules.
  OMAP4: PM: Program correct init voltages for scalable VDDs
  OMAP4: Adding voltage driver support
  OMAP4: Register voltage PMIC parameters with the voltage layer
  OMAP3: PM: Program correct init voltages for VDD1 and VDD2
  ...

Fix up trivial conflict in arch/arm/plat-omap/Kconfig
parents 9e9bc973 dc69d1af
...@@ -127,3 +127,28 @@ implementation needs: ...@@ -127,3 +127,28 @@ implementation needs:
10. (*pdata->cpu_set_freq)(unsigned long f) 10. (*pdata->cpu_set_freq)(unsigned long f)
11. (*pdata->cpu_get_freq)(void) 11. (*pdata->cpu_get_freq)(void)
Customizing OPP for platform
============================
Defining CONFIG_PM should enable OPP layer for the silicon
and the registration of OPP table should take place automatically.
However, in special cases, the default OPP table may need to be
tweaked, for e.g.:
* enable default OPPs which are disabled by default, but which
could be enabled on a platform
* Disable an unsupported OPP on the platform
* Define and add a custom opp table entry
in these cases, the board file needs to do additional steps as follows:
arch/arm/mach-omapx/board-xyz.c
#include "pm.h"
....
static void __init omap_xyz_init_irq(void)
{
....
/* Initialize the default table */
omapx_opp_init();
/* Do customization to the defaults */
....
}
NOTE: omapx_opp_init will be omap3_opp_init or as required
based on the omap family.
...@@ -4363,6 +4363,20 @@ M: Deepak Saxena <dsaxena@plexity.net> ...@@ -4363,6 +4363,20 @@ M: Deepak Saxena <dsaxena@plexity.net>
S: Maintained S: Maintained
F: drivers/char/hw_random/omap-rng.c F: drivers/char/hw_random/omap-rng.c
OMAP HWMOD SUPPORT
M: Benoît Cousson <b-cousson@ti.com>
M: Paul Walmsley <paul@pwsan.com>
L: linux-omap@vger.kernel.org
S: Maintained
F: arch/arm/mach-omap2/omap_hwmod.c
F: arch/arm/plat-omap/include/plat/omap_hwmod.h
OMAP HWMOD DATA FOR OMAP4-BASED DEVICES
M: Benoît Cousson <b-cousson@ti.com>
L: linux-omap@vger.kernel.org
S: Maintained
F: arch/arm/mach-omap2/omap_hwmod_44xx_data.c
OMAP USB SUPPORT OMAP USB SUPPORT
M: Felipe Balbi <balbi@ti.com> M: Felipe Balbi <balbi@ti.com>
M: David Brownell <dbrownell@users.sourceforge.net> M: David Brownell <dbrownell@users.sourceforge.net>
......
CONFIG_EXPERIMENTAL=y
# CONFIG_SWAP is not set
CONFIG_SYSVIPC=y
CONFIG_TREE_PREEMPT_RCU=y
CONFIG_LOG_BUF_SHIFT=14
CONFIG_BLK_DEV_INITRD=y
CONFIG_EMBEDDED=y
# CONFIG_KALLSYMS is not set
CONFIG_SLAB=y
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
CONFIG_MODULE_FORCE_UNLOAD=y
# CONFIG_LBDAF is not set
CONFIG_ARCH_OMAP=y
CONFIG_ARCH_OMAP1=y
CONFIG_OMAP_MBOX_FWK=m
CONFIG_MACH_AMS_DELTA=y
CONFIG_OMAP_ARM_150MHZ=y
# CONFIG_OMAP_ARM_60MHZ is not set
CONFIG_PREEMPT=y
CONFIG_AEABI=y
CONFIG_ZBOOT_ROM_TEXT=0x0
CONFIG_ZBOOT_ROM_BSS=0x0
CONFIG_CMDLINE="mem=32M console=ttyS0,115200n8 root=/dev/ram0 initrd=0x11c00000,4M"
CONFIG_FPE_NWFPE=y
CONFIG_PM=y
# CONFIG_SUSPEND is not set
CONFIG_PM_RUNTIME=y
CONFIG_NET=y
CONFIG_PACKET=y
CONFIG_UNIX=y
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
CONFIG_IPV6=y
# CONFIG_FW_LOADER is not set
CONFIG_MTD=y
CONFIG_MTD_PARTITIONS=y
CONFIG_MTD_CHAR=y
CONFIG_MTD_BLOCK=y
CONFIG_MTD_NAND=y
CONFIG_MTD_NAND_AMS_DELTA=y
CONFIG_BLK_DEV_LOOP=y
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_SIZE=8192
CONFIG_SCSI=y
CONFIG_BLK_DEV_SD=y
CONFIG_NETDEVICES=y
CONFIG_NET_ETHERNET=y
CONFIG_USB_CATC=y
CONFIG_USB_KAWETH=y
CONFIG_USB_PEGASUS=y
CONFIG_USB_RTL8150=y
CONFIG_USB_USBNET=y
CONFIG_PPP=y
CONFIG_PPP_MULTILINK=y
CONFIG_INPUT_EVDEV=y
CONFIG_KEYBOARD_OMAP=y
# CONFIG_INPUT_MOUSE is not set
CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250_CONSOLE=y
# CONFIG_LEGACY_PTYS is not set
CONFIG_HW_RANDOM=y
CONFIG_I2C=y
CONFIG_I2C_CHARDEV=y
CONFIG_I2C_OMAP=y
CONFIG_GPIO_SYSFS=y
# CONFIG_HWMON is not set
CONFIG_FB=y
CONFIG_FIRMWARE_EDID=y
CONFIG_FB_OMAP=y
CONFIG_BACKLIGHT_LCD_SUPPORT=y
CONFIG_LCD_CLASS_DEVICE=y
# CONFIG_VGA_CONSOLE is not set
CONFIG_FRAMEBUFFER_CONSOLE=y
CONFIG_FONTS=y
CONFIG_FONT_6x11=y
CONFIG_LOGO=y
# CONFIG_LOGO_LINUX_MONO is not set
# CONFIG_LOGO_LINUX_VGA16 is not set
CONFIG_SOUND=y
CONFIG_SND=y
CONFIG_SND_MIXER_OSS=y
CONFIG_SND_PCM_OSS=y
CONFIG_SND_SOC=y
CONFIG_SND_OMAP_SOC=y
CONFIG_SND_OMAP_SOC_AMS_DELTA=y
CONFIG_USB=y
CONFIG_USB_DEVICEFS=y
# CONFIG_USB_DEVICE_CLASS is not set
CONFIG_USB_MON=y
CONFIG_USB_OHCI_HCD=y
CONFIG_USB_STORAGE=y
CONFIG_NEW_LEDS=y
CONFIG_LEDS_CLASS=y
CONFIG_LEDS_AMS_DELTA=y
CONFIG_LEDS_TRIGGERS=y
CONFIG_LEDS_TRIGGER_TIMER=y
CONFIG_LEDS_TRIGGER_HEARTBEAT=y
CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
CONFIG_RTC_CLASS=y
CONFIG_RTC_DRV_OMAP=y
CONFIG_EXT2_FS=y
CONFIG_EXT3_FS=y
CONFIG_INOTIFY=y
CONFIG_AUTOFS_FS=y
CONFIG_AUTOFS4_FS=y
CONFIG_MSDOS_FS=y
CONFIG_VFAT_FS=y
CONFIG_TMPFS=y
CONFIG_JFFS2_FS=y
CONFIG_JFFS2_SUMMARY=y
CONFIG_NFS_FS=y
CONFIG_PARTITION_ADVANCED=y
CONFIG_NLS_CODEPAGE_437=y
CONFIG_NLS_CODEPAGE_850=y
CONFIG_NLS_CODEPAGE_852=y
CONFIG_NLS_ISO8859_1=y
CONFIG_NLS_ISO8859_2=y
CONFIG_MAGIC_SYSRQ=y
CONFIG_DEBUG_KERNEL=y
# CONFIG_DEBUG_BUGVERBOSE is not set
CONFIG_EXPERIMENTAL=y
CONFIG_SYSVIPC=y
CONFIG_LOG_BUF_SHIFT=14
CONFIG_BLK_DEV_INITRD=y
CONFIG_SLAB=y
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
# CONFIG_BLK_DEV_BSG is not set
CONFIG_ARCH_OMAP=y
CONFIG_ARCH_OMAP1=y
CONFIG_ARCH_OMAP850=y
# CONFIG_ARCH_OMAP15XX is not set
CONFIG_MACH_HERALD=y
CONFIG_OMAP_ARM_195MHZ=y
# CONFIG_OMAP_ARM_60MHZ is not set
CONFIG_CPU_ARM925T=y
CONFIG_PREEMPT=y
CONFIG_AEABI=y
CONFIG_LEDS=y
CONFIG_ZBOOT_ROM_TEXT=0x0
CONFIG_ZBOOT_ROM_BSS=0x0
CONFIG_CMDLINE="mem=32M console=ttyS0,115200 ip=dhcp"
CONFIG_FPE_NWFPE=y
CONFIG_PM=y
CONFIG_NET=y
CONFIG_PACKET=y
CONFIG_UNIX=y
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
CONFIG_IP_PNP=y
CONFIG_IP_PNP_DHCP=y
CONFIG_IP_PNP_BOOTP=y
# CONFIG_IPV6 is not set
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
CONFIG_BLK_DEV_LOOP=y
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_SIZE=8192
CONFIG_NETDEVICES=y
CONFIG_NET_ETHERNET=y
CONFIG_SMC91X=y
# CONFIG_KEYBOARD_ATKBD is not set
CONFIG_KEYBOARD_OMAP=y
# CONFIG_INPUT_MOUSE is not set
CONFIG_SERIAL_8250=m
# CONFIG_LEGACY_PTYS is not set
CONFIG_VIDEO_OUTPUT_CONTROL=m
CONFIG_FB=y
CONFIG_FB_MODE_HELPERS=y
CONFIG_FB_OMAP=y
# CONFIG_VGA_CONSOLE is not set
CONFIG_FRAMEBUFFER_CONSOLE=y
CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
CONFIG_FONTS=y
CONFIG_FONT_MINI_4x6=y
CONFIG_USB_GADGET=y
CONFIG_USB_ETH=m
# CONFIG_USB_ETH_RNDIS is not set
CONFIG_MMC=y
CONFIG_MMC_SDHCI=y
CONFIG_MMC_SDHCI_PLTFM=y
CONFIG_MMC_OMAP=y
CONFIG_RTC_CLASS=y
CONFIG_EXT2_FS=y
CONFIG_EXT3_FS=y
CONFIG_INOTIFY=y
CONFIG_TMPFS=y
CONFIG_NFS_FS=y
CONFIG_ROOT_NFS=y
# CONFIG_RCU_CPU_STALL_DETECTOR is not set
CONFIG_CRYPTO_DEFLATE=y
CONFIG_CRYPTO_ZLIB=y
CONFIG_CRYPTO_LZO=y
# CONFIG_CRYPTO_ANSI_CPRNG is not set
CONFIG_EXPERIMENTAL=y CONFIG_EXPERIMENTAL=y
# CONFIG_SWAP is not set
CONFIG_SYSVIPC=y CONFIG_SYSVIPC=y
CONFIG_POSIX_MQUEUE=y CONFIG_POSIX_MQUEUE=y
CONFIG_BSD_PROCESS_ACCT=y
CONFIG_IKCONFIG=y
CONFIG_LOG_BUF_SHIFT=14 CONFIG_LOG_BUF_SHIFT=14
CONFIG_SLAB=y CONFIG_BLK_DEV_INITRD=y
CONFIG_EMBEDDED=y
# CONFIG_KALLSYMS is not set
# CONFIG_ELF_CORE is not set
# CONFIG_BASE_FULL is not set
# CONFIG_SHMEM is not set
# CONFIG_VM_EVENT_COUNTERS is not set
CONFIG_SLOB=y
CONFIG_PROFILING=y
CONFIG_OPROFILE=y
CONFIG_MODULES=y CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y CONFIG_MODULE_UNLOAD=y
CONFIG_MODULE_FORCE_UNLOAD=y
# CONFIG_LBDAF is not set
# CONFIG_BLK_DEV_BSG is not set # CONFIG_BLK_DEV_BSG is not set
# CONFIG_IOSCHED_DEADLINE is not set # CONFIG_IOSCHED_DEADLINE is not set
# CONFIG_IOSCHED_CFQ is not set
CONFIG_ARCH_OMAP=y CONFIG_ARCH_OMAP=y
CONFIG_ARCH_OMAP1=y CONFIG_ARCH_OMAP1=y
CONFIG_OMAP_RESET_CLOCKS=y CONFIG_OMAP_RESET_CLOCKS=y
...@@ -14,29 +29,64 @@ CONFIG_OMAP_RESET_CLOCKS=y ...@@ -14,29 +29,64 @@ CONFIG_OMAP_RESET_CLOCKS=y
CONFIG_OMAP_MBOX_FWK=y CONFIG_OMAP_MBOX_FWK=y
CONFIG_OMAP_32K_TIMER=y CONFIG_OMAP_32K_TIMER=y
CONFIG_OMAP_DM_TIMER=y CONFIG_OMAP_DM_TIMER=y
# CONFIG_ARCH_OMAP15XX is not set CONFIG_ARCH_OMAP730=y
CONFIG_ARCH_OMAP850=y
CONFIG_ARCH_OMAP16XX=y CONFIG_ARCH_OMAP16XX=y
CONFIG_MACH_OMAP_INNOVATOR=y
CONFIG_MACH_OMAP_H2=y
CONFIG_MACH_OMAP_H3=y
CONFIG_MACH_OMAP_HTCWIZARD=y
CONFIG_MACH_HERALD=y
CONFIG_MACH_OMAP_OSK=y
CONFIG_MACH_OMAP_PERSEUS2=y
CONFIG_MACH_OMAP_FSAMPLE=y
CONFIG_MACH_VOICEBLUE=y
CONFIG_MACH_OMAP_PALMTE=y
CONFIG_MACH_OMAP_PALMZ71=y
CONFIG_MACH_OMAP_PALMTT=y
CONFIG_MACH_SX1=y
CONFIG_MACH_NOKIA770=y CONFIG_MACH_NOKIA770=y
CONFIG_MACH_AMS_DELTA=y
CONFIG_MACH_OMAP_GENERIC=y
CONFIG_OMAP_CLOCKS_SET_BY_BOOTLOADER=y CONFIG_OMAP_CLOCKS_SET_BY_BOOTLOADER=y
CONFIG_OMAP_ARM_216MHZ=y CONFIG_OMAP_ARM_216MHZ=y
CONFIG_OMAP_ARM_195MHZ=y
CONFIG_OMAP_ARM_192MHZ=y
CONFIG_OMAP_ARM_182MHZ=y
CONFIG_OMAP_ARM_168MHZ=y
# CONFIG_OMAP_ARM_60MHZ is not set # CONFIG_OMAP_ARM_60MHZ is not set
# CONFIG_ARM_THUMB is not set
CONFIG_PCCARD=y
CONFIG_OMAP_CF=y
CONFIG_NO_HZ=y
CONFIG_HIGH_RES_TIMERS=y
CONFIG_PREEMPT=y
CONFIG_AEABI=y
CONFIG_LEDS=y
CONFIG_LEDS_CPU=y
CONFIG_ZBOOT_ROM_TEXT=0x0 CONFIG_ZBOOT_ROM_TEXT=0x0
CONFIG_ZBOOT_ROM_BSS=0x0 CONFIG_ZBOOT_ROM_BSS=0x0
CONFIG_CMDLINE="root=1f03 rootfstype=jffs2 time" CONFIG_CMDLINE="root=1f03 rootfstype=jffs2"
CONFIG_FPE_NWFPE=y CONFIG_FPE_NWFPE=y
CONFIG_BINFMT_MISC=y
CONFIG_PM=y CONFIG_PM=y
# CONFIG_SUSPEND is not set
CONFIG_PM_RUNTIME=y CONFIG_PM_RUNTIME=y
CONFIG_NET=y CONFIG_NET=y
CONFIG_PACKET=y CONFIG_PACKET=y
CONFIG_UNIX=y CONFIG_UNIX=y
CONFIG_NET_KEY=y
CONFIG_INET=y CONFIG_INET=y
CONFIG_IP_MULTICAST=y CONFIG_IP_MULTICAST=y
CONFIG_IP_PNP=y CONFIG_IP_PNP=y
CONFIG_IP_PNP_DHCP=y CONFIG_IP_PNP_DHCP=y
CONFIG_IP_PNP_BOOTP=y CONFIG_IP_PNP_BOOTP=y
# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
# CONFIG_INET_XFRM_MODE_TUNNEL is not set
# CONFIG_INET_XFRM_MODE_BEET is not set
# CONFIG_INET_LRO is not set # CONFIG_INET_LRO is not set
# CONFIG_INET_DIAG is not set # CONFIG_INET_DIAG is not set
# CONFIG_IPV6 is not set CONFIG_IPV6=y
CONFIG_NETFILTER=y CONFIG_NETFILTER=y
CONFIG_BT=y CONFIG_BT=y
CONFIG_BT_L2CAP=y CONFIG_BT_L2CAP=y
...@@ -46,93 +96,191 @@ CONFIG_BT_RFCOMM_TTY=y ...@@ -46,93 +96,191 @@ CONFIG_BT_RFCOMM_TTY=y
CONFIG_BT_BNEP=y CONFIG_BT_BNEP=y
CONFIG_BT_HIDP=y CONFIG_BT_HIDP=y
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
# CONFIG_STANDALONE is not set
# CONFIG_PREVENT_FIRMWARE_BUILD is not set
CONFIG_CONNECTOR=y CONFIG_CONNECTOR=y
# CONFIG_PROC_EVENTS is not set # CONFIG_PROC_EVENTS is not set
CONFIG_MTD=y CONFIG_MTD=y
CONFIG_MTD_DEBUG=y
CONFIG_MTD_DEBUG_VERBOSE=3
CONFIG_MTD_PARTITIONS=y CONFIG_MTD_PARTITIONS=y
CONFIG_MTD_CMDLINE_PARTS=y CONFIG_MTD_CMDLINE_PARTS=y
CONFIG_MTD_CHAR=y CONFIG_MTD_CHAR=y
CONFIG_MTD_BLOCK=y CONFIG_MTD_BLOCK=y
CONFIG_MTD_CFI=y
CONFIG_MTD_CFI_INTELEXT=y
CONFIG_MTD_NAND=y CONFIG_MTD_NAND=y
CONFIG_BLK_DEV_LOOP=y CONFIG_BLK_DEV_LOOP=y
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_COUNT=2
CONFIG_BLK_DEV_RAM_SIZE=8192
CONFIG_IDE=m
CONFIG_BLK_DEV_IDECS=m
CONFIG_SCSI=y CONFIG_SCSI=y
# CONFIG_SCSI_PROC_FS is not set # CONFIG_SCSI_PROC_FS is not set
CONFIG_BLK_DEV_SD=y CONFIG_BLK_DEV_SD=y
CONFIG_CHR_DEV_ST=y
CONFIG_BLK_DEV_SR=y
CONFIG_CHR_DEV_SG=y
CONFIG_SCSI_MULTI_LUN=y
CONFIG_NETDEVICES=y CONFIG_NETDEVICES=y
CONFIG_TUN=y CONFIG_TUN=y
CONFIG_PHYLIB=y
CONFIG_NET_ETHERNET=y CONFIG_NET_ETHERNET=y
CONFIG_SMC91X=y
CONFIG_USB_CATC=y
CONFIG_USB_KAWETH=y
CONFIG_USB_PEGASUS=y
CONFIG_USB_RTL8150=y
CONFIG_USB_USBNET=y CONFIG_USB_USBNET=y
# CONFIG_USB_NET_AX8817X is not set # CONFIG_USB_NET_AX8817X is not set
# CONFIG_USB_NET_CDC_SUBSET is not set # CONFIG_USB_NET_CDC_SUBSET is not set
CONFIG_PPP=y CONFIG_PPP=y
CONFIG_PPP_MULTILINK=y
CONFIG_PPP_FILTER=y CONFIG_PPP_FILTER=y
CONFIG_PPP_ASYNC=y CONFIG_PPP_ASYNC=y
CONFIG_PPP_DEFLATE=y CONFIG_PPP_DEFLATE=y
CONFIG_PPP_BSDCOMP=y CONFIG_PPP_BSDCOMP=y
# CONFIG_INPUT_MOUSEDEV_PSAUX is not set CONFIG_SLIP=y
CONFIG_SLIP_COMPRESSED=y
# CONFIG_INPUT_MOUSEDEV is not set
CONFIG_INPUT_EVDEV=y CONFIG_INPUT_EVDEV=y
# CONFIG_KEYBOARD_ATKBD is not set CONFIG_INPUT_EVBUG=y
CONFIG_KEYBOARD_OMAP=y # CONFIG_INPUT_KEYBOARD is not set
# CONFIG_INPUT_MOUSE is not set # CONFIG_INPUT_MOUSE is not set
CONFIG_INPUT_TOUCHSCREEN=y CONFIG_INPUT_TOUCHSCREEN=y
CONFIG_TOUCHSCREEN_ADS7846=y CONFIG_TOUCHSCREEN_ADS7846=y
CONFIG_INPUT_MISC=y
CONFIG_INPUT_UINPUT=y
# CONFIG_SERIO is not set
CONFIG_SERIAL_8250=y CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250_CONSOLE=y CONFIG_SERIAL_8250_CONSOLE=y
CONFIG_SERIAL_8250_NR_UARTS=3
CONFIG_SERIAL_8250_RUNTIME_UARTS=3
# CONFIG_LEGACY_PTYS is not set # CONFIG_LEGACY_PTYS is not set
CONFIG_HW_RANDOM=y
CONFIG_I2C=y CONFIG_I2C=y
CONFIG_I2C_OMAP=y CONFIG_I2C_CHARDEV=y
CONFIG_SPI=y CONFIG_SPI=y
CONFIG_SPI_OMAP_UWIRE=y CONFIG_SPI_OMAP_UWIRE=y
# CONFIG_HWMON is not set # CONFIG_HWMON is not set
CONFIG_WATCHDOG=y CONFIG_WATCHDOG=y
CONFIG_WATCHDOG_NOWAYOUT=y CONFIG_WATCHDOG_NOWAYOUT=y
CONFIG_OMAP_WATCHDOG=y CONFIG_OMAP_WATCHDOG=y
CONFIG_VIDEO_OUTPUT_CONTROL=y
CONFIG_FB=y CONFIG_FB=y
CONFIG_FIRMWARE_EDID=y
CONFIG_FB_MODE_HELPERS=y
CONFIG_FB_VIRTUAL=y
CONFIG_FB_OMAP=y CONFIG_FB_OMAP=y
CONFIG_FB_OMAP_LCDC_EXTERNAL=y CONFIG_FB_OMAP_LCDC_EXTERNAL=y
CONFIG_FB_OMAP_LCDC_HWA742=y CONFIG_FB_OMAP_LCDC_HWA742=y
CONFIG_FB_OMAP_MANUAL_UPDATE=y CONFIG_FB_OMAP_MANUAL_UPDATE=y
CONFIG_FB_OMAP_LCD_MIPID=y CONFIG_FB_OMAP_LCD_MIPID=y
# CONFIG_VGA_CONSOLE is not set CONFIG_FB_OMAP_BOOTLOADER_INIT=y
CONFIG_BACKLIGHT_LCD_SUPPORT=y
CONFIG_LCD_CLASS_DEVICE=y
CONFIG_FRAMEBUFFER_CONSOLE=y
CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
CONFIG_FONTS=y
CONFIG_FONT_8x8=y
CONFIG_FONT_8x16=y
CONFIG_FONT_6x11=y
CONFIG_FONT_MINI_4x6=y
CONFIG_LOGO=y
# CONFIG_LOGO_LINUX_MONO is not set
# CONFIG_LOGO_LINUX_VGA16 is not set
CONFIG_SOUND=y CONFIG_SOUND=y
CONFIG_SND=y CONFIG_SND=y
CONFIG_SND_MIXER_OSS=y
CONFIG_SND_PCM_OSS=y
# CONFIG_SND_SUPPORT_OLD_API is not set # CONFIG_SND_SUPPORT_OLD_API is not set
# CONFIG_SND_VERBOSE_PROCFS is not set
CONFIG_SND_DUMMY=y CONFIG_SND_DUMMY=y
CONFIG_SND_USB_AUDIO=y CONFIG_SND_USB_AUDIO=y
CONFIG_SND_SOC=y
CONFIG_SND_OMAP_SOC=y
# CONFIG_USB_HID is not set
CONFIG_USB=y CONFIG_USB=y
CONFIG_USB_DEBUG=y
CONFIG_USB_DEVICEFS=y CONFIG_USB_DEVICEFS=y
# CONFIG_USB_DEVICE_CLASS is not set
CONFIG_USB_SUSPEND=y CONFIG_USB_SUSPEND=y
CONFIG_USB_OTG=y CONFIG_USB_MON=y
# CONFIG_USB_OTG_WHITELIST is not set
CONFIG_USB_OHCI_HCD=y CONFIG_USB_OHCI_HCD=y
CONFIG_USB_STORAGE=y CONFIG_USB_STORAGE=y
CONFIG_USB_STORAGE_DATAFAB=y
CONFIG_USB_STORAGE_FREECOM=y
CONFIG_USB_STORAGE_SDDR09=y
CONFIG_USB_STORAGE_SDDR55=y
CONFIG_USB_STORAGE_JUMPSHOT=y
CONFIG_USB_SERIAL=y CONFIG_USB_SERIAL=y
CONFIG_USB_SERIAL_CONSOLE=y CONFIG_USB_SERIAL_CONSOLE=y
CONFIG_USB_SERIAL_PL2303=y CONFIG_USB_SERIAL_PL2303=y
CONFIG_USB_TEST=y
CONFIG_USB_GADGET=y CONFIG_USB_GADGET=y
CONFIG_USB_ETH=m CONFIG_USB_ETH=m
# CONFIG_USB_ETH_RNDIS is not set
CONFIG_USB_FILE_STORAGE=m CONFIG_USB_FILE_STORAGE=m
CONFIG_USB_FILE_STORAGE_TEST=y CONFIG_USB_FILE_STORAGE_TEST=y
CONFIG_MMC=y CONFIG_MMC=y
CONFIG_MMC_SDHCI=y
CONFIG_MMC_SDHCI_PLTFM=y
CONFIG_MMC_OMAP=y CONFIG_MMC_OMAP=y
CONFIG_NEW_LEDS=y
CONFIG_LEDS_CLASS=y
CONFIG_LEDS_TRIGGERS=y
CONFIG_LEDS_TRIGGER_TIMER=y
CONFIG_LEDS_TRIGGER_HEARTBEAT=y
CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
CONFIG_RTC_CLASS=y
CONFIG_RTC_DRV_OMAP=y
CONFIG_EXT2_FS=y CONFIG_EXT2_FS=y
CONFIG_EXT3_FS=y CONFIG_EXT3_FS=y
# CONFIG_DNOTIFY is not set
CONFIG_AUTOFS4_FS=y
CONFIG_ISO9660_FS=y
CONFIG_JOLIET=y
CONFIG_MSDOS_FS=y CONFIG_MSDOS_FS=y
CONFIG_VFAT_FS=y CONFIG_VFAT_FS=y
CONFIG_TMPFS=y CONFIG_FAT_DEFAULT_CODEPAGE=866
CONFIG_FAT_DEFAULT_IOCHARSET="koi8-r"
CONFIG_JFFS2_FS=y CONFIG_JFFS2_FS=y
CONFIG_JFFS2_SUMMARY=y CONFIG_JFFS2_SUMMARY=y
CONFIG_JFFS2_COMPRESSION_OPTIONS=y CONFIG_JFFS2_COMPRESSION_OPTIONS=y
CONFIG_CRAMFS=y
CONFIG_ROMFS_FS=y
CONFIG_NFS_FS=y CONFIG_NFS_FS=y
CONFIG_NFS_V3=y CONFIG_NFS_V3=y
CONFIG_NFS_V4=y
CONFIG_ROOT_NFS=y
CONFIG_PARTITION_ADVANCED=y CONFIG_PARTITION_ADVANCED=y
CONFIG_NLS_CODEPAGE_437=y CONFIG_NLS_CODEPAGE_437=y
CONFIG_NLS_CODEPAGE_850=y
CONFIG_NLS_CODEPAGE_852=y CONFIG_NLS_CODEPAGE_852=y
CONFIG_NLS_CODEPAGE_866=y
CONFIG_NLS_CODEPAGE_1251=y
CONFIG_NLS_ISO8859_1=y CONFIG_NLS_ISO8859_1=y
CONFIG_NLS_ISO8859_2=y
CONFIG_NLS_ISO8859_5=y
CONFIG_NLS_ISO8859_15=y CONFIG_NLS_ISO8859_15=y
CONFIG_NLS_KOI8_R=y
CONFIG_NLS_UTF8=y CONFIG_NLS_UTF8=y
# CONFIG_ENABLE_MUST_CHECK is not set
CONFIG_MAGIC_SYSRQ=y CONFIG_MAGIC_SYSRQ=y
CONFIG_DEBUG_KERNEL=y CONFIG_DEBUG_KERNEL=y
CONFIG_DEBUG_SPINLOCK=y
CONFIG_DEBUG_MUTEXES=y CONFIG_DEBUG_MUTEXES=y
# CONFIG_DEBUG_BUGVERBOSE is not set
CONFIG_DEBUG_INFO=y
# CONFIG_RCU_CPU_STALL_DETECTOR is not set
CONFIG_DEBUG_USER=y
CONFIG_DEBUG_ERRORS=y CONFIG_DEBUG_ERRORS=y
CONFIG_SECURITY=y CONFIG_SECURITY=y
CONFIG_CRYPTO_ECB=y
CONFIG_CRYPTO_PCBC=y
CONFIG_CRYPTO_DEFLATE=y
CONFIG_CRYPTO_ZLIB=y
CONFIG_CRYPTO_LZO=y
# CONFIG_CRYPTO_ANSI_CPRNG is not set
CONFIG_LIBCRC32C=y
CONFIG_EXPERIMENTAL=y
CONFIG_SYSVIPC=y
CONFIG_LOG_BUF_SHIFT=14
CONFIG_BLK_DEV_INITRD=y
CONFIG_SLAB=y
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
CONFIG_MODULE_FORCE_UNLOAD=y
# CONFIG_BLK_DEV_BSG is not set
CONFIG_ARCH_OMAP=y
CONFIG_ARCH_OMAP1=y
CONFIG_MACH_OMAP_GENERIC=y
CONFIG_OMAP_ARM_168MHZ=y
# CONFIG_OMAP_ARM_60MHZ is not set
# CONFIG_ARM_THUMB is not set
CONFIG_PREEMPT=y
CONFIG_ZBOOT_ROM_TEXT=0x0
CONFIG_ZBOOT_ROM_BSS=0x0
CONFIG_CMDLINE="mem=64M console=ttyS2,115200 root=0803 ro init=/bin/sh"
CONFIG_FPE_NWFPE=y
CONFIG_PM=y
CONFIG_NET=y
CONFIG_PACKET=y
CONFIG_UNIX=y
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
CONFIG_IP_PNP=y
CONFIG_IP_PNP_DHCP=y
CONFIG_IP_PNP_BOOTP=y
# CONFIG_IPV6 is not set
CONFIG_BLK_DEV_LOOP=y
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_SIZE=8192
CONFIG_SCSI=y
CONFIG_BLK_DEV_SD=y
CONFIG_BLK_DEV_SR=y
CONFIG_CHR_DEV_SG=y
CONFIG_SCSI_MULTI_LUN=y
CONFIG_NETDEVICES=y
CONFIG_NET_ETHERNET=y
CONFIG_USB_RTL8150=y
CONFIG_USB_USBNET=y
CONFIG_USB_AN2720=y
CONFIG_USB_EPSON2888=y
CONFIG_PPP=y
CONFIG_PPP_MULTILINK=y
CONFIG_KEYBOARD_OMAP=y
# CONFIG_INPUT_MOUSE is not set
CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250_CONSOLE=y
# CONFIG_LEGACY_PTYS is not set
CONFIG_I2C=y
CONFIG_I2C_CHARDEV=y
CONFIG_VIDEO_OUTPUT_CONTROL=m
# CONFIG_VGA_CONSOLE is not set
CONFIG_USB=y
CONFIG_USB_DEBUG=y
CONFIG_USB_DEVICEFS=y
# CONFIG_USB_DEVICE_CLASS is not set
CONFIG_USB_MON=y
CONFIG_USB_OHCI_HCD=y
CONFIG_USB_STORAGE=y
CONFIG_USB_STORAGE_DATAFAB=y
CONFIG_USB_STORAGE_FREECOM=y
CONFIG_USB_STORAGE_SDDR09=y
CONFIG_USB_STORAGE_SDDR55=y
CONFIG_USB_STORAGE_JUMPSHOT=y
CONFIG_MMC=y
CONFIG_MMC_OMAP=y
CONFIG_RTC_CLASS=y
CONFIG_RTC_DRV_OMAP=y
CONFIG_EXT2_FS=y
CONFIG_EXT3_FS=y
CONFIG_INOTIFY=y
CONFIG_AUTOFS_FS=y
CONFIG_AUTOFS4_FS=y
CONFIG_ISO9660_FS=y
CONFIG_JOLIET=y
CONFIG_MSDOS_FS=m
CONFIG_VFAT_FS=m
CONFIG_NFS_FS=y
CONFIG_PARTITION_ADVANCED=y
CONFIG_MAGIC_SYSRQ=y
CONFIG_DEBUG_KERNEL=y
CONFIG_EXPERIMENTAL=y
CONFIG_SYSVIPC=y
CONFIG_LOG_BUF_SHIFT=14
CONFIG_BLK_DEV_INITRD=y
CONFIG_SLAB=y
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
CONFIG_MODULE_FORCE_UNLOAD=y
# CONFIG_BLK_DEV_BSG is not set
CONFIG_ARCH_OMAP=y
CONFIG_ARCH_OMAP1=y
# CONFIG_ARCH_OMAP15XX is not set
CONFIG_ARCH_OMAP16XX=y
CONFIG_MACH_OMAP_GENERIC=y
CONFIG_OMAP_ARM_192MHZ=y
# CONFIG_OMAP_ARM_60MHZ is not set
# CONFIG_ARM_THUMB is not set
CONFIG_PREEMPT=y
CONFIG_ZBOOT_ROM_TEXT=0x0
CONFIG_ZBOOT_ROM_BSS=0x0
CONFIG_CMDLINE="mem=64M console=ttyS2,115200 root=0803 ro init=/bin/sh"
CONFIG_FPE_NWFPE=y
CONFIG_PM=y
CONFIG_NET=y
CONFIG_PACKET=y
CONFIG_UNIX=y
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
CONFIG_IP_PNP=y
CONFIG_IP_PNP_DHCP=y
CONFIG_IP_PNP_BOOTP=y
# CONFIG_IPV6 is not set
CONFIG_BLK_DEV_LOOP=y
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_SIZE=8192
CONFIG_SCSI=y
CONFIG_BLK_DEV_SD=y
CONFIG_BLK_DEV_SR=y
CONFIG_CHR_DEV_SG=y
CONFIG_SCSI_MULTI_LUN=y
CONFIG_NETDEVICES=y
CONFIG_NET_ETHERNET=y
CONFIG_USB_RTL8150=y
CONFIG_USB_USBNET=y
CONFIG_USB_ALI_M5632=y
CONFIG_USB_AN2720=y
CONFIG_USB_EPSON2888=y
CONFIG_PPP=y
CONFIG_PPP_MULTILINK=y
CONFIG_KEYBOARD_OMAP=y
# CONFIG_INPUT_MOUSE is not set
CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250_CONSOLE=y
# CONFIG_LEGACY_PTYS is not set
CONFIG_I2C=y
CONFIG_I2C_CHARDEV=y
CONFIG_VIDEO_OUTPUT_CONTROL=m
# CONFIG_VGA_CONSOLE is not set
CONFIG_USB=y
CONFIG_USB_DEBUG=y
CONFIG_USB_DEVICEFS=y
# CONFIG_USB_DEVICE_CLASS is not set
CONFIG_USB_MON=y
CONFIG_USB_OHCI_HCD=y
CONFIG_USB_STORAGE=y
CONFIG_USB_STORAGE_DATAFAB=y
CONFIG_USB_STORAGE_FREECOM=y
CONFIG_USB_STORAGE_SDDR09=y
CONFIG_USB_STORAGE_SDDR55=y
CONFIG_USB_STORAGE_JUMPSHOT=y
CONFIG_MMC=y
CONFIG_MMC_OMAP=y
CONFIG_RTC_CLASS=y
CONFIG_RTC_DRV_OMAP=y
CONFIG_EXT2_FS=y
CONFIG_EXT3_FS=y
CONFIG_INOTIFY=y
CONFIG_AUTOFS_FS=y
CONFIG_AUTOFS4_FS=y
CONFIG_ISO9660_FS=y
CONFIG_JOLIET=y
CONFIG_MSDOS_FS=m
CONFIG_VFAT_FS=m
CONFIG_NFS_FS=y
CONFIG_PARTITION_ADVANCED=y
CONFIG_MAGIC_SYSRQ=y
CONFIG_DEBUG_KERNEL=y
CONFIG_EXPERIMENTAL=y
CONFIG_SYSVIPC=y
CONFIG_LOG_BUF_SHIFT=14
CONFIG_BLK_DEV_INITRD=y
# CONFIG_BLK_DEV_BSG is not set
CONFIG_ARCH_OMAP=y
CONFIG_ARCH_OMAP1=y
# CONFIG_OMAP_MUX is not set
# CONFIG_ARCH_OMAP15XX is not set
CONFIG_ARCH_OMAP16XX=y
CONFIG_MACH_OMAP_GENERIC=y
CONFIG_OMAP_ARM_192MHZ=y
# CONFIG_OMAP_ARM_60MHZ is not set
# CONFIG_ARM_THUMB is not set
CONFIG_ZBOOT_ROM_TEXT=0x0
CONFIG_ZBOOT_ROM_BSS=0x0
CONFIG_CMDLINE="mem=64M console=tty0 console=ttyS2,115200 root=0801"
CONFIG_FPE_NWFPE=y
CONFIG_ARTHUR=y
CONFIG_PM=y
CONFIG_NET=y
CONFIG_PACKET=y
CONFIG_UNIX=y
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
CONFIG_IP_PNP=y
CONFIG_IP_PNP_DHCP=y
CONFIG_IP_PNP_BOOTP=y
# CONFIG_IPV6 is not set
CONFIG_BLK_DEV_LOOP=y
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_SIZE=8192
CONFIG_SCSI=y
CONFIG_BLK_DEV_SD=y
CONFIG_NETDEVICES=y
CONFIG_NET_ETHERNET=y
CONFIG_USB_USBNET=y
CONFIG_USB_ALI_M5632=y
# CONFIG_USB_BELKIN is not set
# CONFIG_USB_ARMLINUX is not set
CONFIG_PPP=y
CONFIG_INPUT_EVDEV=y
CONFIG_KEYBOARD_OMAP=y
# CONFIG_INPUT_MOUSE is not set
CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250_CONSOLE=y
CONFIG_VIDEO_OUTPUT_CONTROL=y
# CONFIG_VGA_CONSOLE is not set
CONFIG_USB=y
CONFIG_USB_DEBUG=y
CONFIG_USB_DEVICEFS=y
CONFIG_USB_MON=y
CONFIG_USB_OHCI_HCD=y
CONFIG_USB_STORAGE=y
CONFIG_MMC=y
CONFIG_MMC_OMAP=y
CONFIG_EXT2_FS=y
CONFIG_EXT3_FS=y
CONFIG_INOTIFY=y
CONFIG_TMPFS=y
CONFIG_NFS_FS=y
CONFIG_NFS_V3=y
CONFIG_NFS_V4=y
CONFIG_PARTITION_ADVANCED=y
CONFIG_NLS_CODEPAGE_437=y
CONFIG_NLS_CODEPAGE_852=y
CONFIG_NLS_ISO8859_1=y
CONFIG_NLS_ISO8859_15=y
CONFIG_MAGIC_SYSRQ=y
CONFIG_DEBUG_KERNEL=y
CONFIG_DEBUG_SPINLOCK=y
CONFIG_DEBUG_ERRORS=y
CONFIG_SECURITY=y
CONFIG_CRYPTO_ECB=y
CONFIG_CRYPTO_PCBC=y
CONFIG_EXPERIMENTAL=y
CONFIG_SYSVIPC=y
CONFIG_LOG_BUF_SHIFT=14
CONFIG_BLK_DEV_INITRD=y
CONFIG_SLAB=y
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
# CONFIG_BLK_DEV_BSG is not set
CONFIG_ARCH_OMAP=y
CONFIG_ARCH_OMAP1=y
CONFIG_OMAP_MUX_DEBUG=y
CONFIG_OMAP_32K_TIMER=y
CONFIG_OMAP_DM_TIMER=y
# CONFIG_ARCH_OMAP15XX is not set
CONFIG_ARCH_OMAP16XX=y
CONFIG_MACH_OMAP_H2=y
CONFIG_NO_HZ=y
CONFIG_HIGH_RES_TIMERS=y
CONFIG_LEDS=y
CONFIG_ZBOOT_ROM_TEXT=0x0
CONFIG_ZBOOT_ROM_BSS=0x0
CONFIG_CMDLINE="mem=32M console=ttyS0,115200n8 root=/dev/ram0 rw initrd=0x10600000,8M ramdisk_size=8192"
CONFIG_FPE_NWFPE=y
CONFIG_PM=y
CONFIG_PM_RUNTIME=y
CONFIG_NET=y
CONFIG_PACKET=y
CONFIG_UNIX=y
CONFIG_INET=y
CONFIG_IP_PNP=y
CONFIG_IP_PNP_DHCP=y
CONFIG_IP_PNP_BOOTP=y
# CONFIG_INET_LRO is not set
# CONFIG_IPV6 is not set
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
CONFIG_DEBUG_DRIVER=y
CONFIG_MTD=y
CONFIG_MTD_DEBUG=y
CONFIG_MTD_DEBUG_VERBOSE=3
CONFIG_MTD_PARTITIONS=y
CONFIG_MTD_CMDLINE_PARTS=y
CONFIG_MTD_CHAR=y
CONFIG_MTD_BLOCK=y
CONFIG_MTD_CFI=y
CONFIG_MTD_CFI_INTELEXT=y
CONFIG_BLK_DEV_LOOP=y
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_SIZE=8192
CONFIG_NETDEVICES=y
CONFIG_NET_ETHERNET=y
CONFIG_SMC91X=y
CONFIG_PPP=y
CONFIG_SLIP=y
CONFIG_SLIP_COMPRESSED=y
CONFIG_INPUT_EVDEV=y
CONFIG_INPUT_EVBUG=y
# CONFIG_INPUT_KEYBOARD is not set
# CONFIG_INPUT_MOUSE is not set
CONFIG_INPUT_MISC=y
CONFIG_INPUT_UINPUT=y
CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250_CONSOLE=y
# CONFIG_LEGACY_PTYS is not set
CONFIG_I2C=y
CONFIG_I2C_OMAP=y
CONFIG_SPI=y
CONFIG_SPI_OMAP_UWIRE=y
CONFIG_WATCHDOG=y
CONFIG_WATCHDOG_NOWAYOUT=y
CONFIG_VIDEO_OUTPUT_CONTROL=m
CONFIG_FB=y
CONFIG_FIRMWARE_EDID=y
CONFIG_FB_MODE_HELPERS=y
CONFIG_FB_OMAP=y
# CONFIG_VGA_CONSOLE is not set
CONFIG_FRAMEBUFFER_CONSOLE=y
CONFIG_LOGO=y
# CONFIG_LOGO_LINUX_MONO is not set
# CONFIG_LOGO_LINUX_VGA16 is not set
# CONFIG_USB_HID is not set
CONFIG_USB=y
CONFIG_USB_DEVICEFS=y
# CONFIG_USB_DEVICE_CLASS is not set
CONFIG_USB_SUSPEND=y
CONFIG_USB_OTG=y
CONFIG_USB_MON=y
CONFIG_USB_OHCI_HCD=y
CONFIG_USB_TEST=y
CONFIG_USB_GADGET=y
CONFIG_USB_ETH=m
CONFIG_MMC=y
CONFIG_MMC_OMAP=y
CONFIG_RTC_CLASS=y
CONFIG_RTC_DRV_OMAP=y
CONFIG_EXT2_FS=y
CONFIG_INOTIFY=y
CONFIG_MSDOS_FS=y
CONFIG_VFAT_FS=y
CONFIG_JFFS2_FS=y
CONFIG_CRAMFS=y
CONFIG_ROMFS_FS=y
CONFIG_NFS_FS=y
CONFIG_ROOT_NFS=y
CONFIG_NLS_CODEPAGE_437=y
CONFIG_NLS_ISO8859_1=y
CONFIG_DEBUG_KERNEL=y
CONFIG_DEBUG_INFO=y
CONFIG_DEBUG_USER=y
CONFIG_DEBUG_ERRORS=y
CONFIG_EXPERIMENTAL=y
CONFIG_SYSVIPC=y
CONFIG_LOG_BUF_SHIFT=14
CONFIG_BLK_DEV_INITRD=y
CONFIG_SLAB=y
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
# CONFIG_BLK_DEV_BSG is not set
CONFIG_ARCH_OMAP=y
CONFIG_ARCH_OMAP1=y
CONFIG_MACH_OMAP_INNOVATOR=y
CONFIG_OMAP_ARM_168MHZ=y
# CONFIG_OMAP_ARM_60MHZ is not set
CONFIG_PREEMPT=y
CONFIG_LEDS=y
CONFIG_ZBOOT_ROM_TEXT=0x0
CONFIG_ZBOOT_ROM_BSS=0x0
CONFIG_CMDLINE="console=ttyS0,115200n8 root=/dev/nfs ip=bootp noinitrd"
CONFIG_FPE_NWFPE=y
CONFIG_PM=y
CONFIG_NET=y
CONFIG_PACKET=y
CONFIG_UNIX=y
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
CONFIG_IP_PNP=y
CONFIG_IP_PNP_DHCP=y
CONFIG_IP_PNP_BOOTP=y
# CONFIG_IPV6 is not set
CONFIG_BLK_DEV_LOOP=y
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_SIZE=8192
CONFIG_SCSI=y
CONFIG_BLK_DEV_SD=y
CONFIG_CHR_DEV_ST=y
CONFIG_BLK_DEV_SR=y
CONFIG_CHR_DEV_SG=y
CONFIG_SCSI_MULTI_LUN=y
CONFIG_NETDEVICES=y
CONFIG_NET_ETHERNET=y
CONFIG_SMC91X=y
CONFIG_USB_RTL8150=y
CONFIG_USB_USBNET=y
# CONFIG_USB_NET_CDC_SUBSET is not set
CONFIG_PPP=y
CONFIG_PPP_MULTILINK=y
CONFIG_PPP_ASYNC=y
CONFIG_PPP_DEFLATE=y
CONFIG_PPP_BSDCOMP=y
CONFIG_INPUT_MOUSEDEV_SCREEN_X=240
CONFIG_INPUT_MOUSEDEV_SCREEN_Y=320
# CONFIG_KEYBOARD_ATKBD is not set
CONFIG_KEYBOARD_OMAP=y
# CONFIG_INPUT_MOUSE is not set
CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250_CONSOLE=y
# CONFIG_LEGACY_PTYS is not set
CONFIG_I2C=y
CONFIG_VIDEO_OUTPUT_CONTROL=m
CONFIG_FB=y
CONFIG_FB_OMAP=y
# CONFIG_VGA_CONSOLE is not set
CONFIG_FRAMEBUFFER_CONSOLE=y
CONFIG_FONTS=y
CONFIG_FONT_8x8=y
CONFIG_FONT_8x16=y
CONFIG_LOGO=y
CONFIG_USB=y
CONFIG_USB_DEBUG=y
CONFIG_USB_DEVICEFS=y
# CONFIG_USB_DEVICE_CLASS is not set
CONFIG_USB_MON=y
CONFIG_USB_OHCI_HCD=y
CONFIG_USB_STORAGE=y
CONFIG_USB_STORAGE_DATAFAB=y
CONFIG_USB_STORAGE_FREECOM=y
CONFIG_USB_STORAGE_SDDR09=y
CONFIG_USB_STORAGE_SDDR55=y
CONFIG_USB_STORAGE_JUMPSHOT=y
CONFIG_MMC=y
CONFIG_MMC_OMAP=y
CONFIG_RTC_CLASS=y
CONFIG_RTC_DRV_OMAP=y
CONFIG_EXT2_FS=y
CONFIG_EXT3_FS=y
CONFIG_INOTIFY=y
CONFIG_AUTOFS_FS=y
CONFIG_AUTOFS4_FS=y
CONFIG_ISO9660_FS=y
CONFIG_JOLIET=y
CONFIG_MSDOS_FS=m
CONFIG_VFAT_FS=m
CONFIG_TMPFS=y
CONFIG_NFS_FS=y
CONFIG_NFS_V3=y
CONFIG_NFS_V4=y
CONFIG_ROOT_NFS=y
CONFIG_PARTITION_ADVANCED=y
CONFIG_MAGIC_SYSRQ=y
CONFIG_DEBUG_KERNEL=y
CONFIG_CRYPTO_ECB=m
CONFIG_CRYPTO_PCBC=m
CONFIG_EXPERIMENTAL=y
CONFIG_SYSVIPC=y
CONFIG_LOG_BUF_SHIFT=14
CONFIG_BLK_DEV_INITRD=y
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
# CONFIG_BLK_DEV_BSG is not set
CONFIG_ARCH_OMAP=y
CONFIG_ARCH_OMAP1=y
# CONFIG_ARCH_OMAP15XX is not set
CONFIG_ARCH_OMAP16XX=y
CONFIG_MACH_OMAP_INNOVATOR=y
CONFIG_OMAP_ARM_192MHZ=y
# CONFIG_OMAP_ARM_60MHZ is not set
# CONFIG_ARM_THUMB is not set
CONFIG_CPU_DCACHE_WRITETHROUGH=y
CONFIG_ZBOOT_ROM_TEXT=0x0
CONFIG_ZBOOT_ROM_BSS=0x0
CONFIG_CMDLINE="mem=32M console=tty0 console=ttyS0,115200 initrd=0x10200000,8M root=/dev/ram0 rw"
CONFIG_FPE_NWFPE=y
CONFIG_NET=y
CONFIG_PACKET=m
CONFIG_UNIX=y
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
CONFIG_IP_PNP=y
CONFIG_IP_PNP_DHCP=y
CONFIG_IP_PNP_BOOTP=y
# CONFIG_IPV6 is not set
CONFIG_BLK_DEV_LOOP=y
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_SIZE=8192
CONFIG_NETDEVICES=y
CONFIG_NET_ETHERNET=y
CONFIG_SMC91X=y
CONFIG_PPP=y
CONFIG_PPP_MULTILINK=y
# CONFIG_KEYBOARD_ATKBD is not set
CONFIG_KEYBOARD_OMAP=y
# CONFIG_INPUT_MOUSE is not set
CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250_CONSOLE=y
CONFIG_VIDEO_OUTPUT_CONTROL=m
CONFIG_FB=y
CONFIG_FB_MODE_HELPERS=y
CONFIG_FB_OMAP=y
# CONFIG_VGA_CONSOLE is not set
CONFIG_FRAMEBUFFER_CONSOLE=y
CONFIG_FONTS=y
CONFIG_FONT_8x8=y
CONFIG_FONT_8x16=y
CONFIG_LOGO=y
CONFIG_EXT2_FS=y
CONFIG_INOTIFY=y
CONFIG_AUTOFS_FS=y
CONFIG_AUTOFS4_FS=y
CONFIG_NFS_FS=y
CONFIG_NFS_V3=y
CONFIG_EXPERIMENTAL=y
CONFIG_SYSVIPC=y
CONFIG_LOG_BUF_SHIFT=14
CONFIG_BLK_DEV_INITRD=y
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
# CONFIG_BLK_DEV_BSG is not set
CONFIG_ARCH_OMAP=y
CONFIG_ARCH_OMAP1=y
CONFIG_OMAP_RESET_CLOCKS=y
CONFIG_OMAP_32K_TIMER=y
# CONFIG_ARCH_OMAP15XX is not set
CONFIG_ARCH_OMAP16XX=y
CONFIG_MACH_OMAP_OSK=y
CONFIG_OMAP_ARM_192MHZ=y
# CONFIG_OMAP_ARM_60MHZ is not set
# CONFIG_ARM_THUMB is not set
CONFIG_PCCARD=y
CONFIG_OMAP_CF=y
CONFIG_NO_HZ=y
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_FPE_NWFPE=y
CONFIG_PM=y
CONFIG_NET=y
CONFIG_PACKET=m
CONFIG_UNIX=y
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
CONFIG_IP_PNP=y
CONFIG_IP_PNP_DHCP=y
CONFIG_IP_PNP_BOOTP=y
# CONFIG_INET_LRO is not set
# CONFIG_IPV6 is not set
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
CONFIG_MTD=y
CONFIG_MTD_PARTITIONS=y
CONFIG_MTD_CMDLINE_PARTS=y
CONFIG_MTD_CHAR=y
CONFIG_MTD_BLOCK=y
CONFIG_MTD_CFI=y
CONFIG_MTD_CFI_INTELEXT=y
CONFIG_BLK_DEV_LOOP=y
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_SIZE=8192
CONFIG_IDE=m
CONFIG_BLK_DEV_IDECS=m
CONFIG_NETDEVICES=y
CONFIG_NET_ETHERNET=y
CONFIG_SMC91X=y
CONFIG_PPP=y
CONFIG_PPP_MULTILINK=y
# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
CONFIG_INPUT_EVDEV=y
# CONFIG_KEYBOARD_ATKBD is not set
CONFIG_KEYBOARD_OMAP=y
# CONFIG_INPUT_MOUSE is not set
CONFIG_INPUT_TOUCHSCREEN=y
# CONFIG_SERIO is not set
CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250_CONSOLE=y
CONFIG_I2C=y
CONFIG_I2C_CHARDEV=y
CONFIG_VIDEO_OUTPUT_CONTROL=m
CONFIG_FB=y
CONFIG_FB_MODE_HELPERS=y
CONFIG_FB_OMAP=y
# CONFIG_VGA_CONSOLE is not set
CONFIG_FRAMEBUFFER_CONSOLE=y
CONFIG_FONTS=y
CONFIG_FONT_8x8=y
CONFIG_LOGO=y
# CONFIG_LOGO_LINUX_MONO is not set
# CONFIG_LOGO_LINUX_VGA16 is not set
CONFIG_EXT2_FS=y
CONFIG_INOTIFY=y
CONFIG_AUTOFS_FS=y
CONFIG_AUTOFS4_FS=y
CONFIG_MSDOS_FS=m
CONFIG_VFAT_FS=m
CONFIG_JFFS2_FS=y
CONFIG_NFS_FS=y
CONFIG_NFS_V3=y
CONFIG_ROOT_NFS=y
CONFIG_NLS_CODEPAGE_437=m
CONFIG_NLS_ISO8859_1=m
CONFIG_EXPERIMENTAL=y
CONFIG_SYSVIPC=y
CONFIG_LOG_BUF_SHIFT=14
CONFIG_BLK_DEV_INITRD=y
CONFIG_SLAB=y
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
# CONFIG_BLK_DEV_BSG is not set
CONFIG_ARCH_OMAP=y
CONFIG_ARCH_OMAP1=y
CONFIG_ARCH_OMAP730=y
# CONFIG_ARCH_OMAP15XX is not set
CONFIG_MACH_OMAP_PERSEUS2=y
CONFIG_OMAP_ARM_182MHZ=y
# CONFIG_OMAP_ARM_60MHZ is not set
# CONFIG_ARM_THUMB is not set
CONFIG_PREEMPT=y
CONFIG_LEDS=y
CONFIG_LEDS_CPU=y
CONFIG_ZBOOT_ROM_TEXT=0x0
CONFIG_ZBOOT_ROM_BSS=0x0
CONFIG_CMDLINE="mem=32M console=ttyS0,115200 ip=dhcp"
CONFIG_FPE_NWFPE=y
CONFIG_PM=y
CONFIG_NET=y
CONFIG_PACKET=y
CONFIG_UNIX=y
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
CONFIG_IP_PNP=y
CONFIG_IP_PNP_DHCP=y
CONFIG_IP_PNP_BOOTP=y
# CONFIG_IPV6 is not set
CONFIG_MTD=y
CONFIG_MTD_PARTITIONS=y
CONFIG_MTD_CMDLINE_PARTS=y
CONFIG_MTD_CHAR=y
CONFIG_MTD_BLOCK=y
CONFIG_MTD_CFI=y
CONFIG_MTD_CFI_INTELEXT=y
CONFIG_MTD_NAND=y
CONFIG_BLK_DEV_LOOP=y
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_SIZE=8192
CONFIG_NETDEVICES=y
CONFIG_NET_ETHERNET=y
CONFIG_SMC91X=y
# CONFIG_KEYBOARD_ATKBD is not set
CONFIG_KEYBOARD_OMAP=y
# CONFIG_INPUT_MOUSE is not set
CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250_CONSOLE=y
# CONFIG_LEGACY_PTYS is not set
CONFIG_VIDEO_OUTPUT_CONTROL=m
CONFIG_FB=y
CONFIG_FB_MODE_HELPERS=y
CONFIG_FB_VIRTUAL=y
# CONFIG_VGA_CONSOLE is not set
CONFIG_RTC_CLASS=y
CONFIG_RTC_DRV_OMAP=y
CONFIG_EXT2_FS=y
CONFIG_INOTIFY=y
CONFIG_JFFS2_FS=y
CONFIG_NFS_FS=y
CONFIG_ROOT_NFS=y
CONFIG_EXPERIMENTAL=y
# CONFIG_SWAP is not set
CONFIG_SYSVIPC=y
CONFIG_BSD_PROCESS_ACCT=y
CONFIG_LOG_BUF_SHIFT=14
CONFIG_SLAB=y
# CONFIG_IOSCHED_DEADLINE is not set
# CONFIG_IOSCHED_CFQ is not set
CONFIG_ARCH_OMAP=y
CONFIG_ARCH_OMAP1=y
CONFIG_MACH_OMAP_PALMTE=y
CONFIG_OMAP_CLOCKS_SET_BY_BOOTLOADER=y
# CONFIG_OMAP_ARM_60MHZ is not set
# CONFIG_ARM_THUMB is not set
# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
CONFIG_ZBOOT_ROM_TEXT=0x0
CONFIG_ZBOOT_ROM_BSS=0x0
CONFIG_FPE_NWFPE=y
# CONFIG_STANDALONE is not set
# CONFIG_PREVENT_FIRMWARE_BUILD is not set
# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
CONFIG_INPUT_MOUSEDEV_SCREEN_X=320
CONFIG_INPUT_MOUSEDEV_SCREEN_Y=320
# CONFIG_INPUT_KEYBOARD is not set
# CONFIG_INPUT_MOUSE is not set
# CONFIG_SERIO is not set
# CONFIG_LEGACY_PTYS is not set
# CONFIG_HWMON is not set
CONFIG_FB=y
CONFIG_FB_OMAP=y
# CONFIG_VGA_CONSOLE is not set
CONFIG_FRAMEBUFFER_CONSOLE=y
CONFIG_LOGO=y
# CONFIG_LOGO_LINUX_MONO is not set
# CONFIG_LOGO_LINUX_VGA16 is not set
CONFIG_USB_GADGET=y
CONFIG_MMC=y
CONFIG_MMC_OMAP=y
CONFIG_EXT2_FS=y
CONFIG_MSDOS_FS=y
CONFIG_VFAT_FS=y
CONFIG_FAT_DEFAULT_CODEPAGE=850
CONFIG_TMPFS=y
CONFIG_CRAMFS=y
CONFIG_PARTITION_ADVANCED=y
CONFIG_NLS_CODEPAGE_850=y
CONFIG_NLS_ISO8859_1=y
CONFIG_CRC_CCITT=y
CONFIG_EXPERIMENTAL=y
CONFIG_SYSVIPC=y
CONFIG_BSD_PROCESS_ACCT=y
CONFIG_LOG_BUF_SHIFT=14
CONFIG_SLAB=y
# CONFIG_IOSCHED_DEADLINE is not set
# CONFIG_IOSCHED_CFQ is not set
CONFIG_ARCH_OMAP=y
CONFIG_ARCH_OMAP1=y
CONFIG_MACH_OMAP_PALMTT=y
CONFIG_OMAP_CLOCKS_SET_BY_BOOTLOADER=y
# CONFIG_OMAP_ARM_60MHZ is not set
# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
CONFIG_ZBOOT_ROM_TEXT=0x0
CONFIG_ZBOOT_ROM_BSS=0x0
CONFIG_CMDLINE="root=/dev/mmcblk0p2 rw init=/init"
CONFIG_FPE_NWFPE=y
CONFIG_NET=y
CONFIG_PACKET=y
CONFIG_UNIX=y
CONFIG_NET_KEY=y
CONFIG_INET=y
# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
# CONFIG_INET_XFRM_MODE_TUNNEL is not set
# CONFIG_INET_XFRM_MODE_BEET is not set
# CONFIG_INET_DIAG is not set
# CONFIG_IPV6 is not set
CONFIG_INPUT_MOUSEDEV_SCREEN_X=320
CONFIG_INPUT_MOUSEDEV_SCREEN_Y=320
CONFIG_INPUT_EVDEV=y
# CONFIG_INPUT_KEYBOARD is not set
# CONFIG_INPUT_MOUSE is not set
CONFIG_INPUT_TOUCHSCREEN=y
CONFIG_TOUCHSCREEN_ADS7846=y
# CONFIG_SERIO is not set
CONFIG_SPI=y
CONFIG_SPI_OMAP_UWIRE=y
CONFIG_FB=y
CONFIG_FIRMWARE_EDID=y
CONFIG_FB_OMAP=y
CONFIG_BACKLIGHT_LCD_SUPPORT=y
# CONFIG_VGA_CONSOLE is not set
CONFIG_FRAMEBUFFER_CONSOLE=y
CONFIG_NEW_LEDS=y
CONFIG_LEDS_CLASS=y
CONFIG_LEDS_TRIGGERS=y
CONFIG_LEDS_TRIGGER_TIMER=y
CONFIG_LEDS_TRIGGER_HEARTBEAT=y
CONFIG_RTC_CLASS=y
CONFIG_RTC_DRV_OMAP=y
CONFIG_EXT2_FS=y
CONFIG_PARTITION_ADVANCED=y
# CONFIG_ENABLE_MUST_CHECK is not set
CONFIG_CRC_CCITT=y
CONFIG_CRC16=y
CONFIG_LIBCRC32C=y
CONFIG_EXPERIMENTAL=y
CONFIG_LOCALVERSION="-z71"
CONFIG_SYSVIPC=y
CONFIG_BSD_PROCESS_ACCT=y
CONFIG_LOG_BUF_SHIFT=14
CONFIG_SLAB=y
# CONFIG_IOSCHED_DEADLINE is not set
# CONFIG_IOSCHED_CFQ is not set
CONFIG_ARCH_OMAP=y
CONFIG_ARCH_OMAP1=y
CONFIG_MACH_OMAP_PALMZ71=y
CONFIG_OMAP_CLOCKS_SET_BY_BOOTLOADER=y
# CONFIG_OMAP_ARM_60MHZ is not set
# CONFIG_ARM_THUMB is not set
# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
CONFIG_ZBOOT_ROM_TEXT=0x0
CONFIG_ZBOOT_ROM_BSS=0x0
CONFIG_FPE_NWFPE=y
CONFIG_NET=y
CONFIG_PACKET=y
CONFIG_UNIX=y
CONFIG_NET_KEY=y
CONFIG_INET=y
# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
# CONFIG_INET_XFRM_MODE_TUNNEL is not set
# CONFIG_INET_DIAG is not set
# CONFIG_IPV6 is not set
CONFIG_INPUT_MOUSEDEV_SCREEN_X=320
CONFIG_INPUT_MOUSEDEV_SCREEN_Y=320
# CONFIG_INPUT_KEYBOARD is not set
# CONFIG_INPUT_MOUSE is not set
CONFIG_INPUT_TOUCHSCREEN=y
CONFIG_TOUCHSCREEN_ADS7846=y
# CONFIG_SERIO is not set
CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250_CONSOLE=y
CONFIG_LEGACY_PTY_COUNT=16
CONFIG_SPI=y
CONFIG_SPI_OMAP_UWIRE=y
CONFIG_FB=y
CONFIG_FIRMWARE_EDID=y
CONFIG_FB_OMAP=y
CONFIG_BACKLIGHT_LCD_SUPPORT=y
# CONFIG_VGA_CONSOLE is not set
CONFIG_FRAMEBUFFER_CONSOLE=y
CONFIG_MMC=y
CONFIG_MMC_OMAP=y
CONFIG_RTC_CLASS=y
CONFIG_RTC_DRV_OMAP=y
CONFIG_EXT2_FS=y
CONFIG_CRC_CCITT=y
CONFIG_CRC16=y
CONFIG_LIBCRC32C=y
CONFIG_EXPERIMENTAL=y
CONFIG_SYSVIPC=y
CONFIG_POSIX_MQUEUE=y
CONFIG_IKCONFIG=y
CONFIG_LOG_BUF_SHIFT=14
CONFIG_EMBEDDED=y
# CONFIG_KALLSYMS is not set
# CONFIG_ELF_CORE is not set
# CONFIG_BASE_FULL is not set
# CONFIG_SHMEM is not set
# CONFIG_VM_EVENT_COUNTERS is not set
CONFIG_SLOB=y
CONFIG_PROFILING=y
CONFIG_OPROFILE=y
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
# CONFIG_IOSCHED_CFQ is not set
CONFIG_ARCH_OMAP=y
CONFIG_ARCH_OMAP1=y
CONFIG_OMAP_MBOX_FWK=y
CONFIG_MACH_SX1=y
CONFIG_OMAP_ARM_168MHZ=y
# CONFIG_OMAP_ARM_60MHZ is not set
# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
CONFIG_PREEMPT=y
CONFIG_ZBOOT_ROM_TEXT=0x0
CONFIG_ZBOOT_ROM_BSS=0x0
CONFIG_FPE_NWFPE=y
CONFIG_BINFMT_MISC=y
CONFIG_NET=y
CONFIG_PACKET=y
CONFIG_UNIX=y
CONFIG_INET=y
CONFIG_IP_PNP=y
# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
# CONFIG_INET_XFRM_MODE_TUNNEL is not set
# CONFIG_INET_XFRM_MODE_BEET is not set
# CONFIG_INET_DIAG is not set
# CONFIG_IPV6 is not set
# CONFIG_FW_LOADER is not set
CONFIG_CONNECTOR=y
# CONFIG_PROC_EVENTS is not set
CONFIG_BLK_DEV_LOOP=m
CONFIG_BLK_DEV_RAM=m
CONFIG_BLK_DEV_RAM_COUNT=2
CONFIG_NETDEVICES=y
CONFIG_PHYLIB=y
CONFIG_NET_ETHERNET=y
CONFIG_MII=y
# CONFIG_INPUT_MOUSEDEV is not set
CONFIG_INPUT_EVDEV=y
# CONFIG_KEYBOARD_ATKBD is not set
CONFIG_KEYBOARD_OMAP=y
# CONFIG_INPUT_MOUSE is not set
# CONFIG_SERIO is not set
CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250_NR_UARTS=3
# CONFIG_LEGACY_PTYS is not set
# CONFIG_HW_RANDOM is not set
CONFIG_I2C=y
CONFIG_I2C_CHARDEV=y
CONFIG_I2C_OMAP=y
# CONFIG_HWMON is not set
CONFIG_FB=y
CONFIG_FB_OMAP=y
CONFIG_FB_OMAP_BOOTLOADER_INIT=y
# CONFIG_VGA_CONSOLE is not set
CONFIG_FRAMEBUFFER_CONSOLE=y
CONFIG_FONTS=y
CONFIG_FONT_MINI_4x6=y
CONFIG_LOGO=y
# CONFIG_LOGO_LINUX_MONO is not set
# CONFIG_LOGO_LINUX_VGA16 is not set
CONFIG_SOUND=y
CONFIG_SND=y
CONFIG_SND_MIXER_OSS=y
CONFIG_SND_PCM_OSS=y
# CONFIG_SND_SUPPORT_OLD_API is not set
# CONFIG_SND_VERBOSE_PROCFS is not set
CONFIG_USB_GADGET=y
CONFIG_USB_ETH=m
CONFIG_MMC=y
CONFIG_MMC_OMAP=y
CONFIG_RTC_CLASS=y
CONFIG_RTC_DRV_OMAP=y
CONFIG_EXT2_FS=y
# CONFIG_DNOTIFY is not set
CONFIG_INOTIFY=y
CONFIG_MSDOS_FS=y
CONFIG_VFAT_FS=y
CONFIG_FAT_DEFAULT_CODEPAGE=866
CONFIG_FAT_DEFAULT_IOCHARSET="koi8-r"
CONFIG_CRAMFS=y
CONFIG_NFS_FS=y
CONFIG_ROOT_NFS=y
CONFIG_PARTITION_ADVANCED=y
CONFIG_NLS_CODEPAGE_437=y
CONFIG_NLS_CODEPAGE_866=y
CONFIG_NLS_CODEPAGE_1251=y
CONFIG_NLS_ISO8859_1=y
CONFIG_NLS_ISO8859_5=y
CONFIG_NLS_KOI8_R=y
CONFIG_NLS_UTF8=y
# CONFIG_ENABLE_MUST_CHECK is not set
CONFIG_DEBUG_KERNEL=y
# CONFIG_DETECT_SOFTLOCKUP is not set
# CONFIG_DEBUG_BUGVERBOSE is not set
CONFIG_CRC_CCITT=y
CONFIG_CRC16=y
CONFIG_LIBCRC32C=y
...@@ -59,7 +59,17 @@ ...@@ -59,7 +59,17 @@
#define L2X0_CACHE_ID_PART_MASK (0xf << 6) #define L2X0_CACHE_ID_PART_MASK (0xf << 6)
#define L2X0_CACHE_ID_PART_L210 (1 << 6) #define L2X0_CACHE_ID_PART_L210 (1 << 6)
#define L2X0_CACHE_ID_PART_L310 (3 << 6) #define L2X0_CACHE_ID_PART_L310 (3 << 6)
#define L2X0_AUX_CTRL_WAY_SIZE_MASK (0x3 << 17)
#define L2X0_AUX_CTRL_MASK 0xc0000fff
#define L2X0_AUX_CTRL_ASSOCIATIVITY_SHIFT 16
#define L2X0_AUX_CTRL_WAY_SIZE_SHIFT 17
#define L2X0_AUX_CTRL_WAY_SIZE_MASK (0x3 << 17)
#define L2X0_AUX_CTRL_SHARE_OVERRIDE_SHIFT 22
#define L2X0_AUX_CTRL_NS_LOCKDOWN_SHIFT 26
#define L2X0_AUX_CTRL_NS_INT_CTRL_SHIFT 27
#define L2X0_AUX_CTRL_DATA_PREFETCH_SHIFT 28
#define L2X0_AUX_CTRL_INSTR_PREFETCH_SHIFT 29
#define L2X0_AUX_CTRL_EARLY_BRESP_SHIFT 30
#ifndef __ASSEMBLY__ #ifndef __ASSEMBLY__
extern void __init l2x0_init(void __iomem *base, __u32 aux_val, __u32 aux_mask); extern void __init l2x0_init(void __iomem *base, __u32 aux_val, __u32 aux_mask);
......
...@@ -152,20 +152,11 @@ config MACH_NOKIA770 ...@@ -152,20 +152,11 @@ config MACH_NOKIA770
config MACH_AMS_DELTA config MACH_AMS_DELTA
bool "Amstrad E3 (Delta)" bool "Amstrad E3 (Delta)"
depends on ARCH_OMAP1 && ARCH_OMAP15XX depends on ARCH_OMAP1 && ARCH_OMAP15XX
select FIQ
help help
Support for the Amstrad E3 (codename Delta) videophone. Say Y here Support for the Amstrad E3 (codename Delta) videophone. Say Y here
if you have such a device. if you have such a device.
config AMS_DELTA_FIQ
bool "Fast Interrupt Request (FIQ) support for the E3"
depends on MACH_AMS_DELTA
select FIQ
help
Provide a FIQ handler for the E3.
This allows for fast handling of interrupts generated
by the clock line of the E3 mailboard (or a PS/2 keyboard)
connected to the GPIO based external keyboard port.
config MACH_OMAP_GENERIC config MACH_OMAP_GENERIC
bool "Generic OMAP board" bool "Generic OMAP board"
depends on ARCH_OMAP1 && (ARCH_OMAP15XX || ARCH_OMAP16XX) depends on ARCH_OMAP1 && (ARCH_OMAP15XX || ARCH_OMAP16XX)
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
# #
# Common support # Common support
obj-y := io.o id.o sram.o irq.o mux.o flash.o serial.o devices.o obj-y := io.o id.o sram.o irq.o mux.o flash.o serial.o devices.o dma.o
obj-y += clock.o clock_data.o opp_data.o obj-y += clock.o clock_data.o opp_data.o
obj-$(CONFIG_OMAP_MCBSP) += mcbsp.o obj-$(CONFIG_OMAP_MCBSP) += mcbsp.o
...@@ -39,8 +39,8 @@ obj-$(CONFIG_MACH_OMAP_PALMTE) += board-palmte.o ...@@ -39,8 +39,8 @@ obj-$(CONFIG_MACH_OMAP_PALMTE) += board-palmte.o
obj-$(CONFIG_MACH_OMAP_PALMZ71) += board-palmz71.o obj-$(CONFIG_MACH_OMAP_PALMZ71) += board-palmz71.o
obj-$(CONFIG_MACH_OMAP_PALMTT) += board-palmtt.o obj-$(CONFIG_MACH_OMAP_PALMTT) += board-palmtt.o
obj-$(CONFIG_MACH_NOKIA770) += board-nokia770.o obj-$(CONFIG_MACH_NOKIA770) += board-nokia770.o
obj-$(CONFIG_MACH_AMS_DELTA) += board-ams-delta.o obj-$(CONFIG_MACH_AMS_DELTA) += board-ams-delta.o ams-delta-fiq.o \
obj-$(CONFIG_AMS_DELTA_FIQ) += ams-delta-fiq.o ams-delta-fiq-handler.o ams-delta-fiq-handler.o
obj-$(CONFIG_MACH_SX1) += board-sx1.o board-sx1-mmc.o obj-$(CONFIG_MACH_SX1) += board-sx1.o board-sx1-mmc.o
obj-$(CONFIG_MACH_HERALD) += board-htcherald.o obj-$(CONFIG_MACH_HERALD) += board-htcherald.o
...@@ -49,6 +49,12 @@ ifeq ($(CONFIG_ARCH_OMAP15XX),y) ...@@ -49,6 +49,12 @@ ifeq ($(CONFIG_ARCH_OMAP15XX),y)
obj-$(CONFIG_MACH_OMAP_INNOVATOR) += fpga.o obj-$(CONFIG_MACH_OMAP_INNOVATOR) += fpga.o
endif endif
# GPIO
obj-$(CONFIG_ARCH_OMAP730) += gpio7xx.o
obj-$(CONFIG_ARCH_OMAP850) += gpio7xx.o
obj-$(CONFIG_ARCH_OMAP15XX) += gpio15xx.o
obj-$(CONFIG_ARCH_OMAP16XX) += gpio16xx.o
# LEDs support # LEDs support
led-$(CONFIG_MACH_OMAP_H2) += leds-h2p2-debug.o led-$(CONFIG_MACH_OMAP_H2) += leds-h2p2-debug.o
led-$(CONFIG_MACH_OMAP_H3) += leds-h2p2-debug.o led-$(CONFIG_MACH_OMAP_H3) += leds-h2p2-debug.o
......
...@@ -28,6 +28,7 @@ ...@@ -28,6 +28,7 @@
#include <asm/mach/arch.h> #include <asm/mach/arch.h>
#include <asm/mach/map.h> #include <asm/mach/map.h>
#include <plat/io.h>
#include <plat/board-ams-delta.h> #include <plat/board-ams-delta.h>
#include <mach/gpio.h> #include <mach/gpio.h>
#include <plat/keypad.h> #include <plat/keypad.h>
...@@ -42,84 +43,82 @@ ...@@ -42,84 +43,82 @@
static u8 ams_delta_latch1_reg; static u8 ams_delta_latch1_reg;
static u16 ams_delta_latch2_reg; static u16 ams_delta_latch2_reg;
static int ams_delta_keymap[] = { static const unsigned int ams_delta_keymap[] = {
KEY(0, 0, KEY_F1), /* Advert */ KEY(0, 0, KEY_F1), /* Advert */
KEY(3, 0, KEY_COFFEE), /* Games */ KEY(0, 3, KEY_COFFEE), /* Games */
KEY(2, 0, KEY_QUESTION), /* Directory */ KEY(0, 2, KEY_QUESTION), /* Directory */
KEY(3, 2, KEY_CONNECT), /* Internet */ KEY(2, 3, KEY_CONNECT), /* Internet */
KEY(2, 1, KEY_SHOP), /* Services */ KEY(1, 2, KEY_SHOP), /* Services */
KEY(1, 1, KEY_PHONE), /* VoiceMail */ KEY(1, 1, KEY_PHONE), /* VoiceMail */
KEY(1, 0, KEY_DELETE), /* Delete */ KEY(0, 1, KEY_DELETE), /* Delete */
KEY(2, 2, KEY_PLAY), /* Play */ KEY(2, 2, KEY_PLAY), /* Play */
KEY(0, 1, KEY_PAGEUP), /* Up */ KEY(1, 0, KEY_PAGEUP), /* Up */
KEY(3, 1, KEY_PAGEDOWN), /* Down */ KEY(1, 3, KEY_PAGEDOWN), /* Down */
KEY(0, 2, KEY_EMAIL), /* ReadEmail */ KEY(2, 0, KEY_EMAIL), /* ReadEmail */
KEY(1, 2, KEY_STOP), /* Stop */ KEY(2, 1, KEY_STOP), /* Stop */
/* Numeric keypad portion */ /* Numeric keypad portion */
KEY(7, 0, KEY_KP1), KEY(0, 7, KEY_KP1),
KEY(6, 0, KEY_KP2), KEY(0, 6, KEY_KP2),
KEY(5, 0, KEY_KP3), KEY(0, 5, KEY_KP3),
KEY(7, 1, KEY_KP4), KEY(1, 7, KEY_KP4),
KEY(6, 1, KEY_KP5), KEY(1, 6, KEY_KP5),
KEY(5, 1, KEY_KP6), KEY(1, 5, KEY_KP6),
KEY(7, 2, KEY_KP7), KEY(2, 7, KEY_KP7),
KEY(6, 2, KEY_KP8), KEY(2, 6, KEY_KP8),
KEY(5, 2, KEY_KP9), KEY(2, 5, KEY_KP9),
KEY(6, 3, KEY_KP0), KEY(3, 6, KEY_KP0),
KEY(7, 3, KEY_KPASTERISK), KEY(3, 7, KEY_KPASTERISK),
KEY(5, 3, KEY_KPDOT), /* # key */ KEY(3, 5, KEY_KPDOT), /* # key */
KEY(2, 7, KEY_NUMLOCK), /* Mute */ KEY(7, 2, KEY_NUMLOCK), /* Mute */
KEY(1, 7, KEY_KPMINUS), /* Recall */ KEY(7, 1, KEY_KPMINUS), /* Recall */
KEY(1, 6, KEY_KPPLUS), /* Redial */ KEY(6, 1, KEY_KPPLUS), /* Redial */
KEY(6, 7, KEY_KPSLASH), /* Handsfree */ KEY(7, 6, KEY_KPSLASH), /* Handsfree */
KEY(0, 6, KEY_ENTER), /* Video */ KEY(6, 0, KEY_ENTER), /* Video */
KEY(4, 7, KEY_CAMERA), /* Photo */ KEY(7, 4, KEY_CAMERA), /* Photo */
KEY(4, 0, KEY_F2), /* Home */ KEY(0, 4, KEY_F2), /* Home */
KEY(4, 1, KEY_F3), /* Office */ KEY(1, 4, KEY_F3), /* Office */
KEY(4, 2, KEY_F4), /* Mobile */ KEY(2, 4, KEY_F4), /* Mobile */
KEY(7, 7, KEY_F5), /* SMS */ KEY(7, 7, KEY_F5), /* SMS */
KEY(5, 7, KEY_F6), /* Email */ KEY(7, 5, KEY_F6), /* Email */
/* QWERTY portion of keypad */ /* QWERTY portion of keypad */
KEY(4, 3, KEY_Q), KEY(3, 4, KEY_Q),
KEY(3, 3, KEY_W), KEY(3, 3, KEY_W),
KEY(2, 3, KEY_E), KEY(3, 2, KEY_E),
KEY(1, 3, KEY_R), KEY(3, 1, KEY_R),
KEY(0, 3, KEY_T), KEY(3, 0, KEY_T),
KEY(7, 4, KEY_Y), KEY(4, 7, KEY_Y),
KEY(6, 4, KEY_U), KEY(4, 6, KEY_U),
KEY(5, 4, KEY_I), KEY(4, 5, KEY_I),
KEY(4, 4, KEY_O), KEY(4, 4, KEY_O),
KEY(3, 4, KEY_P), KEY(4, 3, KEY_P),
KEY(2, 4, KEY_A), KEY(4, 2, KEY_A),
KEY(1, 4, KEY_S), KEY(4, 1, KEY_S),
KEY(0, 4, KEY_D), KEY(4, 0, KEY_D),
KEY(7, 5, KEY_F), KEY(5, 7, KEY_F),
KEY(6, 5, KEY_G), KEY(5, 6, KEY_G),
KEY(5, 5, KEY_H), KEY(5, 5, KEY_H),
KEY(4, 5, KEY_J), KEY(5, 4, KEY_J),
KEY(3, 5, KEY_K), KEY(5, 3, KEY_K),
KEY(2, 5, KEY_L), KEY(5, 2, KEY_L),
KEY(1, 5, KEY_Z), KEY(5, 1, KEY_Z),
KEY(0, 5, KEY_X), KEY(5, 0, KEY_X),
KEY(7, 6, KEY_C), KEY(6, 7, KEY_C),
KEY(6, 6, KEY_V), KEY(6, 6, KEY_V),
KEY(5, 6, KEY_B), KEY(6, 5, KEY_B),
KEY(4, 6, KEY_N), KEY(6, 4, KEY_N),
KEY(3, 6, KEY_M), KEY(6, 3, KEY_M),
KEY(2, 6, KEY_SPACE), KEY(6, 2, KEY_SPACE),
KEY(0, 7, KEY_LEFTSHIFT), /* Vol up */ KEY(7, 0, KEY_LEFTSHIFT), /* Vol up */
KEY(3, 7, KEY_LEFTCTRL), /* Vol down */ KEY(7, 3, KEY_LEFTCTRL), /* Vol down */
0
}; };
void ams_delta_latch1_write(u8 mask, u8 value) void ams_delta_latch1_write(u8 mask, u8 value)
...@@ -140,7 +139,6 @@ static void __init ams_delta_init_irq(void) ...@@ -140,7 +139,6 @@ static void __init ams_delta_init_irq(void)
{ {
omap1_init_common_hw(); omap1_init_common_hw();
omap_init_irq(); omap_init_irq();
omap_gpio_init();
} }
static struct map_desc ams_delta_io_desc[] __initdata = { static struct map_desc ams_delta_io_desc[] __initdata = {
...@@ -189,11 +187,15 @@ static struct resource ams_delta_kp_resources[] = { ...@@ -189,11 +187,15 @@ static struct resource ams_delta_kp_resources[] = {
}, },
}; };
static const struct matrix_keymap_data ams_delta_keymap_data = {
.keymap = ams_delta_keymap,
.keymap_size = ARRAY_SIZE(ams_delta_keymap),
};
static struct omap_kp_platform_data ams_delta_kp_data = { static struct omap_kp_platform_data ams_delta_kp_data = {
.rows = 8, .rows = 8,
.cols = 8, .cols = 8,
.keymap = ams_delta_keymap, .keymap_data = &ams_delta_keymap_data,
.keymapsize = ARRAY_SIZE(ams_delta_keymap),
.delay = 9, .delay = 9,
}; };
...@@ -307,16 +309,14 @@ static void __init ams_delta_init(void) ...@@ -307,16 +309,14 @@ static void __init ams_delta_init(void)
#endif #endif
platform_add_devices(ams_delta_devices, ARRAY_SIZE(ams_delta_devices)); platform_add_devices(ams_delta_devices, ARRAY_SIZE(ams_delta_devices));
#ifdef CONFIG_AMS_DELTA_FIQ
ams_delta_init_fiq(); ams_delta_init_fiq();
#endif
omap_writew(omap_readw(ARM_RSTCT1) | 0x0004, ARM_RSTCT1); omap_writew(omap_readw(ARM_RSTCT1) | 0x0004, ARM_RSTCT1);
} }
static struct plat_serial8250_port ams_delta_modem_ports[] = { static struct plat_serial8250_port ams_delta_modem_ports[] = {
{ {
.membase = (void *) AMS_DELTA_MODEM_VIRT, .membase = IOMEM(AMS_DELTA_MODEM_VIRT),
.mapbase = AMS_DELTA_MODEM_PHYS, .mapbase = AMS_DELTA_MODEM_PHYS,
.irq = -EINVAL, /* changed later */ .irq = -EINVAL, /* changed later */
.flags = UPF_BOOT_AUTOCONF, .flags = UPF_BOOT_AUTOCONF,
...@@ -340,6 +340,9 @@ static int __init ams_delta_modem_init(void) ...@@ -340,6 +340,9 @@ static int __init ams_delta_modem_init(void)
{ {
int err; int err;
if (!machine_is_ams_delta())
return -ENODEV;
omap_cfg_reg(M14_1510_GPIO2); omap_cfg_reg(M14_1510_GPIO2);
ams_delta_modem_ports[0].irq = ams_delta_modem_ports[0].irq =
gpio_to_irq(AMS_DELTA_GPIO_PIN_MODEM_IRQ); gpio_to_irq(AMS_DELTA_GPIO_PIN_MODEM_IRQ);
......
...@@ -69,36 +69,35 @@ ...@@ -69,36 +69,35 @@
#define fsample_cpld_clear(bit) \ #define fsample_cpld_clear(bit) \
fsample_cpld_write(0xf0 | ((bit) & 15), FSAMPLE_CPLD_SET_CLR) fsample_cpld_write(0xf0 | ((bit) & 15), FSAMPLE_CPLD_SET_CLR)
static int fsample_keymap[] = { static const unsigned int fsample_keymap[] = {
KEY(0,0,KEY_UP), KEY(0, 0, KEY_UP),
KEY(0,1,KEY_RIGHT), KEY(1, 0, KEY_RIGHT),
KEY(0,2,KEY_LEFT), KEY(2, 0, KEY_LEFT),
KEY(0,3,KEY_DOWN), KEY(3, 0, KEY_DOWN),
KEY(0,4,KEY_ENTER), KEY(4, 0, KEY_ENTER),
KEY(1,0,KEY_F10), KEY(0, 1, KEY_F10),
KEY(1,1,KEY_SEND), KEY(1, 1, KEY_SEND),
KEY(1,2,KEY_END), KEY(2, 1, KEY_END),
KEY(1,3,KEY_VOLUMEDOWN), KEY(3, 1, KEY_VOLUMEDOWN),
KEY(1,4,KEY_VOLUMEUP), KEY(4, 1, KEY_VOLUMEUP),
KEY(1,5,KEY_RECORD), KEY(5, 1, KEY_RECORD),
KEY(2,0,KEY_F9), KEY(0, 2, KEY_F9),
KEY(2,1,KEY_3), KEY(1, 2, KEY_3),
KEY(2,2,KEY_6), KEY(2, 2, KEY_6),
KEY(2,3,KEY_9), KEY(3, 2, KEY_9),
KEY(2,4,KEY_KPDOT), KEY(4, 2, KEY_KPDOT),
KEY(3,0,KEY_BACK), KEY(0, 3, KEY_BACK),
KEY(3,1,KEY_2), KEY(1, 3, KEY_2),
KEY(3,2,KEY_5), KEY(2, 3, KEY_5),
KEY(3,3,KEY_8), KEY(3, 3, KEY_8),
KEY(3,4,KEY_0), KEY(4, 3, KEY_0),
KEY(3,5,KEY_KPSLASH), KEY(5, 3, KEY_KPSLASH),
KEY(4,0,KEY_HOME), KEY(0, 4, KEY_HOME),
KEY(4,1,KEY_1), KEY(1, 4, KEY_1),
KEY(4,2,KEY_4), KEY(2, 4, KEY_4),
KEY(4,3,KEY_7), KEY(3, 4, KEY_7),
KEY(4,4,KEY_KPASTERISK), KEY(4, 4, KEY_KPASTERISK),
KEY(4,5,KEY_POWER), KEY(5, 4, KEY_POWER),
0
}; };
static struct smc91x_platdata smc91x_info = { static struct smc91x_platdata smc91x_info = {
...@@ -120,6 +119,15 @@ static struct resource smc91x_resources[] = { ...@@ -120,6 +119,15 @@ static struct resource smc91x_resources[] = {
}, },
}; };
static void __init fsample_init_smc91x(void)
{
fpga_write(1, H2P2_DBG_FPGA_LAN_RESET);
mdelay(50);
fpga_write(fpga_read(H2P2_DBG_FPGA_LAN_RESET) & ~1,
H2P2_DBG_FPGA_LAN_RESET);
mdelay(50);
}
static struct mtd_partition nor_partitions[] = { static struct mtd_partition nor_partitions[] = {
/* bootloader (U-Boot, etc) in first sector */ /* bootloader (U-Boot, etc) in first sector */
{ {
...@@ -244,11 +252,15 @@ static struct resource kp_resources[] = { ...@@ -244,11 +252,15 @@ static struct resource kp_resources[] = {
}, },
}; };
static const struct matrix_keymap_data fsample_keymap_data = {
.keymap = fsample_keymap,
.keymap_size = ARRAY_SIZE(fsample_keymap),
};
static struct omap_kp_platform_data kp_data = { static struct omap_kp_platform_data kp_data = {
.rows = 8, .rows = 8,
.cols = 8, .cols = 8,
.keymap = fsample_keymap, .keymap_data = &fsample_keymap_data,
.keymapsize = ARRAY_SIZE(fsample_keymap),
.delay = 4, .delay = 4,
}; };
...@@ -285,6 +297,8 @@ static struct omap_board_config_kernel fsample_config[] = { ...@@ -285,6 +297,8 @@ static struct omap_board_config_kernel fsample_config[] = {
static void __init omap_fsample_init(void) static void __init omap_fsample_init(void)
{ {
fsample_init_smc91x();
if (gpio_request(FSAMPLE_NAND_RB_GPIO_PIN, "NAND ready") < 0) if (gpio_request(FSAMPLE_NAND_RB_GPIO_PIN, "NAND ready") < 0)
BUG(); BUG();
gpio_direction_input(FSAMPLE_NAND_RB_GPIO_PIN); gpio_direction_input(FSAMPLE_NAND_RB_GPIO_PIN);
...@@ -312,21 +326,10 @@ static void __init omap_fsample_init(void) ...@@ -312,21 +326,10 @@ static void __init omap_fsample_init(void)
omap_register_i2c_bus(1, 100, NULL, 0); omap_register_i2c_bus(1, 100, NULL, 0);
} }
static void __init fsample_init_smc91x(void)
{
fpga_write(1, H2P2_DBG_FPGA_LAN_RESET);
mdelay(50);
fpga_write(fpga_read(H2P2_DBG_FPGA_LAN_RESET) & ~1,
H2P2_DBG_FPGA_LAN_RESET);
mdelay(50);
}
static void __init omap_fsample_init_irq(void) static void __init omap_fsample_init_irq(void)
{ {
omap1_init_common_hw(); omap1_init_common_hw();
omap_init_irq(); omap_init_irq();
omap_gpio_init();
fsample_init_smc91x();
} }
/* Only FPGA needs to be mapped here. All others are done with ioremap */ /* Only FPGA needs to be mapped here. All others are done with ioremap */
......
...@@ -52,43 +52,42 @@ ...@@ -52,43 +52,42 @@
/* At OMAP1610 Innovator the Ethernet is directly connected to CS1 */ /* At OMAP1610 Innovator the Ethernet is directly connected to CS1 */
#define OMAP1610_ETHR_START 0x04000300 #define OMAP1610_ETHR_START 0x04000300
static int h2_keymap[] = { static const unsigned int h2_keymap[] = {
KEY(0, 0, KEY_LEFT), KEY(0, 0, KEY_LEFT),
KEY(0, 1, KEY_RIGHT), KEY(1, 0, KEY_RIGHT),
KEY(0, 2, KEY_3), KEY(2, 0, KEY_3),
KEY(0, 3, KEY_F10), KEY(3, 0, KEY_F10),
KEY(0, 4, KEY_F5), KEY(4, 0, KEY_F5),
KEY(0, 5, KEY_9), KEY(5, 0, KEY_9),
KEY(1, 0, KEY_DOWN), KEY(0, 1, KEY_DOWN),
KEY(1, 1, KEY_UP), KEY(1, 1, KEY_UP),
KEY(1, 2, KEY_2), KEY(2, 1, KEY_2),
KEY(1, 3, KEY_F9), KEY(3, 1, KEY_F9),
KEY(1, 4, KEY_F7), KEY(4, 1, KEY_F7),
KEY(1, 5, KEY_0), KEY(5, 1, KEY_0),
KEY(2, 0, KEY_ENTER), KEY(0, 2, KEY_ENTER),
KEY(2, 1, KEY_6), KEY(1, 2, KEY_6),
KEY(2, 2, KEY_1), KEY(2, 2, KEY_1),
KEY(2, 3, KEY_F2), KEY(3, 2, KEY_F2),
KEY(2, 4, KEY_F6), KEY(4, 2, KEY_F6),
KEY(2, 5, KEY_HOME), KEY(5, 2, KEY_HOME),
KEY(3, 0, KEY_8), KEY(0, 3, KEY_8),
KEY(3, 1, KEY_5), KEY(1, 3, KEY_5),
KEY(3, 2, KEY_F12), KEY(2, 3, KEY_F12),
KEY(3, 3, KEY_F3), KEY(3, 3, KEY_F3),
KEY(3, 4, KEY_F8), KEY(4, 3, KEY_F8),
KEY(3, 5, KEY_END), KEY(5, 3, KEY_END),
KEY(4, 0, KEY_7), KEY(0, 4, KEY_7),
KEY(4, 1, KEY_4), KEY(1, 4, KEY_4),
KEY(4, 2, KEY_F11), KEY(2, 4, KEY_F11),
KEY(4, 3, KEY_F1), KEY(3, 4, KEY_F1),
KEY(4, 4, KEY_F4), KEY(4, 4, KEY_F4),
KEY(4, 5, KEY_ESC), KEY(5, 4, KEY_ESC),
KEY(5, 0, KEY_F13), KEY(0, 5, KEY_F13),
KEY(5, 1, KEY_F14), KEY(1, 5, KEY_F14),
KEY(5, 2, KEY_F15), KEY(2, 5, KEY_F15),
KEY(5, 3, KEY_F16), KEY(3, 5, KEY_F16),
KEY(5, 4, KEY_SLEEP), KEY(4, 5, KEY_SLEEP),
0
}; };
static struct mtd_partition h2_nor_partitions[] = { static struct mtd_partition h2_nor_partitions[] = {
...@@ -270,14 +269,18 @@ static struct resource h2_kp_resources[] = { ...@@ -270,14 +269,18 @@ static struct resource h2_kp_resources[] = {
}, },
}; };
static const struct matrix_keymap_data h2_keymap_data = {
.keymap = h2_keymap,
.keymap_size = ARRAY_SIZE(h2_keymap),
};
static struct omap_kp_platform_data h2_kp_data = { static struct omap_kp_platform_data h2_kp_data = {
.rows = 8, .rows = 8,
.cols = 8, .cols = 8,
.keymap = h2_keymap, .keymap_data = &h2_keymap_data,
.keymapsize = ARRAY_SIZE(h2_keymap), .rep = true,
.rep = 1,
.delay = 9, .delay = 9,
.dbounce = 1, .dbounce = true,
}; };
static struct platform_device h2_kp_device = { static struct platform_device h2_kp_device = {
...@@ -374,8 +377,6 @@ static void __init h2_init_irq(void) ...@@ -374,8 +377,6 @@ static void __init h2_init_irq(void)
{ {
omap1_init_common_hw(); omap1_init_common_hw();
omap_init_irq(); omap_init_irq();
omap_gpio_init();
h2_init_smc91x();
} }
static struct omap_usb_config h2_usb_config __initdata = { static struct omap_usb_config h2_usb_config __initdata = {
...@@ -403,6 +404,8 @@ static struct omap_board_config_kernel h2_config[] __initdata = { ...@@ -403,6 +404,8 @@ static struct omap_board_config_kernel h2_config[] __initdata = {
static void __init h2_init(void) static void __init h2_init(void)
{ {
h2_init_smc91x();
/* Here we assume the NOR boot config: NOR on CS3 (possibly swapped /* Here we assume the NOR boot config: NOR on CS3 (possibly swapped
* to address 0 by a dip switch), NAND on CS2B. The NAND driver will * to address 0 by a dip switch), NAND on CS2B. The NAND driver will
* notice whether a NAND chip is enabled at probe time. * notice whether a NAND chip is enabled at probe time.
......
...@@ -56,43 +56,42 @@ ...@@ -56,43 +56,42 @@
#define H3_TS_GPIO 48 #define H3_TS_GPIO 48
static int h3_keymap[] = { static const unsigned int h3_keymap[] = {
KEY(0, 0, KEY_LEFT), KEY(0, 0, KEY_LEFT),
KEY(0, 1, KEY_RIGHT), KEY(1, 0, KEY_RIGHT),
KEY(0, 2, KEY_3), KEY(2, 0, KEY_3),
KEY(0, 3, KEY_F10), KEY(3, 0, KEY_F10),
KEY(0, 4, KEY_F5), KEY(4, 0, KEY_F5),
KEY(0, 5, KEY_9), KEY(5, 0, KEY_9),
KEY(1, 0, KEY_DOWN), KEY(0, 1, KEY_DOWN),
KEY(1, 1, KEY_UP), KEY(1, 1, KEY_UP),
KEY(1, 2, KEY_2), KEY(2, 1, KEY_2),
KEY(1, 3, KEY_F9), KEY(3, 1, KEY_F9),
KEY(1, 4, KEY_F7), KEY(4, 1, KEY_F7),
KEY(1, 5, KEY_0), KEY(5, 1, KEY_0),
KEY(2, 0, KEY_ENTER), KEY(0, 2, KEY_ENTER),
KEY(2, 1, KEY_6), KEY(1, 2, KEY_6),
KEY(2, 2, KEY_1), KEY(2, 2, KEY_1),
KEY(2, 3, KEY_F2), KEY(3, 2, KEY_F2),
KEY(2, 4, KEY_F6), KEY(4, 2, KEY_F6),
KEY(2, 5, KEY_HOME), KEY(5, 2, KEY_HOME),
KEY(3, 0, KEY_8), KEY(0, 3, KEY_8),
KEY(3, 1, KEY_5), KEY(1, 3, KEY_5),
KEY(3, 2, KEY_F12), KEY(2, 3, KEY_F12),
KEY(3, 3, KEY_F3), KEY(3, 3, KEY_F3),
KEY(3, 4, KEY_F8), KEY(4, 3, KEY_F8),
KEY(3, 5, KEY_END), KEY(5, 3, KEY_END),
KEY(4, 0, KEY_7), KEY(0, 4, KEY_7),
KEY(4, 1, KEY_4), KEY(1, 4, KEY_4),
KEY(4, 2, KEY_F11), KEY(2, 4, KEY_F11),
KEY(4, 3, KEY_F1), KEY(3, 4, KEY_F1),
KEY(4, 4, KEY_F4), KEY(4, 4, KEY_F4),
KEY(4, 5, KEY_ESC), KEY(5, 4, KEY_ESC),
KEY(5, 0, KEY_F13), KEY(0, 5, KEY_F13),
KEY(5, 1, KEY_F14), KEY(1, 5, KEY_F14),
KEY(5, 2, KEY_F15), KEY(2, 5, KEY_F15),
KEY(5, 3, KEY_F16), KEY(3, 5, KEY_F16),
KEY(5, 4, KEY_SLEEP), KEY(4, 5, KEY_SLEEP),
0
}; };
...@@ -264,6 +263,15 @@ static struct platform_device smc91x_device = { ...@@ -264,6 +263,15 @@ static struct platform_device smc91x_device = {
.resource = smc91x_resources, .resource = smc91x_resources,
}; };
static void __init h3_init_smc91x(void)
{
omap_cfg_reg(W15_1710_GPIO40);
if (gpio_request(40, "SMC91x irq") < 0) {
printk("Error requesting gpio 40 for smc91x irq\n");
return;
}
}
#define GPTIMER_BASE 0xFFFB1400 #define GPTIMER_BASE 0xFFFB1400
#define GPTIMER_REGS(x) (0xFFFB1400 + (x * 0x800)) #define GPTIMER_REGS(x) (0xFFFB1400 + (x * 0x800))
#define GPTIMER_REGS_SIZE 0x46 #define GPTIMER_REGS_SIZE 0x46
...@@ -296,14 +304,18 @@ static struct resource h3_kp_resources[] = { ...@@ -296,14 +304,18 @@ static struct resource h3_kp_resources[] = {
}, },
}; };
static const struct matrix_keymap_data h3_keymap_data = {
.keymap = h3_keymap,
.keymap_size = ARRAY_SIZE(h3_keymap),
};
static struct omap_kp_platform_data h3_kp_data = { static struct omap_kp_platform_data h3_kp_data = {
.rows = 8, .rows = 8,
.cols = 8, .cols = 8,
.keymap = h3_keymap, .keymap_data = &h3_keymap_data,
.keymapsize = ARRAY_SIZE(h3_keymap), .rep = true,
.rep = 1,
.delay = 9, .delay = 9,
.dbounce = 1, .dbounce = true,
}; };
static struct platform_device h3_kp_device = { static struct platform_device h3_kp_device = {
...@@ -376,6 +388,8 @@ static struct i2c_board_info __initdata h3_i2c_board_info[] = { ...@@ -376,6 +388,8 @@ static struct i2c_board_info __initdata h3_i2c_board_info[] = {
static void __init h3_init(void) static void __init h3_init(void)
{ {
h3_init_smc91x();
/* Here we assume the NOR boot config: NOR on CS3 (possibly swapped /* Here we assume the NOR boot config: NOR on CS3 (possibly swapped
* to address 0 by a dip switch), NAND on CS2B. The NAND driver will * to address 0 by a dip switch), NAND on CS2B. The NAND driver will
* notice whether a NAND chip is enabled at probe time. * notice whether a NAND chip is enabled at probe time.
...@@ -422,21 +436,10 @@ static void __init h3_init(void) ...@@ -422,21 +436,10 @@ static void __init h3_init(void)
h3_mmc_init(); h3_mmc_init();
} }
static void __init h3_init_smc91x(void)
{
omap_cfg_reg(W15_1710_GPIO40);
if (gpio_request(40, "SMC91x irq") < 0) {
printk("Error requesting gpio 40 for smc91x irq\n");
return;
}
}
static void __init h3_init_irq(void) static void __init h3_init_irq(void)
{ {
omap1_init_common_hw(); omap1_init_common_hw();
omap_init_irq(); omap_init_irq();
omap_gpio_init();
h3_init_smc91x();
} }
static void __init h3_map_io(void) static void __init h3_map_io(void)
......
...@@ -180,64 +180,68 @@ ...@@ -180,64 +180,68 @@
/* Keyboard definition */ /* Keyboard definition */
static int htc_herald_keymap[] = { static const unsigned int htc_herald_keymap[] = {
KEY(0, 0, KEY_RECORD), /* Mail button */ KEY(0, 0, KEY_RECORD), /* Mail button */
KEY(0, 1, KEY_CAMERA), /* Camera */ KEY(1, 0, KEY_CAMERA), /* Camera */
KEY(0, 2, KEY_PHONE), /* Send key */ KEY(2, 0, KEY_PHONE), /* Send key */
KEY(0, 3, KEY_VOLUMEUP), /* Volume up */ KEY(3, 0, KEY_VOLUMEUP), /* Volume up */
KEY(0, 4, KEY_F2), /* Right bar (landscape) */ KEY(4, 0, KEY_F2), /* Right bar (landscape) */
KEY(0, 5, KEY_MAIL), /* Win key (portrait) */ KEY(5, 0, KEY_MAIL), /* Win key (portrait) */
KEY(0, 6, KEY_DIRECTORY), /* Right bar (protrait) */ KEY(6, 0, KEY_DIRECTORY), /* Right bar (protrait) */
KEY(1, 0, KEY_LEFTCTRL), /* Windows key */ KEY(0, 1, KEY_LEFTCTRL), /* Windows key */
KEY(1, 1, KEY_COMMA), KEY(1, 1, KEY_COMMA),
KEY(1, 2, KEY_M), KEY(2, 1, KEY_M),
KEY(1, 3, KEY_K), KEY(3, 1, KEY_K),
KEY(1, 4, KEY_SLASH), /* OK key */ KEY(4, 1, KEY_SLASH), /* OK key */
KEY(1, 5, KEY_I), KEY(5, 1, KEY_I),
KEY(1, 6, KEY_U), KEY(6, 1, KEY_U),
KEY(2, 0, KEY_LEFTALT), KEY(0, 2, KEY_LEFTALT),
KEY(2, 1, KEY_TAB), KEY(1, 2, KEY_TAB),
KEY(2, 2, KEY_N), KEY(2, 2, KEY_N),
KEY(2, 3, KEY_J), KEY(3, 2, KEY_J),
KEY(2, 4, KEY_ENTER), KEY(4, 2, KEY_ENTER),
KEY(2, 5, KEY_H), KEY(5, 2, KEY_H),
KEY(2, 6, KEY_Y), KEY(6, 2, KEY_Y),
KEY(3, 0, KEY_SPACE), KEY(0, 3, KEY_SPACE),
KEY(3, 1, KEY_L), KEY(1, 3, KEY_L),
KEY(3, 2, KEY_B), KEY(2, 3, KEY_B),
KEY(3, 3, KEY_V), KEY(3, 3, KEY_V),
KEY(3, 4, KEY_BACKSPACE), KEY(4, 3, KEY_BACKSPACE),
KEY(3, 5, KEY_G), KEY(5, 3, KEY_G),
KEY(3, 6, KEY_T), KEY(6, 3, KEY_T),
KEY(4, 0, KEY_CAPSLOCK), /* Shift */ KEY(0, 4, KEY_CAPSLOCK), /* Shift */
KEY(4, 1, KEY_C), KEY(1, 4, KEY_C),
KEY(4, 2, KEY_F), KEY(2, 4, KEY_F),
KEY(4, 3, KEY_R), KEY(3, 4, KEY_R),
KEY(4, 4, KEY_O), KEY(4, 4, KEY_O),
KEY(4, 5, KEY_E), KEY(5, 4, KEY_E),
KEY(4, 6, KEY_D), KEY(6, 4, KEY_D),
KEY(5, 0, KEY_X), KEY(0, 5, KEY_X),
KEY(5, 1, KEY_Z), KEY(1, 5, KEY_Z),
KEY(5, 2, KEY_S), KEY(2, 5, KEY_S),
KEY(5, 3, KEY_W), KEY(3, 5, KEY_W),
KEY(5, 4, KEY_P), KEY(4, 5, KEY_P),
KEY(5, 5, KEY_Q), KEY(5, 5, KEY_Q),
KEY(5, 6, KEY_A), KEY(6, 5, KEY_A),
KEY(6, 0, KEY_CONNECT), /* Voice button */ KEY(0, 6, KEY_CONNECT), /* Voice button */
KEY(6, 2, KEY_CANCEL), /* End key */ KEY(2, 6, KEY_CANCEL), /* End key */
KEY(6, 3, KEY_VOLUMEDOWN), /* Volume down */ KEY(3, 6, KEY_VOLUMEDOWN), /* Volume down */
KEY(6, 4, KEY_F1), /* Left bar (landscape) */ KEY(4, 6, KEY_F1), /* Left bar (landscape) */
KEY(6, 5, KEY_WWW), /* OK button (portrait) */ KEY(5, 6, KEY_WWW), /* OK button (portrait) */
KEY(6, 6, KEY_CALENDAR), /* Left bar (portrait) */ KEY(6, 6, KEY_CALENDAR), /* Left bar (portrait) */
0
}; };
struct omap_kp_platform_data htcherald_kp_data = { static const struct matrix_keymap_data htc_herald_keymap_data = {
.keymap = htc_herald_keymap,
.keymap_size = ARRAY_SIZE(htc_herald_keymap),
};
static struct omap_kp_platform_data htcherald_kp_data = {
.rows = 7, .rows = 7,
.cols = 7, .cols = 7,
.delay = 20, .delay = 20,
.rep = 1, .rep = true,
.keymap = htc_herald_keymap, .keymap_data = &htc_herald_keymap_data,
}; };
static struct resource kp_resources[] = { static struct resource kp_resources[] = {
...@@ -278,7 +282,7 @@ static struct gpio_keys_button herald_gpio_keys_table[] = { ...@@ -278,7 +282,7 @@ static struct gpio_keys_button herald_gpio_keys_table[] = {
static struct gpio_keys_platform_data herald_gpio_keys_data = { static struct gpio_keys_platform_data herald_gpio_keys_data = {
.buttons = herald_gpio_keys_table, .buttons = herald_gpio_keys_table,
.nbuttons = ARRAY_SIZE(herald_gpio_keys_table), .nbuttons = ARRAY_SIZE(herald_gpio_keys_table),
.rep = 1, .rep = true,
}; };
static struct platform_device herald_gpiokeys_device = { static struct platform_device herald_gpiokeys_device = {
...@@ -439,7 +443,7 @@ static const struct ads7846_platform_data htcherald_ts_platform_data = { ...@@ -439,7 +443,7 @@ static const struct ads7846_platform_data htcherald_ts_platform_data = {
.keep_vref_on = 1, .keep_vref_on = 1,
.x_plate_ohms = 496, .x_plate_ohms = 496,
.gpio_pendown = HTCHERALD_GPIO_TS, .gpio_pendown = HTCHERALD_GPIO_TS,
.pressure_max = 100000, .pressure_max = 10000,
.pressure_min = 5000, .pressure_min = 5000,
.x_min = 528, .x_min = 528,
.x_max = 3760, .x_max = 3760,
...@@ -577,8 +581,6 @@ static void __init htcherald_init(void) ...@@ -577,8 +581,6 @@ static void __init htcherald_init(void)
printk(KERN_INFO "HTC Herald init.\n"); printk(KERN_INFO "HTC Herald init.\n");
/* Do board initialization before we register all the devices */ /* Do board initialization before we register all the devices */
omap_gpio_init();
omap_board_config = htcherald_config; omap_board_config = htcherald_config;
omap_board_config_size = ARRAY_SIZE(htcherald_config); omap_board_config_size = ARRAY_SIZE(htcherald_config);
platform_add_devices(devices, ARRAY_SIZE(devices)); platform_add_devices(devices, ARRAY_SIZE(devices));
......
...@@ -44,17 +44,16 @@ ...@@ -44,17 +44,16 @@
/* At OMAP1610 Innovator the Ethernet is directly connected to CS1 */ /* At OMAP1610 Innovator the Ethernet is directly connected to CS1 */
#define INNOVATOR1610_ETHR_START 0x04000300 #define INNOVATOR1610_ETHR_START 0x04000300
static int innovator_keymap[] = { static const unsigned int innovator_keymap[] = {
KEY(0, 0, KEY_F1), KEY(0, 0, KEY_F1),
KEY(0, 3, KEY_DOWN), KEY(3, 0, KEY_DOWN),
KEY(1, 1, KEY_F2), KEY(1, 1, KEY_F2),
KEY(1, 2, KEY_RIGHT), KEY(2, 1, KEY_RIGHT),
KEY(2, 0, KEY_F3), KEY(0, 2, KEY_F3),
KEY(2, 1, KEY_F4), KEY(1, 2, KEY_F4),
KEY(2, 2, KEY_UP), KEY(2, 2, KEY_UP),
KEY(3, 2, KEY_ENTER), KEY(2, 3, KEY_ENTER),
KEY(3, 3, KEY_LEFT), KEY(3, 3, KEY_LEFT),
0
}; };
static struct mtd_partition innovator_partitions[] = { static struct mtd_partition innovator_partitions[] = {
...@@ -126,11 +125,15 @@ static struct resource innovator_kp_resources[] = { ...@@ -126,11 +125,15 @@ static struct resource innovator_kp_resources[] = {
}, },
}; };
static const struct matrix_keymap_data innovator_keymap_data = {
.keymap = innovator_keymap,
.keymap_size = ARRAY_SIZE(innovator_keymap),
};
static struct omap_kp_platform_data innovator_kp_data = { static struct omap_kp_platform_data innovator_kp_data = {
.rows = 8, .rows = 8,
.cols = 8, .cols = 8,
.keymap = innovator_keymap, .keymap_data = &innovator_keymap_data,
.keymapsize = ARRAY_SIZE(innovator_keymap),
.delay = 4, .delay = 4,
}; };
...@@ -290,13 +293,6 @@ static void __init innovator_init_irq(void) ...@@ -290,13 +293,6 @@ static void __init innovator_init_irq(void)
{ {
omap1_init_common_hw(); omap1_init_common_hw();
omap_init_irq(); omap_init_irq();
omap_gpio_init();
#ifdef CONFIG_ARCH_OMAP15XX
if (cpu_is_omap1510()) {
omap1510_fpga_init_irq();
}
#endif
innovator_init_smc91x();
} }
#ifdef CONFIG_ARCH_OMAP15XX #ifdef CONFIG_ARCH_OMAP15XX
...@@ -387,6 +383,10 @@ static struct omap_board_config_kernel innovator_config[] = { ...@@ -387,6 +383,10 @@ static struct omap_board_config_kernel innovator_config[] = {
static void __init innovator_init(void) static void __init innovator_init(void)
{ {
if (cpu_is_omap1510())
omap1510_fpga_init_irq();
innovator_init_smc91x();
#ifdef CONFIG_ARCH_OMAP15XX #ifdef CONFIG_ARCH_OMAP15XX
if (cpu_is_omap1510()) { if (cpu_is_omap1510()) {
unsigned char reg; unsigned char reg;
......
...@@ -54,19 +54,18 @@ static void __init omap_nokia770_init_irq(void) ...@@ -54,19 +54,18 @@ static void __init omap_nokia770_init_irq(void)
omap_init_irq(); omap_init_irq();
} }
static int nokia770_keymap[] = { static const unsigned int nokia770_keymap[] = {
KEY(0, 1, GROUP_0 | KEY_UP), KEY(1, 0, GROUP_0 | KEY_UP),
KEY(0, 2, GROUP_1 | KEY_F5), KEY(2, 0, GROUP_1 | KEY_F5),
KEY(1, 0, GROUP_0 | KEY_LEFT), KEY(0, 1, GROUP_0 | KEY_LEFT),
KEY(1, 1, GROUP_0 | KEY_ENTER), KEY(1, 1, GROUP_0 | KEY_ENTER),
KEY(1, 2, GROUP_0 | KEY_RIGHT), KEY(2, 1, GROUP_0 | KEY_RIGHT),
KEY(2, 0, GROUP_1 | KEY_ESC), KEY(0, 2, GROUP_1 | KEY_ESC),
KEY(2, 1, GROUP_0 | KEY_DOWN), KEY(1, 2, GROUP_0 | KEY_DOWN),
KEY(2, 2, GROUP_1 | KEY_F4), KEY(2, 2, GROUP_1 | KEY_F4),
KEY(3, 0, GROUP_2 | KEY_F7), KEY(0, 3, GROUP_2 | KEY_F7),
KEY(3, 1, GROUP_2 | KEY_F8), KEY(1, 3, GROUP_2 | KEY_F8),
KEY(3, 2, GROUP_2 | KEY_F6), KEY(2, 3, GROUP_2 | KEY_F6),
0
}; };
static struct resource nokia770_kp_resources[] = { static struct resource nokia770_kp_resources[] = {
...@@ -77,11 +76,15 @@ static struct resource nokia770_kp_resources[] = { ...@@ -77,11 +76,15 @@ static struct resource nokia770_kp_resources[] = {
}, },
}; };
static const struct matrix_keymap_data nokia770_keymap_data = {
.keymap = nokia770_keymap,
.keymap_size = ARRAY_SIZE(nokia770_keymap),
};
static struct omap_kp_platform_data nokia770_kp_data = { static struct omap_kp_platform_data nokia770_kp_data = {
.rows = 8, .rows = 8,
.cols = 8, .cols = 8,
.keymap = nokia770_keymap, .keymap_data = &nokia770_keymap_data,
.keymapsize = ARRAY_SIZE(nokia770_keymap),
.delay = 4, .delay = 4,
}; };
...@@ -246,7 +249,6 @@ static void __init omap_nokia770_init(void) ...@@ -246,7 +249,6 @@ static void __init omap_nokia770_init(void)
platform_add_devices(nokia770_devices, ARRAY_SIZE(nokia770_devices)); platform_add_devices(nokia770_devices, ARRAY_SIZE(nokia770_devices));
spi_register_board_info(nokia770_spi_board_info, spi_register_board_info(nokia770_spi_board_info,
ARRAY_SIZE(nokia770_spi_board_info)); ARRAY_SIZE(nokia770_spi_board_info));
omap_gpio_init();
omap_serial_init(); omap_serial_init();
omap_register_i2c_bus(1, 100, NULL, 0); omap_register_i2c_bus(1, 100, NULL, 0);
hwa742_dev_init(); hwa742_dev_init();
......
...@@ -283,9 +283,6 @@ static void __init osk_init_irq(void) ...@@ -283,9 +283,6 @@ static void __init osk_init_irq(void)
{ {
omap1_init_common_hw(); omap1_init_common_hw();
omap_init_irq(); omap_init_irq();
omap_gpio_init();
osk_init_smc91x();
osk_init_cf();
} }
static struct omap_usb_config osk_usb_config __initdata = { static struct omap_usb_config osk_usb_config __initdata = {
...@@ -341,25 +338,28 @@ static struct i2c_board_info __initdata mistral_i2c_board_info[] = { ...@@ -341,25 +338,28 @@ static struct i2c_board_info __initdata mistral_i2c_board_info[] = {
*/ */
}; };
static const int osk_keymap[] = { static const unsigned int osk_keymap[] = {
/* KEY(col, row, code) */ /* KEY(col, row, code) */
KEY(0, 0, KEY_F1), /* SW4 */ KEY(0, 0, KEY_F1), /* SW4 */
KEY(0, 3, KEY_UP), /* (sw2/up) */ KEY(3, 0, KEY_UP), /* (sw2/up) */
KEY(1, 1, KEY_LEFTCTRL), /* SW5 */ KEY(1, 1, KEY_LEFTCTRL), /* SW5 */
KEY(1, 2, KEY_LEFT), /* (sw2/left) */ KEY(2, 1, KEY_LEFT), /* (sw2/left) */
KEY(2, 0, KEY_SPACE), /* SW3 */ KEY(0, 2, KEY_SPACE), /* SW3 */
KEY(2, 1, KEY_ESC), /* SW6 */ KEY(1, 2, KEY_ESC), /* SW6 */
KEY(2, 2, KEY_DOWN), /* (sw2/down) */ KEY(2, 2, KEY_DOWN), /* (sw2/down) */
KEY(3, 2, KEY_ENTER), /* (sw2/select) */ KEY(2, 3, KEY_ENTER), /* (sw2/select) */
KEY(3, 3, KEY_RIGHT), /* (sw2/right) */ KEY(3, 3, KEY_RIGHT), /* (sw2/right) */
0 };
static const struct matrix_keymap_data osk_keymap_data = {
.keymap = osk_keymap,
.keymap_size = ARRAY_SIZE(osk_keymap),
}; };
static struct omap_kp_platform_data osk_kp_data = { static struct omap_kp_platform_data osk_kp_data = {
.rows = 8, .rows = 8,
.cols = 8, .cols = 8,
.keymap = (int *) osk_keymap, .keymap_data = &osk_keymap_data,
.keymapsize = ARRAY_SIZE(osk_keymap),
.delay = 9, .delay = 9,
}; };
...@@ -541,6 +541,9 @@ static void __init osk_init(void) ...@@ -541,6 +541,9 @@ static void __init osk_init(void)
{ {
u32 l; u32 l;
osk_init_smc91x();
osk_init_cf();
/* Workaround for wrong CS3 (NOR flash) timing /* Workaround for wrong CS3 (NOR flash) timing
* There are some U-Boot versions out there which configure * There are some U-Boot versions out there which configure
* wrong CS3 memory timings. This mainly leads to CRC * wrong CS3 memory timings. This mainly leads to CRC
......
...@@ -63,28 +63,31 @@ static void __init omap_palmte_init_irq(void) ...@@ -63,28 +63,31 @@ static void __init omap_palmte_init_irq(void)
{ {
omap1_init_common_hw(); omap1_init_common_hw();
omap_init_irq(); omap_init_irq();
omap_gpio_init();
} }
static const int palmte_keymap[] = { static const unsigned int palmte_keymap[] = {
KEY(0, 0, KEY_F1), /* Calendar */ KEY(0, 0, KEY_F1), /* Calendar */
KEY(0, 1, KEY_F2), /* Contacts */ KEY(1, 0, KEY_F2), /* Contacts */
KEY(0, 2, KEY_F3), /* Tasks List */ KEY(2, 0, KEY_F3), /* Tasks List */
KEY(0, 3, KEY_F4), /* Note Pad */ KEY(3, 0, KEY_F4), /* Note Pad */
KEY(0, 4, KEY_POWER), KEY(4, 0, KEY_POWER),
KEY(1, 0, KEY_LEFT), KEY(0, 1, KEY_LEFT),
KEY(1, 1, KEY_DOWN), KEY(1, 1, KEY_DOWN),
KEY(1, 2, KEY_UP), KEY(2, 1, KEY_UP),
KEY(1, 3, KEY_RIGHT), KEY(3, 1, KEY_RIGHT),
KEY(1, 4, KEY_ENTER), KEY(4, 1, KEY_ENTER),
0, };
static const struct matrix_keymap_data palmte_keymap_data = {
.keymap = palmte_keymap,
.keymap_size = ARRAY_SIZE(palmte_keymap),
}; };
static struct omap_kp_platform_data palmte_kp_data = { static struct omap_kp_platform_data palmte_kp_data = {
.rows = 8, .rows = 8,
.cols = 8, .cols = 8,
.keymap = (int *) palmte_keymap, .keymap_data = &palmte_keymap_data,
.rep = 1, .rep = true,
.delay = 12, .delay = 12,
}; };
......
...@@ -51,19 +51,18 @@ ...@@ -51,19 +51,18 @@
#define PALMTT_MMC_WP_GPIO 8 #define PALMTT_MMC_WP_GPIO 8
#define PALMTT_HDQ_GPIO 11 #define PALMTT_HDQ_GPIO 11
static int palmtt_keymap[] = { static const unsigned int palmtt_keymap[] = {
KEY(0, 0, KEY_ESC), KEY(0, 0, KEY_ESC),
KEY(0, 1, KEY_SPACE), KEY(1, 0, KEY_SPACE),
KEY(0, 2, KEY_LEFTCTRL), KEY(2, 0, KEY_LEFTCTRL),
KEY(0, 3, KEY_TAB), KEY(3, 0, KEY_TAB),
KEY(0, 4, KEY_ENTER), KEY(4, 0, KEY_ENTER),
KEY(1, 0, KEY_LEFT), KEY(0, 1, KEY_LEFT),
KEY(1, 1, KEY_DOWN), KEY(1, 1, KEY_DOWN),
KEY(1, 2, KEY_UP), KEY(2, 1, KEY_UP),
KEY(1, 3, KEY_RIGHT), KEY(3, 1, KEY_RIGHT),
KEY(2, 0, KEY_SLEEP), KEY(0, 2, KEY_SLEEP),
KEY(2, 4, KEY_Y), KEY(4, 2, KEY_Y),
0
}; };
static struct mtd_partition palmtt_partitions[] = { static struct mtd_partition palmtt_partitions[] = {
...@@ -136,10 +135,15 @@ static struct resource palmtt_kp_resources[] = { ...@@ -136,10 +135,15 @@ static struct resource palmtt_kp_resources[] = {
}, },
}; };
static const struct matrix_keymap_data palmtt_keymap_data = {
.keymap = palmtt_keymap,
.keymap_size = ARRAY_SIZE(palmtt_keymap),
};
static struct omap_kp_platform_data palmtt_kp_data = { static struct omap_kp_platform_data palmtt_kp_data = {
.rows = 6, .rows = 6,
.cols = 3, .cols = 3,
.keymap = palmtt_keymap, .keymap_data = &palmtt_keymap_data,
}; };
static struct platform_device palmtt_kp_device = { static struct platform_device palmtt_kp_device = {
......
...@@ -62,29 +62,32 @@ omap_palmz71_init_irq(void) ...@@ -62,29 +62,32 @@ omap_palmz71_init_irq(void)
{ {
omap1_init_common_hw(); omap1_init_common_hw();
omap_init_irq(); omap_init_irq();
omap_gpio_init();
} }
static int palmz71_keymap[] = { static const unsigned int palmz71_keymap[] = {
KEY(0, 0, KEY_F1), KEY(0, 0, KEY_F1),
KEY(0, 1, KEY_F2), KEY(1, 0, KEY_F2),
KEY(0, 2, KEY_F3), KEY(2, 0, KEY_F3),
KEY(0, 3, KEY_F4), KEY(3, 0, KEY_F4),
KEY(0, 4, KEY_POWER), KEY(4, 0, KEY_POWER),
KEY(1, 0, KEY_LEFT), KEY(0, 1, KEY_LEFT),
KEY(1, 1, KEY_DOWN), KEY(1, 1, KEY_DOWN),
KEY(1, 2, KEY_UP), KEY(2, 1, KEY_UP),
KEY(1, 3, KEY_RIGHT), KEY(3, 1, KEY_RIGHT),
KEY(1, 4, KEY_ENTER), KEY(4, 1, KEY_ENTER),
KEY(2, 0, KEY_CAMERA), KEY(0, 2, KEY_CAMERA),
0, };
static const struct matrix_keymap_data palmz71_keymap_data = {
.keymap = palmz71_keymap,
.keymap_size = ARRAY_SIZE(palmz71_keymap),
}; };
static struct omap_kp_platform_data palmz71_kp_data = { static struct omap_kp_platform_data palmz71_kp_data = {
.rows = 8, .rows = 8,
.cols = 8, .cols = 8,
.keymap = palmz71_keymap, .keymap_data = &palmz71_keymap_data,
.rep = 1, .rep = true,
.delay = 80, .delay = 80,
}; };
......
...@@ -36,36 +36,35 @@ ...@@ -36,36 +36,35 @@
#include <plat/common.h> #include <plat/common.h>
#include <plat/board.h> #include <plat/board.h>
static int p2_keymap[] = { static const unsigned int p2_keymap[] = {
KEY(0,0,KEY_UP), KEY(0, 0, KEY_UP),
KEY(0,1,KEY_RIGHT), KEY(1, 0, KEY_RIGHT),
KEY(0,2,KEY_LEFT), KEY(2, 0, KEY_LEFT),
KEY(0,3,KEY_DOWN), KEY(3, 0, KEY_DOWN),
KEY(0,4,KEY_ENTER), KEY(4, 0, KEY_ENTER),
KEY(1,0,KEY_F10), KEY(0, 1, KEY_F10),
KEY(1,1,KEY_SEND), KEY(1, 1, KEY_SEND),
KEY(1,2,KEY_END), KEY(2, 1, KEY_END),
KEY(1,3,KEY_VOLUMEDOWN), KEY(3, 1, KEY_VOLUMEDOWN),
KEY(1,4,KEY_VOLUMEUP), KEY(4, 1, KEY_VOLUMEUP),
KEY(1,5,KEY_RECORD), KEY(5, 1, KEY_RECORD),
KEY(2,0,KEY_F9), KEY(0, 2, KEY_F9),
KEY(2,1,KEY_3), KEY(1, 2, KEY_3),
KEY(2,2,KEY_6), KEY(2, 2, KEY_6),
KEY(2,3,KEY_9), KEY(3, 2, KEY_9),
KEY(2,4,KEY_KPDOT), KEY(4, 2, KEY_KPDOT),
KEY(3,0,KEY_BACK), KEY(0, 3, KEY_BACK),
KEY(3,1,KEY_2), KEY(1, 3, KEY_2),
KEY(3,2,KEY_5), KEY(2, 3, KEY_5),
KEY(3,3,KEY_8), KEY(3, 3, KEY_8),
KEY(3,4,KEY_0), KEY(4, 3, KEY_0),
KEY(3,5,KEY_KPSLASH), KEY(5, 3, KEY_KPSLASH),
KEY(4,0,KEY_HOME), KEY(0, 4, KEY_HOME),
KEY(4,1,KEY_1), KEY(1, 4, KEY_1),
KEY(4,2,KEY_4), KEY(2, 4, KEY_4),
KEY(4,3,KEY_7), KEY(3, 4, KEY_7),
KEY(4,4,KEY_KPASTERISK), KEY(4, 4, KEY_KPASTERISK),
KEY(4,5,KEY_POWER), KEY(5, 4, KEY_POWER),
0
}; };
static struct smc91x_platdata smc91x_info = { static struct smc91x_platdata smc91x_info = {
...@@ -211,13 +210,17 @@ static struct resource kp_resources[] = { ...@@ -211,13 +210,17 @@ static struct resource kp_resources[] = {
}, },
}; };
static const struct matrix_keymap_data p2_keymap_data = {
.keymap = p2_keymap,
.keymap_size = ARRAY_SIZE(p2_keymap),
};
static struct omap_kp_platform_data kp_data = { static struct omap_kp_platform_data kp_data = {
.rows = 8, .rows = 8,
.cols = 8, .cols = 8,
.keymap = p2_keymap, .keymap_data = &p2_keymap_data,
.keymapsize = ARRAY_SIZE(p2_keymap),
.delay = 4, .delay = 4,
.dbounce = 1, .dbounce = true,
}; };
static struct platform_device kp_device = { static struct platform_device kp_device = {
...@@ -251,8 +254,19 @@ static struct omap_board_config_kernel perseus2_config[] __initdata = { ...@@ -251,8 +254,19 @@ static struct omap_board_config_kernel perseus2_config[] __initdata = {
{ OMAP_TAG_LCD, &perseus2_lcd_config }, { OMAP_TAG_LCD, &perseus2_lcd_config },
}; };
static void __init perseus2_init_smc91x(void)
{
fpga_write(1, H2P2_DBG_FPGA_LAN_RESET);
mdelay(50);
fpga_write(fpga_read(H2P2_DBG_FPGA_LAN_RESET) & ~1,
H2P2_DBG_FPGA_LAN_RESET);
mdelay(50);
}
static void __init omap_perseus2_init(void) static void __init omap_perseus2_init(void)
{ {
perseus2_init_smc91x();
if (gpio_request(P2_NAND_RB_GPIO_PIN, "NAND ready") < 0) if (gpio_request(P2_NAND_RB_GPIO_PIN, "NAND ready") < 0)
BUG(); BUG();
gpio_direction_input(P2_NAND_RB_GPIO_PIN); gpio_direction_input(P2_NAND_RB_GPIO_PIN);
...@@ -280,21 +294,10 @@ static void __init omap_perseus2_init(void) ...@@ -280,21 +294,10 @@ static void __init omap_perseus2_init(void)
omap_register_i2c_bus(1, 100, NULL, 0); omap_register_i2c_bus(1, 100, NULL, 0);
} }
static void __init perseus2_init_smc91x(void)
{
fpga_write(1, H2P2_DBG_FPGA_LAN_RESET);
mdelay(50);
fpga_write(fpga_read(H2P2_DBG_FPGA_LAN_RESET) & ~1,
H2P2_DBG_FPGA_LAN_RESET);
mdelay(50);
}
static void __init omap_perseus2_init_irq(void) static void __init omap_perseus2_init_irq(void)
{ {
omap1_init_common_hw(); omap1_init_common_hw();
omap_init_irq(); omap_init_irq();
omap_gpio_init();
perseus2_init_smc91x();
} }
/* Only FPGA needs to be mapped here. All others are done with ioremap */ /* Only FPGA needs to be mapped here. All others are done with ioremap */
static struct map_desc omap_perseus2_io_desc[] __initdata = { static struct map_desc omap_perseus2_io_desc[] __initdata = {
......
...@@ -164,36 +164,35 @@ EXPORT_SYMBOL(sx1_setusbpower); ...@@ -164,36 +164,35 @@ EXPORT_SYMBOL(sx1_setusbpower);
/*----------- Keypad -------------------------*/ /*----------- Keypad -------------------------*/
static int sx1_keymap[] = { static const unsigned int sx1_keymap[] = {
KEY(5, 3, GROUP_0 | 117), /* camera Qt::Key_F17 */ KEY(3, 5, GROUP_0 | 117), /* camera Qt::Key_F17 */
KEY(0, 4, GROUP_0 | 114), /* voice memo Qt::Key_F14 */ KEY(4, 0, GROUP_0 | 114), /* voice memo Qt::Key_F14 */
KEY(1, 4, GROUP_2 | 114), /* voice memo */ KEY(4, 1, GROUP_2 | 114), /* voice memo */
KEY(2, 4, GROUP_3 | 114), /* voice memo */ KEY(4, 2, GROUP_3 | 114), /* voice memo */
KEY(0, 0, GROUP_1 | KEY_F12), /* red button Qt::Key_Hangup */ KEY(0, 0, GROUP_1 | KEY_F12), /* red button Qt::Key_Hangup */
KEY(4, 3, GROUP_1 | KEY_LEFT), KEY(3, 4, GROUP_1 | KEY_LEFT),
KEY(2, 3, GROUP_1 | KEY_DOWN), KEY(3, 2, GROUP_1 | KEY_DOWN),
KEY(1, 3, GROUP_1 | KEY_RIGHT), KEY(3, 1, GROUP_1 | KEY_RIGHT),
KEY(0, 3, GROUP_1 | KEY_UP), KEY(3, 0, GROUP_1 | KEY_UP),
KEY(3, 3, GROUP_1 | KEY_POWER), /* joystick press or Qt::Key_Select */ KEY(3, 3, GROUP_1 | KEY_POWER), /* joystick press or Qt::Key_Select */
KEY(5, 0, GROUP_1 | KEY_1), KEY(0, 5, GROUP_1 | KEY_1),
KEY(4, 0, GROUP_1 | KEY_2), KEY(0, 4, GROUP_1 | KEY_2),
KEY(3, 0, GROUP_1 | KEY_3), KEY(0, 3, GROUP_1 | KEY_3),
KEY(3, 4, GROUP_1 | KEY_4), KEY(4, 3, GROUP_1 | KEY_4),
KEY(4, 4, GROUP_1 | KEY_5), KEY(4, 4, GROUP_1 | KEY_5),
KEY(5, 4, GROUP_1 | KEY_KPASTERISK),/* "*" */ KEY(4, 5, GROUP_1 | KEY_KPASTERISK),/* "*" */
KEY(4, 1, GROUP_1 | KEY_6), KEY(1, 4, GROUP_1 | KEY_6),
KEY(5, 1, GROUP_1 | KEY_7), KEY(1, 5, GROUP_1 | KEY_7),
KEY(3, 1, GROUP_1 | KEY_8), KEY(1, 3, GROUP_1 | KEY_8),
KEY(3, 2, GROUP_1 | KEY_9), KEY(2, 3, GROUP_1 | KEY_9),
KEY(5, 2, GROUP_1 | KEY_0), KEY(2, 5, GROUP_1 | KEY_0),
KEY(4, 2, GROUP_1 | 113), /* # F13 Toggle input method Qt::Key_F13 */ KEY(2, 4, GROUP_1 | 113), /* # F13 Toggle input method Qt::Key_F13 */
KEY(0, 1, GROUP_1 | KEY_F11), /* green button Qt::Key_Call */ KEY(1, 0, GROUP_1 | KEY_F11), /* green button Qt::Key_Call */
KEY(1, 2, GROUP_1 | KEY_YEN), /* left soft Qt::Key_Context1 */ KEY(2, 1, GROUP_1 | KEY_YEN), /* left soft Qt::Key_Context1 */
KEY(2, 2, GROUP_1 | KEY_F8), /* right soft Qt::Key_Back */ KEY(2, 2, GROUP_1 | KEY_F8), /* right soft Qt::Key_Back */
KEY(2, 1, GROUP_1 | KEY_LEFTSHIFT), /* shift */ KEY(1, 2, GROUP_1 | KEY_LEFTSHIFT), /* shift */
KEY(1, 1, GROUP_1 | KEY_BACKSPACE), /* C (clear) */ KEY(1, 1, GROUP_1 | KEY_BACKSPACE), /* C (clear) */
KEY(0, 2, GROUP_1 | KEY_F7), /* menu Qt::Key_Menu */ KEY(2, 0, GROUP_1 | KEY_F7), /* menu Qt::Key_Menu */
0
}; };
static struct resource sx1_kp_resources[] = { static struct resource sx1_kp_resources[] = {
...@@ -204,11 +203,15 @@ static struct resource sx1_kp_resources[] = { ...@@ -204,11 +203,15 @@ static struct resource sx1_kp_resources[] = {
}, },
}; };
static const struct matrix_keymap_data sx1_keymap_data = {
.keymap = sx1_keymap,
.keymap_size = ARRAY_SIZE(sx1_keymap),
};
static struct omap_kp_platform_data sx1_kp_data = { static struct omap_kp_platform_data sx1_kp_data = {
.rows = 6, .rows = 6,
.cols = 6, .cols = 6,
.keymap = sx1_keymap, .keymap_data = &sx1_keymap_data,
.keymapsize = ARRAY_SIZE(sx1_keymap),
.delay = 80, .delay = 80,
}; };
...@@ -409,7 +412,6 @@ static void __init omap_sx1_init_irq(void) ...@@ -409,7 +412,6 @@ static void __init omap_sx1_init_irq(void)
{ {
omap1_init_common_hw(); omap1_init_common_hw();
omap_init_irq(); omap_init_irq();
omap_gpio_init();
} }
/*----------------------------------------*/ /*----------------------------------------*/
......
...@@ -83,6 +83,9 @@ static struct platform_device serial_device = { ...@@ -83,6 +83,9 @@ static struct platform_device serial_device = {
static int __init ext_uart_init(void) static int __init ext_uart_init(void)
{ {
if (!machine_is_voiceblue())
return -ENODEV;
return platform_device_register(&serial_device); return platform_device_register(&serial_device);
} }
arch_initcall(ext_uart_init); arch_initcall(ext_uart_init);
...@@ -158,7 +161,6 @@ static void __init voiceblue_init_irq(void) ...@@ -158,7 +161,6 @@ static void __init voiceblue_init_irq(void)
{ {
omap1_init_common_hw(); omap1_init_common_hw();
omap_init_irq(); omap_init_irq();
omap_gpio_init();
} }
static void __init voiceblue_init(void) static void __init voiceblue_init(void)
...@@ -236,6 +238,9 @@ static struct notifier_block panic_block = { ...@@ -236,6 +238,9 @@ static struct notifier_block panic_block = {
static int __init voiceblue_setup(void) static int __init voiceblue_setup(void)
{ {
if (!machine_is_voiceblue())
return -ENODEV;
/* Setup panic notifier */ /* Setup panic notifier */
atomic_notifier_chain_register(&panic_notifier_list, &panic_block); atomic_notifier_chain_register(&panic_notifier_list, &panic_block);
......
...@@ -143,7 +143,7 @@ static struct arm_idlect1_clk armper_ck = { ...@@ -143,7 +143,7 @@ static struct arm_idlect1_clk armper_ck = {
* activation. [ GPIO code for 1510 ] * activation. [ GPIO code for 1510 ]
*/ */
static struct clk arm_gpio_ck = { static struct clk arm_gpio_ck = {
.name = "arm_gpio_ck", .name = "ick",
.ops = &clkops_generic, .ops = &clkops_generic,
.parent = &ck_dpll1, .parent = &ck_dpll1,
.flags = ENABLE_ON_INIT, .flags = ENABLE_ON_INIT,
...@@ -684,7 +684,7 @@ static struct omap_clk omap_clks[] = { ...@@ -684,7 +684,7 @@ static struct omap_clk omap_clks[] = {
CLK(NULL, "ck_sossi", &sossi_ck, CK_16XX), CLK(NULL, "ck_sossi", &sossi_ck, CK_16XX),
CLK(NULL, "arm_ck", &arm_ck, CK_16XX | CK_1510 | CK_310), CLK(NULL, "arm_ck", &arm_ck, CK_16XX | CK_1510 | CK_310),
CLK(NULL, "armper_ck", &armper_ck.clk, CK_16XX | CK_1510 | CK_310), CLK(NULL, "armper_ck", &armper_ck.clk, CK_16XX | CK_1510 | CK_310),
CLK(NULL, "arm_gpio_ck", &arm_gpio_ck, CK_1510 | CK_310), CLK("omap_gpio.0", "ick", &arm_gpio_ck, CK_1510 | CK_310),
CLK(NULL, "armxor_ck", &armxor_ck.clk, CK_16XX | CK_1510 | CK_310 | CK_7XX), CLK(NULL, "armxor_ck", &armxor_ck.clk, CK_16XX | CK_1510 | CK_310 | CK_7XX),
CLK(NULL, "armtim_ck", &armtim_ck.clk, CK_16XX | CK_1510 | CK_310), CLK(NULL, "armtim_ck", &armtim_ck.clk, CK_16XX | CK_1510 | CK_310),
CLK("omap_wdt", "fck", &armwdt_ck.clk, CK_16XX | CK_1510 | CK_310), CLK("omap_wdt", "fck", &armwdt_ck.clk, CK_16XX | CK_1510 | CK_310),
...@@ -736,9 +736,9 @@ static struct omap_clk omap_clks[] = { ...@@ -736,9 +736,9 @@ static struct omap_clk omap_clks[] = {
CLK("mmci-omap.1", "ick", &armper_ck.clk, CK_16XX), CLK("mmci-omap.1", "ick", &armper_ck.clk, CK_16XX),
/* Virtual clocks */ /* Virtual clocks */
CLK(NULL, "mpu", &virtual_ck_mpu, CK_16XX | CK_1510 | CK_310), CLK(NULL, "mpu", &virtual_ck_mpu, CK_16XX | CK_1510 | CK_310),
CLK("i2c_omap.1", "fck", &i2c_fck, CK_16XX | CK_1510 | CK_310 | CK_7XX), CLK("omap_i2c.1", "fck", &i2c_fck, CK_16XX | CK_1510 | CK_310 | CK_7XX),
CLK("i2c_omap.1", "ick", &i2c_ick, CK_16XX), CLK("omap_i2c.1", "ick", &i2c_ick, CK_16XX),
CLK("i2c_omap.1", "ick", &dummy_ck, CK_1510 | CK_310 | CK_7XX), CLK("omap_i2c.1", "ick", &dummy_ck, CK_1510 | CK_310 | CK_7XX),
CLK("omap1_spi100k.1", "fck", &dummy_ck, CK_7XX), CLK("omap1_spi100k.1", "fck", &dummy_ck, CK_7XX),
CLK("omap1_spi100k.1", "ick", &dummy_ck, CK_7XX), CLK("omap1_spi100k.1", "ick", &dummy_ck, CK_7XX),
CLK("omap1_spi100k.2", "fck", &dummy_ck, CK_7XX), CLK("omap1_spi100k.2", "fck", &dummy_ck, CK_7XX),
...@@ -823,12 +823,10 @@ int __init omap1_clk_init(void) ...@@ -823,12 +823,10 @@ int __init omap1_clk_init(void)
crystal_type = info->system_clock_type; crystal_type = info->system_clock_type;
} }
#if defined(CONFIG_ARCH_OMAP730) || defined(CONFIG_ARCH_OMAP850) if (cpu_is_omap7xx())
ck_ref.rate = 13000000; ck_ref.rate = 13000000;
#elif defined(CONFIG_ARCH_OMAP16XX) if (cpu_is_omap16xx() && crystal_type == 2)
if (crystal_type == 2)
ck_ref.rate = 19200000; ck_ref.rate = 19200000;
#endif
pr_info("Clocks: ARM_SYSST: 0x%04x DPLL_CTL: 0x%04x ARM_CKCTL: " pr_info("Clocks: ARM_SYSST: 0x%04x DPLL_CTL: 0x%04x ARM_CKCTL: "
"0x%04x\n", omap_readw(ARM_SYSST), omap_readw(DPLL_CTL), "0x%04x\n", omap_readw(ARM_SYSST), omap_readw(DPLL_CTL),
...@@ -883,10 +881,11 @@ int __init omap1_clk_init(void) ...@@ -883,10 +881,11 @@ int __init omap1_clk_init(void)
ck_dpll1.rate / 1000000, (ck_dpll1.rate / 100000) % 10, ck_dpll1.rate / 1000000, (ck_dpll1.rate / 100000) % 10,
arm_ck.rate / 1000000, (arm_ck.rate / 100000) % 10); arm_ck.rate / 1000000, (arm_ck.rate / 100000) % 10);
#if defined(CONFIG_MACH_OMAP_PERSEUS2) || defined(CONFIG_MACH_OMAP_FSAMPLE) if (machine_is_omap_perseus2() || machine_is_omap_fsample()) {
/* Select slicer output as OMAP input clock */ /* Select slicer output as OMAP input clock */
omap_writew(omap_readw(OMAP7XX_PCC_UPLD_CTRL) & ~0x1, OMAP7XX_PCC_UPLD_CTRL); omap_writew(omap_readw(OMAP7XX_PCC_UPLD_CTRL) & ~0x1,
#endif OMAP7XX_PCC_UPLD_CTRL);
}
/* Amstrad Delta wants BCLK high when inactive */ /* Amstrad Delta wants BCLK high when inactive */
if (machine_is_ams_delta()) if (machine_is_ams_delta())
......
...@@ -17,6 +17,7 @@ ...@@ -17,6 +17,7 @@
#include <linux/io.h> #include <linux/io.h>
#include <linux/spi/spi.h> #include <linux/spi/spi.h>
#include <mach/camera.h>
#include <mach/hardware.h> #include <mach/hardware.h>
#include <asm/mach/map.h> #include <asm/mach/map.h>
...@@ -287,6 +288,9 @@ static inline void omap_init_audio(void) {} ...@@ -287,6 +288,9 @@ static inline void omap_init_audio(void) {}
*/ */
static int __init omap1_init_devices(void) static int __init omap1_init_devices(void)
{ {
if (!cpu_class_is_omap1())
return -ENODEV;
/* please keep these calls, and their implementations above, /* please keep these calls, and their implementations above,
* in alphabetical order so they're easier to sort through. * in alphabetical order so they're easier to sort through.
*/ */
......
/*
* OMAP1/OMAP7xx - specific DMA driver
*
* Copyright (C) 2003 - 2008 Nokia Corporation
* Author: Juha Yrjölä <juha.yrjola@nokia.com>
* DMA channel linking for 1610 by Samuel Ortiz <samuel.ortiz@nokia.com>
* Graphics DMA and LCD DMA graphics tranformations
* by Imre Deak <imre.deak@nokia.com>
* OMAP2/3 support Copyright (C) 2004-2007 Texas Instruments, Inc.
* Some functions based on earlier dma-omap.c Copyright (C) 2001 RidgeRun, Inc.
*
* Copyright (C) 2010 Texas Instruments Incorporated - http://www.ti.com/
* Converted DMA library into platform driver
* - G, Manjunath Kondaiah <manjugk@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
* published by the Free Software Foundation.
*/
#include <linux/err.h>
#include <linux/io.h>
#include <linux/slab.h>
#include <linux/module.h>
#include <linux/init.h>
#include <linux/device.h>
#include <plat/dma.h>
#include <plat/tc.h>
#include <plat/irqs.h>
#define OMAP1_DMA_BASE (0xfffed800)
#define OMAP1_LOGICAL_DMA_CH_COUNT 17
#define OMAP1_DMA_STRIDE 0x40
static u32 errata;
static u32 enable_1510_mode;
static u8 dma_stride;
static enum omap_reg_offsets dma_common_ch_start, dma_common_ch_end;
static u16 reg_map[] = {
[GCR] = 0x400,
[GSCR] = 0x404,
[GRST1] = 0x408,
[HW_ID] = 0x442,
[PCH2_ID] = 0x444,
[PCH0_ID] = 0x446,
[PCH1_ID] = 0x448,
[PCHG_ID] = 0x44a,
[PCHD_ID] = 0x44c,
[CAPS_0] = 0x44e,
[CAPS_1] = 0x452,
[CAPS_2] = 0x456,
[CAPS_3] = 0x458,
[CAPS_4] = 0x45a,
[PCH2_SR] = 0x460,
[PCH0_SR] = 0x480,
[PCH1_SR] = 0x482,
[PCHD_SR] = 0x4c0,
/* Common Registers */
[CSDP] = 0x00,
[CCR] = 0x02,
[CICR] = 0x04,
[CSR] = 0x06,
[CEN] = 0x10,
[CFN] = 0x12,
[CSFI] = 0x14,
[CSEI] = 0x16,
[CPC] = 0x18, /* 15xx only */
[CSAC] = 0x18,
[CDAC] = 0x1a,
[CDEI] = 0x1c,
[CDFI] = 0x1e,
[CLNK_CTRL] = 0x28,
/* Channel specific register offsets */
[CSSA] = 0x08,
[CDSA] = 0x0c,
[COLOR] = 0x20,
[CCR2] = 0x24,
[LCH_CTRL] = 0x2a,
};
static struct resource res[] __initdata = {
[0] = {
.start = OMAP1_DMA_BASE,
.end = OMAP1_DMA_BASE + SZ_2K - 1,
.flags = IORESOURCE_MEM,
},
[1] = {
.name = "0",
.start = INT_DMA_CH0_6,
.flags = IORESOURCE_IRQ,
},
[2] = {
.name = "1",
.start = INT_DMA_CH1_7,
.flags = IORESOURCE_IRQ,
},
[3] = {
.name = "2",
.start = INT_DMA_CH2_8,
.flags = IORESOURCE_IRQ,
},
[4] = {
.name = "3",
.start = INT_DMA_CH3,
.flags = IORESOURCE_IRQ,
},
[5] = {
.name = "4",
.start = INT_DMA_CH4,
.flags = IORESOURCE_IRQ,
},
[6] = {
.name = "5",
.start = INT_DMA_CH5,
.flags = IORESOURCE_IRQ,
},
/* Handled in lcd_dma.c */
[7] = {
.name = "6",
.start = INT_1610_DMA_CH6,
.flags = IORESOURCE_IRQ,
},
/* irq's for omap16xx and omap7xx */
[8] = {
.name = "7",
.start = INT_1610_DMA_CH7,
.flags = IORESOURCE_IRQ,
},
[9] = {
.name = "8",
.start = INT_1610_DMA_CH8,
.flags = IORESOURCE_IRQ,
},
[10] = {
.name = "9",
.start = INT_1610_DMA_CH9,
.flags = IORESOURCE_IRQ,
},
[11] = {
.name = "10",
.start = INT_1610_DMA_CH10,
.flags = IORESOURCE_IRQ,
},
[12] = {
.name = "11",
.start = INT_1610_DMA_CH11,
.flags = IORESOURCE_IRQ,
},
[13] = {
.name = "12",
.start = INT_1610_DMA_CH12,
.flags = IORESOURCE_IRQ,
},
[14] = {
.name = "13",
.start = INT_1610_DMA_CH13,
.flags = IORESOURCE_IRQ,
},
[15] = {
.name = "14",
.start = INT_1610_DMA_CH14,
.flags = IORESOURCE_IRQ,
},
[16] = {
.name = "15",
.start = INT_1610_DMA_CH15,
.flags = IORESOURCE_IRQ,
},
[17] = {
.name = "16",
.start = INT_DMA_LCD,
.flags = IORESOURCE_IRQ,
},
};
static void __iomem *dma_base;
static inline void dma_write(u32 val, int reg, int lch)
{
u8 stride;
u32 offset;
stride = (reg >= dma_common_ch_start) ? dma_stride : 0;
offset = reg_map[reg] + (stride * lch);
__raw_writew(val, dma_base + offset);
if ((reg > CLNK_CTRL && reg < CCEN) ||
(reg > PCHD_ID && reg < CAPS_2)) {
u32 offset2 = reg_map[reg] + 2 + (stride * lch);
__raw_writew(val >> 16, dma_base + offset2);
}
}
static inline u32 dma_read(int reg, int lch)
{
u8 stride;
u32 offset, val;
stride = (reg >= dma_common_ch_start) ? dma_stride : 0;
offset = reg_map[reg] + (stride * lch);
val = __raw_readw(dma_base + offset);
if ((reg > CLNK_CTRL && reg < CCEN) ||
(reg > PCHD_ID && reg < CAPS_2)) {
u16 upper;
u32 offset2 = reg_map[reg] + 2 + (stride * lch);
upper = __raw_readw(dma_base + offset2);
val |= (upper << 16);
}
return val;
}
static void omap1_clear_lch_regs(int lch)
{
int i = dma_common_ch_start;
for (; i <= dma_common_ch_end; i += 1)
dma_write(0, i, lch);
}
static void omap1_clear_dma(int lch)
{
u32 l;
l = dma_read(CCR, lch);
l &= ~OMAP_DMA_CCR_EN;
dma_write(l, CCR, lch);
/* Clear pending interrupts */
l = dma_read(CSR, lch);
}
static void omap1_show_dma_caps(void)
{
if (enable_1510_mode) {
printk(KERN_INFO "DMA support for OMAP15xx initialized\n");
} else {
u16 w;
printk(KERN_INFO "OMAP DMA hardware version %d\n",
dma_read(HW_ID, 0));
printk(KERN_INFO "DMA capabilities: %08x:%08x:%04x:%04x:%04x\n",
dma_read(CAPS_0, 0), dma_read(CAPS_1, 0),
dma_read(CAPS_2, 0), dma_read(CAPS_3, 0),
dma_read(CAPS_4, 0));
/* Disable OMAP 3.0/3.1 compatibility mode. */
w = dma_read(GSCR, 0);
w |= 1 << 3;
dma_write(w, GSCR, 0);
}
return;
}
static u32 configure_dma_errata(void)
{
/*
* Erratum 3.2/3.3: sometimes 0 is returned if CSAC/CDAC is
* read before the DMA controller finished disabling the channel.
*/
if (!cpu_is_omap15xx())
SET_DMA_ERRATA(DMA_ERRATA_3_3);
return errata;
}
static int __init omap1_system_dma_init(void)
{
struct omap_system_dma_plat_info *p;
struct omap_dma_dev_attr *d;
struct platform_device *pdev;
int ret;
pdev = platform_device_alloc("omap_dma_system", 0);
if (!pdev) {
pr_err("%s: Unable to device alloc for dma\n",
__func__);
return -ENOMEM;
}
dma_base = ioremap(res[0].start, resource_size(&res[0]));
if (!dma_base) {
pr_err("%s: Unable to ioremap\n", __func__);
return -ENODEV;
}
ret = platform_device_add_resources(pdev, res, ARRAY_SIZE(res));
if (ret) {
dev_err(&pdev->dev, "%s: Unable to add resources for %s%d\n",
__func__, pdev->name, pdev->id);
goto exit_device_del;
}
p = kzalloc(sizeof(struct omap_system_dma_plat_info), GFP_KERNEL);
if (!p) {
dev_err(&pdev->dev, "%s: Unable to allocate 'p' for %s\n",
__func__, pdev->name);
ret = -ENOMEM;
goto exit_device_put;
}
d = kzalloc(sizeof(struct omap_dma_dev_attr), GFP_KERNEL);
if (!d) {
dev_err(&pdev->dev, "%s: Unable to allocate 'd' for %s\n",
__func__, pdev->name);
ret = -ENOMEM;
goto exit_release_p;
}
d->lch_count = OMAP1_LOGICAL_DMA_CH_COUNT;
/* Valid attributes for omap1 plus processors */
if (cpu_is_omap15xx())
d->dev_caps = ENABLE_1510_MODE;
enable_1510_mode = d->dev_caps & ENABLE_1510_MODE;
d->dev_caps |= SRC_PORT;
d->dev_caps |= DST_PORT;
d->dev_caps |= SRC_INDEX;
d->dev_caps |= DST_INDEX;
d->dev_caps |= IS_BURST_ONLY4;
d->dev_caps |= CLEAR_CSR_ON_READ;
d->dev_caps |= IS_WORD_16;
d->chan = kzalloc(sizeof(struct omap_dma_lch) *
(d->lch_count), GFP_KERNEL);
if (!d->chan) {
dev_err(&pdev->dev, "%s: Memory allocation failed"
"for d->chan!!!\n", __func__);
goto exit_release_d;
}
if (cpu_is_omap15xx())
d->chan_count = 9;
else if (cpu_is_omap16xx() || cpu_is_omap7xx()) {
if (!(d->dev_caps & ENABLE_1510_MODE))
d->chan_count = 16;
else
d->chan_count = 9;
}
p->dma_attr = d;
p->show_dma_caps = omap1_show_dma_caps;
p->clear_lch_regs = omap1_clear_lch_regs;
p->clear_dma = omap1_clear_dma;
p->dma_write = dma_write;
p->dma_read = dma_read;
p->disable_irq_lch = NULL;
p->errata = configure_dma_errata();
ret = platform_device_add_data(pdev, p, sizeof(*p));
if (ret) {
dev_err(&pdev->dev, "%s: Unable to add resources for %s%d\n",
__func__, pdev->name, pdev->id);
goto exit_release_chan;
}
ret = platform_device_add(pdev);
if (ret) {
dev_err(&pdev->dev, "%s: Unable to add resources for %s%d\n",
__func__, pdev->name, pdev->id);
goto exit_release_chan;
}
dma_stride = OMAP1_DMA_STRIDE;
dma_common_ch_start = CPC;
dma_common_ch_end = COLOR;
return ret;
exit_release_chan:
kfree(d->chan);
exit_release_d:
kfree(d);
exit_release_p:
kfree(p);
exit_device_put:
platform_device_put(pdev);
exit_device_del:
platform_device_del(pdev);
return ret;
}
arch_initcall(omap1_system_dma_init);
...@@ -11,6 +11,7 @@ ...@@ -11,6 +11,7 @@
#include <plat/io.h> #include <plat/io.h>
#include <plat/tc.h> #include <plat/tc.h>
#include <plat/flash.h>
void omap1_set_vpp(struct map_info *map, int enable) void omap1_set_vpp(struct map_info *map, int enable)
{ {
......
...@@ -143,7 +143,7 @@ static struct irq_chip omap_fpga_irq = { ...@@ -143,7 +143,7 @@ static struct irq_chip omap_fpga_irq = {
*/ */
void omap1510_fpga_init_irq(void) void omap1510_fpga_init_irq(void)
{ {
int i; int i, res;
__raw_writeb(0, OMAP1510_FPGA_IMR_LO); __raw_writeb(0, OMAP1510_FPGA_IMR_LO);
__raw_writeb(0, OMAP1510_FPGA_IMR_HI); __raw_writeb(0, OMAP1510_FPGA_IMR_HI);
...@@ -177,10 +177,12 @@ void omap1510_fpga_init_irq(void) ...@@ -177,10 +177,12 @@ void omap1510_fpga_init_irq(void)
* NOTE: For general GPIO/MPUIO access and interrupts, please see * NOTE: For general GPIO/MPUIO access and interrupts, please see
* gpio.[ch] * gpio.[ch]
*/ */
gpio_request(13, "FPGA irq"); res = gpio_request(13, "FPGA irq");
if (res) {
pr_err("%s failed to get gpio\n", __func__);
return;
}
gpio_direction_input(13); gpio_direction_input(13);
set_irq_type(gpio_to_irq(13), IRQ_TYPE_EDGE_RISING); set_irq_type(gpio_to_irq(13), IRQ_TYPE_EDGE_RISING);
set_irq_chained_handler(OMAP1510_INT_FPGA, innovator_fpga_IRQ_demux); set_irq_chained_handler(OMAP1510_INT_FPGA, innovator_fpga_IRQ_demux);
} }
EXPORT_SYMBOL(omap1510_fpga_init_irq);
/*
* OMAP15xx specific gpio init
*
* Copyright (C) 2010 Texas Instruments Incorporated - http://www.ti.com/
*
* Author:
* Charulatha V <charu@ti.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 version 2.
*
* This program is distributed "as is" WITHOUT ANY WARRANTY of any
* kind, whether express or implied; without even the implied warranty
* of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#include <linux/gpio.h>
#define OMAP1_MPUIO_VBASE OMAP1_MPUIO_BASE
#define OMAP1510_GPIO_BASE 0xFFFCE000
/* gpio1 */
static struct __initdata resource omap15xx_mpu_gpio_resources[] = {
{
.start = OMAP1_MPUIO_VBASE,
.end = OMAP1_MPUIO_VBASE + SZ_2K - 1,
.flags = IORESOURCE_MEM,
},
{
.start = INT_MPUIO,
.flags = IORESOURCE_IRQ,
},
};
static struct __initdata omap_gpio_platform_data omap15xx_mpu_gpio_config = {
.virtual_irq_start = IH_MPUIO_BASE,
.bank_type = METHOD_MPUIO,
.bank_width = 16,
.bank_stride = 1,
};
static struct __initdata platform_device omap15xx_mpu_gpio = {
.name = "omap_gpio",
.id = 0,
.dev = {
.platform_data = &omap15xx_mpu_gpio_config,
},
.num_resources = ARRAY_SIZE(omap15xx_mpu_gpio_resources),
.resource = omap15xx_mpu_gpio_resources,
};
/* gpio2 */
static struct __initdata resource omap15xx_gpio_resources[] = {
{
.start = OMAP1510_GPIO_BASE,
.end = OMAP1510_GPIO_BASE + SZ_2K - 1,
.flags = IORESOURCE_MEM,
},
{
.start = INT_GPIO_BANK1,
.flags = IORESOURCE_IRQ,
},
};
static struct __initdata omap_gpio_platform_data omap15xx_gpio_config = {
.virtual_irq_start = IH_GPIO_BASE,
.bank_type = METHOD_GPIO_1510,
.bank_width = 16,
};
static struct __initdata platform_device omap15xx_gpio = {
.name = "omap_gpio",
.id = 1,
.dev = {
.platform_data = &omap15xx_gpio_config,
},
.num_resources = ARRAY_SIZE(omap15xx_gpio_resources),
.resource = omap15xx_gpio_resources,
};
/*
* omap15xx_gpio_init needs to be done before
* machine_init functions access gpio APIs.
* Hence omap15xx_gpio_init is a postcore_initcall.
*/
static int __init omap15xx_gpio_init(void)
{
if (!cpu_is_omap15xx())
return -EINVAL;
platform_device_register(&omap15xx_mpu_gpio);
platform_device_register(&omap15xx_gpio);
gpio_bank_count = 2;
return 0;
}
postcore_initcall(omap15xx_gpio_init);
/*
* OMAP16xx specific gpio init
*
* Copyright (C) 2010 Texas Instruments Incorporated - http://www.ti.com/
*
* Author:
* Charulatha V <charu@ti.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 version 2.
*
* This program is distributed "as is" WITHOUT ANY WARRANTY of any
* kind, whether express or implied; without even the implied warranty
* of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#include <linux/gpio.h>
#define OMAP1610_GPIO1_BASE 0xfffbe400
#define OMAP1610_GPIO2_BASE 0xfffbec00
#define OMAP1610_GPIO3_BASE 0xfffbb400
#define OMAP1610_GPIO4_BASE 0xfffbbc00
#define OMAP1_MPUIO_VBASE OMAP1_MPUIO_BASE
/* mpu gpio */
static struct __initdata resource omap16xx_mpu_gpio_resources[] = {
{
.start = OMAP1_MPUIO_VBASE,
.end = OMAP1_MPUIO_VBASE + SZ_2K - 1,
.flags = IORESOURCE_MEM,
},
{
.start = INT_MPUIO,
.flags = IORESOURCE_IRQ,
},
};
static struct __initdata omap_gpio_platform_data omap16xx_mpu_gpio_config = {
.virtual_irq_start = IH_MPUIO_BASE,
.bank_type = METHOD_MPUIO,
.bank_width = 16,
.bank_stride = 1,
};
static struct __initdata platform_device omap16xx_mpu_gpio = {
.name = "omap_gpio",
.id = 0,
.dev = {
.platform_data = &omap16xx_mpu_gpio_config,
},
.num_resources = ARRAY_SIZE(omap16xx_mpu_gpio_resources),
.resource = omap16xx_mpu_gpio_resources,
};
/* gpio1 */
static struct __initdata resource omap16xx_gpio1_resources[] = {
{
.start = OMAP1610_GPIO1_BASE,
.end = OMAP1610_GPIO1_BASE + SZ_2K - 1,
.flags = IORESOURCE_MEM,
},
{
.start = INT_GPIO_BANK1,
.flags = IORESOURCE_IRQ,
},
};
static struct __initdata omap_gpio_platform_data omap16xx_gpio1_config = {
.virtual_irq_start = IH_GPIO_BASE,
.bank_type = METHOD_GPIO_1610,
.bank_width = 16,
};
static struct __initdata platform_device omap16xx_gpio1 = {
.name = "omap_gpio",
.id = 1,
.dev = {
.platform_data = &omap16xx_gpio1_config,
},
.num_resources = ARRAY_SIZE(omap16xx_gpio1_resources),
.resource = omap16xx_gpio1_resources,
};
/* gpio2 */
static struct __initdata resource omap16xx_gpio2_resources[] = {
{
.start = OMAP1610_GPIO2_BASE,
.end = OMAP1610_GPIO2_BASE + SZ_2K - 1,
.flags = IORESOURCE_MEM,
},
{
.start = INT_1610_GPIO_BANK2,
.flags = IORESOURCE_IRQ,
},
};
static struct __initdata omap_gpio_platform_data omap16xx_gpio2_config = {
.virtual_irq_start = IH_GPIO_BASE + 16,
.bank_type = METHOD_GPIO_1610,
.bank_width = 16,
};
static struct __initdata platform_device omap16xx_gpio2 = {
.name = "omap_gpio",
.id = 2,
.dev = {
.platform_data = &omap16xx_gpio2_config,
},
.num_resources = ARRAY_SIZE(omap16xx_gpio2_resources),
.resource = omap16xx_gpio2_resources,
};
/* gpio3 */
static struct __initdata resource omap16xx_gpio3_resources[] = {
{
.start = OMAP1610_GPIO3_BASE,
.end = OMAP1610_GPIO3_BASE + SZ_2K - 1,
.flags = IORESOURCE_MEM,
},
{
.start = INT_1610_GPIO_BANK3,
.flags = IORESOURCE_IRQ,
},
};
static struct __initdata omap_gpio_platform_data omap16xx_gpio3_config = {
.virtual_irq_start = IH_GPIO_BASE + 32,
.bank_type = METHOD_GPIO_1610,
.bank_width = 16,
};
static struct __initdata platform_device omap16xx_gpio3 = {
.name = "omap_gpio",
.id = 3,
.dev = {
.platform_data = &omap16xx_gpio3_config,
},
.num_resources = ARRAY_SIZE(omap16xx_gpio3_resources),
.resource = omap16xx_gpio3_resources,
};
/* gpio4 */
static struct __initdata resource omap16xx_gpio4_resources[] = {
{
.start = OMAP1610_GPIO4_BASE,
.end = OMAP1610_GPIO4_BASE + SZ_2K - 1,
.flags = IORESOURCE_MEM,
},
{
.start = INT_1610_GPIO_BANK4,
.flags = IORESOURCE_IRQ,
},
};
static struct __initdata omap_gpio_platform_data omap16xx_gpio4_config = {
.virtual_irq_start = IH_GPIO_BASE + 48,
.bank_type = METHOD_GPIO_1610,
.bank_width = 16,
};
static struct __initdata platform_device omap16xx_gpio4 = {
.name = "omap_gpio",
.id = 4,
.dev = {
.platform_data = &omap16xx_gpio4_config,
},
.num_resources = ARRAY_SIZE(omap16xx_gpio4_resources),
.resource = omap16xx_gpio4_resources,
};
static struct __initdata platform_device * omap16xx_gpio_dev[] = {
&omap16xx_mpu_gpio,
&omap16xx_gpio1,
&omap16xx_gpio2,
&omap16xx_gpio3,
&omap16xx_gpio4,
};
/*
* omap16xx_gpio_init needs to be done before
* machine_init functions access gpio APIs.
* Hence omap16xx_gpio_init is a postcore_initcall.
*/
static int __init omap16xx_gpio_init(void)
{
int i;
if (!cpu_is_omap16xx())
return -EINVAL;
for (i = 0; i < ARRAY_SIZE(omap16xx_gpio_dev); i++)
platform_device_register(omap16xx_gpio_dev[i]);
gpio_bank_count = ARRAY_SIZE(omap16xx_gpio_dev);
return 0;
}
postcore_initcall(omap16xx_gpio_init);
/*
* OMAP7xx specific gpio init
*
* Copyright (C) 2010 Texas Instruments Incorporated - http://www.ti.com/
*
* Author:
* Charulatha V <charu@ti.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 version 2.
*
* This program is distributed "as is" WITHOUT ANY WARRANTY of any
* kind, whether express or implied; without even the implied warranty
* of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#include <linux/gpio.h>
#define OMAP7XX_GPIO1_BASE 0xfffbc000
#define OMAP7XX_GPIO2_BASE 0xfffbc800
#define OMAP7XX_GPIO3_BASE 0xfffbd000
#define OMAP7XX_GPIO4_BASE 0xfffbd800
#define OMAP7XX_GPIO5_BASE 0xfffbe000
#define OMAP7XX_GPIO6_BASE 0xfffbe800
#define OMAP1_MPUIO_VBASE OMAP1_MPUIO_BASE
/* mpu gpio */
static struct __initdata resource omap7xx_mpu_gpio_resources[] = {
{
.start = OMAP1_MPUIO_VBASE,
.end = OMAP1_MPUIO_VBASE + SZ_2K - 1,
.flags = IORESOURCE_MEM,
},
{
.start = INT_7XX_MPUIO,
.flags = IORESOURCE_IRQ,
},
};
static struct __initdata omap_gpio_platform_data omap7xx_mpu_gpio_config = {
.virtual_irq_start = IH_MPUIO_BASE,
.bank_type = METHOD_MPUIO,
.bank_width = 32,
.bank_stride = 2,
};
static struct __initdata platform_device omap7xx_mpu_gpio = {
.name = "omap_gpio",
.id = 0,
.dev = {
.platform_data = &omap7xx_mpu_gpio_config,
},
.num_resources = ARRAY_SIZE(omap7xx_mpu_gpio_resources),
.resource = omap7xx_mpu_gpio_resources,
};
/* gpio1 */
static struct __initdata resource omap7xx_gpio1_resources[] = {
{
.start = OMAP7XX_GPIO1_BASE,
.end = OMAP7XX_GPIO1_BASE + SZ_2K - 1,
.flags = IORESOURCE_MEM,
},
{
.start = INT_7XX_GPIO_BANK1,
.flags = IORESOURCE_IRQ,
},
};
static struct __initdata omap_gpio_platform_data omap7xx_gpio1_config = {
.virtual_irq_start = IH_GPIO_BASE,
.bank_type = METHOD_GPIO_7XX,
.bank_width = 32,
};
static struct __initdata platform_device omap7xx_gpio1 = {
.name = "omap_gpio",
.id = 1,
.dev = {
.platform_data = &omap7xx_gpio1_config,
},
.num_resources = ARRAY_SIZE(omap7xx_gpio1_resources),
.resource = omap7xx_gpio1_resources,
};
/* gpio2 */
static struct __initdata resource omap7xx_gpio2_resources[] = {
{
.start = OMAP7XX_GPIO2_BASE,
.end = OMAP7XX_GPIO2_BASE + SZ_2K - 1,
.flags = IORESOURCE_MEM,
},
{
.start = INT_7XX_GPIO_BANK2,
.flags = IORESOURCE_IRQ,
},
};
static struct __initdata omap_gpio_platform_data omap7xx_gpio2_config = {
.virtual_irq_start = IH_GPIO_BASE + 32,
.bank_type = METHOD_GPIO_7XX,
.bank_width = 32,
};
static struct __initdata platform_device omap7xx_gpio2 = {
.name = "omap_gpio",
.id = 2,
.dev = {
.platform_data = &omap7xx_gpio2_config,
},
.num_resources = ARRAY_SIZE(omap7xx_gpio2_resources),
.resource = omap7xx_gpio2_resources,
};
/* gpio3 */
static struct __initdata resource omap7xx_gpio3_resources[] = {
{
.start = OMAP7XX_GPIO3_BASE,
.end = OMAP7XX_GPIO3_BASE + SZ_2K - 1,
.flags = IORESOURCE_MEM,
},
{
.start = INT_7XX_GPIO_BANK3,
.flags = IORESOURCE_IRQ,
},
};
static struct __initdata omap_gpio_platform_data omap7xx_gpio3_config = {
.virtual_irq_start = IH_GPIO_BASE + 64,
.bank_type = METHOD_GPIO_7XX,
.bank_width = 32,
};
static struct __initdata platform_device omap7xx_gpio3 = {
.name = "omap_gpio",
.id = 3,
.dev = {
.platform_data = &omap7xx_gpio3_config,
},
.num_resources = ARRAY_SIZE(omap7xx_gpio3_resources),
.resource = omap7xx_gpio3_resources,
};
/* gpio4 */
static struct __initdata resource omap7xx_gpio4_resources[] = {
{
.start = OMAP7XX_GPIO4_BASE,
.end = OMAP7XX_GPIO4_BASE + SZ_2K - 1,
.flags = IORESOURCE_MEM,
},
{
.start = INT_7XX_GPIO_BANK4,
.flags = IORESOURCE_IRQ,
},
};
static struct __initdata omap_gpio_platform_data omap7xx_gpio4_config = {
.virtual_irq_start = IH_GPIO_BASE + 96,
.bank_type = METHOD_GPIO_7XX,
.bank_width = 32,
};
static struct __initdata platform_device omap7xx_gpio4 = {
.name = "omap_gpio",
.id = 4,
.dev = {
.platform_data = &omap7xx_gpio4_config,
},
.num_resources = ARRAY_SIZE(omap7xx_gpio4_resources),
.resource = omap7xx_gpio4_resources,
};
/* gpio5 */
static struct __initdata resource omap7xx_gpio5_resources[] = {
{
.start = OMAP7XX_GPIO5_BASE,
.end = OMAP7XX_GPIO5_BASE + SZ_2K - 1,
.flags = IORESOURCE_MEM,
},
{
.start = INT_7XX_GPIO_BANK5,
.flags = IORESOURCE_IRQ,
},
};
static struct __initdata omap_gpio_platform_data omap7xx_gpio5_config = {
.virtual_irq_start = IH_GPIO_BASE + 128,
.bank_type = METHOD_GPIO_7XX,
.bank_width = 32,
};
static struct __initdata platform_device omap7xx_gpio5 = {
.name = "omap_gpio",
.id = 5,
.dev = {
.platform_data = &omap7xx_gpio5_config,
},
.num_resources = ARRAY_SIZE(omap7xx_gpio5_resources),
.resource = omap7xx_gpio5_resources,
};
/* gpio6 */
static struct __initdata resource omap7xx_gpio6_resources[] = {
{
.start = OMAP7XX_GPIO6_BASE,
.end = OMAP7XX_GPIO6_BASE + SZ_2K - 1,
.flags = IORESOURCE_MEM,
},
{
.start = INT_7XX_GPIO_BANK6,
.flags = IORESOURCE_IRQ,
},
};
static struct __initdata omap_gpio_platform_data omap7xx_gpio6_config = {
.virtual_irq_start = IH_GPIO_BASE + 160,
.bank_type = METHOD_GPIO_7XX,
.bank_width = 32,
};
static struct __initdata platform_device omap7xx_gpio6 = {
.name = "omap_gpio",
.id = 6,
.dev = {
.platform_data = &omap7xx_gpio6_config,
},
.num_resources = ARRAY_SIZE(omap7xx_gpio6_resources),
.resource = omap7xx_gpio6_resources,
};
static struct __initdata platform_device * omap7xx_gpio_dev[] = {
&omap7xx_mpu_gpio,
&omap7xx_gpio1,
&omap7xx_gpio2,
&omap7xx_gpio3,
&omap7xx_gpio4,
&omap7xx_gpio5,
&omap7xx_gpio6,
};
/*
* omap7xx_gpio_init needs to be done before
* machine_init functions access gpio APIs.
* Hence omap7xx_gpio_init is a postcore_initcall.
*/
static int __init omap7xx_gpio_init(void)
{
int i;
if (!cpu_is_omap7xx())
return -EINVAL;
for (i = 0; i < ARRAY_SIZE(omap7xx_gpio_dev); i++)
platform_device_register(omap7xx_gpio_dev[i]);
gpio_bank_count = ARRAY_SIZE(omap7xx_gpio_dev);
return 0;
}
postcore_initcall(omap7xx_gpio_init);
...@@ -14,18 +14,17 @@ ...@@ -14,18 +14,17 @@
#include <mach/irqs.h> #include <mach/irqs.h>
#include <asm/hardware/gic.h> #include <asm/hardware/gic.h>
#if (defined(CONFIG_ARCH_OMAP730)||defined(CONFIG_ARCH_OMAP850)) && \ /*
(defined(CONFIG_ARCH_OMAP15XX) || defined(CONFIG_ARCH_OMAP16XX)) * We use __glue to avoid errors with multiple definitions of
#error "FIXME: OMAP7XX doesn't support multiple-OMAP" * .globl omap_irq_flags as it's included from entry-armv.S but not
#elif defined(CONFIG_ARCH_OMAP730) || defined(CONFIG_ARCH_OMAP850) * from entry-common.S.
#define INT_IH2_IRQ INT_7XX_IH2_IRQ */
#elif defined(CONFIG_ARCH_OMAP15XX) #ifdef __glue
#define INT_IH2_IRQ INT_1510_IH2_IRQ .pushsection .data
#elif defined(CONFIG_ARCH_OMAP16XX) .globl omap_irq_flags
#define INT_IH2_IRQ INT_1610_IH2_IRQ omap_irq_flags:
#else .word 0
#warning "IH2 IRQ defaulted" .popsection
#define INT_IH2_IRQ INT_1510_IH2_IRQ
#endif #endif
.macro disable_fiq .macro disable_fiq
...@@ -47,9 +46,11 @@ ...@@ -47,9 +46,11 @@
beq 1510f beq 1510f
ldr \irqnr, [\base, #IRQ_SIR_FIQ_REG_OFFSET] ldr \irqnr, [\base, #IRQ_SIR_FIQ_REG_OFFSET]
ldr \tmp, =omap_irq_flags @ irq flags address
ldr \tmp, [\tmp, #0] @ irq flags value
cmp \irqnr, #0 cmp \irqnr, #0
ldreq \irqnr, [\base, #IRQ_SIR_IRQ_REG_OFFSET] ldreq \irqnr, [\base, #IRQ_SIR_IRQ_REG_OFFSET]
cmpeq \irqnr, #INT_IH2_IRQ cmpeq \irqnr, \tmp
ldreq \base, =OMAP1_IO_ADDRESS(OMAP_IH2_BASE) ldreq \base, =OMAP1_IO_ADDRESS(OMAP_IH2_BASE)
ldreq \irqnr, [\base, #IRQ_SIR_IRQ_REG_OFFSET] ldreq \irqnr, [\base, #IRQ_SIR_IRQ_REG_OFFSET]
addeqs \irqnr, \irqnr, #32 addeqs \irqnr, \irqnr, #32
......
...@@ -142,3 +142,42 @@ void __init omap1_init_common_hw(void) ...@@ -142,3 +142,42 @@ void __init omap1_init_common_hw(void)
omap1_mux_init(); omap1_mux_init();
} }
/*
* NOTE: Please use ioremap + __raw_read/write where possible instead of these
*/
u8 omap_readb(u32 pa)
{
return __raw_readb(OMAP1_IO_ADDRESS(pa));
}
EXPORT_SYMBOL(omap_readb);
u16 omap_readw(u32 pa)
{
return __raw_readw(OMAP1_IO_ADDRESS(pa));
}
EXPORT_SYMBOL(omap_readw);
u32 omap_readl(u32 pa)
{
return __raw_readl(OMAP1_IO_ADDRESS(pa));
}
EXPORT_SYMBOL(omap_readl);
void omap_writeb(u8 v, u32 pa)
{
__raw_writeb(v, OMAP1_IO_ADDRESS(pa));
}
EXPORT_SYMBOL(omap_writeb);
void omap_writew(u16 v, u32 pa)
{
__raw_writew(v, OMAP1_IO_ADDRESS(pa));
}
EXPORT_SYMBOL(omap_writew);
void omap_writel(u32 v, u32 pa)
{
__raw_writel(v, OMAP1_IO_ADDRESS(pa));
}
EXPORT_SYMBOL(omap_writel);
...@@ -176,26 +176,31 @@ static struct irq_chip omap_irq_chip = { ...@@ -176,26 +176,31 @@ static struct irq_chip omap_irq_chip = {
void __init omap_init_irq(void) void __init omap_init_irq(void)
{ {
extern unsigned int omap_irq_flags;
int i, j; int i, j;
#if defined(CONFIG_ARCH_OMAP730) || defined(CONFIG_ARCH_OMAP850) #if defined(CONFIG_ARCH_OMAP730) || defined(CONFIG_ARCH_OMAP850)
if (cpu_is_omap7xx()) { if (cpu_is_omap7xx()) {
omap_irq_flags = INT_7XX_IH2_IRQ;
irq_banks = omap7xx_irq_banks; irq_banks = omap7xx_irq_banks;
irq_bank_count = ARRAY_SIZE(omap7xx_irq_banks); irq_bank_count = ARRAY_SIZE(omap7xx_irq_banks);
} }
#endif #endif
#ifdef CONFIG_ARCH_OMAP15XX #ifdef CONFIG_ARCH_OMAP15XX
if (cpu_is_omap1510()) { if (cpu_is_omap1510()) {
omap_irq_flags = INT_1510_IH2_IRQ;
irq_banks = omap1510_irq_banks; irq_banks = omap1510_irq_banks;
irq_bank_count = ARRAY_SIZE(omap1510_irq_banks); irq_bank_count = ARRAY_SIZE(omap1510_irq_banks);
} }
if (cpu_is_omap310()) { if (cpu_is_omap310()) {
omap_irq_flags = INT_1510_IH2_IRQ;
irq_banks = omap310_irq_banks; irq_banks = omap310_irq_banks;
irq_bank_count = ARRAY_SIZE(omap310_irq_banks); irq_bank_count = ARRAY_SIZE(omap310_irq_banks);
} }
#endif #endif
#if defined(CONFIG_ARCH_OMAP16XX) #if defined(CONFIG_ARCH_OMAP16XX)
if (cpu_is_omap16xx()) { if (cpu_is_omap16xx()) {
omap_irq_flags = INT_1510_IH2_IRQ;
irq_banks = omap1610_irq_banks; irq_banks = omap1610_irq_banks;
irq_bank_count = ARRAY_SIZE(omap1610_irq_banks); irq_bank_count = ARRAY_SIZE(omap1610_irq_banks);
} }
......
...@@ -424,6 +424,9 @@ static int __init omap_init_lcd_dma(void) ...@@ -424,6 +424,9 @@ static int __init omap_init_lcd_dma(void)
{ {
int r; int r;
if (!cpu_class_is_omap1())
return -ENODEV;
if (cpu_is_omap16xx()) { if (cpu_is_omap16xx()) {
u16 w; u16 w;
......
...@@ -17,6 +17,9 @@ ...@@ -17,6 +17,9 @@
static int __init static int __init
omap_leds_init(void) omap_leds_init(void)
{ {
if (!cpu_class_is_omap1())
return -ENODEV;
if (machine_is_omap_innovator()) if (machine_is_omap_innovator())
leds_event = innovator_leds_event; leds_event = innovator_leds_event;
......
...@@ -133,19 +133,18 @@ static struct omap_mbox1_priv omap1_mbox_dsp_priv = { ...@@ -133,19 +133,18 @@ static struct omap_mbox1_priv omap1_mbox_dsp_priv = {
}, },
}; };
struct omap_mbox mbox_dsp_info = { static struct omap_mbox mbox_dsp_info = {
.name = "dsp", .name = "dsp",
.ops = &omap1_mbox_ops, .ops = &omap1_mbox_ops,
.priv = &omap1_mbox_dsp_priv, .priv = &omap1_mbox_dsp_priv,
}; };
struct omap_mbox *omap1_mboxes[] = { &mbox_dsp_info, NULL }; static struct omap_mbox *omap1_mboxes[] = { &mbox_dsp_info, NULL };
static int __devinit omap1_mbox_probe(struct platform_device *pdev) static int __devinit omap1_mbox_probe(struct platform_device *pdev)
{ {
struct resource *mem; struct resource *mem;
int ret; int ret;
int i;
struct omap_mbox **list; struct omap_mbox **list;
list = omap1_mboxes; list = omap1_mboxes;
......
...@@ -174,8 +174,11 @@ static struct omap_mcbsp_platform_data omap16xx_mcbsp_pdata[] = { ...@@ -174,8 +174,11 @@ static struct omap_mcbsp_platform_data omap16xx_mcbsp_pdata[] = {
#define OMAP16XX_MCBSP_REG_NUM 0 #define OMAP16XX_MCBSP_REG_NUM 0
#endif #endif
int __init omap1_mcbsp_init(void) static int __init omap1_mcbsp_init(void)
{ {
if (!cpu_class_is_omap1())
return -ENODEV;
if (cpu_is_omap7xx()) { if (cpu_is_omap7xx()) {
omap_mcbsp_count = OMAP7XX_MCBSP_PDATA_SZ; omap_mcbsp_count = OMAP7XX_MCBSP_PDATA_SZ;
omap_mcbsp_cache_size = OMAP7XX_MCBSP_REG_NUM * sizeof(u16); omap_mcbsp_cache_size = OMAP7XX_MCBSP_REG_NUM * sizeof(u16);
......
...@@ -343,7 +343,7 @@ MUX_CFG("Y14_1610_CCP_DATAM", 9, 21, 6, 2, 3, 1, 2, 0, 0) ...@@ -343,7 +343,7 @@ MUX_CFG("Y14_1610_CCP_DATAM", 9, 21, 6, 2, 3, 1, 2, 0, 0)
#define OMAP1XXX_PINS_SZ 0 #define OMAP1XXX_PINS_SZ 0
#endif /* CONFIG_ARCH_OMAP15XX || CONFIG_ARCH_OMAP16XX */ #endif /* CONFIG_ARCH_OMAP15XX || CONFIG_ARCH_OMAP16XX */
int __init_or_module omap1_cfg_reg(const struct pin_config *cfg) static int __init_or_module omap1_cfg_reg(const struct pin_config *cfg)
{ {
static DEFINE_SPINLOCK(mux_spin_lock); static DEFINE_SPINLOCK(mux_spin_lock);
unsigned long flags; unsigned long flags;
......
...@@ -661,6 +661,9 @@ static int __init omap_pm_init(void) ...@@ -661,6 +661,9 @@ static int __init omap_pm_init(void)
int error; int error;
#endif #endif
if (!cpu_class_is_omap1())
return -ENODEV;
printk("Power Management for TI OMAP.\n"); printk("Power Management for TI OMAP.\n");
/* /*
......
...@@ -48,7 +48,6 @@ static int omap1_pm_runtime_suspend(struct device *dev) ...@@ -48,7 +48,6 @@ static int omap1_pm_runtime_suspend(struct device *dev)
static int omap1_pm_runtime_resume(struct device *dev) static int omap1_pm_runtime_resume(struct device *dev)
{ {
int ret = 0;
struct clk *iclk, *fclk; struct clk *iclk, *fclk;
dev_dbg(dev, "%s\n", __func__); dev_dbg(dev, "%s\n", __func__);
...@@ -73,6 +72,9 @@ static int __init omap1_pm_runtime_init(void) ...@@ -73,6 +72,9 @@ static int __init omap1_pm_runtime_init(void)
const struct dev_pm_ops *pm; const struct dev_pm_ops *pm;
struct dev_pm_ops *omap_pm; struct dev_pm_ops *omap_pm;
if (!cpu_class_is_omap1())
return -ENODEV;
pm = platform_bus_get_pm_ops(); pm = platform_bus_get_pm_ops();
if (!pm) { if (!pm) {
pr_err("%s: unable to get dev_pm_ops from platform_bus\n", pr_err("%s: unable to get dev_pm_ops from platform_bus\n",
......
...@@ -27,6 +27,8 @@ ...@@ -27,6 +27,8 @@
#include <mach/gpio.h> #include <mach/gpio.h>
#include <plat/fpga.h> #include <plat/fpga.h>
#include "pm.h"
static struct clk * uart1_ck; static struct clk * uart1_ck;
static struct clk * uart2_ck; static struct clk * uart2_ck;
static struct clk * uart3_ck; static struct clk * uart3_ck;
...@@ -52,9 +54,11 @@ static inline void omap_serial_outp(struct plat_serial8250_port *p, int offset, ...@@ -52,9 +54,11 @@ static inline void omap_serial_outp(struct plat_serial8250_port *p, int offset,
*/ */
static void __init omap_serial_reset(struct plat_serial8250_port *p) static void __init omap_serial_reset(struct plat_serial8250_port *p)
{ {
omap_serial_outp(p, UART_OMAP_MDR1, 0x07); /* disable UART */ omap_serial_outp(p, UART_OMAP_MDR1,
UART_OMAP_MDR1_DISABLE); /* disable UART */
omap_serial_outp(p, UART_OMAP_SCR, 0x08); /* TX watermark */ omap_serial_outp(p, UART_OMAP_SCR, 0x08); /* TX watermark */
omap_serial_outp(p, UART_OMAP_MDR1, 0x00); /* enable UART */ omap_serial_outp(p, UART_OMAP_MDR1,
UART_OMAP_MDR1_16X_MODE); /* enable UART */
if (!cpu_is_omap15xx()) { if (!cpu_is_omap15xx()) {
omap_serial_outp(p, UART_OMAP_SYSC, 0x01); omap_serial_outp(p, UART_OMAP_SYSC, 0x01);
...@@ -254,6 +258,9 @@ late_initcall(omap_serial_wakeup_init); ...@@ -254,6 +258,9 @@ late_initcall(omap_serial_wakeup_init);
static int __init omap_init(void) static int __init omap_init(void)
{ {
if (!cpu_class_is_omap1())
return -ENODEV;
return platform_device_register(&serial_device); return platform_device_register(&serial_device);
} }
arch_initcall(omap_init); arch_initcall(omap_init);
...@@ -52,6 +52,7 @@ ...@@ -52,6 +52,7 @@
#include <asm/mach/irq.h> #include <asm/mach/irq.h>
#include <asm/mach/time.h> #include <asm/mach/time.h>
#include <plat/common.h>
#define OMAP_MPU_TIMER_BASE OMAP_MPU_TIMER1_BASE #define OMAP_MPU_TIMER_BASE OMAP_MPU_TIMER1_BASE
#define OMAP_MPU_TIMER_OFFSET 0x100 #define OMAP_MPU_TIMER_OFFSET 0x100
......
...@@ -15,7 +15,7 @@ config ARCH_OMAP2PLUS_TYPICAL ...@@ -15,7 +15,7 @@ config ARCH_OMAP2PLUS_TYPICAL
select SERIAL_OMAP_CONSOLE select SERIAL_OMAP_CONSOLE
select I2C select I2C
select I2C_OMAP select I2C_OMAP
select MFD select MFD_SUPPORT
select MENELAUS if ARCH_OMAP2 select MENELAUS if ARCH_OMAP2
select TWL4030_CORE if ARCH_OMAP3 || ARCH_OMAP4 select TWL4030_CORE if ARCH_OMAP3 || ARCH_OMAP4
select TWL4030_POWER if ARCH_OMAP3 || ARCH_OMAP4 select TWL4030_POWER if ARCH_OMAP3 || ARCH_OMAP4
...@@ -35,6 +35,8 @@ config ARCH_OMAP3 ...@@ -35,6 +35,8 @@ config ARCH_OMAP3
select CPU_V7 select CPU_V7
select USB_ARCH_HAS_EHCI select USB_ARCH_HAS_EHCI
select ARM_L1_CACHE_SHIFT_6 if !ARCH_OMAP4 select ARM_L1_CACHE_SHIFT_6 if !ARCH_OMAP4
select ARCH_HAS_OPP
select PM_OPP if PM
config ARCH_OMAP4 config ARCH_OMAP4
bool "TI OMAP4" bool "TI OMAP4"
...@@ -44,6 +46,8 @@ config ARCH_OMAP4 ...@@ -44,6 +46,8 @@ config ARCH_OMAP4
select ARM_GIC select ARM_GIC
select PL310_ERRATA_588369 select PL310_ERRATA_588369
select ARM_ERRATA_720789 select ARM_ERRATA_720789
select ARCH_HAS_OPP
select PM_OPP if PM
comment "OMAP Core Type" comment "OMAP Core Type"
depends on ARCH_OMAP2 depends on ARCH_OMAP2
...@@ -85,6 +89,12 @@ config OMAP_PACKAGE_CUS ...@@ -85,6 +89,12 @@ config OMAP_PACKAGE_CUS
config OMAP_PACKAGE_CBP config OMAP_PACKAGE_CBP
bool bool
config OMAP_PACKAGE_CBL
bool
config OMAP_PACKAGE_CBS
bool
comment "OMAP Board Type" comment "OMAP Board Type"
depends on ARCH_OMAP2PLUS depends on ARCH_OMAP2PLUS
...@@ -128,7 +138,6 @@ config MACH_DEVKIT8000 ...@@ -128,7 +138,6 @@ config MACH_DEVKIT8000
depends on ARCH_OMAP3 depends on ARCH_OMAP3
default y default y
select OMAP_PACKAGE_CUS select OMAP_PACKAGE_CUS
select OMAP_MUX
config MACH_OMAP_LDP config MACH_OMAP_LDP
bool "OMAP3 LDP board" bool "OMAP3 LDP board"
...@@ -174,11 +183,17 @@ config MACH_OMAP3517EVM ...@@ -174,11 +183,17 @@ config MACH_OMAP3517EVM
default y default y
select OMAP_PACKAGE_CBB select OMAP_PACKAGE_CBB
config MACH_CRANEBOARD
bool "AM3517/05 CRANE board"
depends on ARCH_OMAP3
select OMAP_PACKAGE_CBB
config MACH_OMAP3_PANDORA config MACH_OMAP3_PANDORA
bool "OMAP3 Pandora" bool "OMAP3 Pandora"
depends on ARCH_OMAP3 depends on ARCH_OMAP3
default y default y
select OMAP_PACKAGE_CBB select OMAP_PACKAGE_CBB
select REGULATOR_FIXED_VOLTAGE
config MACH_OMAP3_TOUCHBOOK config MACH_OMAP3_TOUCHBOOK
bool "OMAP3 Touch Book" bool "OMAP3 Touch Book"
...@@ -210,6 +225,12 @@ config MACH_NOKIA_N8X0 ...@@ -210,6 +225,12 @@ config MACH_NOKIA_N8X0
select MACH_NOKIA_N810 select MACH_NOKIA_N810
select MACH_NOKIA_N810_WIMAX select MACH_NOKIA_N810_WIMAX
config MACH_NOKIA_RM680
bool "Nokia RM-680 board"
depends on ARCH_OMAP3
default y
select OMAP_PACKAGE_CBB
config MACH_NOKIA_RX51 config MACH_NOKIA_RX51
bool "Nokia RX-51 board" bool "Nokia RX-51 board"
depends on ARCH_OMAP3 depends on ARCH_OMAP3
...@@ -224,6 +245,7 @@ config MACH_OMAP_ZOOM2 ...@@ -224,6 +245,7 @@ config MACH_OMAP_ZOOM2
select SERIAL_8250 select SERIAL_8250
select SERIAL_CORE_CONSOLE select SERIAL_CORE_CONSOLE
select SERIAL_8250_CONSOLE select SERIAL_8250_CONSOLE
select REGULATOR_FIXED_VOLTAGE
config MACH_OMAP_ZOOM3 config MACH_OMAP_ZOOM3
bool "OMAP3630 Zoom3 board" bool "OMAP3630 Zoom3 board"
...@@ -233,20 +255,19 @@ config MACH_OMAP_ZOOM3 ...@@ -233,20 +255,19 @@ config MACH_OMAP_ZOOM3
select SERIAL_8250 select SERIAL_8250
select SERIAL_CORE_CONSOLE select SERIAL_CORE_CONSOLE
select SERIAL_8250_CONSOLE select SERIAL_8250_CONSOLE
select REGULATOR_FIXED_VOLTAGE
config MACH_CM_T35 config MACH_CM_T35
bool "CompuLab CM-T35 module" bool "CompuLab CM-T35 module"
depends on ARCH_OMAP3 depends on ARCH_OMAP3
default y default y
select OMAP_PACKAGE_CUS select OMAP_PACKAGE_CUS
select OMAP_MUX
config MACH_CM_T3517 config MACH_CM_T3517
bool "CompuLab CM-T3517 module" bool "CompuLab CM-T3517 module"
depends on ARCH_OMAP3 depends on ARCH_OMAP3
default y default y
select OMAP_PACKAGE_CBB select OMAP_PACKAGE_CBB
select OMAP_MUX
config MACH_IGEP0020 config MACH_IGEP0020
bool "IGEP v2 board" bool "IGEP v2 board"
...@@ -265,7 +286,6 @@ config MACH_SBC3530 ...@@ -265,7 +286,6 @@ config MACH_SBC3530
depends on ARCH_OMAP3 depends on ARCH_OMAP3
default y default y
select OMAP_PACKAGE_CUS select OMAP_PACKAGE_CUS
select OMAP_MUX
config MACH_OMAP_3630SDP config MACH_OMAP_3630SDP
bool "OMAP3630 SDP board" bool "OMAP3630 SDP board"
...@@ -277,11 +297,15 @@ config MACH_OMAP_4430SDP ...@@ -277,11 +297,15 @@ config MACH_OMAP_4430SDP
bool "OMAP 4430 SDP board" bool "OMAP 4430 SDP board"
default y default y
depends on ARCH_OMAP4 depends on ARCH_OMAP4
select OMAP_PACKAGE_CBL
select OMAP_PACKAGE_CBS
config MACH_OMAP4_PANDA config MACH_OMAP4_PANDA
bool "OMAP4 Panda Board" bool "OMAP4 Panda Board"
default y default y
depends on ARCH_OMAP4 depends on ARCH_OMAP4
select OMAP_PACKAGE_CBL
select OMAP_PACKAGE_CBS
config OMAP3_EMU config OMAP3_EMU
bool "OMAP3 debugging peripherals" bool "OMAP3 debugging peripherals"
......
...@@ -4,30 +4,31 @@ ...@@ -4,30 +4,31 @@
# Common support # Common support
obj-y := id.o io.o control.o mux.o devices.o serial.o gpmc.o timer-gp.o pm.o \ obj-y := id.o io.o control.o mux.o devices.o serial.o gpmc.o timer-gp.o pm.o \
common.o common.o gpio.o dma.o wd_timer.o
omap-2-3-common = irq.o sdrc.o prm2xxx_3xxx.o omap-2-3-common = irq.o sdrc.o
hwmod-common = omap_hwmod.o \ hwmod-common = omap_hwmod.o \
omap_hwmod_common_data.o omap_hwmod_common_data.o
prcm-common = prcm.o powerdomain.o
clock-common = clock.o clock_common_data.o \ clock-common = clock.o clock_common_data.o \
clockdomain.o clkt_dpll.o \ clkt_dpll.o clkt_clksel.o
clkt_clksel.o
obj-$(CONFIG_ARCH_OMAP2) += $(omap-2-3-common) $(prcm-common) $(hwmod-common) obj-$(CONFIG_ARCH_OMAP2) += $(omap-2-3-common) $(hwmod-common)
obj-$(CONFIG_ARCH_OMAP3) += $(omap-2-3-common) $(prcm-common) $(hwmod-common) obj-$(CONFIG_ARCH_OMAP3) += $(omap-2-3-common) $(hwmod-common)
obj-$(CONFIG_ARCH_OMAP4) += $(prcm-common) prm44xx.o $(hwmod-common) obj-$(CONFIG_ARCH_OMAP4) += prm44xx.o $(hwmod-common)
obj-$(CONFIG_OMAP_MCBSP) += mcbsp.o obj-$(CONFIG_OMAP_MCBSP) += mcbsp.o
obj-$(CONFIG_TWL4030_CORE) += omap_twl.o
# SMP support ONLY available for OMAP4 # SMP support ONLY available for OMAP4
obj-$(CONFIG_SMP) += omap-smp.o omap-headsmp.o obj-$(CONFIG_SMP) += omap-smp.o omap-headsmp.o
obj-$(CONFIG_LOCAL_TIMERS) += timer-mpu.o obj-$(CONFIG_LOCAL_TIMERS) += timer-mpu.o
obj-$(CONFIG_HOTPLUG_CPU) += omap-hotplug.o obj-$(CONFIG_HOTPLUG_CPU) += omap-hotplug.o
obj-$(CONFIG_ARCH_OMAP4) += omap44xx-smc.o omap4-common.o obj-$(CONFIG_ARCH_OMAP4) += omap44xx-smc.o omap4-common.o
AFLAGS_omap-headsmp.o :=-Wa,-march=armv7-a plus_sec := $(call as-instr,.arch_extension sec,+sec)
AFLAGS_omap44xx-smc.o :=-Wa,-march=armv7-a AFLAGS_omap-headsmp.o :=-Wa,-march=armv7-a$(plus_sec)
AFLAGS_omap44xx-smc.o :=-Wa,-march=armv7-a$(plus_sec)
# Functions loaded to SRAM # Functions loaded to SRAM
obj-$(CONFIG_ARCH_OMAP2420) += sram242x.o obj-$(CONFIG_ARCH_OMAP2420) += sram242x.o
...@@ -42,18 +43,29 @@ AFLAGS_sram34xx.o :=-Wa,-march=armv7-a ...@@ -42,18 +43,29 @@ AFLAGS_sram34xx.o :=-Wa,-march=armv7-a
obj-$(CONFIG_ARCH_OMAP2420) += mux2420.o obj-$(CONFIG_ARCH_OMAP2420) += mux2420.o
obj-$(CONFIG_ARCH_OMAP2430) += mux2430.o obj-$(CONFIG_ARCH_OMAP2430) += mux2430.o
obj-$(CONFIG_ARCH_OMAP3) += mux34xx.o obj-$(CONFIG_ARCH_OMAP3) += mux34xx.o
obj-$(CONFIG_ARCH_OMAP4) += mux44xx.o
# SMS/SDRC # SMS/SDRC
obj-$(CONFIG_ARCH_OMAP2) += sdrc2xxx.o obj-$(CONFIG_ARCH_OMAP2) += sdrc2xxx.o
# obj-$(CONFIG_ARCH_OMAP3) += sdrc3xxx.o # obj-$(CONFIG_ARCH_OMAP3) += sdrc3xxx.o
# OPP table initialization
ifeq ($(CONFIG_PM_OPP),y)
obj-y += opp.o
obj-$(CONFIG_ARCH_OMAP3) += opp3xxx_data.o
obj-$(CONFIG_ARCH_OMAP4) += opp4xxx_data.o
endif
# Power Management # Power Management
ifeq ($(CONFIG_PM),y) ifeq ($(CONFIG_PM),y)
obj-$(CONFIG_ARCH_OMAP2) += pm24xx.o obj-$(CONFIG_ARCH_OMAP2) += pm24xx.o
obj-$(CONFIG_ARCH_OMAP2) += sleep24xx.o pm_bus.o obj-$(CONFIG_ARCH_OMAP2) += sleep24xx.o pm_bus.o voltage.o
obj-$(CONFIG_ARCH_OMAP3) += pm34xx.o sleep34xx.o cpuidle34xx.o pm_bus.o obj-$(CONFIG_ARCH_OMAP3) += pm34xx.o sleep34xx.o voltage.o \
obj-$(CONFIG_ARCH_OMAP4) += pm44xx.o pm_bus.o cpuidle34xx.o pm_bus.o
obj-$(CONFIG_ARCH_OMAP4) += pm44xx.o voltage.o pm_bus.o
obj-$(CONFIG_PM_DEBUG) += pm-debug.o obj-$(CONFIG_PM_DEBUG) += pm-debug.o
obj-$(CONFIG_OMAP_SMARTREFLEX) += sr_device.o smartreflex.o
obj-$(CONFIG_OMAP_SMARTREFLEX_CLASS3) += smartreflex-class3.o
AFLAGS_sleep24xx.o :=-Wa,-march=armv6 AFLAGS_sleep24xx.o :=-Wa,-march=armv6
AFLAGS_sleep34xx.o :=-Wa,-march=armv7-a AFLAGS_sleep34xx.o :=-Wa,-march=armv7-a
...@@ -65,10 +77,36 @@ endif ...@@ -65,10 +77,36 @@ endif
endif endif
# PRCM # PRCM
obj-$(CONFIG_ARCH_OMAP2) += cm.o obj-$(CONFIG_ARCH_OMAP2) += prcm.o cm2xxx_3xxx.o prm2xxx_3xxx.o
obj-$(CONFIG_ARCH_OMAP3) += cm.o obj-$(CONFIG_ARCH_OMAP3) += prcm.o cm2xxx_3xxx.o prm2xxx_3xxx.o
obj-$(CONFIG_ARCH_OMAP4) += cm4xxx.o # XXX The presence of cm2xxx_3xxx.o on the line below is temporary and
# will be removed once the OMAP4 part of the codebase is converted to
# use OMAP4-specific PRCM functions.
obj-$(CONFIG_ARCH_OMAP4) += prcm.o cm2xxx_3xxx.o cminst44xx.o \
cm44xx.o prcm_mpu44xx.o \
prminst44xx.o
# OMAP powerdomain framework
powerdomain-common += powerdomain.o powerdomain-common.o
obj-$(CONFIG_ARCH_OMAP2) += $(powerdomain-common) \
powerdomain2xxx_3xxx.o \
powerdomains2xxx_data.o \
powerdomains2xxx_3xxx_data.o
obj-$(CONFIG_ARCH_OMAP3) += $(powerdomain-common) \
powerdomain2xxx_3xxx.o \
powerdomains3xxx_data.o \
powerdomains2xxx_3xxx_data.o
obj-$(CONFIG_ARCH_OMAP4) += $(powerdomain-common) \
powerdomain44xx.o \
powerdomains44xx_data.o
# PRCM clockdomain control
obj-$(CONFIG_ARCH_OMAP2) += clockdomain.o \
clockdomains2xxx_3xxx_data.o
obj-$(CONFIG_ARCH_OMAP3) += clockdomain.o \
clockdomains2xxx_3xxx_data.o
obj-$(CONFIG_ARCH_OMAP4) += clockdomain.o \
clockdomains44xx_data.o
# Clock framework # Clock framework
obj-$(CONFIG_ARCH_OMAP2) += $(clock-common) clock2xxx.o \ obj-$(CONFIG_ARCH_OMAP2) += $(clock-common) clock2xxx.o \
clkt2xxx_sys.o \ clkt2xxx_sys.o \
...@@ -139,17 +177,20 @@ obj-$(CONFIG_MACH_OMAP_3430SDP) += board-3430sdp.o \ ...@@ -139,17 +177,20 @@ obj-$(CONFIG_MACH_OMAP_3430SDP) += board-3430sdp.o \
hsmmc.o \ hsmmc.o \
board-flash.o board-flash.o
obj-$(CONFIG_MACH_NOKIA_N8X0) += board-n8x0.o obj-$(CONFIG_MACH_NOKIA_N8X0) += board-n8x0.o
obj-$(CONFIG_MACH_NOKIA_RM680) += board-rm680.o \
sdram-nokia.o \
hsmmc.o
obj-$(CONFIG_MACH_NOKIA_RX51) += board-rx51.o \ obj-$(CONFIG_MACH_NOKIA_RX51) += board-rx51.o \
board-rx51-sdram.o \ sdram-nokia.o \
board-rx51-peripherals.o \ board-rx51-peripherals.o \
board-rx51-video.o \ board-rx51-video.o \
hsmmc.o hsmmc.o
obj-$(CONFIG_MACH_OMAP_ZOOM2) += board-zoom2.o \ obj-$(CONFIG_MACH_OMAP_ZOOM2) += board-zoom.o \
board-zoom-peripherals.o \ board-zoom-peripherals.o \
board-flash.o \ board-flash.o \
hsmmc.o \ hsmmc.o \
board-zoom-debugboard.o board-zoom-debugboard.o
obj-$(CONFIG_MACH_OMAP_ZOOM3) += board-zoom3.o \ obj-$(CONFIG_MACH_OMAP_ZOOM3) += board-zoom.o \
board-zoom-peripherals.o \ board-zoom-peripherals.o \
board-flash.o \ board-flash.o \
hsmmc.o \ hsmmc.o \
...@@ -174,6 +215,8 @@ obj-$(CONFIG_MACH_OMAP4_PANDA) += board-omap4panda.o \ ...@@ -174,6 +215,8 @@ obj-$(CONFIG_MACH_OMAP4_PANDA) += board-omap4panda.o \
obj-$(CONFIG_MACH_OMAP3517EVM) += board-am3517evm.o obj-$(CONFIG_MACH_OMAP3517EVM) += board-am3517evm.o
obj-$(CONFIG_MACH_CRANEBOARD) += board-am3517crane.o
obj-$(CONFIG_MACH_SBC3530) += board-omap3stalker.o \ obj-$(CONFIG_MACH_SBC3530) += board-omap3stalker.o \
hsmmc.o hsmmc.o
# Platform specific device init code # Platform specific device init code
......
...@@ -135,7 +135,7 @@ static inline void board_smc91x_init(void) ...@@ -135,7 +135,7 @@ static inline void board_smc91x_init(void)
#endif #endif
static struct omap_board_config_kernel sdp2430_config[] = { static struct omap_board_config_kernel sdp2430_config[] __initdata = {
{OMAP_TAG_LCD, &sdp2430_lcd_config}, {OMAP_TAG_LCD, &sdp2430_lcd_config},
}; };
...@@ -143,9 +143,9 @@ static void __init omap_2430sdp_init_irq(void) ...@@ -143,9 +143,9 @@ static void __init omap_2430sdp_init_irq(void)
{ {
omap_board_config = sdp2430_config; omap_board_config = sdp2430_config;
omap_board_config_size = ARRAY_SIZE(sdp2430_config); omap_board_config_size = ARRAY_SIZE(sdp2430_config);
omap2_init_common_hw(NULL, NULL); omap2_init_common_infrastructure();
omap2_init_common_devices(NULL, NULL);
omap_init_irq(); omap_init_irq();
omap_gpio_init();
} }
static struct twl4030_gpio_platform_data sdp2430_gpio_data = { static struct twl4030_gpio_platform_data sdp2430_gpio_data = {
...@@ -218,8 +218,6 @@ static struct omap_usb_config sdp2430_usb_config __initdata = { ...@@ -218,8 +218,6 @@ static struct omap_usb_config sdp2430_usb_config __initdata = {
static struct omap_board_mux board_mux[] __initdata = { static struct omap_board_mux board_mux[] __initdata = {
{ .reg_offset = OMAP_MUX_TERMINATOR }, { .reg_offset = OMAP_MUX_TERMINATOR },
}; };
#else
#define board_mux NULL
#endif #endif
static void __init omap_2430sdp_init(void) static void __init omap_2430sdp_init(void)
......
...@@ -326,9 +326,9 @@ static void __init omap_3430sdp_init_irq(void) ...@@ -326,9 +326,9 @@ static void __init omap_3430sdp_init_irq(void)
omap_board_config = sdp3430_config; omap_board_config = sdp3430_config;
omap_board_config_size = ARRAY_SIZE(sdp3430_config); omap_board_config_size = ARRAY_SIZE(sdp3430_config);
omap3_pm_init_cpuidle(omap3_cpuidle_params_table); omap3_pm_init_cpuidle(omap3_cpuidle_params_table);
omap2_init_common_hw(hyb18m512160af6_sdrc_params, NULL); omap2_init_common_infrastructure();
omap2_init_common_devices(hyb18m512160af6_sdrc_params, NULL);
omap_init_irq(); omap_init_irq();
omap_gpio_init();
} }
static int sdp3430_batt_table[] = { static int sdp3430_batt_table[] = {
...@@ -663,8 +663,6 @@ static const struct ehci_hcd_omap_platform_data ehci_pdata __initconst = { ...@@ -663,8 +663,6 @@ static const struct ehci_hcd_omap_platform_data ehci_pdata __initconst = {
static struct omap_board_mux board_mux[] __initdata = { static struct omap_board_mux board_mux[] __initdata = {
{ .reg_offset = OMAP_MUX_TERMINATOR }, { .reg_offset = OMAP_MUX_TERMINATOR },
}; };
#else
#define board_mux NULL
#endif #endif
/* /*
......
...@@ -73,18 +73,16 @@ static void __init omap_sdp_init_irq(void) ...@@ -73,18 +73,16 @@ static void __init omap_sdp_init_irq(void)
{ {
omap_board_config = sdp_config; omap_board_config = sdp_config;
omap_board_config_size = ARRAY_SIZE(sdp_config); omap_board_config_size = ARRAY_SIZE(sdp_config);
omap2_init_common_hw(h8mbx00u0mer0em_sdrc_params, omap2_init_common_infrastructure();
h8mbx00u0mer0em_sdrc_params); omap2_init_common_devices(h8mbx00u0mer0em_sdrc_params,
h8mbx00u0mer0em_sdrc_params);
omap_init_irq(); omap_init_irq();
omap_gpio_init();
} }
#ifdef CONFIG_OMAP_MUX #ifdef CONFIG_OMAP_MUX
static struct omap_board_mux board_mux[] __initdata = { static struct omap_board_mux board_mux[] __initdata = {
{ .reg_offset = OMAP_MUX_TERMINATOR }, { .reg_offset = OMAP_MUX_TERMINATOR },
}; };
#else
#define board_mux NULL
#endif #endif
/* /*
......
...@@ -23,6 +23,7 @@ ...@@ -23,6 +23,7 @@
#include <linux/gpio_keys.h> #include <linux/gpio_keys.h>
#include <linux/regulator/machine.h> #include <linux/regulator/machine.h>
#include <linux/leds.h> #include <linux/leds.h>
#include <linux/leds_pwm.h>
#include <mach/hardware.h> #include <mach/hardware.h>
#include <mach/omap4-common.h> #include <mach/omap4-common.h>
...@@ -35,6 +36,7 @@ ...@@ -35,6 +36,7 @@
#include <plat/usb.h> #include <plat/usb.h>
#include <plat/mmc.h> #include <plat/mmc.h>
#include "mux.h"
#include "hsmmc.h" #include "hsmmc.h"
#include "timer-gp.h" #include "timer-gp.h"
#include "control.h" #include "control.h"
...@@ -96,6 +98,28 @@ static struct gpio_led_platform_data sdp4430_led_data = { ...@@ -96,6 +98,28 @@ static struct gpio_led_platform_data sdp4430_led_data = {
.num_leds = ARRAY_SIZE(sdp4430_gpio_leds), .num_leds = ARRAY_SIZE(sdp4430_gpio_leds),
}; };
static struct led_pwm sdp4430_pwm_leds[] = {
{
.name = "omap4:green:chrg",
.pwm_id = 1,
.max_brightness = 255,
.pwm_period_ns = 7812500,
},
};
static struct led_pwm_platform_data sdp4430_pwm_data = {
.num_leds = ARRAY_SIZE(sdp4430_pwm_leds),
.leds = sdp4430_pwm_leds,
};
static struct platform_device sdp4430_leds_pwm = {
.name = "leds_pwm",
.id = -1,
.dev = {
.platform_data = &sdp4430_pwm_data,
},
};
static int omap_prox_activate(struct device *dev) static int omap_prox_activate(struct device *dev)
{ {
gpio_set_value(OMAP4_SFH7741_ENABLE_GPIO , 1); gpio_set_value(OMAP4_SFH7741_ENABLE_GPIO , 1);
...@@ -203,6 +227,7 @@ static struct platform_device *sdp4430_devices[] __initdata = { ...@@ -203,6 +227,7 @@ static struct platform_device *sdp4430_devices[] __initdata = {
&sdp4430_lcd_device, &sdp4430_lcd_device,
&sdp4430_gpio_keys_device, &sdp4430_gpio_keys_device,
&sdp4430_leds_gpio, &sdp4430_leds_gpio,
&sdp4430_leds_pwm,
}; };
static struct omap_lcd_config sdp4430_lcd_config __initdata = { static struct omap_lcd_config sdp4430_lcd_config __initdata = {
...@@ -217,12 +242,12 @@ static void __init omap_4430sdp_init_irq(void) ...@@ -217,12 +242,12 @@ static void __init omap_4430sdp_init_irq(void)
{ {
omap_board_config = sdp4430_config; omap_board_config = sdp4430_config;
omap_board_config_size = ARRAY_SIZE(sdp4430_config); omap_board_config_size = ARRAY_SIZE(sdp4430_config);
omap2_init_common_hw(NULL, NULL); omap2_init_common_infrastructure();
omap2_init_common_devices(NULL, NULL);
#ifdef CONFIG_OMAP_32K_TIMER #ifdef CONFIG_OMAP_32K_TIMER
omap2_gp_clockevent_set_gptimer(1); omap2_gp_clockevent_set_gptimer(1);
#endif #endif
gic_init_irq(); gic_init_irq();
omap_gpio_init();
} }
static struct omap_musb_board_data musb_board_data = { static struct omap_musb_board_data musb_board_data = {
...@@ -464,6 +489,9 @@ static struct i2c_board_info __initdata sdp4430_i2c_3_boardinfo[] = { ...@@ -464,6 +489,9 @@ static struct i2c_board_info __initdata sdp4430_i2c_3_boardinfo[] = {
{ {
I2C_BOARD_INFO("tmp105", 0x48), I2C_BOARD_INFO("tmp105", 0x48),
}, },
{
I2C_BOARD_INFO("bh1780", 0x29),
},
}; };
static struct i2c_board_info __initdata sdp4430_i2c_4_boardinfo[] = { static struct i2c_board_info __initdata sdp4430_i2c_4_boardinfo[] = {
{ {
...@@ -505,9 +533,22 @@ static void __init omap_sfh7741prox_init(void) ...@@ -505,9 +533,22 @@ static void __init omap_sfh7741prox_init(void)
} }
} }
#ifdef CONFIG_OMAP_MUX
static struct omap_board_mux board_mux[] __initdata = {
{ .reg_offset = OMAP_MUX_TERMINATOR },
};
#else
#define board_mux NULL
#endif
static void __init omap_4430sdp_init(void) static void __init omap_4430sdp_init(void)
{ {
int status; int status;
int package = OMAP_PACKAGE_CBS;
if (omap_rev() == OMAP4430_REV_ES1_0)
package = OMAP_PACKAGE_CBL;
omap4_mux_init(board_mux, package);
omap4_i2c_init(); omap4_i2c_init();
omap_sfh7741prox_init(); omap_sfh7741prox_init();
......
/*
* Support for AM3517/05 Craneboard
* http://www.mistralsolutions.com/products/craneboard.php
*
* Copyright (C) 2010 Mistral Solutions Pvt Ltd. <www.mistralsolutions.com>
* Author: R.Srinath <srinath@mistralsolutions.com>
*
* Based on mach-omap2/board-am3517evm.c
*
* 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 version 2.
*
* This program is distributed "as is" WITHOUT ANY WARRANTY of any kind,
* whether express or implied; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*/
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/gpio.h>
#include <mach/hardware.h>
#include <asm/mach-types.h>
#include <asm/mach/arch.h>
#include <asm/mach/map.h>
#include <plat/board.h>
#include <plat/common.h>
#include <plat/usb.h>
#include "mux.h"
#include "control.h"
#define GPIO_USB_POWER 35
#define GPIO_USB_NRESET 38
/* Board initialization */
static struct omap_board_config_kernel am3517_crane_config[] __initdata = {
};
#ifdef CONFIG_OMAP_MUX
static struct omap_board_mux board_mux[] __initdata = {
{ .reg_offset = OMAP_MUX_TERMINATOR },
};
#else
#define board_mux NULL
#endif
static void __init am3517_crane_init_irq(void)
{
omap_board_config = am3517_crane_config;
omap_board_config_size = ARRAY_SIZE(am3517_crane_config);
omap2_init_common_infrastructure();
omap2_init_common_devices(NULL, NULL);
omap_init_irq();
}
static struct ehci_hcd_omap_platform_data ehci_pdata __initdata = {
.port_mode[0] = EHCI_HCD_OMAP_MODE_PHY,
.port_mode[1] = EHCI_HCD_OMAP_MODE_UNKNOWN,
.port_mode[2] = EHCI_HCD_OMAP_MODE_UNKNOWN,
.phy_reset = true,
.reset_gpio_port[0] = GPIO_USB_NRESET,
.reset_gpio_port[1] = -EINVAL,
.reset_gpio_port[2] = -EINVAL
};
static void __init am3517_crane_init(void)
{
int ret;
omap3_mux_init(board_mux, OMAP_PACKAGE_CBB);
omap_serial_init();
/* Configure GPIO for EHCI port */
if (omap_mux_init_gpio(GPIO_USB_NRESET, OMAP_PIN_OUTPUT)) {
pr_err("Can not configure mux for GPIO_USB_NRESET %d\n",
GPIO_USB_NRESET);
return;
}
if (omap_mux_init_gpio(GPIO_USB_POWER, OMAP_PIN_OUTPUT)) {
pr_err("Can not configure mux for GPIO_USB_POWER %d\n",
GPIO_USB_POWER);
return;
}
ret = gpio_request(GPIO_USB_POWER, "usb_ehci_enable");
if (ret < 0) {
pr_err("Can not request GPIO %d\n", GPIO_USB_POWER);
return;
}
ret = gpio_direction_output(GPIO_USB_POWER, 1);
if (ret < 0) {
gpio_free(GPIO_USB_POWER);
pr_err("Unable to initialize EHCI power\n");
return;
}
usb_ehci_init(&ehci_pdata);
}
MACHINE_START(CRANEBOARD, "AM3517/05 CRANEBOARD")
.boot_params = 0x80000100,
.map_io = omap3_map_io,
.reserve = omap_reserve,
.init_irq = am3517_crane_init_irq,
.init_machine = am3517_crane_init,
.timer = &omap_timer,
MACHINE_END
...@@ -389,10 +389,9 @@ static void __init am3517_evm_init_irq(void) ...@@ -389,10 +389,9 @@ static void __init am3517_evm_init_irq(void)
{ {
omap_board_config = am3517_evm_config; omap_board_config = am3517_evm_config;
omap_board_config_size = ARRAY_SIZE(am3517_evm_config); omap_board_config_size = ARRAY_SIZE(am3517_evm_config);
omap2_init_common_infrastructure();
omap2_init_common_hw(NULL, NULL); omap2_init_common_devices(NULL, NULL);
omap_init_irq(); omap_init_irq();
omap_gpio_init();
} }
static struct omap_musb_board_data musb_board_data = { static struct omap_musb_board_data musb_board_data = {
...@@ -442,8 +441,6 @@ static struct omap_board_mux board_mux[] __initdata = { ...@@ -442,8 +441,6 @@ static struct omap_board_mux board_mux[] __initdata = {
OMAP3_MUX(SAD2D_MCAD23, OMAP_MUX_MODE0 | OMAP_PIN_INPUT_PULLDOWN), OMAP3_MUX(SAD2D_MCAD23, OMAP_MUX_MODE0 | OMAP_PIN_INPUT_PULLDOWN),
{ .reg_offset = OMAP_MUX_TERMINATOR }, { .reg_offset = OMAP_MUX_TERMINATOR },
}; };
#else
#define board_mux NULL
#endif #endif
......
...@@ -270,7 +270,7 @@ static struct omap_lcd_config apollon_lcd_config __initdata = { ...@@ -270,7 +270,7 @@ static struct omap_lcd_config apollon_lcd_config __initdata = {
.ctrl_name = "internal", .ctrl_name = "internal",
}; };
static struct omap_board_config_kernel apollon_config[] = { static struct omap_board_config_kernel apollon_config[] __initdata = {
{ OMAP_TAG_LCD, &apollon_lcd_config }, { OMAP_TAG_LCD, &apollon_lcd_config },
}; };
...@@ -278,10 +278,9 @@ static void __init omap_apollon_init_irq(void) ...@@ -278,10 +278,9 @@ static void __init omap_apollon_init_irq(void)
{ {
omap_board_config = apollon_config; omap_board_config = apollon_config;
omap_board_config_size = ARRAY_SIZE(apollon_config); omap_board_config_size = ARRAY_SIZE(apollon_config);
omap2_init_common_hw(NULL, NULL); omap2_init_common_infrastructure();
omap2_init_common_devices(NULL, NULL);
omap_init_irq(); omap_init_irq();
omap_gpio_init();
apollon_init_smc91x();
} }
static void __init apollon_led_init(void) static void __init apollon_led_init(void)
...@@ -314,8 +313,6 @@ static void __init apollon_usb_init(void) ...@@ -314,8 +313,6 @@ static void __init apollon_usb_init(void)
static struct omap_board_mux board_mux[] __initdata = { static struct omap_board_mux board_mux[] __initdata = {
{ .reg_offset = OMAP_MUX_TERMINATOR }, { .reg_offset = OMAP_MUX_TERMINATOR },
}; };
#else
#define board_mux NULL
#endif #endif
static void __init omap_apollon_init(void) static void __init omap_apollon_init(void)
...@@ -324,6 +321,7 @@ static void __init omap_apollon_init(void) ...@@ -324,6 +321,7 @@ static void __init omap_apollon_init(void)
omap2420_mux_init(board_mux, OMAP_PACKAGE_ZAC); omap2420_mux_init(board_mux, OMAP_PACKAGE_ZAC);
apollon_init_smc91x();
apollon_led_init(); apollon_led_init();
apollon_flash_init(); apollon_flash_init();
apollon_usb_init(); apollon_usb_init();
......
...@@ -600,8 +600,8 @@ static struct ehci_hcd_omap_platform_data ehci_pdata __initdata = { ...@@ -600,8 +600,8 @@ static struct ehci_hcd_omap_platform_data ehci_pdata __initdata = {
.port_mode[2] = EHCI_HCD_OMAP_MODE_UNKNOWN, .port_mode[2] = EHCI_HCD_OMAP_MODE_UNKNOWN,
.phy_reset = true, .phy_reset = true,
.reset_gpio_port[0] = -EINVAL, .reset_gpio_port[0] = OMAP_MAX_GPIO_LINES + 6,
.reset_gpio_port[1] = -EINVAL, .reset_gpio_port[1] = OMAP_MAX_GPIO_LINES + 7,
.reset_gpio_port[2] = -EINVAL .reset_gpio_port[2] = -EINVAL
}; };
...@@ -630,12 +630,6 @@ static int cm_t35_twl_gpio_setup(struct device *dev, unsigned gpio, ...@@ -630,12 +630,6 @@ static int cm_t35_twl_gpio_setup(struct device *dev, unsigned gpio,
cm_t35_vmmc1_supply.dev = mmc[0].dev; cm_t35_vmmc1_supply.dev = mmc[0].dev;
cm_t35_vsim_supply.dev = mmc[0].dev; cm_t35_vsim_supply.dev = mmc[0].dev;
/* setup USB with proper PHY reset GPIOs */
ehci_pdata.reset_gpio_port[0] = gpio + 6;
ehci_pdata.reset_gpio_port[1] = gpio + 7;
usb_ehci_init(&ehci_pdata);
return 0; return 0;
} }
...@@ -683,10 +677,10 @@ static void __init cm_t35_init_irq(void) ...@@ -683,10 +677,10 @@ static void __init cm_t35_init_irq(void)
omap_board_config = cm_t35_config; omap_board_config = cm_t35_config;
omap_board_config_size = ARRAY_SIZE(cm_t35_config); omap_board_config_size = ARRAY_SIZE(cm_t35_config);
omap2_init_common_hw(mt46h32m32lf6_sdrc_params, omap2_init_common_infrastructure();
omap2_init_common_devices(mt46h32m32lf6_sdrc_params,
mt46h32m32lf6_sdrc_params); mt46h32m32lf6_sdrc_params);
omap_init_irq(); omap_init_irq();
omap_gpio_init();
} }
static struct omap_board_mux board_mux[] __initdata = { static struct omap_board_mux board_mux[] __initdata = {
...@@ -805,6 +799,7 @@ static void __init cm_t35_init(void) ...@@ -805,6 +799,7 @@ static void __init cm_t35_init(void)
cm_t35_init_display(); cm_t35_init_display();
usb_musb_init(&musb_board_data); usb_musb_init(&musb_board_data);
usb_ehci_init(&ehci_pdata);
} }
MACHINE_START(CM_T35, "Compulab CM-T35") MACHINE_START(CM_T35, "Compulab CM-T35")
......
...@@ -248,9 +248,9 @@ static void __init cm_t3517_init_irq(void) ...@@ -248,9 +248,9 @@ static void __init cm_t3517_init_irq(void)
omap_board_config = cm_t3517_config; omap_board_config = cm_t3517_config;
omap_board_config_size = ARRAY_SIZE(cm_t3517_config); omap_board_config_size = ARRAY_SIZE(cm_t3517_config);
omap2_init_common_hw(NULL, NULL); omap2_init_common_infrastructure();
omap2_init_common_devices(NULL, NULL);
omap_init_irq(); omap_init_irq();
omap_gpio_init();
} }
static struct omap_board_mux board_mux[] __initdata = { static struct omap_board_mux board_mux[] __initdata = {
......
...@@ -118,27 +118,27 @@ static int devkit8000_panel_enable_lcd(struct omap_dss_device *dssdev) ...@@ -118,27 +118,27 @@ static int devkit8000_panel_enable_lcd(struct omap_dss_device *dssdev)
twl_i2c_write_u8(TWL4030_MODULE_LED, 0x0, 0x0); twl_i2c_write_u8(TWL4030_MODULE_LED, 0x0, 0x0);
if (gpio_is_valid(dssdev->reset_gpio)) if (gpio_is_valid(dssdev->reset_gpio))
gpio_set_value(dssdev->reset_gpio, 1); gpio_set_value_cansleep(dssdev->reset_gpio, 1);
return 0; return 0;
} }
static void devkit8000_panel_disable_lcd(struct omap_dss_device *dssdev) static void devkit8000_panel_disable_lcd(struct omap_dss_device *dssdev)
{ {
if (gpio_is_valid(dssdev->reset_gpio)) if (gpio_is_valid(dssdev->reset_gpio))
gpio_set_value(dssdev->reset_gpio, 0); gpio_set_value_cansleep(dssdev->reset_gpio, 0);
} }
static int devkit8000_panel_enable_dvi(struct omap_dss_device *dssdev) static int devkit8000_panel_enable_dvi(struct omap_dss_device *dssdev)
{ {
if (gpio_is_valid(dssdev->reset_gpio)) if (gpio_is_valid(dssdev->reset_gpio))
gpio_set_value(dssdev->reset_gpio, 1); gpio_set_value_cansleep(dssdev->reset_gpio, 1);
return 0; return 0;
} }
static void devkit8000_panel_disable_dvi(struct omap_dss_device *dssdev) static void devkit8000_panel_disable_dvi(struct omap_dss_device *dssdev)
{ {
if (gpio_is_valid(dssdev->reset_gpio)) if (gpio_is_valid(dssdev->reset_gpio))
gpio_set_value(dssdev->reset_gpio, 0); gpio_set_value_cansleep(dssdev->reset_gpio, 0);
} }
static struct regulator_consumer_supply devkit8000_vmmc1_supply = static struct regulator_consumer_supply devkit8000_vmmc1_supply =
...@@ -444,13 +444,13 @@ static struct platform_device keys_gpio = { ...@@ -444,13 +444,13 @@ static struct platform_device keys_gpio = {
static void __init devkit8000_init_irq(void) static void __init devkit8000_init_irq(void)
{ {
omap2_init_common_hw(mt46h32m32lf6_sdrc_params, omap2_init_common_infrastructure();
mt46h32m32lf6_sdrc_params); omap2_init_common_devices(mt46h32m32lf6_sdrc_params,
mt46h32m32lf6_sdrc_params);
omap_init_irq(); omap_init_irq();
#ifdef CONFIG_OMAP_32K_TIMER #ifdef CONFIG_OMAP_32K_TIMER
omap2_gp_clockevent_set_gptimer(12); omap2_gp_clockevent_set_gptimer(12);
#endif #endif
omap_gpio_init();
} }
static void __init devkit8000_ads7846_init(void) static void __init devkit8000_ads7846_init(void)
......
...@@ -37,7 +37,8 @@ static void __init omap_generic_init_irq(void) ...@@ -37,7 +37,8 @@ static void __init omap_generic_init_irq(void)
{ {
omap_board_config = generic_config; omap_board_config = generic_config;
omap_board_config_size = ARRAY_SIZE(generic_config); omap_board_config_size = ARRAY_SIZE(generic_config);
omap2_init_common_hw(NULL, NULL); omap2_init_common_infrastructure();
omap2_init_common_devices(NULL, NULL);
omap_init_irq(); omap_init_irq();
} }
......
...@@ -51,38 +51,37 @@ ...@@ -51,38 +51,37 @@
static unsigned int row_gpios[6] = { 88, 89, 124, 11, 6, 96 }; static unsigned int row_gpios[6] = { 88, 89, 124, 11, 6, 96 };
static unsigned int col_gpios[7] = { 90, 91, 100, 36, 12, 97, 98 }; static unsigned int col_gpios[7] = { 90, 91, 100, 36, 12, 97, 98 };
static int h4_keymap[] = { static const unsigned int h4_keymap[] = {
KEY(0, 0, KEY_LEFT), KEY(0, 0, KEY_LEFT),
KEY(0, 1, KEY_RIGHT), KEY(1, 0, KEY_RIGHT),
KEY(0, 2, KEY_A), KEY(2, 0, KEY_A),
KEY(0, 3, KEY_B), KEY(3, 0, KEY_B),
KEY(0, 4, KEY_C), KEY(4, 0, KEY_C),
KEY(1, 0, KEY_DOWN), KEY(0, 1, KEY_DOWN),
KEY(1, 1, KEY_UP), KEY(1, 1, KEY_UP),
KEY(1, 2, KEY_E), KEY(2, 1, KEY_E),
KEY(1, 3, KEY_F), KEY(3, 1, KEY_F),
KEY(1, 4, KEY_G), KEY(4, 1, KEY_G),
KEY(2, 0, KEY_ENTER), KEY(0, 2, KEY_ENTER),
KEY(2, 1, KEY_I), KEY(1, 2, KEY_I),
KEY(2, 2, KEY_J), KEY(2, 2, KEY_J),
KEY(2, 3, KEY_K), KEY(3, 2, KEY_K),
KEY(2, 4, KEY_3), KEY(4, 2, KEY_3),
KEY(3, 0, KEY_M), KEY(0, 3, KEY_M),
KEY(3, 1, KEY_N), KEY(1, 3, KEY_N),
KEY(3, 2, KEY_O), KEY(2, 3, KEY_O),
KEY(3, 3, KEY_P), KEY(3, 3, KEY_P),
KEY(3, 4, KEY_Q), KEY(4, 3, KEY_Q),
KEY(4, 0, KEY_R), KEY(0, 4, KEY_R),
KEY(4, 1, KEY_4), KEY(1, 4, KEY_4),
KEY(4, 2, KEY_T), KEY(2, 4, KEY_T),
KEY(4, 3, KEY_U), KEY(3, 4, KEY_U),
KEY(4, 4, KEY_ENTER), KEY(4, 4, KEY_ENTER),
KEY(5, 0, KEY_V), KEY(0, 5, KEY_V),
KEY(5, 1, KEY_W), KEY(1, 5, KEY_W),
KEY(5, 2, KEY_L), KEY(2, 5, KEY_L),
KEY(5, 3, KEY_S), KEY(3, 5, KEY_S),
KEY(5, 4, KEY_ENTER), KEY(4, 5, KEY_ENTER),
0
}; };
static struct mtd_partition h4_partitions[] = { static struct mtd_partition h4_partitions[] = {
...@@ -136,12 +135,16 @@ static struct platform_device h4_flash_device = { ...@@ -136,12 +135,16 @@ static struct platform_device h4_flash_device = {
.resource = &h4_flash_resource, .resource = &h4_flash_resource,
}; };
static const struct matrix_keymap_data h4_keymap_data = {
.keymap = h4_keymap,
.keymap_size = ARRAY_SIZE(h4_keymap),
};
static struct omap_kp_platform_data h4_kp_data = { static struct omap_kp_platform_data h4_kp_data = {
.rows = 6, .rows = 6,
.cols = 7, .cols = 7,
.keymap = h4_keymap, .keymap_data = &h4_keymap_data,
.keymapsize = ARRAY_SIZE(h4_keymap), .rep = true,
.rep = 1,
.row_gpios = row_gpios, .row_gpios = row_gpios,
.col_gpios = col_gpios, .col_gpios = col_gpios,
}; };
...@@ -283,7 +286,7 @@ static struct omap_usb_config h4_usb_config __initdata = { ...@@ -283,7 +286,7 @@ static struct omap_usb_config h4_usb_config __initdata = {
.hmc_mode = 0x00, /* 0:dev|otg 1:disable 2:disable */ .hmc_mode = 0x00, /* 0:dev|otg 1:disable 2:disable */
}; };
static struct omap_board_config_kernel h4_config[] = { static struct omap_board_config_kernel h4_config[] __initdata = {
{ OMAP_TAG_LCD, &h4_lcd_config }, { OMAP_TAG_LCD, &h4_lcd_config },
}; };
...@@ -291,9 +294,9 @@ static void __init omap_h4_init_irq(void) ...@@ -291,9 +294,9 @@ static void __init omap_h4_init_irq(void)
{ {
omap_board_config = h4_config; omap_board_config = h4_config;
omap_board_config_size = ARRAY_SIZE(h4_config); omap_board_config_size = ARRAY_SIZE(h4_config);
omap2_init_common_hw(NULL, NULL); omap2_init_common_infrastructure();
omap2_init_common_devices(NULL, NULL);
omap_init_irq(); omap_init_irq();
omap_gpio_init();
h4_init_flash(); h4_init_flash();
} }
...@@ -321,8 +324,6 @@ static struct i2c_board_info __initdata h4_i2c_board_info[] = { ...@@ -321,8 +324,6 @@ static struct i2c_board_info __initdata h4_i2c_board_info[] = {
static struct omap_board_mux board_mux[] __initdata = { static struct omap_board_mux board_mux[] __initdata = {
{ .reg_offset = OMAP_MUX_TERMINATOR }, { .reg_offset = OMAP_MUX_TERMINATOR },
}; };
#else
#define board_mux NULL
#endif #endif
static void __init omap_h4_init(void) static void __init omap_h4_init(void)
......
This diff is collapsed.
...@@ -289,9 +289,10 @@ static struct twl4030_usb_data igep3_twl4030_usb_data = { ...@@ -289,9 +289,10 @@ static struct twl4030_usb_data igep3_twl4030_usb_data = {
static void __init igep3_init_irq(void) static void __init igep3_init_irq(void)
{ {
omap2_init_common_hw(m65kxxxxam_sdrc_params, m65kxxxxam_sdrc_params); omap2_init_common_infrastructure();
omap2_init_common_devices(m65kxxxxam_sdrc_params,
m65kxxxxam_sdrc_params);
omap_init_irq(); omap_init_irq();
omap_gpio_init();
} }
static struct twl4030_platform_data igep3_twl4030_pdata = { static struct twl4030_platform_data igep3_twl4030_pdata = {
...@@ -366,8 +367,6 @@ void __init igep3_wifi_bt_init(void) {} ...@@ -366,8 +367,6 @@ void __init igep3_wifi_bt_init(void) {}
static struct omap_board_mux board_mux[] __initdata = { static struct omap_board_mux board_mux[] __initdata = {
{ .reg_offset = OMAP_MUX_TERMINATOR }, { .reg_offset = OMAP_MUX_TERMINATOR },
}; };
#else
#define board_mux NULL
#endif #endif
static void __init igep3_init(void) static void __init igep3_init(void)
......
...@@ -292,10 +292,9 @@ static void __init omap_ldp_init_irq(void) ...@@ -292,10 +292,9 @@ static void __init omap_ldp_init_irq(void)
{ {
omap_board_config = ldp_config; omap_board_config = ldp_config;
omap_board_config_size = ARRAY_SIZE(ldp_config); omap_board_config_size = ARRAY_SIZE(ldp_config);
omap2_init_common_hw(NULL, NULL); omap2_init_common_infrastructure();
omap2_init_common_devices(NULL, NULL);
omap_init_irq(); omap_init_irq();
omap_gpio_init();
ldp_init_smsc911x();
} }
static struct twl4030_usb_data ldp_usb_data = { static struct twl4030_usb_data ldp_usb_data = {
...@@ -381,8 +380,6 @@ static struct platform_device *ldp_devices[] __initdata = { ...@@ -381,8 +380,6 @@ static struct platform_device *ldp_devices[] __initdata = {
static struct omap_board_mux board_mux[] __initdata = { static struct omap_board_mux board_mux[] __initdata = {
{ .reg_offset = OMAP_MUX_TERMINATOR }, { .reg_offset = OMAP_MUX_TERMINATOR },
}; };
#else
#define board_mux NULL
#endif #endif
static struct omap_musb_board_data musb_board_data = { static struct omap_musb_board_data musb_board_data = {
...@@ -426,6 +423,7 @@ static struct mtd_partition ldp_nand_partitions[] = { ...@@ -426,6 +423,7 @@ static struct mtd_partition ldp_nand_partitions[] = {
static void __init omap_ldp_init(void) static void __init omap_ldp_init(void)
{ {
omap3_mux_init(board_mux, OMAP_PACKAGE_CBB); omap3_mux_init(board_mux, OMAP_PACKAGE_CBB);
ldp_init_smsc911x();
omap_i2c_init(); omap_i2c_init();
platform_add_devices(ldp_devices, ARRAY_SIZE(ldp_devices)); platform_add_devices(ldp_devices, ARRAY_SIZE(ldp_devices));
ts_gpio = 54; ts_gpio = 54;
......
This diff is collapsed.
...@@ -484,13 +484,13 @@ static struct platform_device keys_gpio = { ...@@ -484,13 +484,13 @@ static struct platform_device keys_gpio = {
static void __init omap3_beagle_init_irq(void) static void __init omap3_beagle_init_irq(void)
{ {
omap2_init_common_hw(mt46h32m32lf6_sdrc_params, omap2_init_common_infrastructure();
mt46h32m32lf6_sdrc_params); omap2_init_common_devices(mt46h32m32lf6_sdrc_params,
mt46h32m32lf6_sdrc_params);
omap_init_irq(); omap_init_irq();
#ifdef CONFIG_OMAP_32K_TIMER #ifdef CONFIG_OMAP_32K_TIMER
omap2_gp_clockevent_set_gptimer(12); omap2_gp_clockevent_set_gptimer(12);
#endif #endif
omap_gpio_init();
} }
static struct platform_device *omap3_beagle_devices[] __initdata = { static struct platform_device *omap3_beagle_devices[] __initdata = {
...@@ -548,8 +548,6 @@ static const struct ehci_hcd_omap_platform_data ehci_pdata __initconst = { ...@@ -548,8 +548,6 @@ static const struct ehci_hcd_omap_platform_data ehci_pdata __initconst = {
static struct omap_board_mux board_mux[] __initdata = { static struct omap_board_mux board_mux[] __initdata = {
{ .reg_offset = OMAP_MUX_TERMINATOR }, { .reg_offset = OMAP_MUX_TERMINATOR },
}; };
#else
#define board_mux NULL
#endif #endif
static struct omap_musb_board_data musb_board_data = { static struct omap_musb_board_data musb_board_data = {
......
...@@ -623,9 +623,9 @@ static void __init omap3_evm_init_irq(void) ...@@ -623,9 +623,9 @@ static void __init omap3_evm_init_irq(void)
{ {
omap_board_config = omap3_evm_config; omap_board_config = omap3_evm_config;
omap_board_config_size = ARRAY_SIZE(omap3_evm_config); omap_board_config_size = ARRAY_SIZE(omap3_evm_config);
omap2_init_common_hw(mt46h32m32lf6_sdrc_params, NULL); omap2_init_common_infrastructure();
omap2_init_common_devices(mt46h32m32lf6_sdrc_params, NULL);
omap_init_irq(); omap_init_irq();
omap_gpio_init();
} }
static struct platform_device *omap3_evm_devices[] __initdata = { static struct platform_device *omap3_evm_devices[] __initdata = {
...@@ -654,8 +654,6 @@ static struct omap_board_mux board_mux[] __initdata = { ...@@ -654,8 +654,6 @@ static struct omap_board_mux board_mux[] __initdata = {
OMAP_PIN_OFF_INPUT_PULLUP | OMAP_PIN_OFF_OUTPUT_LOW), OMAP_PIN_OFF_INPUT_PULLUP | OMAP_PIN_OFF_OUTPUT_LOW),
{ .reg_offset = OMAP_MUX_TERMINATOR }, { .reg_offset = OMAP_MUX_TERMINATOR },
}; };
#else
#define board_mux NULL
#endif #endif
static struct omap_musb_board_data musb_board_data = { static struct omap_musb_board_data musb_board_data = {
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
...@@ -196,7 +196,7 @@ struct wl12xx_platform_data omap_zoom_wlan_data __initdata = { ...@@ -196,7 +196,7 @@ struct wl12xx_platform_data omap_zoom_wlan_data __initdata = {
.board_ref_clock = 1, .board_ref_clock = 1,
}; };
static struct omap2_hsmmc_info mmc[] __initdata = { static struct omap2_hsmmc_info mmc[] = {
{ {
.name = "external", .name = "external",
.mmc = 1, .mmc = 1,
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment