Merge tag 'boards' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
authorLinus Torvalds <torvalds@linux-foundation.org>
Thu, 21 Feb 2013 23:33:45 +0000 (15:33 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 21 Feb 2013 23:33:45 +0000 (15:33 -0800)
Pull ARM SoC board specific changes from Arnd Bergmann:
 "These updates are all for board specific code, including

   - defconfig updates for shmobile, davinci, bcm2835, imx, omap and
     tegra

   - SD/MMC and I2C support on bcm2835 (Raspberry PI)

   - minor updates for PXA

   - shmobile updates to GPIO usage in board files

   - More things in OMAP board files are moved over to device tree
     probing

   - Better support for audio devices on some OMAP platforms"

* tag 'boards' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (55 commits)
  ARM: imx_v4_v5_defconfig: Add VPU support
  ARM: imx: configs: enable netfilter support
  ARM: OMAP2+: Fix twl section warnings related to omap_twl4030_audio_init
  ARM: OMAP2+: omap2plus_defconfig: enable omap1 rtc
  RX-51: Register twl4030-madc device
  RX-51: Add leds lp5523 names from Maemo 5 2.6.28 kernel
  ARM: OMAP2+: AM33XX: omap2plus_defconfig: Add support for few drivers
  ARM: OMAP1: nokia770: enable CBUS/Retu
  ARM: OMAP2+: omap2plus_defconfig: enable CMA allocator
  ARM: OMAP2+: omap2plus_defconfig: enable TFP410 chip support
  ARM: OMAP3: igep0020: simplify GPIO LEDs dependencies
  ARM: OMAP2+: craneboard: support the TPS65910 PMU
  ARM: OMAP2+: craneboard: support NAND device
  ARM: OMAP3: cm-t3517: add MMC support
  ARM: OMAP2+: Remove apollon board support
  ARM: shmobile: armadillo800eva: set clock rates before timer init
  ARM: tegra: defconfig updates
  ARM: shmobile: mackerel: Use gpio_request_one()
  ARM: shmobile: kzm9g: Use gpio_request_one()
  ARM: shmobile: bonito: Use gpio_request_one()
  ...

47 files changed:
arch/arm/boot/dts/emev2-kzm9d.dts
arch/arm/boot/dts/r8a7740-armadillo800eva.dts
arch/arm/boot/dts/sh7372-mackerel.dts
arch/arm/boot/dts/sh73a0-kzm9g.dts
arch/arm/configs/armadillo800eva_defconfig
arch/arm/configs/bcm2835_defconfig
arch/arm/configs/da8xx_omapl_defconfig
arch/arm/configs/davinci_all_defconfig
arch/arm/configs/imx_v4_v5_defconfig
arch/arm/configs/imx_v6_v7_defconfig
arch/arm/configs/kota2_defconfig
arch/arm/configs/kzm9d_defconfig
arch/arm/configs/kzm9g_defconfig
arch/arm/configs/mackerel_defconfig
arch/arm/configs/omap2plus_defconfig
arch/arm/configs/tegra_defconfig
arch/arm/mach-davinci/board-da850-evm.c
arch/arm/mach-davinci/board-omapl138-hawk.c
arch/arm/mach-omap1/board-nokia770.c
arch/arm/mach-omap2/Kconfig
arch/arm/mach-omap2/Makefile
arch/arm/mach-omap2/board-3430sdp.c
arch/arm/mach-omap2/board-4430sdp.c
arch/arm/mach-omap2/board-am3517crane.c
arch/arm/mach-omap2/board-apollon.c [deleted file]
arch/arm/mach-omap2/board-cm-t35.c
arch/arm/mach-omap2/board-cm-t3517.c
arch/arm/mach-omap2/board-devkit8000.c
arch/arm/mach-omap2/board-igep0020.c
arch/arm/mach-omap2/board-omap3beagle.c
arch/arm/mach-omap2/board-omap3evm.c
arch/arm/mach-omap2/board-overo.c
arch/arm/mach-omap2/board-rx51-peripherals.c
arch/arm/mach-omap2/board-zoom-peripherals.c
arch/arm/mach-omap2/gpmc.c
arch/arm/mach-omap2/twl-common.c
arch/arm/mach-omap2/twl-common.h
arch/arm/mach-pxa/palmtreo.c
arch/arm/mach-pxa/pxa27x.c
arch/arm/mach-shmobile/board-ag5evm.c
arch/arm/mach-shmobile/board-ap4evb.c
arch/arm/mach-shmobile/board-armadillo800eva.c
arch/arm/mach-shmobile/board-bonito.c
arch/arm/mach-shmobile/board-kota2.c
arch/arm/mach-shmobile/board-kzm9g.c
arch/arm/mach-shmobile/board-mackerel.c
drivers/video/omap2/displays/panel-generic-dpi.c

index 297e3baba71c2f3a26165e2fa1d806c2bb8677fe..b9b3241f173b5c9568c3d65c91cf95ad278330ff 100644 (file)
@@ -21,6 +21,6 @@
        };
 
        chosen {
-               bootargs = "console=ttyS1,115200n81";
+               bootargs = "console=tty0 console=ttyS1,115200n81 earlyprintk=serial8250-em.1,115200n81 mem=128M@0x40000000 ignore_loglevel root=/dev/nfs ip=dhcp nfsroot=,rsize=4096,wsize=4096";
        };
 };
index a7505a95a3b7e6ba7597ae6cb8e98f76bedbeb04..93da655b2598982e9e0635ad4bedd5477d002eb5 100644 (file)
@@ -9,12 +9,16 @@
  */
 
 /dts-v1/;
-/include/ "skeleton.dtsi"
+/include/ "r8a7740.dtsi"
 
 / {
        model = "armadillo 800 eva";
        compatible = "renesas,armadillo800eva";
 
+       chosen {
+               bootargs = "console=tty0 console=ttySC1,115200 earlyprintk=sh-sci.1,115200 ignore_loglevel root=/dev/nfs ip=dhcp nfsroot=,rsize=4096,wsize=4096 rw";
+       };
+
        memory {
                device_type = "memory";
                reg = <0x40000000 0x20000000>;
index 286f0caef0137f6d1a2c6648c758c3d23f6af2c5..8acf51e0cdae8b10bdda5d875a61f4c9e543e19c 100644 (file)
@@ -9,12 +9,16 @@
  */
 
 /dts-v1/;
-/include/ "skeleton.dtsi"
+/include/ "sh7372.dtsi"
 
 / {
        model = "Mackerel (AP4 EVM 2nd)";
        compatible = "renesas,mackerel";
 
+       chosen {
+               bootargs = "console=tty0, console=ttySC0,115200 earlyprintk=sh-sci.0,115200 root=/dev/nfs nfsroot=,tcp,v3 ip=dhcp mem=240m rw";
+       };
+
        memory {
                device_type = "memory";
                reg = <0x40000000 0x10000000>;
index bcb911951978c77cf3a3c9c81ba3e4b588612e37..7c4071e7790c34f180e990db3b89293cb8665f1f 100644 (file)
@@ -9,12 +9,16 @@
  */
 
 /dts-v1/;
-/include/ "skeleton.dtsi"
+/include/ "sh73a0.dtsi"
 
 / {
        model = "KZM-A9-GT";
        compatible = "renesas,kzm9g", "renesas,sh73a0";
 
+       chosen {
+               bootargs = "console=tty0 console=ttySC4,115200 root=/dev/nfs ip=dhcp ignore_loglevel earlyprintk=sh-sci.4,115200";
+       };
+
        memory {
                device_type = "memory";
                reg = <0x41000000 0x1e800000>;
index 2e1a825772074a1a6de833b741e99f8cdcab957b..0b98100d2ae74d2f175bd3338c437105123b63b7 100644 (file)
@@ -34,12 +34,11 @@ CONFIG_AEABI=y
 CONFIG_FORCE_MAX_ZONEORDER=13
 CONFIG_ZBOOT_ROM_TEXT=0x0
 CONFIG_ZBOOT_ROM_BSS=0x0
-CONFIG_CMDLINE="console=tty0 console=ttySC1,115200 earlyprintk=sh-sci.1,115200 ignore_loglevel root=/dev/nfs ip=dhcp nfsroot=,rsize=4096,wsize=4096 rw"
-CONFIG_CMDLINE_FORCE=y
+CONFIG_ARM_APPENDED_DTB=y
 CONFIG_KEXEC=y
 CONFIG_VFP=y
 # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
-# CONFIG_SUSPEND is not set
+CONFIG_PM_RUNTIME=y
 CONFIG_NET=y
 CONFIG_PACKET=y
 CONFIG_UNIX=y
@@ -91,14 +90,11 @@ CONFIG_I2C_SH_MOBILE=y
 # CONFIG_HWMON is not set
 CONFIG_MEDIA_SUPPORT=y
 CONFIG_VIDEO_DEV=y
-# CONFIG_RC_CORE is not set
-# CONFIG_VIDEO_HELPER_CHIPS_AUTO is not set
-# CONFIG_V4L_USB_DRIVERS is not set
+CONFIG_MEDIA_CAMERA_SUPPORT=y
 CONFIG_V4L_PLATFORM_DRIVERS=y
 CONFIG_SOC_CAMERA=y
 CONFIG_SOC_CAMERA_MT9T112=y
 CONFIG_VIDEO_SH_MOBILE_CEU=y
-# CONFIG_RADIO_ADAPTERS is not set
 CONFIG_FB=y
 CONFIG_FB_SH_MOBILE_LCDC=y
 CONFIG_FB_SH_MOBILE_HDMI=y
index 74e27f0ff6ad19c70e3b98f53ff8a2f4aa10a573..af472e4ed451ffab21c7fe04e7c573f5a28224e2 100644 (file)
@@ -1,11 +1,10 @@
-CONFIG_EXPERIMENTAL=y
 # CONFIG_LOCALVERSION_AUTO is not set
 CONFIG_SYSVIPC=y
-CONFIG_BSD_PROCESS_ACCT=y
-CONFIG_BSD_PROCESS_ACCT_V3=y
 CONFIG_FHANDLE=y
 CONFIG_NO_HZ=y
 CONFIG_HIGH_RES_TIMERS=y
+CONFIG_BSD_PROCESS_ACCT=y
+CONFIG_BSD_PROCESS_ACCT_V3=y
 CONFIG_LOG_BUF_SHIFT=18
 CONFIG_CGROUP_FREEZER=y
 CONFIG_CGROUP_DEVICE=y
@@ -30,13 +29,10 @@ CONFIG_EMBEDDED=y
 CONFIG_PROFILING=y
 CONFIG_OPROFILE=y
 CONFIG_JUMP_LABEL=y
-# CONFIG_BLOCK is not set
 CONFIG_ARCH_BCM2835=y
 CONFIG_PREEMPT_VOLUNTARY=y
 CONFIG_AEABI=y
-CONFIG_COMPACTION=y
 CONFIG_KSM=y
-CONFIG_DEFAULT_MMAP_MIN_ADDR=65536
 CONFIG_CLEANCACHE=y
 CONFIG_SECCOMP=y
 CONFIG_CC_STACKPROTECTOR=y
@@ -45,6 +41,11 @@ CONFIG_CRASH_DUMP=y
 CONFIG_VFP=y
 # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
 # CONFIG_SUSPEND is not set
+CONFIG_NET=y
+CONFIG_UNIX=y
+CONFIG_INET=y
+CONFIG_NETWORK_SECMARK=y
+# CONFIG_WIRELESS is not set
 CONFIG_DEVTMPFS=y
 CONFIG_DEVTMPFS_MOUNT=y
 # CONFIG_STANDALONE is not set
@@ -53,20 +54,42 @@ CONFIG_DEVTMPFS_MOUNT=y
 # CONFIG_INPUT_MOUSE is not set
 # CONFIG_SERIO is not set
 # CONFIG_VT is not set
-# CONFIG_UNIX98_PTYS is not set
 # CONFIG_LEGACY_PTYS is not set
 # CONFIG_DEVKMEM is not set
 CONFIG_SERIAL_AMBA_PL011=y
 CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
 CONFIG_TTY_PRINTK=y
 # CONFIG_HW_RANDOM is not set
+CONFIG_I2C=y
+CONFIG_I2C_CHARDEV=y
+CONFIG_I2C_BCM2835=y
+CONFIG_GPIO_SYSFS=y
 # CONFIG_HWMON is not set
 # CONFIG_USB_SUPPORT is not set
+CONFIG_MMC=y
+CONFIG_MMC_SDHCI=y
+CONFIG_MMC_SDHCI_PLTFM=y
+CONFIG_MMC_SDHCI_BCM2835=y
 # CONFIG_IOMMU_SUPPORT is not set
-# CONFIG_FILE_LOCKING is not set
-# CONFIG_DNOTIFY is not set
-# CONFIG_INOTIFY_USER is not set
+CONFIG_EXT2_FS=y
+CONFIG_EXT2_FS_XATTR=y
+CONFIG_EXT2_FS_POSIX_ACL=y
+CONFIG_EXT3_FS=y
+CONFIG_EXT3_FS_POSIX_ACL=y
+CONFIG_EXT4_FS=y
+CONFIG_EXT4_FS_POSIX_ACL=y
+CONFIG_FANOTIFY=y
+CONFIG_MSDOS_FS=y
+CONFIG_VFAT_FS=y
+CONFIG_TMPFS=y
+CONFIG_TMPFS_POSIX_ACL=y
 # CONFIG_MISC_FILESYSTEMS is not set
+CONFIG_NFS_FS=y
+CONFIG_NFSD=y
+CONFIG_NLS_CODEPAGE_437=y
+CONFIG_NLS_ASCII=y
+CONFIG_NLS_ISO8859_1=y
+CONFIG_NLS_UTF8=y
 CONFIG_PRINTK_TIME=y
 # CONFIG_ENABLE_WARN_DEPRECATED is not set
 # CONFIG_ENABLE_MUST_CHECK is not set
index f29223954af89a6b8eb5f5a163a5be91e3b31359..6b36a5ae03c2f5804e5d0e402e109bfc7553e4db 100644 (file)
@@ -36,6 +36,7 @@ CONFIG_CPU_FREQ_GOV_PERFORMANCE=m
 CONFIG_CPU_FREQ_GOV_POWERSAVE=m
 CONFIG_CPU_FREQ_GOV_ONDEMAND=m
 CONFIG_CPU_IDLE=y
+CONFIG_PM_RUNTIME=y
 CONFIG_NET=y
 CONFIG_PACKET=y
 CONFIG_UNIX=y
@@ -45,6 +46,8 @@ CONFIG_IP_PNP_DHCP=y
 # CONFIG_INET_LRO is not set
 CONFIG_NETFILTER=y
 CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
+CONFIG_DEVTMPFS=y
+CONFIG_DEVTMPFS_MOUNT=y
 # CONFIG_FW_LOADER is not set
 CONFIG_BLK_DEV_LOOP=m
 CONFIG_BLK_DEV_RAM=y
index 4ea7c95719d2cf6b873edec54e2b8476cd2c82ec..3edc78a40b66be890bc099a15860c1d4693c62f5 100644 (file)
@@ -33,6 +33,7 @@ CONFIG_AEABI=y
 CONFIG_LEDS=y
 CONFIG_ZBOOT_ROM_TEXT=0x0
 CONFIG_ZBOOT_ROM_BSS=0x0
+CONFIG_PM_RUNTIME=y
 CONFIG_NET=y
 CONFIG_PACKET=y
 CONFIG_UNIX=y
@@ -42,6 +43,8 @@ CONFIG_IP_PNP_DHCP=y
 # CONFIG_INET_LRO is not set
 CONFIG_NETFILTER=y
 CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
+CONFIG_DEVTMPFS=y
+CONFIG_DEVTMPFS_MOUNT=y
 # CONFIG_FW_LOADER is not set
 CONFIG_MTD=m
 CONFIG_MTD_PARTITIONS=y
index ebbfb27e0e741f1ac270c217db318eaca9157ffc..02c657af4005603bcbc940000c1b97ea14f96eff 100644 (file)
@@ -61,6 +61,7 @@ CONFIG_IP_PNP_DHCP=y
 # CONFIG_INET_LRO is not set
 # CONFIG_INET_DIAG is not set
 # CONFIG_IPV6 is not set
+CONFIG_NETFILTER=y
 CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
 CONFIG_DEVTMPFS=y
 CONFIG_DEVTMPFS_MOUNT=y
@@ -127,6 +128,8 @@ CONFIG_MEDIA_CAMERA_SUPPORT=y
 CONFIG_SOC_CAMERA=y
 CONFIG_SOC_CAMERA_OV2640=y
 CONFIG_VIDEO_MX2=y
+CONFIG_V4L_MEM2MEM_DRIVERS=y
+CONFIG_VIDEO_CODA=y
 CONFIG_FB=y
 CONFIG_FB_IMX=y
 CONFIG_BACKLIGHT_LCD_SUPPORT=y
index 0a3966787563bbfb71998a39b2efaab100e3b23a..e36b01025321112439ef6b53b585ec8073b0cb73 100644 (file)
@@ -59,6 +59,7 @@ CONFIG_IP_PNP_DHCP=y
 # CONFIG_INET_XFRM_MODE_BEET is not set
 # CONFIG_INET_LRO is not set
 CONFIG_IPV6=y
+CONFIG_NETFILTER=y
 # CONFIG_WIRELESS is not set
 CONFIG_DEVTMPFS=y
 CONFIG_DEVTMPFS_MOUNT=y
index fa83db1ef0ebc15c12af059f596919eda22885db..57ad3d47de705e1c36b6cffdcfd01a8ff04185ac 100644 (file)
@@ -21,7 +21,7 @@ CONFIG_ARCH_SHMOBILE=y
 CONFIG_KEYBOARD_GPIO_POLLED=y
 CONFIG_ARCH_SH73A0=y
 CONFIG_MACH_KOTA2=y
-CONFIG_MEMORY_SIZE=0x1e0000000
+CONFIG_MEMORY_SIZE=0x1e000000
 # CONFIG_SH_TIMER_TMU is not set
 # CONFIG_SWP_EMULATE is not set
 CONFIG_CPU_BPREDICT_DISABLE=y
index 8c49df66cac3401d73d71fd41ad573259b3de036..6c37f4a98eb82b3dbabdecf9a2f60dceb5737aa4 100644 (file)
@@ -32,11 +32,9 @@ CONFIG_FORCE_MAX_ZONEORDER=13
 CONFIG_ZBOOT_ROM_TEXT=0x0
 CONFIG_ZBOOT_ROM_BSS=0x0
 CONFIG_ARM_APPENDED_DTB=y
-CONFIG_CMDLINE="console=tty0 console=ttyS1,115200n81 earlyprintk=serial8250-em.1,115200n81 mem=128M@0x40000000 ignore_loglevel root=/dev/nfs ip=dhcp nfsroot=,rsize=4096,wsize=4096"
-CONFIG_CMDLINE_FORCE=y
 CONFIG_VFP=y
 # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
-# CONFIG_SUSPEND is not set
+CONFIG_PM_RUNTIME=y
 CONFIG_NET=y
 CONFIG_PACKET=y
 CONFIG_UNIX=y
index afbae287436bfb1f4a9fd1b18da52b50f6a22394..670c3b60f936fc1d74ef866a3b33c1a8f2cc2fac 100644 (file)
@@ -39,7 +39,7 @@ CONFIG_AEABI=y
 CONFIG_HIGHMEM=y
 CONFIG_ZBOOT_ROM_TEXT=0x0
 CONFIG_ZBOOT_ROM_BSS=0x0
-CONFIG_CMDLINE="console=tty0 console=ttySC4,115200 root=/dev/nfs ip=dhcp ignore_loglevel earlyprintk=sh-sci.4,115200"
+CONFIG_ARM_APPENDED_DTB=y
 CONFIG_KEXEC=y
 CONFIG_VFP=y
 CONFIG_NEON=y
@@ -85,6 +85,8 @@ CONFIG_I2C_CHARDEV=y
 CONFIG_I2C_SH_MOBILE=y
 CONFIG_GPIO_PCF857X=y
 # CONFIG_HWMON is not set
+CONFIG_REGULATOR=y
+CONFIG_REGULATOR_DUMMY=y
 CONFIG_FB=y
 CONFIG_FB_SH_MOBILE_LCDC=y
 CONFIG_FRAMEBUFFER_CONSOLE=y
index 2098ce1555422bd415bc23b40459a55c809c6215..7594b3aff25945c1f2e25ae8bc25a673f61a2333 100644 (file)
@@ -23,8 +23,9 @@ CONFIG_AEABI=y
 CONFIG_FORCE_MAX_ZONEORDER=15
 CONFIG_ZBOOT_ROM_TEXT=0x0
 CONFIG_ZBOOT_ROM_BSS=0x0
-CONFIG_CMDLINE="console=tty0, console=ttySC0,115200 earlyprintk=sh-sci.0,115200 root=/dev/nfs nfsroot=,tcp,v3 ip=dhcp memchunk.vpu=64m memchunk.veu0=8m memchunk.spu0=2m mem=240m"
+CONFIG_ARM_APPENDED_DTB=y
 CONFIG_KEXEC=y
+CONFIG_VFP=y
 # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
 CONFIG_PM=y
 CONFIG_PM_RUNTIME=y
index 5be2e4be802cc2cec1009f7f8494bcbfad9718cf..b16bae2c9a600f504c442c1c9f5513179e8d710a 100644 (file)
@@ -53,6 +53,11 @@ CONFIG_IP_PNP_RARP=y
 # CONFIG_INET_LRO is not set
 # CONFIG_IPV6 is not set
 CONFIG_NETFILTER=y
+CONFIG_CAN=m
+CONFIG_CAN_RAW=m
+CONFIG_CAN_BCM=m
+CONFIG_CAN_C_CAN=m
+CONFIG_CAN_C_CAN_PLATFORM=m
 CONFIG_BT=m
 CONFIG_BT_HCIUART=m
 CONFIG_BT_HCIUART_H4=y
@@ -65,6 +70,7 @@ CONFIG_MAC80211=m
 CONFIG_MAC80211_RC_PID=y
 CONFIG_MAC80211_RC_DEFAULT_PID=y
 CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
+CONFIG_CMA=y
 CONFIG_CONNECTOR=y
 CONFIG_DEVTMPFS=y
 CONFIG_DEVTMPFS_MOUNT=y
@@ -84,6 +90,9 @@ CONFIG_MTD_UBI=y
 CONFIG_BLK_DEV_LOOP=y
 CONFIG_BLK_DEV_RAM=y
 CONFIG_BLK_DEV_RAM_SIZE=16384
+CONFIG_SENSORS_LIS3LV02D=m
+CONFIG_SENSORS_TSL2550=m
+CONFIG_SENSORS_LIS3_I2C=m
 CONFIG_SCSI=y
 CONFIG_BLK_DEV_SD=y
 CONFIG_SCSI_MULTI_LUN=y
@@ -109,6 +118,7 @@ CONFIG_USB_KC2190=y
 CONFIG_INPUT_JOYDEV=y
 CONFIG_INPUT_EVDEV=y
 CONFIG_KEYBOARD_GPIO=y
+CONFIG_KEYBOARD_MATRIX=m
 CONFIG_KEYBOARD_TWL4030=y
 CONFIG_INPUT_TOUCHSCREEN=y
 CONFIG_TOUCHSCREEN_ADS7846=y
@@ -134,14 +144,17 @@ CONFIG_GPIO_SYSFS=y
 CONFIG_GPIO_TWL4030=y
 CONFIG_W1=y
 CONFIG_POWER_SUPPLY=y
+CONFIG_SENSORS_LM75=m
 CONFIG_WATCHDOG=y
 CONFIG_OMAP_WATCHDOG=y
 CONFIG_TWL4030_WATCHDOG=y
 CONFIG_MFD_TPS65217=y
+CONFIG_MFD_TPS65910=y
 CONFIG_REGULATOR_TWL4030=y
 CONFIG_REGULATOR_TPS65023=y
 CONFIG_REGULATOR_TPS6507X=y
 CONFIG_REGULATOR_TPS65217=y
+CONFIG_REGULATOR_TPS65910=y
 CONFIG_FB=y
 CONFIG_FIRMWARE_EDID=y
 CONFIG_FB_MODE_HELPERS=y
@@ -153,6 +166,7 @@ CONFIG_OMAP2_DSS_SDI=y
 CONFIG_OMAP2_DSS_DSI=y
 CONFIG_FB_OMAP2=m
 CONFIG_PANEL_GENERIC_DPI=m
+CONFIG_PANEL_TFP410=m
 CONFIG_PANEL_SHARP_LS037V7DW01=m
 CONFIG_PANEL_NEC_NL8048HL11_01B=m
 CONFIG_PANEL_TAAL=m
@@ -200,9 +214,20 @@ CONFIG_SDIO_UART=y
 CONFIG_MMC_ARMMMCI=y
 CONFIG_MMC_OMAP=y
 CONFIG_MMC_OMAP_HS=y
+CONFIG_NEW_LEDS=y
+CONFIG_LEDS_GPIO=y
+CONFIG_LEDS_TRIGGERS=y
+CONFIG_LEDS_TRIGGER_TIMER=y
+CONFIG_LEDS_TRIGGER_ONESHOT=y
+CONFIG_LEDS_TRIGGER_HEARTBEAT=y
+CONFIG_LEDS_TRIGGER_BACKLIGHT=y
+CONFIG_LEDS_TRIGGER_CPU=y
+CONFIG_LEDS_TRIGGER_GPIO=y
+CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
 CONFIG_RTC_CLASS=y
 CONFIG_RTC_DRV_TWL92330=y
 CONFIG_RTC_DRV_TWL4030=y
+CONFIG_RTC_DRV_OMAP=y
 CONFIG_DMADEVICES=y
 CONFIG_DMA_OMAP=y
 CONFIG_EXT2_FS=y
index a7827fd0616fabb4f9787b91b9a1441d7592a931..aba4881d20e5155b9740893da6089f41e06a153e 100644 (file)
@@ -38,6 +38,7 @@ CONFIG_HIGHMEM=y
 CONFIG_ZBOOT_ROM_TEXT=0x0
 CONFIG_ZBOOT_ROM_BSS=0x0
 CONFIG_AUTO_ZRELADDR=y
+CONFIG_KEXEC=y
 CONFIG_CPU_FREQ=y
 CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
 CONFIG_CPU_IDLE=y
@@ -106,12 +107,14 @@ CONFIG_BRCMFMAC=m
 CONFIG_RT2X00=y
 CONFIG_RT2800USB=m
 CONFIG_INPUT_EVDEV=y
+CONFIG_KEYBOARD_TEGRA=y
 CONFIG_INPUT_MISC=y
 CONFIG_INPUT_MPU3050=y
 # CONFIG_LEGACY_PTYS is not set
 # CONFIG_DEVKMEM is not set
 CONFIG_SERIAL_8250=y
 CONFIG_SERIAL_8250_CONSOLE=y
+CONFIG_SERIAL_TEGRA=y
 CONFIG_SERIAL_OF_PLATFORM=y
 # CONFIG_HW_RANDOM is not set
 CONFIG_I2C=y
@@ -127,6 +130,8 @@ CONFIG_GPIO_TPS6586X=y
 CONFIG_GPIO_TPS65910=y
 CONFIG_POWER_SUPPLY=y
 CONFIG_BATTERY_SBS=y
+CONFIG_POWER_RESET=y
+CONFIG_POWER_RESET_GPIO=y
 CONFIG_SENSORS_LM90=y
 CONFIG_MFD_TPS6586X=y
 CONFIG_MFD_TPS65910=y
@@ -186,6 +191,7 @@ CONFIG_RTC_INTF_SYSFS=y
 CONFIG_RTC_INTF_PROC=y
 CONFIG_RTC_INTF_DEV=y
 CONFIG_RTC_DRV_MAX8907=y
+CONFIG_RTC_DRV_TPS6586X=y
 CONFIG_RTC_DRV_TPS65910=y
 CONFIG_RTC_DRV_EM3027=y
 CONFIG_RTC_DRV_TEGRA=y
index 3a76a47df39c17a9d2d6c0d5207928f39aeb03de..1f50a653eb8c0ba00a73f0f820ff890525a5dc7e 100644 (file)
@@ -349,13 +349,13 @@ static inline void da850_evm_setup_nor_nand(void)
        if (!HAS_MMC) {
                ret = davinci_cfg_reg_list(da850_evm_nand_pins);
                if (ret)
-                       pr_warning("da850_evm_init: nand mux setup failed: "
-                                       "%d\n", ret);
+                       pr_warn("%s: NAND mux setup failed: %d\n",
+                               __func__, ret);
 
                ret = davinci_cfg_reg_list(da850_evm_nor_pins);
                if (ret)
-                       pr_warning("da850_evm_init: nor mux setup failed: %d\n",
-                               ret);
+                       pr_warn("%s: NOR mux setup failed: %d\n",
+                               __func__, ret);
 
                da850_evm_init_nor();
 
@@ -477,19 +477,19 @@ static int da850_evm_ui_expander_setup(struct i2c_client *client, unsigned gpio,
 
        ret = gpio_request(sel_a, da850_evm_ui_exp[DA850_EVM_UI_EXP_SEL_A]);
        if (ret) {
-               pr_warning("Cannot open UI expander pin %d\n", sel_a);
+               pr_warn("Cannot open UI expander pin %d\n", sel_a);
                goto exp_setup_sela_fail;
        }
 
        ret = gpio_request(sel_b, da850_evm_ui_exp[DA850_EVM_UI_EXP_SEL_B]);
        if (ret) {
-               pr_warning("Cannot open UI expander pin %d\n", sel_b);
+               pr_warn("Cannot open UI expander pin %d\n", sel_b);
                goto exp_setup_selb_fail;
        }
 
        ret = gpio_request(sel_c, da850_evm_ui_exp[DA850_EVM_UI_EXP_SEL_C]);
        if (ret) {
-               pr_warning("Cannot open UI expander pin %d\n", sel_c);
+               pr_warn("Cannot open UI expander pin %d\n", sel_c);
                goto exp_setup_selc_fail;
        }
 
@@ -501,7 +501,7 @@ static int da850_evm_ui_expander_setup(struct i2c_client *client, unsigned gpio,
        da850_evm_ui_keys_init(gpio);
        ret = platform_device_register(&da850_evm_ui_keys_device);
        if (ret) {
-               pr_warning("Could not register UI GPIO expander push-buttons");
+               pr_warn("Could not register UI GPIO expander push-buttons");
                goto exp_setup_keys_fail;
        }
 
@@ -690,14 +690,14 @@ static int da850_evm_bb_expander_setup(struct i2c_client *client,
        da850_evm_bb_keys_init(gpio);
        ret = platform_device_register(&da850_evm_bb_keys_device);
        if (ret) {
-               pr_warning("Could not register baseboard GPIO expander keys");
+               pr_warn("Could not register baseboard GPIO expander keys");
                goto io_exp_setup_sw_fail;
        }
 
        da850_evm_bb_leds_init(gpio);
        ret = platform_device_register(&da850_evm_bb_leds_device);
        if (ret) {
-               pr_warning("Could not register baseboard GPIO expander LEDS");
+               pr_warn("Could not register baseboard GPIO expander LEDs");
                goto io_exp_setup_leds_fail;
        }
 
@@ -1065,21 +1065,19 @@ static int __init da850_evm_config_emac(void)
        }
 
        if (ret)
-               pr_warning("da850_evm_init: cpgmac/rmii mux setup failed: %d\n",
-                               ret);
+               pr_warn("%s: CPGMAC/RMII mux setup failed: %d\n",
+                       __func__, ret);
 
        /* configure the CFGCHIP3 register for RMII or MII */
        __raw_writel(val, cfg_chip3_base);
 
        ret = davinci_cfg_reg(DA850_GPIO2_6);
        if (ret)
-               pr_warning("da850_evm_init:GPIO(2,6) mux setup "
-                                                       "failed\n");
+               pr_warn("%s:GPIO(2,6) mux setup failed\n", __func__);
 
        ret = gpio_request(DA850_MII_MDIO_CLKEN_PIN, "mdio_clk_en");
        if (ret) {
-               pr_warning("Cannot open GPIO %d\n",
-                                       DA850_MII_MDIO_CLKEN_PIN);
+               pr_warn("Cannot open GPIO %d\n", DA850_MII_MDIO_CLKEN_PIN);
                return ret;
        }
 
@@ -1090,8 +1088,7 @@ static int __init da850_evm_config_emac(void)
 
        ret = da8xx_register_emac();
        if (ret)
-               pr_warning("da850_evm_init: emac registration failed: %d\n",
-                               ret);
+               pr_warn("%s: EMAC registration failed: %d\n", __func__, ret);
 
        return 0;
 }
@@ -1443,57 +1440,53 @@ static __init void da850_evm_init(void)
 
        ret = pmic_tps65070_init();
        if (ret)
-               pr_warning("da850_evm_init: TPS65070 PMIC init failed: %d\n",
-                               ret);
+               pr_warn("%s: TPS65070 PMIC init failed: %d\n", __func__, ret);
 
        ret = da850_register_edma(da850_edma_rsv);
        if (ret)
-               pr_warning("da850_evm_init: edma registration failed: %d\n",
-                               ret);
+               pr_warn("%s: EDMA registration failed: %d\n", __func__, ret);
 
        ret = davinci_cfg_reg_list(da850_i2c0_pins);
        if (ret)
-               pr_warning("da850_evm_init: i2c0 mux setup failed: %d\n",
-                               ret);
+               pr_warn("%s: I2C0 mux setup failed: %d\n", __func__, ret);
 
        ret = da8xx_register_i2c(0, &da850_evm_i2c_0_pdata);
        if (ret)
-               pr_warning("da850_evm_init: i2c0 registration failed: %d\n",
-                               ret);
+               pr_warn("%s: I2C0 registration failed: %d\n", __func__, ret);
 
 
        ret = da8xx_register_watchdog();
        if (ret)
-               pr_warning("da830_evm_init: watchdog registration failed: %d\n",
-                               ret);
+               pr_warn("%s: watchdog registration failed: %d\n",
+                       __func__, ret);
 
        if (HAS_MMC) {
                ret = davinci_cfg_reg_list(da850_evm_mmcsd0_pins);
                if (ret)
-                       pr_warning("da850_evm_init: mmcsd0 mux setup failed:"
-                                       " %d\n", ret);
+                       pr_warn("%s: MMCSD0 mux setup failed: %d\n",
+                               __func__, ret);
 
                ret = gpio_request(DA850_MMCSD_CD_PIN, "MMC CD\n");
                if (ret)
-                       pr_warning("da850_evm_init: can not open GPIO %d\n",
-                                       DA850_MMCSD_CD_PIN);
+                       pr_warn("%s: can not open GPIO %d\n",
+                               __func__, DA850_MMCSD_CD_PIN);
                gpio_direction_input(DA850_MMCSD_CD_PIN);
 
                ret = gpio_request(DA850_MMCSD_WP_PIN, "MMC WP\n");
                if (ret)
-                       pr_warning("da850_evm_init: can not open GPIO %d\n",
-                                       DA850_MMCSD_WP_PIN);
+                       pr_warn("%s: can not open GPIO %d\n",
+                               __func__, DA850_MMCSD_WP_PIN);
                gpio_direction_input(DA850_MMCSD_WP_PIN);
 
                ret = da8xx_register_mmcsd0(&da850_mmc_config);
                if (ret)
-                       pr_warning("da850_evm_init: mmcsd0 registration failed:"
-                                       " %d\n", ret);
+                       pr_warn("%s: MMCSD0 registration failed: %d\n",
+                               __func__, ret);
 
                ret = da850_wl12xx_init();
                if (ret)
-                       pr_warning("da850_evm_init: wl12xx initialization"
-                                  " failed: %d\n", ret);
+                       pr_warn("%s: WL12xx initialization failed: %d\n",
+                               __func__, ret);
        }
 
        davinci_serial_init(&da850_evm_uart_config);
@@ -1511,16 +1504,14 @@ static __init void da850_evm_init(void)
 
        ret = davinci_cfg_reg_list(da850_evm_mcasp_pins);
        if (ret)
-               pr_warning("da850_evm_init: mcasp mux setup failed: %d\n",
-                               ret);
+               pr_warn("%s: McASP mux setup failed: %d\n", __func__, ret);
 
        da850_evm_snd_data.sram_pool = sram_get_gen_pool();
        da8xx_register_mcasp(0, &da850_evm_snd_data);
 
        ret = davinci_cfg_reg_list(da850_lcdcntl_pins);
        if (ret)
-               pr_warning("da850_evm_init: lcdcntl mux setup failed: %d\n",
-                               ret);
+               pr_warn("%s: LCDC mux setup failed: %d\n", __func__, ret);
 
        ret = da8xx_register_uio_pruss();
        if (ret)
@@ -1530,38 +1521,33 @@ static __init void da850_evm_init(void)
        /* Handle board specific muxing for LCD here */
        ret = davinci_cfg_reg_list(da850_evm_lcdc_pins);
        if (ret)
-               pr_warning("da850_evm_init: evm specific lcd mux setup "
-                               "failed: %d\n", ret);
+               pr_warn("%s: EVM specific LCD mux setup failed: %d\n",
+                       __func__, ret);
 
        ret = da850_lcd_hw_init();
        if (ret)
-               pr_warning("da850_evm_init: lcd initialization failed: %d\n",
-                               ret);
+               pr_warn("%s: LCD initialization failed: %d\n", __func__, ret);
 
        sharp_lk043t1dg01_pdata.panel_power_ctrl = da850_panel_power_ctrl,
        ret = da8xx_register_lcdc(&sharp_lk043t1dg01_pdata);
        if (ret)
-               pr_warning("da850_evm_init: lcdc registration failed: %d\n",
-                               ret);
+               pr_warn("%s: LCDC registration failed: %d\n", __func__, ret);
 
        ret = da8xx_register_rtc();
        if (ret)
-               pr_warning("da850_evm_init: rtc setup failed: %d\n", ret);
+               pr_warn("%s: RTC setup failed: %d\n", __func__, ret);
 
        ret = da850_evm_init_cpufreq();
        if (ret)
-               pr_warning("da850_evm_init: cpufreq registration failed: %d\n",
-                               ret);
+               pr_warn("%s: cpufreq registration failed: %d\n", __func__, ret);
 
        ret = da8xx_register_cpuidle();
        if (ret)
-               pr_warning("da850_evm_init: cpuidle registration failed: %d\n",
-                               ret);
+               pr_warn("%s: cpuidle registration failed: %d\n", __func__, ret);
 
        ret = da850_register_pm(&da850_pm_device);
        if (ret)
-               pr_warning("da850_evm_init: suspend registration failed: %d\n",
-                               ret);
+               pr_warn("%s: suspend registration failed: %d\n", __func__, ret);
 
        da850_vpif_init();
 
@@ -1573,13 +1559,11 @@ static __init void da850_evm_init(void)
 
        ret = da8xx_register_spi_bus(1, ARRAY_SIZE(da850evm_spi_info));
        if (ret)
-               pr_warning("da850_evm_init: spi 1 registration failed: %d\n",
-                               ret);
+               pr_warn("%s: SPI 1 registration failed: %d\n", __func__, ret);
 
        ret = da850_register_sata(DA850EVM_SATA_REFCLKPN_RATE);
        if (ret)
-               pr_warning("da850_evm_init: sata registration failed: %d\n",
-                               ret);
+               pr_warn("%s: SATA registration failed: %d\n", __func__, ret);
 
        da850_evm_setup_mac_addr();
 }
index deb3922612b95856ba6c7155de97497b4873bd9a..5a2bd44da54d8493f5da9bbbb52ab663fb729bdc 100644 (file)
@@ -48,8 +48,7 @@ static __init void omapl138_hawk_config_emac(void)
        val &= ~BIT(8);
        ret = davinci_cfg_reg_list(omapl138_hawk_mii_pins);
        if (ret) {
-               pr_warning("%s: cpgmac/mii mux setup failed: %d\n",
-                       __func__, ret);
+               pr_warn("%s: CPGMAC/MII mux setup failed: %d\n", __func__, ret);
                return;
        }
 
@@ -61,8 +60,7 @@ static __init void omapl138_hawk_config_emac(void)
 
        ret = da8xx_register_emac();
        if (ret)
-               pr_warning("%s: emac registration failed: %d\n",
-                       __func__, ret);
+               pr_warn("%s: EMAC registration failed: %d\n", __func__, ret);
 }
 
 /*
@@ -147,15 +145,14 @@ static __init void omapl138_hawk_mmc_init(void)
 
        ret = davinci_cfg_reg_list(hawk_mmcsd0_pins);
        if (ret) {
-               pr_warning("%s: MMC/SD0 mux setup failed: %d\n",
-                       __func__, ret);
+               pr_warn("%s: MMC/SD0 mux setup failed: %d\n", __func__, ret);
                return;
        }
 
        ret = gpio_request_one(DA850_HAWK_MMCSD_CD_PIN,
                        GPIOF_DIR_IN, "MMC CD");
        if (ret < 0) {
-               pr_warning("%s: can not open GPIO %d\n",
+               pr_warn("%s: can not open GPIO %d\n",
                        __func__, DA850_HAWK_MMCSD_CD_PIN);
                return;
        }
@@ -163,15 +160,14 @@ static __init void omapl138_hawk_mmc_init(void)
        ret = gpio_request_one(DA850_HAWK_MMCSD_WP_PIN,
                        GPIOF_DIR_IN, "MMC WP");
        if (ret < 0) {
-               pr_warning("%s: can not open GPIO %d\n",
+               pr_warn("%s: can not open GPIO %d\n",
                        __func__, DA850_HAWK_MMCSD_WP_PIN);
                goto mmc_setup_wp_fail;
        }
 
        ret = da8xx_register_mmcsd0(&da850_mmc_config);
        if (ret) {
-               pr_warning("%s: MMC/SD0 registration failed: %d\n",
-                       __func__, ret);
+               pr_warn("%s: MMC/SD0 registration failed: %d\n", __func__, ret);
                goto mmc_setup_mmcsd_fail;
        }
 
@@ -250,8 +246,7 @@ static __init void omapl138_hawk_usb_init(void)
 
        ret = davinci_cfg_reg_list(da850_hawk_usb11_pins);
        if (ret) {
-               pr_warning("%s: USB 1.1 PinMux setup failed: %d\n",
-                       __func__, ret);
+               pr_warn("%s: USB 1.1 PinMux setup failed: %d\n", __func__, ret);
                return;
        }
 
@@ -280,8 +275,7 @@ static __init void omapl138_hawk_usb_init(void)
 
        ret = da8xx_register_usb11(&omapl138_hawk_usb11_pdata);
        if (ret) {
-               pr_warning("%s: USB 1.1 registration failed: %d\n",
-                       __func__, ret);
+               pr_warn("%s: USB 1.1 registration failed: %d\n", __func__, ret);
                goto usb11_setup_fail;
        }
 
@@ -307,8 +301,7 @@ static __init void omapl138_hawk_init(void)
 
        ret = da850_register_edma(da850_edma_rsv);
        if (ret)
-               pr_warning("%s: EDMA registration failed: %d\n",
-                       __func__, ret);
+               pr_warn("%s: EDMA registration failed: %d\n", __func__, ret);
 
        omapl138_hawk_mmc_init();
 
@@ -316,9 +309,8 @@ static __init void omapl138_hawk_init(void)
 
        ret = da8xx_register_watchdog();
        if (ret)
-               pr_warning("omapl138_hawk_init: "
-                       "watchdog registration failed: %d\n",
-                       ret);
+               pr_warn("%s: watchdog registration failed: %d\n",
+                       __func__, ret);
 }
 
 #ifdef CONFIG_SERIAL_8250_CONSOLE
index 4695ca71770684bb2694a507fd1358040c98d420..62a15e289c79fa3c9537214d7f2fb3dbfd36f711 100644 (file)
@@ -7,6 +7,7 @@
  * it under the terms of the GNU General Public License version 2 as
  * published by the Free Software Foundation.
  */
+#include <linux/irq.h>
 #include <linux/gpio.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
@@ -23,6 +24,8 @@
 
 #include <linux/platform_data/keypad-omap.h>
 #include <linux/platform_data/lcd-mipid.h>
+#include <linux/platform_data/gpio-omap.h>
+#include <linux/platform_data/i2c-cbus-gpio.h>
 
 #include <asm/mach-types.h>
 #include <asm/mach/arch.h>
@@ -212,6 +215,45 @@ static inline void nokia770_mmc_init(void)
 }
 #endif
 
+#if defined(CONFIG_I2C_CBUS_GPIO) || defined(CONFIG_I2C_CBUS_GPIO_MODULE)
+static struct i2c_cbus_platform_data nokia770_cbus_data = {
+       .clk_gpio = OMAP_MPUIO(9),
+       .dat_gpio = OMAP_MPUIO(10),
+       .sel_gpio = OMAP_MPUIO(11),
+};
+
+static struct platform_device nokia770_cbus_device = {
+       .name   = "i2c-cbus-gpio",
+       .id     = 2,
+       .dev    = {
+               .platform_data = &nokia770_cbus_data,
+       },
+};
+
+static struct i2c_board_info nokia770_i2c_board_info_2[] __initdata = {
+       {
+               I2C_BOARD_INFO("retu-mfd", 0x01),
+       },
+};
+
+static void __init nokia770_cbus_init(void)
+{
+       const int retu_irq_gpio = 62;
+
+       if (gpio_request_one(retu_irq_gpio, GPIOF_IN, "Retu IRQ"))
+               return;
+       irq_set_irq_type(gpio_to_irq(retu_irq_gpio), IRQ_TYPE_EDGE_RISING);
+       nokia770_i2c_board_info_2[0].irq = gpio_to_irq(retu_irq_gpio);
+       i2c_register_board_info(2, nokia770_i2c_board_info_2,
+                               ARRAY_SIZE(nokia770_i2c_board_info_2));
+       platform_device_register(&nokia770_cbus_device);
+}
+#else /* CONFIG_I2C_CBUS_GPIO */
+static void __init nokia770_cbus_init(void)
+{
+}
+#endif /* CONFIG_I2C_CBUS_GPIO */
+
 static void __init omap_nokia770_init(void)
 {
        /* On Nokia 770, the SleepX signal is masked with an
@@ -233,6 +275,7 @@ static void __init omap_nokia770_init(void)
        mipid_dev_init();
        omap1_usb_init(&nokia770_usb_config);
        nokia770_mmc_init();
+       nokia770_cbus_init();
 }
 
 MACHINE_START(NOKIA770, "Nokia 770")
index c3c033f283a9998dc0c04e25daa9f58c99d60d62..22ad24e9496b9d49a8a92a943be6043fc6583aaa 100644 (file)
@@ -188,12 +188,6 @@ config MACH_OMAP_H4
        select OMAP_DEBUG_DEVICES
        select OMAP_PACKAGE_ZAF
 
-config MACH_OMAP_APOLLON
-       bool "OMAP 2420 Apollon board"
-       depends on SOC_OMAP2420
-       default y
-       select OMAP_PACKAGE_ZAC
-
 config MACH_OMAP_2430SDP
        bool "OMAP 2430 SDP board"
        depends on SOC_OMAP2430
index 65fb6fb38caf8574f177aa3827b31d62153bea95..ff528df70119312586e3b21a5afb48a5df3a891c 100644 (file)
@@ -223,7 +223,6 @@ endif
 obj-$(CONFIG_MACH_OMAP_GENERIC)                += board-generic.o
 obj-$(CONFIG_MACH_OMAP_H4)             += board-h4.o
 obj-$(CONFIG_MACH_OMAP_2430SDP)                += board-2430sdp.o
-obj-$(CONFIG_MACH_OMAP_APOLLON)                += board-apollon.o
 obj-$(CONFIG_MACH_OMAP3_BEAGLE)                += board-omap3beagle.o
 obj-$(CONFIG_MACH_DEVKIT8000)          += board-devkit8000.o
 obj-$(CONFIG_MACH_OMAP_LDP)            += board-ldp.o
index 15a3914ab492587d07f62e8a292b7af17f843489..ce812decfacad108eecdb20174f7c030ffcf5cc5 100644 (file)
@@ -25,6 +25,7 @@
 #include <linux/gpio.h>
 #include <linux/mmc/host.h>
 #include <linux/platform_data/spi-omap2-mcspi.h>
+#include <linux/platform_data/omap-twl4030.h>
 #include <linux/usb/phy.h>
 
 #include <asm/mach-types.h>
@@ -210,6 +211,19 @@ static struct omap2_hsmmc_info mmc[] = {
        {}      /* Terminator */
 };
 
+static struct omap_tw4030_pdata omap_twl4030_audio_data = {
+       .voice_connected = true,
+       .custom_routing = true,
+
+       .has_hs         = OMAP_TWL4030_LEFT | OMAP_TWL4030_RIGHT,
+       .has_hf         = OMAP_TWL4030_LEFT | OMAP_TWL4030_RIGHT,
+
+       .has_mainmic    = true,
+       .has_submic     = true,
+       .has_hsmic      = true,
+       .has_linein     = OMAP_TWL4030_LEFT | OMAP_TWL4030_RIGHT,
+};
+
 static int sdp3430_twl_gpio_setup(struct device *dev,
                unsigned gpio, unsigned ngpio)
 {
@@ -226,6 +240,9 @@ static int sdp3430_twl_gpio_setup(struct device *dev,
        /* gpio + 15 is "sub_lcd_nRST" (output) */
        gpio_request_one(gpio + 15, GPIOF_OUT_INIT_LOW, "sub_lcd_nRST");
 
+       omap_twl4030_audio_data.jack_detect = gpio + 2;
+       omap_twl4030_audio_init("SDP3430", &omap_twl4030_audio_data);
+
        return 0;
 }
 
@@ -383,6 +400,9 @@ static int __init omap3430_i2c_init(void)
        sdp3430_twldata.vpll2->constraints.apply_uV = true;
        sdp3430_twldata.vpll2->constraints.name = "VDVI";
 
+       sdp3430_twldata.audio->codec->hs_extmute = 1;
+       sdp3430_twldata.audio->codec->hs_extmute_gpio = -EINVAL;
+
        omap3_pmic_init("twl4030", &sdp3430_twldata);
 
        /* i2c2 on camera connector (for sensor control) and optional isp1301 */
index 508e2752b7de28291a5f1fcddce8bf097575c8b5..35f3ad0cb7c708b0903f125f6b8646fc90e72c7a 100644 (file)
 #include <linux/gpio_keys.h>
 #include <linux/regulator/machine.h>
 #include <linux/regulator/fixed.h>
+#include <linux/pwm.h>
 #include <linux/leds.h>
 #include <linux/leds_pwm.h>
+#include <linux/pwm_backlight.h>
 #include <linux/irqchip/arm-gic.h>
 #include <linux/platform_data/omap4-keypad.h>
 #include <linux/usb/musb.h>
@@ -257,10 +259,20 @@ static struct gpio_led_platform_data sdp4430_led_data = {
        .num_leds       = ARRAY_SIZE(sdp4430_gpio_leds),
 };
 
+static struct pwm_lookup sdp4430_pwm_lookup[] = {
+       PWM_LOOKUP("twl-pwm", 0, "leds_pwm", "omap4::keypad"),
+       PWM_LOOKUP("twl-pwm", 1, "pwm-backlight", NULL),
+       PWM_LOOKUP("twl-pwmled", 0, "leds_pwm", "omap4:green:chrg"),
+};
+
 static struct led_pwm sdp4430_pwm_leds[] = {
+       {
+               .name           = "omap4::keypad",
+               .max_brightness = 127,
+               .pwm_period_ns  = 7812500,
+       },
        {
                .name           = "omap4:green:chrg",
-               .pwm_id         = 1,
                .max_brightness = 255,
                .pwm_period_ns  = 7812500,
        },
@@ -279,6 +291,20 @@ static struct platform_device sdp4430_leds_pwm = {
        },
 };
 
+static struct platform_pwm_backlight_data sdp4430_backlight_data = {
+       .max_brightness = 127,
+       .dft_brightness = 127,
+       .pwm_period_ns = 7812500,
+};
+
+static struct platform_device sdp4430_backlight_pwm = {
+       .name   = "pwm-backlight",
+       .id     = -1,
+       .dev    = {
+               .platform_data = &sdp4430_backlight_data,
+       },
+};
+
 static int omap_prox_activate(struct device *dev)
 {
        gpio_set_value(OMAP4_SFH7741_ENABLE_GPIO , 1);
@@ -413,6 +439,7 @@ static struct platform_device *sdp4430_devices[] __initdata = {
        &sdp4430_gpio_keys_device,
        &sdp4430_leds_gpio,
        &sdp4430_leds_pwm,
+       &sdp4430_backlight_pwm,
        &sdp4430_vbat,
        &sdp4430_dmic_codec,
        &sdp4430_abe_audio,
@@ -709,6 +736,7 @@ static void __init omap_4430sdp_init(void)
                                ARRAY_SIZE(sdp4430_spi_board_info));
        }
 
+       pwm_add_table(sdp4430_pwm_lookup, ARRAY_SIZE(sdp4430_pwm_lookup));
        status = omap4_keyboard_init(&sdp4430_keypad_data, &keypad_data);
        if (status)
                pr_err("Keypad initialization failed: %d\n", status);
index 52cc2c59731466b4438eaf4b950fb98845f72b60..7d3358b2e59369083cd02cbf31d38abb0e3bb282 100644 (file)
 #include <linux/kernel.h>
 #include <linux/init.h>
 #include <linux/gpio.h>
+#include <linux/mfd/tps65910.h>
+#include <linux/mtd/mtd.h>
+#include <linux/mtd/nand.h>
+#include <linux/mtd/partitions.h>
 
 #include <asm/mach-types.h>
 #include <asm/mach/arch.h>
 #include <asm/mach/map.h>
 
 #include "common.h"
+#include "common-board-devices.h"
+#include "board-flash.h"
 
 #include "am35xx-emac.h"
 #include "mux.h"
@@ -36,6 +42,7 @@
 
 #ifdef CONFIG_OMAP_MUX
 static struct omap_board_mux board_mux[] __initdata = {
+       OMAP3_MUX(SYS_NIRQ, OMAP_MUX_MODE0 | OMAP_PIN_INPUT_PULLUP),
        { .reg_offset = OMAP_MUX_TERMINATOR },
 };
 #endif
@@ -51,6 +58,54 @@ static struct usbhs_omap_platform_data usbhs_bdata __initdata = {
        .reset_gpio_port[2]  = -EINVAL
 };
 
+static struct mtd_partition crane_nand_partitions[] = {
+       {
+               .name           = "X-Loader",
+               .offset         = 0,
+               .size           = 4 * NAND_BLOCK_SIZE,
+               .mask_flags     = MTD_WRITEABLE,
+       },
+       {
+               .name           = "U-Boot",
+               .offset         = MTDPART_OFS_APPEND,
+               .size           = 14 * NAND_BLOCK_SIZE,
+               .mask_flags     = MTD_WRITEABLE,
+       },
+       {
+               .name           = "U-Boot Env",
+               .offset         = MTDPART_OFS_APPEND,
+               .size           = 2 * NAND_BLOCK_SIZE,
+       },
+       {
+               .name           = "Kernel",
+               .offset         = MTDPART_OFS_APPEND,
+               .size           = 40 * NAND_BLOCK_SIZE,
+       },
+       {
+               .name           = "File System",
+               .offset         = MTDPART_OFS_APPEND,
+               .size           = MTDPART_SIZ_FULL,
+       },
+};
+
+static struct tps65910_board tps65910_pdata = {
+       .irq = 7 + OMAP_INTC_START,
+       .en_ck32k_xtal = true,
+};
+
+static struct i2c_board_info __initdata tps65910_board_info[] = {
+       {
+               I2C_BOARD_INFO("tps65910", 0x2d),
+               .platform_data = &tps65910_pdata,
+       },
+};
+
+static void __init am3517_crane_i2c_init(void)
+{
+       omap_register_i2c_bus(1, 2600, tps65910_board_info,
+                       ARRAY_SIZE(tps65910_board_info));
+}
+
 static void __init am3517_crane_init(void)
 {
        int ret;
@@ -58,6 +113,10 @@ static void __init am3517_crane_init(void)
        omap3_mux_init(board_mux, OMAP_PACKAGE_CBB);
        omap_serial_init();
        omap_sdrc_init(NULL, NULL);
+       board_nand_init(crane_nand_partitions,
+                       ARRAY_SIZE(crane_nand_partitions), 0,
+                       NAND_BUSWIDTH_16, NULL);
+       am3517_crane_i2c_init();
 
        /* Configure GPIO for EHCI port */
        if (omap_mux_init_gpio(GPIO_USB_NRESET, OMAP_PIN_OUTPUT)) {
diff --git a/arch/arm/mach-omap2/board-apollon.c b/arch/arm/mach-omap2/board-apollon.c
deleted file mode 100644 (file)
index 3a6ca74..0000000
+++ /dev/null
@@ -1,342 +0,0 @@
-/*
- * linux/arch/arm/mach-omap2/board-apollon.c
- *
- * Copyright (C) 2005,2006 Samsung Electronics
- * Author: Kyungmin Park <kyungmin.park@samsung.com>
- *
- * Modified from mach-omap/omap2/board-h4.c
- *
- * Code for apollon OMAP2 board. Should work on many OMAP2 systems where
- * the bootloader passes the board-specific data to the kernel.
- * Do not put any board specific code to this file; create a new machine
- * type if you need custom low-level initializations.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-
-#include <linux/kernel.h>
-#include <linux/init.h>
-#include <linux/platform_device.h>
-#include <linux/mtd/mtd.h>
-#include <linux/mtd/partitions.h>
-#include <linux/mtd/onenand.h>
-#include <linux/delay.h>
-#include <linux/leds.h>
-#include <linux/err.h>
-#include <linux/clk.h>
-#include <linux/smc91x.h>
-#include <linux/gpio.h>
-#include <linux/platform_data/leds-omap.h>
-
-#include <asm/mach-types.h>
-#include <asm/mach/arch.h>
-#include <asm/mach/flash.h>
-
-#include "common.h"
-#include "gpmc.h"
-
-#include <video/omapdss.h>
-#include <video/omap-panel-generic-dpi.h>
-
-#include "mux.h"
-#include "control.h"
-
-/* LED & Switch macros */
-#define LED0_GPIO13            13
-#define LED1_GPIO14            14
-#define LED2_GPIO15            15
-#define SW_ENTER_GPIO16                16
-#define SW_UP_GPIO17           17
-#define SW_DOWN_GPIO58         58
-
-#define APOLLON_FLASH_CS       0
-#define APOLLON_ETH_CS         1
-#define APOLLON_ETHR_GPIO_IRQ  74
-
-static struct mtd_partition apollon_partitions[] = {
-       {
-               .name           = "X-Loader + U-Boot",
-               .offset         = 0,
-               .size           = SZ_128K,
-               .mask_flags     = MTD_WRITEABLE,
-       },
-       {
-               .name           = "params",
-               .offset         = MTDPART_OFS_APPEND,
-               .size           = SZ_128K,
-       },
-       {
-               .name           = "kernel",
-               .offset         = MTDPART_OFS_APPEND,
-               .size           = SZ_2M,
-       },
-       {
-               .name           = "rootfs",
-               .offset         = MTDPART_OFS_APPEND,
-               .size           = SZ_16M,
-       },
-       {
-               .name           = "filesystem00",
-               .offset         = MTDPART_OFS_APPEND,
-               .size           = SZ_32M,
-       },
-       {
-               .name           = "filesystem01",
-               .offset         = MTDPART_OFS_APPEND,
-               .size           = MTDPART_SIZ_FULL,
-       },
-};
-
-static struct onenand_platform_data apollon_flash_data = {
-       .parts          = apollon_partitions,
-       .nr_parts       = ARRAY_SIZE(apollon_partitions),
-};
-
-static struct resource apollon_flash_resource[] = {
-       [0] = {
-               .flags          = IORESOURCE_MEM,
-       },
-};
-
-static struct platform_device apollon_onenand_device = {
-       .name           = "onenand-flash",
-       .id             = -1,
-       .dev            = {
-               .platform_data  = &apollon_flash_data,
-       },
-       .num_resources  = ARRAY_SIZE(apollon_flash_resource),
-       .resource       = apollon_flash_resource,
-};
-
-static void __init apollon_flash_init(void)
-{
-       unsigned long base;
-
-       if (gpmc_cs_request(APOLLON_FLASH_CS, SZ_128K, &base) < 0) {
-               printk(KERN_ERR "Cannot request OneNAND GPMC CS\n");
-               return;
-       }
-       apollon_flash_resource[0].start = base;
-       apollon_flash_resource[0].end   = base + SZ_128K - 1;
-}
-
-static struct smc91x_platdata appolon_smc91x_info = {
-       .flags  = SMC91X_USE_16BIT | SMC91X_NOWAIT,
-       .leda   = RPC_LED_100_10,
-       .ledb   = RPC_LED_TX_RX,
-};
-
-static struct resource apollon_smc91x_resources[] = {
-       [0] = {
-               .flags  = IORESOURCE_MEM,
-       },
-       [1] = {
-               .flags  = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHEDGE,
-       },
-};
-
-static struct platform_device apollon_smc91x_device = {
-       .name           = "smc91x",
-       .id             = -1,
-       .dev    = {
-               .platform_data  = &appolon_smc91x_info,
-       },
-       .num_resources  = ARRAY_SIZE(apollon_smc91x_resources),
-       .resource       = apollon_smc91x_resources,
-};
-
-static struct omap_led_config apollon_led_config[] = {
-       {
-               .cdev   = {
-                       .name   = "apollon:led0",
-               },
-               .gpio   = LED0_GPIO13,
-       },
-       {
-               .cdev   = {
-                       .name   = "apollon:led1",
-               },
-               .gpio   = LED1_GPIO14,
-       },
-       {
-               .cdev   = {
-                       .name   = "apollon:led2",
-               },
-               .gpio   = LED2_GPIO15,
-       },
-};
-
-static struct omap_led_platform_data apollon_led_data = {
-       .nr_leds        = ARRAY_SIZE(apollon_led_config),
-       .leds           = apollon_led_config,
-};
-
-static struct platform_device apollon_led_device = {
-       .name           = "omap-led",
-       .id             = -1,
-       .dev            = {
-               .platform_data  = &apollon_led_data,
-       },
-};
-
-static struct platform_device *apollon_devices[] __initdata = {
-       &apollon_onenand_device,
-       &apollon_smc91x_device,
-       &apollon_led_device,
-};
-
-static inline void __init apollon_init_smc91x(void)
-{
-       unsigned long base;
-
-       unsigned int rate;
-       struct clk *gpmc_fck;
-       int eth_cs;
-       int err;
-
-       gpmc_fck = clk_get(NULL, "gpmc_fck");   /* Always on ENABLE_ON_INIT */
-       if (IS_ERR(gpmc_fck)) {
-               WARN_ON(1);
-               return;
-       }
-
-       clk_prepare_enable(gpmc_fck);
-       rate = clk_get_rate(gpmc_fck);
-
-       eth_cs = APOLLON_ETH_CS;
-
-       /* Make sure CS1 timings are correct */
-       gpmc_cs_write_reg(eth_cs, GPMC_CS_CONFIG1, 0x00011200);
-
-       if (rate >= 160000000) {
-               gpmc_cs_write_reg(eth_cs, GPMC_CS_CONFIG2, 0x001f1f01);
-               gpmc_cs_write_reg(eth_cs, GPMC_CS_CONFIG3, 0x00080803);
-               gpmc_cs_write_reg(eth_cs, GPMC_CS_CONFIG4, 0x1c0b1c0a);
-               gpmc_cs_write_reg(eth_cs, GPMC_CS_CONFIG5, 0x041f1F1F);
-               gpmc_cs_write_reg(eth_cs, GPMC_CS_CONFIG6, 0x000004C4);
-       } else if (rate >= 130000000) {
-               gpmc_cs_write_reg(eth_cs, GPMC_CS_CONFIG2, 0x001f1f00);
-               gpmc_cs_write_reg(eth_cs, GPMC_CS_CONFIG3, 0x00080802);
-               gpmc_cs_write_reg(eth_cs, GPMC_CS_CONFIG4, 0x1C091C09);
-               gpmc_cs_write_reg(eth_cs, GPMC_CS_CONFIG5, 0x041f1F1F);
-               gpmc_cs_write_reg(eth_cs, GPMC_CS_CONFIG6, 0x000004C4);
-       } else {/* rate = 100000000 */
-               gpmc_cs_write_reg(eth_cs, GPMC_CS_CONFIG2, 0x001f1f00);
-               gpmc_cs_write_reg(eth_cs, GPMC_CS_CONFIG3, 0x00080802);
-               gpmc_cs_write_reg(eth_cs, GPMC_CS_CONFIG4, 0x1C091C09);
-               gpmc_cs_write_reg(eth_cs, GPMC_CS_CONFIG5, 0x031A1F1F);
-               gpmc_cs_write_reg(eth_cs, GPMC_CS_CONFIG6, 0x000003C2);
-       }
-
-       if (gpmc_cs_request(APOLLON_ETH_CS, SZ_16M, &base) < 0) {
-               printk(KERN_ERR "Failed to request GPMC CS for smc91x\n");
-               goto out;
-       }
-       apollon_smc91x_resources[0].start = base + 0x300;
-       apollon_smc91x_resources[0].end   = base + 0x30f;
-       udelay(100);
-
-       omap_mux_init_gpio(APOLLON_ETHR_GPIO_IRQ, 0);
-       err = gpio_request_one(APOLLON_ETHR_GPIO_IRQ, GPIOF_IN, "SMC91x irq");
-       if (err) {
-               printk(KERN_ERR "Failed to request GPIO%d for smc91x IRQ\n",
-                       APOLLON_ETHR_GPIO_IRQ);
-               gpmc_cs_free(APOLLON_ETH_CS);
-       }
-out:
-       clk_disable_unprepare(gpmc_fck);
-       clk_put(gpmc_fck);
-}
-
-static struct panel_generic_dpi_data apollon_panel_data = {
-       .name                   = "apollon",
-};
-
-static struct omap_dss_device apollon_lcd_device = {
-       .name                   = "lcd",
-       .driver_name            = "generic_dpi_panel",
-       .type                   = OMAP_DISPLAY_TYPE_DPI,
-       .phy.dpi.data_lines     = 18,
-       .data                   = &apollon_panel_data,
-};
-
-static struct omap_dss_device *apollon_dss_devices[] = {
-       &apollon_lcd_device,
-};
-
-static struct omap_dss_board_info apollon_dss_data = {
-       .num_devices    = ARRAY_SIZE(apollon_dss_devices),
-       .devices        = apollon_dss_devices,
-       .default_device = &apollon_lcd_device,
-};
-
-static struct gpio apollon_gpio_leds[] __initdata = {
-       { LED0_GPIO13, GPIOF_OUT_INIT_LOW, "LED0" }, /* LED0 - AA10 */
-       { LED1_GPIO14, GPIOF_OUT_INIT_LOW, "LED1" }, /* LED1 - AA6  */
-       { LED2_GPIO15, GPIOF_OUT_INIT_LOW, "LED2" }, /* LED2 - AA4  */
-};
-
-static void __init apollon_led_init(void)
-{
-       omap_mux_init_signal("vlynq_clk.gpio_13", 0);
-       omap_mux_init_signal("vlynq_rx1.gpio_14", 0);
-       omap_mux_init_signal("vlynq_rx0.gpio_15", 0);
-
-       gpio_request_array(apollon_gpio_leds, ARRAY_SIZE(apollon_gpio_leds));
-}
-
-#ifdef CONFIG_OMAP_MUX
-static struct omap_board_mux board_mux[] __initdata = {
-       { .reg_offset = OMAP_MUX_TERMINATOR },
-};
-#endif
-
-static void __init omap_apollon_init(void)
-{
-       u32 v;
-
-       omap2420_mux_init(board_mux, OMAP_PACKAGE_ZAC);
-
-       apollon_init_smc91x();
-       apollon_led_init();
-       apollon_flash_init();
-
-       /* REVISIT: where's the correct place */
-       omap_mux_init_signal("sys_nirq", OMAP_PULL_ENA | OMAP_PULL_UP);
-
-       /* LCD PWR_EN */
-       omap_mux_init_signal("mcbsp2_dr.gpio_11", OMAP_PULL_ENA | OMAP_PULL_UP);
-
-       /* Use Internal loop-back in MMC/SDIO Module Input Clock selection */
-       v = omap_ctrl_readl(OMAP2_CONTROL_DEVCONF0);
-       v |= (1 << 24);
-       omap_ctrl_writel(v, OMAP2_CONTROL_DEVCONF0);
-
-       /*
-        * Make sure the serial ports are muxed on at this point.
-        * You have to mux them off in device drivers later on
-        * if not needed.
-        */
-       apollon_smc91x_resources[1].start = gpio_to_irq(APOLLON_ETHR_GPIO_IRQ);
-       apollon_smc91x_resources[1].end = gpio_to_irq(APOLLON_ETHR_GPIO_IRQ);
-       platform_add_devices(apollon_devices, ARRAY_SIZE(apollon_devices));
-       omap_serial_init();
-       omap_sdrc_init(NULL, NULL);
-       omap_display_init(&apollon_dss_data);
-}
-
-MACHINE_START(OMAP_APOLLON, "OMAP24xx Apollon")
-       /* Maintainer: Kyungmin Park <kyungmin.park@samsung.com> */
-       .atag_offset    = 0x100,
-       .reserve        = omap_reserve,
-       .map_io         = omap242x_map_io,
-       .init_early     = omap2420_init_early,
-       .init_irq       = omap2_init_irq,
-       .handle_irq     = omap2_intc_handle_irq,
-       .init_machine   = omap_apollon_init,
-       .init_late      = omap2420_init_late,
-       .init_time      = omap2_sync32k_timer_init,
-       .restart        = omap2xxx_restart,
-MACHINE_END
index 10054e3c3482c10e9d666a338490b8ef7c3551d0..af2bb219e2147d922c95f829e833804f421184b3 100644 (file)
@@ -723,7 +723,7 @@ static void __init cm_t3x_common_init(void)
        cm_t35_init_ethernet();
        cm_t35_init_led();
        cm_t35_init_display();
-       omap_twl4030_audio_init("cm-t3x");
+       omap_twl4030_audio_init("cm-t3x", NULL);
 
        usb_bind_phy("musb-hdrc.0.auto", 0, "twl4030_usb");
        usb_musb_init(NULL);
index 5e54f565a2946ea61f714cea05b4be226777a23c..a66da808cc4ab011d7d97f449bd33f6a51272b4c 100644 (file)
@@ -32,6 +32,7 @@
 #include <linux/mtd/mtd.h>
 #include <linux/mtd/nand.h>
 #include <linux/mtd/partitions.h>
+#include <linux/mmc/host.h>
 #include <linux/can/platform/ti_hecc.h>
 
 #include <asm/mach-types.h>
@@ -46,6 +47,7 @@
 
 #include "mux.h"
 #include "control.h"
+#include "hsmmc.h"
 #include "common-board-devices.h"
 #include "am35xx-emac.h"
 #include "gpmc-nand.h"
@@ -121,6 +123,26 @@ static void cm_t3517_init_hecc(void)
 static inline void cm_t3517_init_hecc(void) {}
 #endif
 
+#if defined(CONFIG_MMC_OMAP_HS) || defined(CONFIG_MMC_OMAP_HS_MODULE)
+static struct omap2_hsmmc_info cm_t3517_mmc[] = {
+       {
+               .mmc            = 1,
+               .caps           = MMC_CAP_4_BIT_DATA,
+               .gpio_cd        = 144,
+               .gpio_wp        = 59,
+       },
+       {
+               .mmc            = 2,
+               .caps           = MMC_CAP_4_BIT_DATA,
+               .gpio_cd        = -EINVAL,
+               .gpio_wp        = -EINVAL,
+       },
+       {}      /* Terminator */
+};
+#else
+#define cm_t3517_mmc NULL
+#endif
+
 #if defined(CONFIG_RTC_DRV_V3020) || defined(CONFIG_RTC_DRV_V3020_MODULE)
 #define RTC_IO_GPIO            (153)
 #define RTC_WR_GPIO            (154)
@@ -271,6 +293,10 @@ static struct omap_board_mux board_mux[] __initdata = {
        /* CM-T3517 USB HUB nRESET */
        OMAP3_MUX(MCBSP4_CLKX, OMAP_MUX_MODE4 | OMAP_PIN_OUTPUT),
 
+       /* CD - GPIO144 and WP - GPIO59 for MMC1 - SB-T35 */
+       OMAP3_MUX(UART2_CTS, OMAP_MUX_MODE4 | OMAP_PIN_INPUT_PULLUP),
+       OMAP3_MUX(GPMC_CLK, OMAP_MUX_MODE4 | OMAP_PIN_INPUT_PULLUP),
+
        { .reg_offset = OMAP_MUX_TERMINATOR },
 };
 #endif
@@ -286,6 +312,7 @@ static void __init cm_t3517_init(void)
        cm_t3517_init_usbh();
        cm_t3517_init_hecc();
        am35xx_emac_init(AM35XX_DEFAULT_MDIO_FREQUENCY, 1);
+       omap_hsmmc_init(cm_t3517_mmc);
 }
 
 MACHINE_START(CM_T3517, "Compulab CM-T3517")
index 4dadb0b7b808a2b56c0c20f41029bccec37978e7..53056c3b08362ea6a4c40f8a044f2b146018a1d8 100644 (file)
@@ -629,7 +629,7 @@ static void __init devkit8000_init(void)
        board_nand_init(devkit8000_nand_partitions,
                        ARRAY_SIZE(devkit8000_nand_partitions), NAND_CS,
                        NAND_BUSWIDTH_16, NULL);
-       omap_twl4030_audio_init("omap3beagle");
+       omap_twl4030_audio_init("omap3beagle", NULL);
 
        /* Ensure SDRC pins are mux'd for self-refresh */
        omap_mux_init_signal("sdrc_cke0", OMAP_PIN_OUTPUT);
index c10738a067cd9c7237a3a92e50e80923de97e166..bf92678a01d061dabd0d857dfb00d83504ce034a 100644 (file)
@@ -301,20 +301,20 @@ static struct omap2_hsmmc_info mmc[] = {
 
 static struct gpio_led igep_gpio_leds[] = {
        [0] = {
-               .name                   = "gpio-led:red:d0",
-               .default_trigger        = "default-off"
+               .name                   = "omap3:red:user0",
+               .default_state          = 0,
        },
        [1] = {
-               .name                   = "gpio-led:green:d0",
-               .default_trigger        = "default-off",
+               .name                   = "omap3:green:boot",
+               .default_state          = 1,
        },
        [2] = {
-               .name                   = "gpio-led:red:d1",
-               .default_trigger        = "default-off",
+               .name                   = "omap3:red:user1",
+               .default_state          = 0,
        },
        [3] = {
-               .name                   = "gpio-led:green:d1",
-               .default_trigger        = "heartbeat",
+               .name                   = "omap3:green:user1",
+               .default_state          = 0,
                .gpio                   = -EINVAL, /* gets replaced */
                .active_low             = 1,
        },
@@ -631,7 +631,7 @@ static void __init igep_init(void)
 
        igep_flash_init();
        igep_leds_init();
-       omap_twl4030_audio_init("igep2");
+       omap_twl4030_audio_init("igep2", NULL);
 
        /*
         * WLAN-BT combo module from MuRata which has a Marvell WLAN
index 70bc1fc808c8d1226b6510f36547b761621478d0..c3558f93d42c4a3d52f705573be61e156ff59669 100644 (file)
@@ -20,6 +20,8 @@
 #include <linux/clk.h>
 #include <linux/io.h>
 #include <linux/leds.h>
+#include <linux/pwm.h>
+#include <linux/leds_pwm.h>
 #include <linux/gpio.h>
 #include <linux/input.h>
 #include <linux/gpio_keys.h>
 
 #define        NAND_CS 0
 
+static struct pwm_lookup pwm_lookup[] = {
+       /* LEDB -> PMU_STAT */
+       PWM_LOOKUP("twl-pwmled", 1, "leds_pwm", "beagleboard::pmu_stat"),
+};
+
+static struct led_pwm pwm_leds[] = {
+       {
+               .name           = "beagleboard::pmu_stat",
+               .max_brightness = 127,
+               .pwm_period_ns  = 7812500,
+       },
+};
+
+static struct led_pwm_platform_data pwm_data = {
+       .num_leds       = ARRAY_SIZE(pwm_leds),
+       .leds           = pwm_leds,
+};
+
+static struct platform_device leds_pwm = {
+       .name   = "leds_pwm",
+       .id     = -1,
+       .dev    = {
+               .platform_data = &pwm_data,
+       },
+};
+
 /*
  * OMAP3 Beagle revision
  * Run time detection of Beagle revision is done by reading GPIO.
@@ -293,9 +321,6 @@ static int beagle_twl_gpio_setup(struct device *dev,
        gpio_request_one(gpio + TWL4030_GPIO_MAX, beagle_config.usb_pwr_level,
                        "nEN_USB_PWR");
 
-       /* TWL4030_GPIO_MAX + 1 == ledB, PMU_STAT (out, active low LED) */
-       gpio_leds[2].gpio = gpio + TWL4030_GPIO_MAX + 1;
-
        return 0;
 }
 
@@ -377,11 +402,6 @@ static struct gpio_led gpio_leds[] = {
                .default_trigger        = "mmc0",
                .gpio                   = 149,
        },
-       {
-               .name                   = "beagleboard::pmu_stat",
-               .gpio                   = -EINVAL,      /* gets replaced */
-               .active_low             = true,
-       },
 };
 
 static struct gpio_led_platform_data gpio_led_info = {
@@ -429,6 +449,7 @@ static struct platform_device *omap3_beagle_devices[] __initdata = {
        &leds_gpio,
        &keys_gpio,
        &madc_hwmon,
+       &leds_pwm,
 };
 
 static struct usbhs_omap_platform_data usbhs_bdata __initdata = {
@@ -526,7 +547,7 @@ static void __init omap3_beagle_init(void)
        board_nand_init(omap3beagle_nand_partitions,
                        ARRAY_SIZE(omap3beagle_nand_partitions), NAND_CS,
                        NAND_BUSWIDTH_16, NULL);
-       omap_twl4030_audio_init("omap3beagle");
+       omap_twl4030_audio_init("omap3beagle", NULL);
 
        /* Ensure msecure is mux'd to be able to set the RTC. */
        omap_mux_init_signal("sys_drm_msecure", OMAP_PIN_OFF_OUTPUT_HIGH);
@@ -534,6 +555,8 @@ static void __init omap3_beagle_init(void)
        /* Ensure SDRC pins are mux'd for self-refresh */
        omap_mux_init_signal("sdrc_cke0", OMAP_PIN_OUTPUT);
        omap_mux_init_signal("sdrc_cke1", OMAP_PIN_OUTPUT);
+
+       pwm_add_table(pwm_lookup, ARRAY_SIZE(pwm_lookup));
 }
 
 MACHINE_START(OMAP3_BEAGLE, "OMAP3 Beagle Board")
index 8258a78c3dfbde6207177460008e2276e3946d08..48789e0bb915059ff8b9fb26d5a2712ff095020b 100644 (file)
@@ -746,7 +746,7 @@ static void __init omap3_evm_init(void)
        omap3evm_init_smsc911x();
        omap3_evm_display_init();
        omap3_evm_wl12xx_init();
-       omap_twl4030_audio_init("omap3evm");
+       omap_twl4030_audio_init("omap3evm", NULL);
 }
 
 MACHINE_START(OMAP3EVM, "OMAP3 EVM")
index 1bcf39671c35d58b5930120b6c4d9e9f9b38951b..86bab51154eefe66ba1808f38fa85cef0ceb41e6 100644 (file)
@@ -508,7 +508,7 @@ static void __init overo_init(void)
        overo_display_init();
        overo_init_led();
        overo_init_keys();
-       omap_twl4030_audio_init("overo");
+       omap_twl4030_audio_init("overo", NULL);
 
        /* Ensure SDRC pins are mux'd for self-refresh */
        omap_mux_init_signal("sdrc_cke0", OMAP_PIN_OUTPUT);
index f3d075baebb6232f70c8c25bd4f9b2922b47655e..c26d441ca4fb4a2e8c7bef134bbaa66996a4b153 100644 (file)
@@ -162,30 +162,39 @@ static struct tsl2563_platform_data rx51_tsl2563_platform_data = {
 #if defined(CONFIG_LEDS_LP5523) || defined(CONFIG_LEDS_LP5523_MODULE)
 static struct lp5523_led_config rx51_lp5523_led_config[] = {
        {
+               .name           = "lp5523:kb1",
                .chan_nr        = 0,
                .led_current    = 50,
        }, {
+               .name           = "lp5523:kb2",
                .chan_nr        = 1,
                .led_current    = 50,
        }, {
+               .name           = "lp5523:kb3",
                .chan_nr        = 2,
                .led_current    = 50,
        }, {
+               .name           = "lp5523:kb4",
                .chan_nr        = 3,
                .led_current    = 50,
        }, {
+               .name           = "lp5523:b",
                .chan_nr        = 4,
                .led_current    = 50,
        }, {
+               .name           = "lp5523:g",
                .chan_nr        = 5,
                .led_current    = 50,
        }, {
+               .name           = "lp5523:r",
                .chan_nr        = 6,
                .led_current    = 50,
        }, {
+               .name           = "lp5523:kb5",
                .chan_nr        = 7,
                .led_current    = 50,
        }, {
+               .name           = "lp5523:kb6",
                .chan_nr        = 8,
                .led_current    = 50,
        }
@@ -1253,6 +1262,16 @@ static void __init rx51_init_lirc(void)
 }
 #endif
 
+static struct platform_device madc_hwmon = {
+       .name   = "twl4030_madc_hwmon",
+       .id     = -1,
+};
+
+static void __init rx51_init_twl4030_hwmon(void)
+{
+       platform_device_register(&madc_hwmon);
+}
+
 void __init rx51_peripherals_init(void)
 {
        rx51_i2c_init();
@@ -1272,5 +1291,6 @@ void __init rx51_peripherals_init(void)
                omap_hsmmc_init(mmc);
 
        rx51_charger_init();
+       rx51_init_twl4030_hwmon();
 }
 
index dc5498b1b3a753d9bf79a9e2b51f52df92feeb6b..cdc0c1021863cbbf79a0083549fee4c51bafd365 100644 (file)
@@ -20,6 +20,7 @@
 #include <linux/wl12xx.h>
 #include <linux/mmc/host.h>
 #include <linux/platform_data/gpio-omap.h>
+#include <linux/platform_data/omap-twl4030.h>
 #include <linux/usb/phy.h>
 
 #include <asm/mach-types.h>
 #include "common-board-devices.h"
 
 #define OMAP_ZOOM_WLAN_PMENA_GPIO      (101)
-#define ZOOM2_HEADSET_EXTMUTE_GPIO     (153)
+#define OMAP_ZOOM_TSC2004_IRQ_GPIO     (153)
 #define OMAP_ZOOM_WLAN_IRQ_GPIO                (162)
 
-#define LCD_PANEL_ENABLE_GPIO          (7 + OMAP_MAX_GPIO_LINES)
-
 /* Zoom2 has Qwerty keyboard*/
 static uint32_t board_keymap[] = {
        KEY(0, 0, KEY_E),
@@ -227,22 +226,31 @@ static struct omap2_hsmmc_info mmc[] = {
        {}      /* Terminator */
 };
 
+static struct omap_tw4030_pdata omap_twl4030_audio_data = {
+       .voice_connected = true,
+       .custom_routing = true,
+
+       .has_hs         = OMAP_TWL4030_LEFT | OMAP_TWL4030_RIGHT,
+       .has_hf         = OMAP_TWL4030_LEFT | OMAP_TWL4030_RIGHT,
+
+       .has_mainmic    = true,
+       .has_submic     = true,
+       .has_hsmic      = true,
+       .has_linein     = OMAP_TWL4030_LEFT | OMAP_TWL4030_RIGHT,
+};
+
 static int zoom_twl_gpio_setup(struct device *dev,
                unsigned gpio, unsigned ngpio)
 {
-       int ret;
-
        /* gpio + 0 is "mmc0_cd" (input/IRQ) */
        mmc[0].gpio_cd = gpio + 0;
        omap_hsmmc_late_init(mmc);
 
-       ret = gpio_request_one(LCD_PANEL_ENABLE_GPIO, GPIOF_OUT_INIT_LOW,
-                              "lcd enable");
-       if (ret)
-               pr_err("Failed to get LCD_PANEL_ENABLE_GPIO (gpio%d).\n",
-                               LCD_PANEL_ENABLE_GPIO);
+       /* Audio setup */
+       omap_twl4030_audio_data.jack_detect = gpio + 2;
+       omap_twl4030_audio_init("Zoom2", &omap_twl4030_audio_data);
 
-       return ret;
+       return 0;
 }
 
 static struct twl4030_gpio_platform_data zoom_gpio_data = {
@@ -265,14 +273,9 @@ static int __init omap_i2c_init(void)
                        TWL_COMMON_PDATA_MADC | TWL_COMMON_PDATA_AUDIO,
                        TWL_COMMON_REGULATOR_VDAC | TWL_COMMON_REGULATOR_VPLL2);
 
-       if (machine_is_omap_zoom2()) {
-               struct twl4030_codec_data *codec_data;
-               codec_data = zoom_twldata.audio->codec;
+       if (machine_is_omap_zoom2())
+               zoom_twldata.audio->codec->ramp_delay_value = 3; /* 161 ms */
 
-               codec_data->ramp_delay_value = 3;       /* 161 ms */
-               codec_data->hs_extmute = 1;
-               codec_data->hs_extmute_gpio = ZOOM2_HEADSET_EXTMUTE_GPIO;
-       }
        omap_pmic_init(1, 2400, "twl5030", 7 + OMAP_INTC_START, &zoom_twldata);
        omap_register_i2c_bus(2, 400, NULL, 0);
        omap_register_i2c_bus(3, 400, NULL, 0);
index 8d70bd03c5d8ae7808ed778f84869694893df0f2..e4b16c8efe8b05d8296f6431f253f1dd5e0e49be 100644 (file)
@@ -790,9 +790,6 @@ static int gpmc_mem_init(void)
         * even if we didn't boot from ROM.
         */
        boot_rom_space = BOOT_ROM_SPACE;
-       /* In apollon the CS0 is mapped as 0x0000 0000 */
-       if (machine_is_omap_apollon())
-               boot_rom_space = 0;
        gpmc_mem_root.start = GPMC_MEM_START + boot_rom_space;
        gpmc_mem_root.end = GPMC_MEM_END;
 
index 6a7aec6d117439164d8b859f2c04c95b2d98d436..51e138cc539840f05e6b7efd4a3f54e50094833e 100644 (file)
@@ -529,24 +529,29 @@ void __init omap4_pmic_get_config(struct twl4030_platform_data *pmic_data,
        defined(CONFIG_SND_OMAP_SOC_OMAP_TWL4030_MODULE)
 #include <linux/platform_data/omap-twl4030.h>
 
+/* Commonly used configuration */
 static struct omap_tw4030_pdata omap_twl4030_audio_data;
 
 static struct platform_device audio_device = {
        .name           = "omap-twl4030",
        .id             = -1,
-       .dev = {
-               .platform_data = &omap_twl4030_audio_data,
-       },
 };
 
-void __init omap_twl4030_audio_init(char *card_name)
+void omap_twl4030_audio_init(char *card_name,
+                                   struct omap_tw4030_pdata *pdata)
 {
-       omap_twl4030_audio_data.card_name = card_name;
+       if (!pdata)
+               pdata = &omap_twl4030_audio_data;
+
+       pdata->card_name = card_name;
+
+       audio_device.dev.platform_data = pdata;
        platform_device_register(&audio_device);
 }
 
 #else /* SOC_OMAP_TWL4030 */
-void __init omap_twl4030_audio_init(char *card_name)
+void omap_twl4030_audio_init(char *card_name,
+                                   struct omap_tw4030_pdata *pdata)
 {
        return;
 }
index dcfbad5ac471d211b72e1c39f22762de67aab6fc..24b65d081b69ffd7b6a0f21003505f4aad9df406 100644 (file)
@@ -32,6 +32,7 @@
 
 struct twl4030_platform_data;
 struct twl6040_platform_data;
+struct omap_tw4030_pdata;
 struct i2c_board_info;
 
 void omap_pmic_init(int bus, u32 clkrate, const char *pmic_type, int pmic_irq,
@@ -60,6 +61,6 @@ void omap3_pmic_get_config(struct twl4030_platform_data *pmic_data,
 void omap4_pmic_get_config(struct twl4030_platform_data *pmic_data,
                           u32 pdata_flags, u32 regulators_flags);
 
-void omap_twl4030_audio_init(char *card_name);
+void omap_twl4030_audio_init(char *card_name, struct omap_tw4030_pdata *pdata);
 
 #endif /* __OMAP_PMIC_COMMON__ */
index a29849d181c8c58c4e7c92db922d4d7bf67ac655..d82a50b4a8037c77cfbb4dd1a146a3240d6d6a89 100644 (file)
@@ -167,7 +167,7 @@ static unsigned long centro685_pin_config[] __initdata = {
 /******************************************************************************
  * GPIO keyboard
  ******************************************************************************/
-#if defined(CONFIG_KEYBOARD_PXA27x) || defined(CONFIG_KEYBOARD_PXA27x_MODULE)
+#if IS_ENABLED(CONFIG_KEYBOARD_PXA27x)
 static unsigned int treo680_matrix_keys[] = {
        KEY(0, 0, KEY_F8),              /* Red/Off/Power */
        KEY(0, 1, KEY_LEFT),
@@ -315,7 +315,7 @@ static inline void palmtreo_kpc_init(void) {}
 /******************************************************************************
  * USB host
  ******************************************************************************/
-#if defined(CONFIG_USB_OHCI_HCD) || defined(CONFIG_USB_OHCI_HCD_MODULE)
+#if IS_ENABLED(CONFIG_USB_OHCI_HCD)
 static struct pxaohci_platform_data treo680_ohci_info = {
        .port_mode    = PMM_PERPORT_MODE,
        .flags        = ENABLE_PORT1 | ENABLE_PORT3,
@@ -396,6 +396,36 @@ static void __init palmtreo_leds_init(void)
        platform_device_register(&palmtreo_leds);
 }
 
+/******************************************************************************
+ * diskonchip docg4 flash
+ ******************************************************************************/
+#if defined(CONFIG_MACH_TREO680)
+/* REVISIT: does the centro have this device also? */
+#if IS_ENABLED(CONFIG_MTD_NAND_DOCG4)
+static struct resource docg4_resources[] = {
+       {
+               .start  = 0x00000000,
+               .end    = 0x00001FFF,
+               .flags  = IORESOURCE_MEM,
+       },
+};
+
+static struct platform_device treo680_docg4_flash = {
+       .name   = "docg4",
+       .id     = -1,
+       .resource = docg4_resources,
+       .num_resources = ARRAY_SIZE(docg4_resources),
+};
+
+static void __init treo680_docg4_flash_init(void)
+{
+       platform_device_register(&treo680_docg4_flash);
+}
+#else
+static inline void treo680_docg4_flash_init(void) {}
+#endif
+#endif
+
 /******************************************************************************
  * Machine init
  ******************************************************************************/
@@ -480,6 +510,7 @@ static void __init treo680_init(void)
        treo680_gpio_init();
        palm27x_mmc_init(GPIO_NR_TREO_SD_DETECT_N, GPIO_NR_TREO680_SD_READONLY,
                        GPIO_NR_TREO680_SD_POWER, 0);
+       treo680_docg4_flash_init();
 }
 #endif
 
index 69985b06c0dae83e5864bf76691599c6499e4e73..3203a9f5b4a2e40f87fd43601e9a0f215f95352b 100644 (file)
@@ -238,6 +238,7 @@ static struct clk_lookup pxa27x_clkregs[] = {
        INIT_CLKREG(&clk_pxa27x_memc, NULL, "MEMCLK"),
        INIT_CLKREG(&clk_pxa27x_mem, "pxa2xx-pcmcia", NULL),
        INIT_CLKREG(&clk_dummy, "pxa-gpio", NULL),
+       INIT_CLKREG(&clk_dummy, "sa1100-rtc", NULL),
 };
 
 #ifdef CONFIG_PM
index 705bc63c7984fcdd0c96de9c64e3cc9d210a3817..8ff53a19c48c6a2d60bd2dda11346b04a28dd19b 100644 (file)
@@ -479,11 +479,10 @@ static void ag5evm_sdhi1_set_pwr(struct platform_device *pdev, int state)
        static int power_gpio = -EINVAL;
 
        if (power_gpio < 0) {
-               int ret = gpio_request(GPIO_PORT114, "sdhi1_power");
-               if (!ret) {
+               int ret = gpio_request_one(GPIO_PORT114, GPIOF_OUT_INIT_LOW,
+                                          "sdhi1_power");
+               if (!ret)
                        power_gpio = GPIO_PORT114;
-                       gpio_direction_output(power_gpio, 0);
-               }
        }
 
        /*
@@ -604,14 +603,11 @@ static void __init ag5evm_init(void)
        gpio_request(GPIO_FN_MMCD0_5_PU, NULL);
        gpio_request(GPIO_FN_MMCD0_6_PU, NULL);
        gpio_request(GPIO_FN_MMCD0_7_PU, NULL);
-       gpio_request(GPIO_PORT208, NULL); /* Reset */
-       gpio_direction_output(GPIO_PORT208, 1);
+       gpio_request_one(GPIO_PORT208, GPIOF_OUT_INIT_HIGH, NULL); /* Reset */
 
        /* enable SMSC911X */
-       gpio_request(GPIO_PORT144, NULL); /* PINTA2 */
-       gpio_direction_input(GPIO_PORT144);
-       gpio_request(GPIO_PORT145, NULL); /* RESET */
-       gpio_direction_output(GPIO_PORT145, 1);
+       gpio_request_one(GPIO_PORT144, GPIOF_IN, NULL); /* PINTA2 */
+       gpio_request_one(GPIO_PORT145, GPIOF_OUT_INIT_HIGH, NULL); /* RESET */
 
        /* FSI A */
        gpio_request(GPIO_FN_FSIACK, NULL);
@@ -626,15 +622,13 @@ static void __init ag5evm_init(void)
        gpio_request(GPIO_FN_PORT243_IRDA_FIRSEL, NULL);
 
        /* LCD panel */
-       gpio_request(GPIO_PORT217, NULL); /* RESET */
-       gpio_direction_output(GPIO_PORT217, 0);
+       gpio_request_one(GPIO_PORT217, GPIOF_OUT_INIT_LOW, NULL); /* RESET */
        mdelay(1);
        gpio_set_value(GPIO_PORT217, 1);
        mdelay(100);
 
        /* LCD backlight controller */
-       gpio_request(GPIO_PORT235, NULL); /* RESET */
-       gpio_direction_output(GPIO_PORT235, 0);
+       gpio_request_one(GPIO_PORT235, GPIOF_OUT_INIT_LOW, NULL); /* RESET */
        lcd_backlight_set_brightness(0);
 
        /* enable SDHI0 on CN15 [SD I/F] */
index 2928cd6868081833469cfde2d6f64fe8440ac2af..38f1259a0daf4d6b4c82a53d3f43042f0a975db2 100644 (file)
  *
  * SW41        :  ON : SH-Mobile AP4 Audio Mode
  *     : OFF : Bluetooth Audio Mode
+ *
+ * it needs amixer settings for playing
+ *
+ * amixer set "Headphone Enable" on
  */
 
 /*
@@ -1036,9 +1040,7 @@ static int ts_get_pendown_state(void)
 
        gpio_free(GPIO_TSC_IRQ);
 
-       gpio_request(GPIO_TSC_PORT, NULL);
-
-       gpio_direction_input(GPIO_TSC_PORT);
+       gpio_request_one(GPIO_TSC_PORT, GPIOF_IN, NULL);
 
        val = gpio_get_value(GPIO_TSC_PORT);
 
@@ -1119,18 +1121,10 @@ static void __init ap4evb_init(void)
        gpio_request(GPIO_FN_IRQ6_39,   NULL);
 
        /* enable Debug switch (S6) */
-       gpio_request(GPIO_PORT32, NULL);
-       gpio_request(GPIO_PORT33, NULL);
-       gpio_request(GPIO_PORT34, NULL);
-       gpio_request(GPIO_PORT35, NULL);
-       gpio_direction_input(GPIO_PORT32);
-       gpio_direction_input(GPIO_PORT33);
-       gpio_direction_input(GPIO_PORT34);
-       gpio_direction_input(GPIO_PORT35);
-       gpio_export(GPIO_PORT32, 0);
-       gpio_export(GPIO_PORT33, 0);
-       gpio_export(GPIO_PORT34, 0);
-       gpio_export(GPIO_PORT35, 0);
+       gpio_request_one(GPIO_PORT32, GPIOF_IN | GPIOF_EXPORT, NULL);
+       gpio_request_one(GPIO_PORT33, GPIOF_IN | GPIOF_EXPORT, NULL);
+       gpio_request_one(GPIO_PORT34, GPIOF_IN | GPIOF_EXPORT, NULL);
+       gpio_request_one(GPIO_PORT35, GPIOF_IN | GPIOF_EXPORT, NULL);
 
        /* SDHI0 */
        gpio_request(GPIO_FN_SDHICD0, NULL);
@@ -1178,8 +1172,7 @@ static void __init ap4evb_init(void)
        gpio_request(GPIO_FN_FSIAILR,   NULL);
        gpio_request(GPIO_FN_FSIAISLD,  NULL);
        gpio_request(GPIO_FN_FSIAOSLD,  NULL);
-       gpio_request(GPIO_PORT161,      NULL);
-       gpio_direction_output(GPIO_PORT161, 0); /* slave */
+       gpio_request_one(GPIO_PORT161, GPIOF_OUT_INIT_LOW, NULL); /* slave */
 
        gpio_request(GPIO_PORT9, NULL);
        gpio_request(GPIO_PORT10, NULL);
@@ -1187,8 +1180,7 @@ static void __init ap4evb_init(void)
        gpio_direction_none(GPIO_PORT10CR); /* FSIAOLR needs no direction */
 
        /* card detect pin for MMC slot (CN7) */
-       gpio_request(GPIO_PORT41, NULL);
-       gpio_direction_input(GPIO_PORT41);
+       gpio_request_one(GPIO_PORT41, GPIOF_IN, NULL);
 
        /* setup FSI2 port B (HDMI) */
        gpio_request(GPIO_FN_FSIBCK, NULL);
@@ -1276,11 +1268,8 @@ static void __init ap4evb_init(void)
        gpio_request(GPIO_FN_LCDDISP,  NULL);
        gpio_request(GPIO_FN_LCDDCK,   NULL);
 
-       gpio_request(GPIO_PORT189, NULL); /* backlight */
-       gpio_direction_output(GPIO_PORT189, 1);
-
-       gpio_request(GPIO_PORT151, NULL); /* LCDDON */
-       gpio_direction_output(GPIO_PORT151, 1);
+       gpio_request_one(GPIO_PORT189, GPIOF_OUT_INIT_HIGH, NULL); /* backlight */
+       gpio_request_one(GPIO_PORT151, GPIOF_OUT_INIT_HIGH, NULL); /* LCDDON */
 
        lcdc_info.clock_source                  = LCDC_CLK_BUS;
        lcdc_info.ch[0].interface_type          = RGB18;
index 81d91fda2d90e010afe05584022776f8ae2d64a2..f2ec0777cfbe89ca5c998dfe1b6d581b5d5320bf 100644 (file)
  * this command is required when playback.
  *
  * # amixer set "Headphone" 50
+ *
+ * this command is required when capture.
+ *
+ * # amixer set "Input PGA" 15
+ * # amixer set "Left Input Mixer MicP" on
+ * # amixer set "Left Input Mixer MicN" on
+ * # amixer set "Right Input Mixer MicN" on
+ * # amixer set "Right Input Mixer MicP" on
  */
 
 /*
@@ -700,9 +708,9 @@ static int mt9t111_power(struct device *dev, int mode)
                /* video1 (= CON1 camera) expect 24MHz */
                clk_set_rate(mclk, clk_round_rate(mclk, 24000000));
                clk_enable(mclk);
-               gpio_direction_output(GPIO_PORT158, 1);
+               gpio_set_value(GPIO_PORT158, 1);
        } else {
-               gpio_direction_output(GPIO_PORT158, 0);
+               gpio_set_value(GPIO_PORT158, 0);
                clk_disable(mclk);
        }
 
@@ -992,16 +1000,12 @@ static void __init eva_init(void)
        gpio_request(GPIO_FN_LCD0_DISP,         NULL);
        gpio_request(GPIO_FN_LCD0_LCLK_PORT165, NULL);
 
-       gpio_request(GPIO_PORT61, NULL); /* LCDDON */
-       gpio_direction_output(GPIO_PORT61, 1);
-
-       gpio_request(GPIO_PORT202, NULL); /* LCD0_LED_CONT */
-       gpio_direction_output(GPIO_PORT202, 0);
+       gpio_request_one(GPIO_PORT61, GPIOF_OUT_INIT_HIGH, NULL); /* LCDDON */
+       gpio_request_one(GPIO_PORT202, GPIOF_OUT_INIT_LOW, NULL); /* LCD0_LED_CONT */
 
        /* Touchscreen */
        gpio_request(GPIO_FN_IRQ10,     NULL); /* TP_INT */
-       gpio_request(GPIO_PORT166,      NULL); /* TP_RST_B */
-       gpio_direction_output(GPIO_PORT166, 1);
+       gpio_request_one(GPIO_PORT166, GPIOF_OUT_INIT_HIGH, NULL); /* TP_RST_B */
 
        /* GETHER */
        gpio_request(GPIO_FN_ET_CRS,            NULL);
@@ -1024,12 +1028,10 @@ static void __init eva_init(void)
        gpio_request(GPIO_FN_ET_RX_DV,          NULL);
        gpio_request(GPIO_FN_ET_RX_CLK,         NULL);
 
-       gpio_request(GPIO_PORT18, NULL); /* PHY_RST */
-       gpio_direction_output(GPIO_PORT18, 1);
+       gpio_request_one(GPIO_PORT18, GPIOF_OUT_INIT_HIGH, NULL); /* PHY_RST */
 
        /* USB */
-       gpio_request(GPIO_PORT159, NULL); /* USB_DEVICE_MODE */
-       gpio_direction_input(GPIO_PORT159);
+       gpio_request_one(GPIO_PORT159, GPIOF_IN, NULL); /* USB_DEVICE_MODE */
 
        if (gpio_get_value(GPIO_PORT159)) {
                /* USB Host */
@@ -1043,8 +1045,7 @@ static void __init eva_init(void)
                 * and select GPIO_PORT209 here
                 */
                gpio_request(GPIO_FN_IRQ7_PORT209, NULL);
-               gpio_request(GPIO_PORT209, NULL);
-               gpio_direction_input(GPIO_PORT209);
+               gpio_request_one(GPIO_PORT209, GPIOF_IN, NULL);
 
                platform_device_register(&usbhsf_device);
                usb = &usbhsf_device;
@@ -1059,12 +1060,9 @@ static void __init eva_init(void)
        gpio_request(GPIO_FN_SDHI0_D3, NULL);
        gpio_request(GPIO_FN_SDHI0_WP, NULL);
 
-       gpio_request(GPIO_PORT17, NULL);        /* SDHI0_18/33_B */
-       gpio_request(GPIO_PORT74, NULL);        /* SDHI0_PON */
-       gpio_request(GPIO_PORT75, NULL);        /* SDSLOT1_PON */
-       gpio_direction_output(GPIO_PORT17, 0);
-       gpio_direction_output(GPIO_PORT74, 1);
-       gpio_direction_output(GPIO_PORT75, 1);
+       gpio_request_one(GPIO_PORT17, GPIOF_OUT_INIT_LOW, NULL);  /* SDHI0_18/33_B */
+       gpio_request_one(GPIO_PORT74, GPIOF_OUT_INIT_HIGH, NULL); /* SDHI0_PON */
+       gpio_request_one(GPIO_PORT75, GPIOF_OUT_INIT_HIGH, NULL); /* SDSLOT1_PON */
 
        /* we can use GPIO_FN_IRQ31_PORT167 here for SDHI0 CD irq */
 
@@ -1101,12 +1099,10 @@ static void __init eva_init(void)
        gpio_request(GPIO_FN_VIO_CKO,           NULL);
 
        /* CON1/CON15 Camera */
-       gpio_request(GPIO_PORT173, NULL); /* STANDBY */
-       gpio_request(GPIO_PORT172, NULL); /* RST */
-       gpio_request(GPIO_PORT158, NULL); /* CAM_PON */
-       gpio_direction_output(GPIO_PORT173, 0);
-       gpio_direction_output(GPIO_PORT172, 1);
-       gpio_direction_output(GPIO_PORT158, 0); /* see mt9t111_power() */
+       gpio_request_one(GPIO_PORT173, GPIOF_OUT_INIT_LOW, NULL);  /* STANDBY */
+       gpio_request_one(GPIO_PORT172, GPIOF_OUT_INIT_HIGH, NULL); /* RST */
+       /* see mt9t111_power() */
+       gpio_request_one(GPIO_PORT158, GPIOF_OUT_INIT_LOW, NULL);  /* CAM_PON */
 
        /* FSI-WM8978 */
        gpio_request(GPIO_FN_FSIAIBT,           NULL);
@@ -1133,15 +1129,13 @@ static void __init eva_init(void)
         * DBGMD/LCDC0/FSIA MUX
         * DBGMD_SELECT_B should be set after setting PFC Function.
         */
-       gpio_request(GPIO_PORT176, NULL);
-       gpio_direction_output(GPIO_PORT176, 1);
+       gpio_request_one(GPIO_PORT176, GPIOF_OUT_INIT_HIGH, NULL);
 
        /*
         * We can switch CON8/CON14 by SW1.5,
         * but it needs after DBGMD_SELECT_B
         */
-       gpio_request(GPIO_PORT6, NULL);
-       gpio_direction_input(GPIO_PORT6);
+       gpio_request_one(GPIO_PORT6, GPIOF_IN, NULL);
        if (gpio_get_value(GPIO_PORT6)) {
                /* CON14 enable */
        } else {
@@ -1155,8 +1149,8 @@ static void __init eva_init(void)
                gpio_request(GPIO_FN_SDHI1_CD,  NULL);
                gpio_request(GPIO_FN_SDHI1_WP,  NULL);
 
-               gpio_request(GPIO_PORT16, NULL); /* SDSLOT2_PON */
-               gpio_direction_output(GPIO_PORT16, 1);
+               /* SDSLOT2_PON */
+               gpio_request_one(GPIO_PORT16, GPIOF_OUT_INIT_HIGH, NULL);
 
                platform_device_register(&sdhi1_device);
        }
@@ -1175,8 +1169,6 @@ static void __init eva_init(void)
        platform_add_devices(eva_devices,
                             ARRAY_SIZE(eva_devices));
 
-       eva_clock_init();
-
        rmobile_add_device_to_domain("A4LC", &lcdc0_device);
        rmobile_add_device_to_domain("A4LC", &hdmi_lcdc_device);
        if (usb)
@@ -1189,6 +1181,9 @@ static void __init eva_earlytimer_init(void)
 {
        r8a7740_clock_init(MD_CK0 | MD_CK2);
        shmobile_earlytimer_init();
+
+       /* the rate of extal1 clock must be set before late_time_init */
+       eva_clock_init();
 }
 
 static void __init eva_add_early_devices(void)
index 331b7ce4edd8bbe2a8657636e1988503e4dae65e..e50f866915396ea36712806dc22b35644fb3a1a5 100644 (file)
@@ -392,8 +392,7 @@ static void __init bonito_init(void)
        /*
         * base board settings
         */
-       gpio_request(GPIO_PORT176, NULL);
-       gpio_direction_input(GPIO_PORT176);
+       gpio_request_one(GPIO_PORT176, GPIOF_IN, NULL);
        if (!gpio_get_value(GPIO_PORT176)) {
                u16 bsw2;
                u16 bsw3;
@@ -462,8 +461,8 @@ static void __init bonito_init(void)
                        gpio_request(GPIO_FN_LCD0_DISP,         NULL);
                        gpio_request(GPIO_FN_LCD0_LCLK_PORT165, NULL);
 
-                       gpio_request(GPIO_PORT61, NULL); /* LCDDON */
-                       gpio_direction_output(GPIO_PORT61, 1);
+                       gpio_request_one(GPIO_PORT61, GPIOF_OUT_INIT_HIGH,
+                                        NULL); /* LCDDON */
 
                        /* backlight on */
                        bonito_fpga_write(LCDCR, 1);
index d759a9c2b9e83fc3a6c9d2b1f86602239472f8cc..2ccc860403efce51bb394f9d4d92168dab89c18e 100644 (file)
@@ -474,10 +474,8 @@ static void __init kota2_init(void)
        gpio_request(GPIO_FN_D15_NAF15, NULL);
        gpio_request(GPIO_FN_CS5A_, NULL);
        gpio_request(GPIO_FN_WE0__FWE, NULL);
-       gpio_request(GPIO_PORT144, NULL); /* PINTA2 */
-       gpio_direction_input(GPIO_PORT144);
-       gpio_request(GPIO_PORT145, NULL); /* RESET */
-       gpio_direction_output(GPIO_PORT145, 1);
+       gpio_request_one(GPIO_PORT144, GPIOF_IN, NULL); /* PINTA2 */
+       gpio_request_one(GPIO_PORT145, GPIOF_OUT_INIT_HIGH, NULL); /* RESET */
 
        /* KEYSC */
        gpio_request(GPIO_FN_KEYIN0_PU, NULL);
@@ -509,8 +507,7 @@ static void __init kota2_init(void)
        gpio_request(GPIO_FN_MMCD0_6, NULL);
        gpio_request(GPIO_FN_MMCD0_7, NULL);
        gpio_request(GPIO_FN_MMCCMD0, NULL);
-       gpio_request(GPIO_PORT208, NULL); /* Reset */
-       gpio_direction_output(GPIO_PORT208, 1);
+       gpio_request_one(GPIO_PORT208, GPIOF_OUT_INIT_HIGH, NULL); /* Reset */
 
        /* SDHI0 (microSD) */
        gpio_request(GPIO_FN_SDHICD0_PU, NULL);
index 3efff2e7b1e711c1d420c40c1b63b4c8d111662f..7f3a6b7e7b7cfdfd1697560d2e3ecb6b3a6c6f38 100644 (file)
@@ -623,7 +623,7 @@ static int __init as3711_enable_lcdc_backlight(void)
                0x45, 0xf0,
        };
 
-       if (!machine_is_kzm9g())
+       if (!of_machine_is_compatible("renesas,kzm9g"))
                return 0;
 
        if (!a)
@@ -672,8 +672,7 @@ static void __init kzm_init(void)
        gpio_request(GPIO_FN_CS4_, NULL); /* CS4 */
 
        /* SMSC */
-       gpio_request(GPIO_PORT224, NULL); /* IRQ3 */
-       gpio_direction_input(GPIO_PORT224);
+       gpio_request_one(GPIO_PORT224, GPIOF_IN, NULL); /* IRQ3 */
 
        /* LCDC */
        gpio_request(GPIO_FN_LCDD23,    NULL);
@@ -703,14 +702,11 @@ static void __init kzm_init(void)
        gpio_request(GPIO_FN_LCDDISP,   NULL);
        gpio_request(GPIO_FN_LCDDCK,    NULL);
 
-       gpio_request(GPIO_PORT222,      NULL); /* LCDCDON */
-       gpio_request(GPIO_PORT226,      NULL); /* SC */
-       gpio_direction_output(GPIO_PORT222, 1);
-       gpio_direction_output(GPIO_PORT226, 1);
+       gpio_request_one(GPIO_PORT222, GPIOF_OUT_INIT_HIGH, NULL); /* LCDCDON */
+       gpio_request_one(GPIO_PORT226, GPIOF_OUT_INIT_HIGH, NULL); /* SC */
 
        /* Touchscreen */
-       gpio_request(GPIO_PORT223, NULL); /* IRQ8 */
-       gpio_direction_input(GPIO_PORT223);
+       gpio_request_one(GPIO_PORT223, GPIOF_IN, NULL); /* IRQ8 */
 
        /* enable MMCIF */
        gpio_request(GPIO_FN_MMCCLK0,           NULL);
@@ -734,8 +730,7 @@ static void __init kzm_init(void)
        gpio_request(GPIO_FN_SDHID0_1,          NULL);
        gpio_request(GPIO_FN_SDHID0_0,          NULL);
        gpio_request(GPIO_FN_SDHI0_VCCQ_MC0_ON, NULL);
-       gpio_request(GPIO_PORT15, NULL);
-       gpio_direction_output(GPIO_PORT15, 1); /* power */
+       gpio_request_one(GPIO_PORT15, GPIOF_OUT_INIT_HIGH, NULL); /* power */
 
        /* enable Micro SD */
        gpio_request(GPIO_FN_SDHID2_0,          NULL);
@@ -744,8 +739,7 @@ static void __init kzm_init(void)
        gpio_request(GPIO_FN_SDHID2_3,          NULL);
        gpio_request(GPIO_FN_SDHICMD2,          NULL);
        gpio_request(GPIO_FN_SDHICLK2,          NULL);
-       gpio_request(GPIO_PORT14, NULL);
-       gpio_direction_output(GPIO_PORT14, 1); /* power */
+       gpio_request_one(GPIO_PORT14, GPIOF_OUT_INIT_HIGH, NULL); /* power */
 
        /* I2C 3 */
        gpio_request(GPIO_FN_PORT27_I2C_SCL3, NULL);
index e2fafca9432b79a37a6d479bff61b39c6877021b..db968a585ff0c6ab296e2416369769c7517a4796 100644 (file)
  *
  * it needs amixer settings for playing
  *
- * amixer set "Headphone" on
- * amixer set "HPOUTL Mixer DACH" on
- * amixer set "HPOUTR Mixer DACH" on
+ * amixer set "Headphone Enable" on
  */
 
 /* Fixed 3.3V and 1.8V regulators to be used by multiple devices */
@@ -1404,11 +1402,10 @@ static void __init mackerel_init(void)
        gpio_request(GPIO_FN_LCDDISP,  NULL);
        gpio_request(GPIO_FN_LCDDCK,   NULL);
 
-       gpio_request(GPIO_PORT31, NULL); /* backlight */
-       gpio_direction_output(GPIO_PORT31, 0); /* off by default */
+       /* backlight, off by default */
+       gpio_request_one(GPIO_PORT31, GPIOF_OUT_INIT_LOW, NULL);
 
-       gpio_request(GPIO_PORT151, NULL); /* LCDDON */
-       gpio_direction_output(GPIO_PORT151, 1);
+       gpio_request_one(GPIO_PORT151, GPIOF_OUT_INIT_HIGH, NULL); /* LCDDON */
 
        /* USBHS0 */
        gpio_request(GPIO_FN_VBUS0_0, NULL);
@@ -1424,8 +1421,7 @@ static void __init mackerel_init(void)
        gpio_request(GPIO_FN_FSIAILR,   NULL);
        gpio_request(GPIO_FN_FSIAISLD,  NULL);
        gpio_request(GPIO_FN_FSIAOSLD,  NULL);
-       gpio_request(GPIO_PORT161,      NULL);
-       gpio_direction_output(GPIO_PORT161, 0); /* slave */
+       gpio_request_one(GPIO_PORT161, GPIOF_OUT_INIT_LOW, NULL); /* slave */
 
        gpio_request(GPIO_PORT9,  NULL);
        gpio_request(GPIO_PORT10, NULL);
@@ -1479,8 +1475,7 @@ static void __init mackerel_init(void)
        gpio_request(GPIO_FN_SDHID1_0, NULL);
 #endif
        /* card detect pin for MMC slot (CN7) */
-       gpio_request(GPIO_PORT41, NULL);
-       gpio_direction_input(GPIO_PORT41);
+       gpio_request_one(GPIO_PORT41, GPIOF_IN, NULL);
 
        /* enable SDHI2 */
        gpio_request(GPIO_FN_SDHICMD2, NULL);
@@ -1491,8 +1486,7 @@ static void __init mackerel_init(void)
        gpio_request(GPIO_FN_SDHID2_0, NULL);
 
        /* card detect pin for microSD slot (CN23) */
-       gpio_request(GPIO_PORT162, NULL);
-       gpio_direction_input(GPIO_PORT162);
+       gpio_request_one(GPIO_PORT162, GPIOF_IN, NULL);
 
        /* MMCIF */
        gpio_request(GPIO_FN_MMCD0_0, NULL);
index 54ca8ae21078c971496911443a110b89e32cae80..c904f42d81c18c6fd6d5c7ba2e66a51e73fedc8c 100644 (file)
@@ -291,30 +291,6 @@ static struct panel_config generic_dpi_panels[] = {
                .name                   = "h4",
        },
 
-       /* Unknown panel used in Samsung OMAP2 Apollon */
-       {
-               {
-                       .x_res          = 480,
-                       .y_res          = 272,
-
-                       .pixel_clock    = 6250,
-
-                       .hsw            = 41,
-                       .hfp            = 2,
-                       .hbp            = 2,
-
-                       .vsw            = 10,
-                       .vfp            = 2,
-                       .vbp            = 2,
-
-                       .vsync_level    = OMAPDSS_SIG_ACTIVE_LOW,
-                       .hsync_level    = OMAPDSS_SIG_ACTIVE_LOW,
-                       .data_pclk_edge = OMAPDSS_DRIVE_SIG_RISING_EDGE,
-                       .de_level       = OMAPDSS_SIG_ACTIVE_HIGH,
-                       .sync_pclk_edge = OMAPDSS_DRIVE_SIG_OPPOSITE_EDGES,
-               },
-               .name                   = "apollon",
-       },
        /* FocalTech ETM070003DH6 */
        {
                {