aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2013-02-21 18:33:45 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2013-02-21 18:33:45 -0500
commit6c5096e5538b455bc3bea2b02588c380f070d8c6 (patch)
treea2d08974a0c6a6fd19dff90bd3ab1827c23a5764
parentbab588fcfb6335c767d811a8955979f5440328e0 (diff)
parentf628e3d92465303792d52c98fb0c95bef558f936 (diff)
Merge tag 'boards' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
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() ...
-rw-r--r--arch/arm/boot/dts/emev2-kzm9d.dts2
-rw-r--r--arch/arm/boot/dts/r8a7740-armadillo800eva.dts6
-rw-r--r--arch/arm/boot/dts/sh7372-mackerel.dts6
-rw-r--r--arch/arm/boot/dts/sh73a0-kzm9g.dts6
-rw-r--r--arch/arm/configs/armadillo800eva_defconfig10
-rw-r--r--arch/arm/configs/bcm2835_defconfig43
-rw-r--r--arch/arm/configs/da8xx_omapl_defconfig3
-rw-r--r--arch/arm/configs/davinci_all_defconfig3
-rw-r--r--arch/arm/configs/imx_v4_v5_defconfig3
-rw-r--r--arch/arm/configs/imx_v6_v7_defconfig1
-rw-r--r--arch/arm/configs/kota2_defconfig2
-rw-r--r--arch/arm/configs/kzm9d_defconfig4
-rw-r--r--arch/arm/configs/kzm9g_defconfig4
-rw-r--r--arch/arm/configs/mackerel_defconfig3
-rw-r--r--arch/arm/configs/omap2plus_defconfig25
-rw-r--r--arch/arm/configs/tegra_defconfig6
-rw-r--r--arch/arm/mach-davinci/board-da850-evm.c102
-rw-r--r--arch/arm/mach-davinci/board-omapl138-hawk.c30
-rw-r--r--arch/arm/mach-omap1/board-nokia770.c43
-rw-r--r--arch/arm/mach-omap2/Kconfig6
-rw-r--r--arch/arm/mach-omap2/Makefile1
-rw-r--r--arch/arm/mach-omap2/board-3430sdp.c20
-rw-r--r--arch/arm/mach-omap2/board-4430sdp.c30
-rw-r--r--arch/arm/mach-omap2/board-am3517crane.c59
-rw-r--r--arch/arm/mach-omap2/board-apollon.c342
-rw-r--r--arch/arm/mach-omap2/board-cm-t35.c2
-rw-r--r--arch/arm/mach-omap2/board-cm-t3517.c27
-rw-r--r--arch/arm/mach-omap2/board-devkit8000.c2
-rw-r--r--arch/arm/mach-omap2/board-igep0020.c18
-rw-r--r--arch/arm/mach-omap2/board-omap3beagle.c41
-rw-r--r--arch/arm/mach-omap2/board-omap3evm.c2
-rw-r--r--arch/arm/mach-omap2/board-overo.c2
-rw-r--r--arch/arm/mach-omap2/board-rx51-peripherals.c20
-rw-r--r--arch/arm/mach-omap2/board-zoom-peripherals.c39
-rw-r--r--arch/arm/mach-omap2/gpmc.c3
-rw-r--r--arch/arm/mach-omap2/twl-common.c17
-rw-r--r--arch/arm/mach-omap2/twl-common.h3
-rw-r--r--arch/arm/mach-pxa/palmtreo.c35
-rw-r--r--arch/arm/mach-pxa/pxa27x.c1
-rw-r--r--arch/arm/mach-shmobile/board-ag5evm.c22
-rw-r--r--arch/arm/mach-shmobile/board-ap4evb.c37
-rw-r--r--arch/arm/mach-shmobile/board-armadillo800eva.c65
-rw-r--r--arch/arm/mach-shmobile/board-bonito.c7
-rw-r--r--arch/arm/mach-shmobile/board-kota2.c9
-rw-r--r--arch/arm/mach-shmobile/board-kzm9g.c20
-rw-r--r--arch/arm/mach-shmobile/board-mackerel.c20
-rw-r--r--drivers/video/omap2/displays/panel-generic-dpi.c24
47 files changed, 536 insertions, 640 deletions
diff --git a/arch/arm/boot/dts/emev2-kzm9d.dts b/arch/arm/boot/dts/emev2-kzm9d.dts
index 297e3baba71c..b9b3241f173b 100644
--- a/arch/arm/boot/dts/emev2-kzm9d.dts
+++ b/arch/arm/boot/dts/emev2-kzm9d.dts
@@ -21,6 +21,6 @@
21 }; 21 };
22 22
23 chosen { 23 chosen {
24 bootargs = "console=ttyS1,115200n81"; 24 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";
25 }; 25 };
26}; 26};
diff --git a/arch/arm/boot/dts/r8a7740-armadillo800eva.dts b/arch/arm/boot/dts/r8a7740-armadillo800eva.dts
index a7505a95a3b7..93da655b2598 100644
--- a/arch/arm/boot/dts/r8a7740-armadillo800eva.dts
+++ b/arch/arm/boot/dts/r8a7740-armadillo800eva.dts
@@ -9,12 +9,16 @@
9 */ 9 */
10 10
11/dts-v1/; 11/dts-v1/;
12/include/ "skeleton.dtsi" 12/include/ "r8a7740.dtsi"
13 13
14/ { 14/ {
15 model = "armadillo 800 eva"; 15 model = "armadillo 800 eva";
16 compatible = "renesas,armadillo800eva"; 16 compatible = "renesas,armadillo800eva";
17 17
18 chosen {
19 bootargs = "console=tty0 console=ttySC1,115200 earlyprintk=sh-sci.1,115200 ignore_loglevel root=/dev/nfs ip=dhcp nfsroot=,rsize=4096,wsize=4096 rw";
20 };
21
18 memory { 22 memory {
19 device_type = "memory"; 23 device_type = "memory";
20 reg = <0x40000000 0x20000000>; 24 reg = <0x40000000 0x20000000>;
diff --git a/arch/arm/boot/dts/sh7372-mackerel.dts b/arch/arm/boot/dts/sh7372-mackerel.dts
index 286f0caef013..8acf51e0cdae 100644
--- a/arch/arm/boot/dts/sh7372-mackerel.dts
+++ b/arch/arm/boot/dts/sh7372-mackerel.dts
@@ -9,12 +9,16 @@
9 */ 9 */
10 10
11/dts-v1/; 11/dts-v1/;
12/include/ "skeleton.dtsi" 12/include/ "sh7372.dtsi"
13 13
14/ { 14/ {
15 model = "Mackerel (AP4 EVM 2nd)"; 15 model = "Mackerel (AP4 EVM 2nd)";
16 compatible = "renesas,mackerel"; 16 compatible = "renesas,mackerel";
17 17
18 chosen {
19 bootargs = "console=tty0, console=ttySC0,115200 earlyprintk=sh-sci.0,115200 root=/dev/nfs nfsroot=,tcp,v3 ip=dhcp mem=240m rw";
20 };
21
18 memory { 22 memory {
19 device_type = "memory"; 23 device_type = "memory";
20 reg = <0x40000000 0x10000000>; 24 reg = <0x40000000 0x10000000>;
diff --git a/arch/arm/boot/dts/sh73a0-kzm9g.dts b/arch/arm/boot/dts/sh73a0-kzm9g.dts
index bcb911951978..7c4071e7790c 100644
--- a/arch/arm/boot/dts/sh73a0-kzm9g.dts
+++ b/arch/arm/boot/dts/sh73a0-kzm9g.dts
@@ -9,12 +9,16 @@
9 */ 9 */
10 10
11/dts-v1/; 11/dts-v1/;
12/include/ "skeleton.dtsi" 12/include/ "sh73a0.dtsi"
13 13
14/ { 14/ {
15 model = "KZM-A9-GT"; 15 model = "KZM-A9-GT";
16 compatible = "renesas,kzm9g", "renesas,sh73a0"; 16 compatible = "renesas,kzm9g", "renesas,sh73a0";
17 17
18 chosen {
19 bootargs = "console=tty0 console=ttySC4,115200 root=/dev/nfs ip=dhcp ignore_loglevel earlyprintk=sh-sci.4,115200";
20 };
21
18 memory { 22 memory {
19 device_type = "memory"; 23 device_type = "memory";
20 reg = <0x41000000 0x1e800000>; 24 reg = <0x41000000 0x1e800000>;
diff --git a/arch/arm/configs/armadillo800eva_defconfig b/arch/arm/configs/armadillo800eva_defconfig
index 2e1a82577207..0b98100d2ae7 100644
--- a/arch/arm/configs/armadillo800eva_defconfig
+++ b/arch/arm/configs/armadillo800eva_defconfig
@@ -34,12 +34,11 @@ CONFIG_AEABI=y
34CONFIG_FORCE_MAX_ZONEORDER=13 34CONFIG_FORCE_MAX_ZONEORDER=13
35CONFIG_ZBOOT_ROM_TEXT=0x0 35CONFIG_ZBOOT_ROM_TEXT=0x0
36CONFIG_ZBOOT_ROM_BSS=0x0 36CONFIG_ZBOOT_ROM_BSS=0x0
37CONFIG_CMDLINE="console=tty0 console=ttySC1,115200 earlyprintk=sh-sci.1,115200 ignore_loglevel root=/dev/nfs ip=dhcp nfsroot=,rsize=4096,wsize=4096 rw" 37CONFIG_ARM_APPENDED_DTB=y
38CONFIG_CMDLINE_FORCE=y
39CONFIG_KEXEC=y 38CONFIG_KEXEC=y
40CONFIG_VFP=y 39CONFIG_VFP=y
41# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 40# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
42# CONFIG_SUSPEND is not set 41CONFIG_PM_RUNTIME=y
43CONFIG_NET=y 42CONFIG_NET=y
44CONFIG_PACKET=y 43CONFIG_PACKET=y
45CONFIG_UNIX=y 44CONFIG_UNIX=y
@@ -91,14 +90,11 @@ CONFIG_I2C_SH_MOBILE=y
91# CONFIG_HWMON is not set 90# CONFIG_HWMON is not set
92CONFIG_MEDIA_SUPPORT=y 91CONFIG_MEDIA_SUPPORT=y
93CONFIG_VIDEO_DEV=y 92CONFIG_VIDEO_DEV=y
94# CONFIG_RC_CORE is not set 93CONFIG_MEDIA_CAMERA_SUPPORT=y
95# CONFIG_VIDEO_HELPER_CHIPS_AUTO is not set
96# CONFIG_V4L_USB_DRIVERS is not set
97CONFIG_V4L_PLATFORM_DRIVERS=y 94CONFIG_V4L_PLATFORM_DRIVERS=y
98CONFIG_SOC_CAMERA=y 95CONFIG_SOC_CAMERA=y
99CONFIG_SOC_CAMERA_MT9T112=y 96CONFIG_SOC_CAMERA_MT9T112=y
100CONFIG_VIDEO_SH_MOBILE_CEU=y 97CONFIG_VIDEO_SH_MOBILE_CEU=y
101# CONFIG_RADIO_ADAPTERS is not set
102CONFIG_FB=y 98CONFIG_FB=y
103CONFIG_FB_SH_MOBILE_LCDC=y 99CONFIG_FB_SH_MOBILE_LCDC=y
104CONFIG_FB_SH_MOBILE_HDMI=y 100CONFIG_FB_SH_MOBILE_HDMI=y
diff --git a/arch/arm/configs/bcm2835_defconfig b/arch/arm/configs/bcm2835_defconfig
index 74e27f0ff6ad..af472e4ed451 100644
--- a/arch/arm/configs/bcm2835_defconfig
+++ b/arch/arm/configs/bcm2835_defconfig
@@ -1,11 +1,10 @@
1CONFIG_EXPERIMENTAL=y
2# CONFIG_LOCALVERSION_AUTO is not set 1# CONFIG_LOCALVERSION_AUTO is not set
3CONFIG_SYSVIPC=y 2CONFIG_SYSVIPC=y
4CONFIG_BSD_PROCESS_ACCT=y
5CONFIG_BSD_PROCESS_ACCT_V3=y
6CONFIG_FHANDLE=y 3CONFIG_FHANDLE=y
7CONFIG_NO_HZ=y 4CONFIG_NO_HZ=y
8CONFIG_HIGH_RES_TIMERS=y 5CONFIG_HIGH_RES_TIMERS=y
6CONFIG_BSD_PROCESS_ACCT=y
7CONFIG_BSD_PROCESS_ACCT_V3=y
9CONFIG_LOG_BUF_SHIFT=18 8CONFIG_LOG_BUF_SHIFT=18
10CONFIG_CGROUP_FREEZER=y 9CONFIG_CGROUP_FREEZER=y
11CONFIG_CGROUP_DEVICE=y 10CONFIG_CGROUP_DEVICE=y
@@ -30,13 +29,10 @@ CONFIG_EMBEDDED=y
30CONFIG_PROFILING=y 29CONFIG_PROFILING=y
31CONFIG_OPROFILE=y 30CONFIG_OPROFILE=y
32CONFIG_JUMP_LABEL=y 31CONFIG_JUMP_LABEL=y
33# CONFIG_BLOCK is not set
34CONFIG_ARCH_BCM2835=y 32CONFIG_ARCH_BCM2835=y
35CONFIG_PREEMPT_VOLUNTARY=y 33CONFIG_PREEMPT_VOLUNTARY=y
36CONFIG_AEABI=y 34CONFIG_AEABI=y
37CONFIG_COMPACTION=y
38CONFIG_KSM=y 35CONFIG_KSM=y
39CONFIG_DEFAULT_MMAP_MIN_ADDR=65536
40CONFIG_CLEANCACHE=y 36CONFIG_CLEANCACHE=y
41CONFIG_SECCOMP=y 37CONFIG_SECCOMP=y
42CONFIG_CC_STACKPROTECTOR=y 38CONFIG_CC_STACKPROTECTOR=y
@@ -45,6 +41,11 @@ CONFIG_CRASH_DUMP=y
45CONFIG_VFP=y 41CONFIG_VFP=y
46# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 42# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
47# CONFIG_SUSPEND is not set 43# CONFIG_SUSPEND is not set
44CONFIG_NET=y
45CONFIG_UNIX=y
46CONFIG_INET=y
47CONFIG_NETWORK_SECMARK=y
48# CONFIG_WIRELESS is not set
48CONFIG_DEVTMPFS=y 49CONFIG_DEVTMPFS=y
49CONFIG_DEVTMPFS_MOUNT=y 50CONFIG_DEVTMPFS_MOUNT=y
50# CONFIG_STANDALONE is not set 51# CONFIG_STANDALONE is not set
@@ -53,20 +54,42 @@ CONFIG_DEVTMPFS_MOUNT=y
53# CONFIG_INPUT_MOUSE is not set 54# CONFIG_INPUT_MOUSE is not set
54# CONFIG_SERIO is not set 55# CONFIG_SERIO is not set
55# CONFIG_VT is not set 56# CONFIG_VT is not set
56# CONFIG_UNIX98_PTYS is not set
57# CONFIG_LEGACY_PTYS is not set 57# CONFIG_LEGACY_PTYS is not set
58# CONFIG_DEVKMEM is not set 58# CONFIG_DEVKMEM is not set
59CONFIG_SERIAL_AMBA_PL011=y 59CONFIG_SERIAL_AMBA_PL011=y
60CONFIG_SERIAL_AMBA_PL011_CONSOLE=y 60CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
61CONFIG_TTY_PRINTK=y 61CONFIG_TTY_PRINTK=y
62# CONFIG_HW_RANDOM is not set 62# CONFIG_HW_RANDOM is not set
63CONFIG_I2C=y
64CONFIG_I2C_CHARDEV=y
65CONFIG_I2C_BCM2835=y
66CONFIG_GPIO_SYSFS=y
63# CONFIG_HWMON is not set 67# CONFIG_HWMON is not set
64# CONFIG_USB_SUPPORT is not set 68# CONFIG_USB_SUPPORT is not set
69CONFIG_MMC=y
70CONFIG_MMC_SDHCI=y
71CONFIG_MMC_SDHCI_PLTFM=y
72CONFIG_MMC_SDHCI_BCM2835=y
65# CONFIG_IOMMU_SUPPORT is not set 73# CONFIG_IOMMU_SUPPORT is not set
66# CONFIG_FILE_LOCKING is not set 74CONFIG_EXT2_FS=y
67# CONFIG_DNOTIFY is not set 75CONFIG_EXT2_FS_XATTR=y
68# CONFIG_INOTIFY_USER is not set 76CONFIG_EXT2_FS_POSIX_ACL=y
77CONFIG_EXT3_FS=y
78CONFIG_EXT3_FS_POSIX_ACL=y
79CONFIG_EXT4_FS=y
80CONFIG_EXT4_FS_POSIX_ACL=y
81CONFIG_FANOTIFY=y
82CONFIG_MSDOS_FS=y
83CONFIG_VFAT_FS=y
84CONFIG_TMPFS=y
85CONFIG_TMPFS_POSIX_ACL=y
69# CONFIG_MISC_FILESYSTEMS is not set 86# CONFIG_MISC_FILESYSTEMS is not set
87CONFIG_NFS_FS=y
88CONFIG_NFSD=y
89CONFIG_NLS_CODEPAGE_437=y
90CONFIG_NLS_ASCII=y
91CONFIG_NLS_ISO8859_1=y
92CONFIG_NLS_UTF8=y
70CONFIG_PRINTK_TIME=y 93CONFIG_PRINTK_TIME=y
71# CONFIG_ENABLE_WARN_DEPRECATED is not set 94# CONFIG_ENABLE_WARN_DEPRECATED is not set
72# CONFIG_ENABLE_MUST_CHECK is not set 95# CONFIG_ENABLE_MUST_CHECK is not set
diff --git a/arch/arm/configs/da8xx_omapl_defconfig b/arch/arm/configs/da8xx_omapl_defconfig
index f29223954af8..6b36a5ae03c2 100644
--- a/arch/arm/configs/da8xx_omapl_defconfig
+++ b/arch/arm/configs/da8xx_omapl_defconfig
@@ -36,6 +36,7 @@ CONFIG_CPU_FREQ_GOV_PERFORMANCE=m
36CONFIG_CPU_FREQ_GOV_POWERSAVE=m 36CONFIG_CPU_FREQ_GOV_POWERSAVE=m
37CONFIG_CPU_FREQ_GOV_ONDEMAND=m 37CONFIG_CPU_FREQ_GOV_ONDEMAND=m
38CONFIG_CPU_IDLE=y 38CONFIG_CPU_IDLE=y
39CONFIG_PM_RUNTIME=y
39CONFIG_NET=y 40CONFIG_NET=y
40CONFIG_PACKET=y 41CONFIG_PACKET=y
41CONFIG_UNIX=y 42CONFIG_UNIX=y
@@ -45,6 +46,8 @@ CONFIG_IP_PNP_DHCP=y
45# CONFIG_INET_LRO is not set 46# CONFIG_INET_LRO is not set
46CONFIG_NETFILTER=y 47CONFIG_NETFILTER=y
47CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 48CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
49CONFIG_DEVTMPFS=y
50CONFIG_DEVTMPFS_MOUNT=y
48# CONFIG_FW_LOADER is not set 51# CONFIG_FW_LOADER is not set
49CONFIG_BLK_DEV_LOOP=m 52CONFIG_BLK_DEV_LOOP=m
50CONFIG_BLK_DEV_RAM=y 53CONFIG_BLK_DEV_RAM=y
diff --git a/arch/arm/configs/davinci_all_defconfig b/arch/arm/configs/davinci_all_defconfig
index 4ea7c95719d2..3edc78a40b66 100644
--- a/arch/arm/configs/davinci_all_defconfig
+++ b/arch/arm/configs/davinci_all_defconfig
@@ -33,6 +33,7 @@ CONFIG_AEABI=y
33CONFIG_LEDS=y 33CONFIG_LEDS=y
34CONFIG_ZBOOT_ROM_TEXT=0x0 34CONFIG_ZBOOT_ROM_TEXT=0x0
35CONFIG_ZBOOT_ROM_BSS=0x0 35CONFIG_ZBOOT_ROM_BSS=0x0
36CONFIG_PM_RUNTIME=y
36CONFIG_NET=y 37CONFIG_NET=y
37CONFIG_PACKET=y 38CONFIG_PACKET=y
38CONFIG_UNIX=y 39CONFIG_UNIX=y
@@ -42,6 +43,8 @@ CONFIG_IP_PNP_DHCP=y
42# CONFIG_INET_LRO is not set 43# CONFIG_INET_LRO is not set
43CONFIG_NETFILTER=y 44CONFIG_NETFILTER=y
44CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 45CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
46CONFIG_DEVTMPFS=y
47CONFIG_DEVTMPFS_MOUNT=y
45# CONFIG_FW_LOADER is not set 48# CONFIG_FW_LOADER is not set
46CONFIG_MTD=m 49CONFIG_MTD=m
47CONFIG_MTD_PARTITIONS=y 50CONFIG_MTD_PARTITIONS=y
diff --git a/arch/arm/configs/imx_v4_v5_defconfig b/arch/arm/configs/imx_v4_v5_defconfig
index ebbfb27e0e74..02c657af4005 100644
--- a/arch/arm/configs/imx_v4_v5_defconfig
+++ b/arch/arm/configs/imx_v4_v5_defconfig
@@ -61,6 +61,7 @@ CONFIG_IP_PNP_DHCP=y
61# CONFIG_INET_LRO is not set 61# CONFIG_INET_LRO is not set
62# CONFIG_INET_DIAG is not set 62# CONFIG_INET_DIAG is not set
63# CONFIG_IPV6 is not set 63# CONFIG_IPV6 is not set
64CONFIG_NETFILTER=y
64CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 65CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
65CONFIG_DEVTMPFS=y 66CONFIG_DEVTMPFS=y
66CONFIG_DEVTMPFS_MOUNT=y 67CONFIG_DEVTMPFS_MOUNT=y
@@ -127,6 +128,8 @@ CONFIG_MEDIA_CAMERA_SUPPORT=y
127CONFIG_SOC_CAMERA=y 128CONFIG_SOC_CAMERA=y
128CONFIG_SOC_CAMERA_OV2640=y 129CONFIG_SOC_CAMERA_OV2640=y
129CONFIG_VIDEO_MX2=y 130CONFIG_VIDEO_MX2=y
131CONFIG_V4L_MEM2MEM_DRIVERS=y
132CONFIG_VIDEO_CODA=y
130CONFIG_FB=y 133CONFIG_FB=y
131CONFIG_FB_IMX=y 134CONFIG_FB_IMX=y
132CONFIG_BACKLIGHT_LCD_SUPPORT=y 135CONFIG_BACKLIGHT_LCD_SUPPORT=y
diff --git a/arch/arm/configs/imx_v6_v7_defconfig b/arch/arm/configs/imx_v6_v7_defconfig
index 0a3966787563..e36b01025321 100644
--- a/arch/arm/configs/imx_v6_v7_defconfig
+++ b/arch/arm/configs/imx_v6_v7_defconfig
@@ -59,6 +59,7 @@ CONFIG_IP_PNP_DHCP=y
59# CONFIG_INET_XFRM_MODE_BEET is not set 59# CONFIG_INET_XFRM_MODE_BEET is not set
60# CONFIG_INET_LRO is not set 60# CONFIG_INET_LRO is not set
61CONFIG_IPV6=y 61CONFIG_IPV6=y
62CONFIG_NETFILTER=y
62# CONFIG_WIRELESS is not set 63# CONFIG_WIRELESS is not set
63CONFIG_DEVTMPFS=y 64CONFIG_DEVTMPFS=y
64CONFIG_DEVTMPFS_MOUNT=y 65CONFIG_DEVTMPFS_MOUNT=y
diff --git a/arch/arm/configs/kota2_defconfig b/arch/arm/configs/kota2_defconfig
index fa83db1ef0eb..57ad3d47de70 100644
--- a/arch/arm/configs/kota2_defconfig
+++ b/arch/arm/configs/kota2_defconfig
@@ -21,7 +21,7 @@ CONFIG_ARCH_SHMOBILE=y
21CONFIG_KEYBOARD_GPIO_POLLED=y 21CONFIG_KEYBOARD_GPIO_POLLED=y
22CONFIG_ARCH_SH73A0=y 22CONFIG_ARCH_SH73A0=y
23CONFIG_MACH_KOTA2=y 23CONFIG_MACH_KOTA2=y
24CONFIG_MEMORY_SIZE=0x1e0000000 24CONFIG_MEMORY_SIZE=0x1e000000
25# CONFIG_SH_TIMER_TMU is not set 25# CONFIG_SH_TIMER_TMU is not set
26# CONFIG_SWP_EMULATE is not set 26# CONFIG_SWP_EMULATE is not set
27CONFIG_CPU_BPREDICT_DISABLE=y 27CONFIG_CPU_BPREDICT_DISABLE=y
diff --git a/arch/arm/configs/kzm9d_defconfig b/arch/arm/configs/kzm9d_defconfig
index 8c49df66cac3..6c37f4a98eb8 100644
--- a/arch/arm/configs/kzm9d_defconfig
+++ b/arch/arm/configs/kzm9d_defconfig
@@ -32,11 +32,9 @@ CONFIG_FORCE_MAX_ZONEORDER=13
32CONFIG_ZBOOT_ROM_TEXT=0x0 32CONFIG_ZBOOT_ROM_TEXT=0x0
33CONFIG_ZBOOT_ROM_BSS=0x0 33CONFIG_ZBOOT_ROM_BSS=0x0
34CONFIG_ARM_APPENDED_DTB=y 34CONFIG_ARM_APPENDED_DTB=y
35CONFIG_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"
36CONFIG_CMDLINE_FORCE=y
37CONFIG_VFP=y 35CONFIG_VFP=y
38# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 36# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
39# CONFIG_SUSPEND is not set 37CONFIG_PM_RUNTIME=y
40CONFIG_NET=y 38CONFIG_NET=y
41CONFIG_PACKET=y 39CONFIG_PACKET=y
42CONFIG_UNIX=y 40CONFIG_UNIX=y
diff --git a/arch/arm/configs/kzm9g_defconfig b/arch/arm/configs/kzm9g_defconfig
index afbae287436b..670c3b60f936 100644
--- a/arch/arm/configs/kzm9g_defconfig
+++ b/arch/arm/configs/kzm9g_defconfig
@@ -39,7 +39,7 @@ CONFIG_AEABI=y
39CONFIG_HIGHMEM=y 39CONFIG_HIGHMEM=y
40CONFIG_ZBOOT_ROM_TEXT=0x0 40CONFIG_ZBOOT_ROM_TEXT=0x0
41CONFIG_ZBOOT_ROM_BSS=0x0 41CONFIG_ZBOOT_ROM_BSS=0x0
42CONFIG_CMDLINE="console=tty0 console=ttySC4,115200 root=/dev/nfs ip=dhcp ignore_loglevel earlyprintk=sh-sci.4,115200" 42CONFIG_ARM_APPENDED_DTB=y
43CONFIG_KEXEC=y 43CONFIG_KEXEC=y
44CONFIG_VFP=y 44CONFIG_VFP=y
45CONFIG_NEON=y 45CONFIG_NEON=y
@@ -85,6 +85,8 @@ CONFIG_I2C_CHARDEV=y
85CONFIG_I2C_SH_MOBILE=y 85CONFIG_I2C_SH_MOBILE=y
86CONFIG_GPIO_PCF857X=y 86CONFIG_GPIO_PCF857X=y
87# CONFIG_HWMON is not set 87# CONFIG_HWMON is not set
88CONFIG_REGULATOR=y
89CONFIG_REGULATOR_DUMMY=y
88CONFIG_FB=y 90CONFIG_FB=y
89CONFIG_FB_SH_MOBILE_LCDC=y 91CONFIG_FB_SH_MOBILE_LCDC=y
90CONFIG_FRAMEBUFFER_CONSOLE=y 92CONFIG_FRAMEBUFFER_CONSOLE=y
diff --git a/arch/arm/configs/mackerel_defconfig b/arch/arm/configs/mackerel_defconfig
index 2098ce155542..7594b3aff259 100644
--- a/arch/arm/configs/mackerel_defconfig
+++ b/arch/arm/configs/mackerel_defconfig
@@ -23,8 +23,9 @@ CONFIG_AEABI=y
23CONFIG_FORCE_MAX_ZONEORDER=15 23CONFIG_FORCE_MAX_ZONEORDER=15
24CONFIG_ZBOOT_ROM_TEXT=0x0 24CONFIG_ZBOOT_ROM_TEXT=0x0
25CONFIG_ZBOOT_ROM_BSS=0x0 25CONFIG_ZBOOT_ROM_BSS=0x0
26CONFIG_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" 26CONFIG_ARM_APPENDED_DTB=y
27CONFIG_KEXEC=y 27CONFIG_KEXEC=y
28CONFIG_VFP=y
28# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 29# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
29CONFIG_PM=y 30CONFIG_PM=y
30CONFIG_PM_RUNTIME=y 31CONFIG_PM_RUNTIME=y
diff --git a/arch/arm/configs/omap2plus_defconfig b/arch/arm/configs/omap2plus_defconfig
index 5be2e4be802c..b16bae2c9a60 100644
--- a/arch/arm/configs/omap2plus_defconfig
+++ b/arch/arm/configs/omap2plus_defconfig
@@ -53,6 +53,11 @@ CONFIG_IP_PNP_RARP=y
53# CONFIG_INET_LRO is not set 53# CONFIG_INET_LRO is not set
54# CONFIG_IPV6 is not set 54# CONFIG_IPV6 is not set
55CONFIG_NETFILTER=y 55CONFIG_NETFILTER=y
56CONFIG_CAN=m
57CONFIG_CAN_RAW=m
58CONFIG_CAN_BCM=m
59CONFIG_CAN_C_CAN=m
60CONFIG_CAN_C_CAN_PLATFORM=m
56CONFIG_BT=m 61CONFIG_BT=m
57CONFIG_BT_HCIUART=m 62CONFIG_BT_HCIUART=m
58CONFIG_BT_HCIUART_H4=y 63CONFIG_BT_HCIUART_H4=y
@@ -65,6 +70,7 @@ CONFIG_MAC80211=m
65CONFIG_MAC80211_RC_PID=y 70CONFIG_MAC80211_RC_PID=y
66CONFIG_MAC80211_RC_DEFAULT_PID=y 71CONFIG_MAC80211_RC_DEFAULT_PID=y
67CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 72CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
73CONFIG_CMA=y
68CONFIG_CONNECTOR=y 74CONFIG_CONNECTOR=y
69CONFIG_DEVTMPFS=y 75CONFIG_DEVTMPFS=y
70CONFIG_DEVTMPFS_MOUNT=y 76CONFIG_DEVTMPFS_MOUNT=y
@@ -84,6 +90,9 @@ CONFIG_MTD_UBI=y
84CONFIG_BLK_DEV_LOOP=y 90CONFIG_BLK_DEV_LOOP=y
85CONFIG_BLK_DEV_RAM=y 91CONFIG_BLK_DEV_RAM=y
86CONFIG_BLK_DEV_RAM_SIZE=16384 92CONFIG_BLK_DEV_RAM_SIZE=16384
93CONFIG_SENSORS_LIS3LV02D=m
94CONFIG_SENSORS_TSL2550=m
95CONFIG_SENSORS_LIS3_I2C=m
87CONFIG_SCSI=y 96CONFIG_SCSI=y
88CONFIG_BLK_DEV_SD=y 97CONFIG_BLK_DEV_SD=y
89CONFIG_SCSI_MULTI_LUN=y 98CONFIG_SCSI_MULTI_LUN=y
@@ -109,6 +118,7 @@ CONFIG_USB_KC2190=y
109CONFIG_INPUT_JOYDEV=y 118CONFIG_INPUT_JOYDEV=y
110CONFIG_INPUT_EVDEV=y 119CONFIG_INPUT_EVDEV=y
111CONFIG_KEYBOARD_GPIO=y 120CONFIG_KEYBOARD_GPIO=y
121CONFIG_KEYBOARD_MATRIX=m
112CONFIG_KEYBOARD_TWL4030=y 122CONFIG_KEYBOARD_TWL4030=y
113CONFIG_INPUT_TOUCHSCREEN=y 123CONFIG_INPUT_TOUCHSCREEN=y
114CONFIG_TOUCHSCREEN_ADS7846=y 124CONFIG_TOUCHSCREEN_ADS7846=y
@@ -134,14 +144,17 @@ CONFIG_GPIO_SYSFS=y
134CONFIG_GPIO_TWL4030=y 144CONFIG_GPIO_TWL4030=y
135CONFIG_W1=y 145CONFIG_W1=y
136CONFIG_POWER_SUPPLY=y 146CONFIG_POWER_SUPPLY=y
147CONFIG_SENSORS_LM75=m
137CONFIG_WATCHDOG=y 148CONFIG_WATCHDOG=y
138CONFIG_OMAP_WATCHDOG=y 149CONFIG_OMAP_WATCHDOG=y
139CONFIG_TWL4030_WATCHDOG=y 150CONFIG_TWL4030_WATCHDOG=y
140CONFIG_MFD_TPS65217=y 151CONFIG_MFD_TPS65217=y
152CONFIG_MFD_TPS65910=y
141CONFIG_REGULATOR_TWL4030=y 153CONFIG_REGULATOR_TWL4030=y
142CONFIG_REGULATOR_TPS65023=y 154CONFIG_REGULATOR_TPS65023=y
143CONFIG_REGULATOR_TPS6507X=y 155CONFIG_REGULATOR_TPS6507X=y
144CONFIG_REGULATOR_TPS65217=y 156CONFIG_REGULATOR_TPS65217=y
157CONFIG_REGULATOR_TPS65910=y
145CONFIG_FB=y 158CONFIG_FB=y
146CONFIG_FIRMWARE_EDID=y 159CONFIG_FIRMWARE_EDID=y
147CONFIG_FB_MODE_HELPERS=y 160CONFIG_FB_MODE_HELPERS=y
@@ -153,6 +166,7 @@ CONFIG_OMAP2_DSS_SDI=y
153CONFIG_OMAP2_DSS_DSI=y 166CONFIG_OMAP2_DSS_DSI=y
154CONFIG_FB_OMAP2=m 167CONFIG_FB_OMAP2=m
155CONFIG_PANEL_GENERIC_DPI=m 168CONFIG_PANEL_GENERIC_DPI=m
169CONFIG_PANEL_TFP410=m
156CONFIG_PANEL_SHARP_LS037V7DW01=m 170CONFIG_PANEL_SHARP_LS037V7DW01=m
157CONFIG_PANEL_NEC_NL8048HL11_01B=m 171CONFIG_PANEL_NEC_NL8048HL11_01B=m
158CONFIG_PANEL_TAAL=m 172CONFIG_PANEL_TAAL=m
@@ -200,9 +214,20 @@ CONFIG_SDIO_UART=y
200CONFIG_MMC_ARMMMCI=y 214CONFIG_MMC_ARMMMCI=y
201CONFIG_MMC_OMAP=y 215CONFIG_MMC_OMAP=y
202CONFIG_MMC_OMAP_HS=y 216CONFIG_MMC_OMAP_HS=y
217CONFIG_NEW_LEDS=y
218CONFIG_LEDS_GPIO=y
219CONFIG_LEDS_TRIGGERS=y
220CONFIG_LEDS_TRIGGER_TIMER=y
221CONFIG_LEDS_TRIGGER_ONESHOT=y
222CONFIG_LEDS_TRIGGER_HEARTBEAT=y
223CONFIG_LEDS_TRIGGER_BACKLIGHT=y
224CONFIG_LEDS_TRIGGER_CPU=y
225CONFIG_LEDS_TRIGGER_GPIO=y
226CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
203CONFIG_RTC_CLASS=y 227CONFIG_RTC_CLASS=y
204CONFIG_RTC_DRV_TWL92330=y 228CONFIG_RTC_DRV_TWL92330=y
205CONFIG_RTC_DRV_TWL4030=y 229CONFIG_RTC_DRV_TWL4030=y
230CONFIG_RTC_DRV_OMAP=y
206CONFIG_DMADEVICES=y 231CONFIG_DMADEVICES=y
207CONFIG_DMA_OMAP=y 232CONFIG_DMA_OMAP=y
208CONFIG_EXT2_FS=y 233CONFIG_EXT2_FS=y
diff --git a/arch/arm/configs/tegra_defconfig b/arch/arm/configs/tegra_defconfig
index a7827fd0616f..aba4881d20e5 100644
--- a/arch/arm/configs/tegra_defconfig
+++ b/arch/arm/configs/tegra_defconfig
@@ -38,6 +38,7 @@ CONFIG_HIGHMEM=y
38CONFIG_ZBOOT_ROM_TEXT=0x0 38CONFIG_ZBOOT_ROM_TEXT=0x0
39CONFIG_ZBOOT_ROM_BSS=0x0 39CONFIG_ZBOOT_ROM_BSS=0x0
40CONFIG_AUTO_ZRELADDR=y 40CONFIG_AUTO_ZRELADDR=y
41CONFIG_KEXEC=y
41CONFIG_CPU_FREQ=y 42CONFIG_CPU_FREQ=y
42CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y 43CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
43CONFIG_CPU_IDLE=y 44CONFIG_CPU_IDLE=y
@@ -106,12 +107,14 @@ CONFIG_BRCMFMAC=m
106CONFIG_RT2X00=y 107CONFIG_RT2X00=y
107CONFIG_RT2800USB=m 108CONFIG_RT2800USB=m
108CONFIG_INPUT_EVDEV=y 109CONFIG_INPUT_EVDEV=y
110CONFIG_KEYBOARD_TEGRA=y
109CONFIG_INPUT_MISC=y 111CONFIG_INPUT_MISC=y
110CONFIG_INPUT_MPU3050=y 112CONFIG_INPUT_MPU3050=y
111# CONFIG_LEGACY_PTYS is not set 113# CONFIG_LEGACY_PTYS is not set
112# CONFIG_DEVKMEM is not set 114# CONFIG_DEVKMEM is not set
113CONFIG_SERIAL_8250=y 115CONFIG_SERIAL_8250=y
114CONFIG_SERIAL_8250_CONSOLE=y 116CONFIG_SERIAL_8250_CONSOLE=y
117CONFIG_SERIAL_TEGRA=y
115CONFIG_SERIAL_OF_PLATFORM=y 118CONFIG_SERIAL_OF_PLATFORM=y
116# CONFIG_HW_RANDOM is not set 119# CONFIG_HW_RANDOM is not set
117CONFIG_I2C=y 120CONFIG_I2C=y
@@ -127,6 +130,8 @@ CONFIG_GPIO_TPS6586X=y
127CONFIG_GPIO_TPS65910=y 130CONFIG_GPIO_TPS65910=y
128CONFIG_POWER_SUPPLY=y 131CONFIG_POWER_SUPPLY=y
129CONFIG_BATTERY_SBS=y 132CONFIG_BATTERY_SBS=y
133CONFIG_POWER_RESET=y
134CONFIG_POWER_RESET_GPIO=y
130CONFIG_SENSORS_LM90=y 135CONFIG_SENSORS_LM90=y
131CONFIG_MFD_TPS6586X=y 136CONFIG_MFD_TPS6586X=y
132CONFIG_MFD_TPS65910=y 137CONFIG_MFD_TPS65910=y
@@ -186,6 +191,7 @@ CONFIG_RTC_INTF_SYSFS=y
186CONFIG_RTC_INTF_PROC=y 191CONFIG_RTC_INTF_PROC=y
187CONFIG_RTC_INTF_DEV=y 192CONFIG_RTC_INTF_DEV=y
188CONFIG_RTC_DRV_MAX8907=y 193CONFIG_RTC_DRV_MAX8907=y
194CONFIG_RTC_DRV_TPS6586X=y
189CONFIG_RTC_DRV_TPS65910=y 195CONFIG_RTC_DRV_TPS65910=y
190CONFIG_RTC_DRV_EM3027=y 196CONFIG_RTC_DRV_EM3027=y
191CONFIG_RTC_DRV_TEGRA=y 197CONFIG_RTC_DRV_TEGRA=y
diff --git a/arch/arm/mach-davinci/board-da850-evm.c b/arch/arm/mach-davinci/board-da850-evm.c
index 3a76a47df39c..1f50a653eb8c 100644
--- a/arch/arm/mach-davinci/board-da850-evm.c
+++ b/arch/arm/mach-davinci/board-da850-evm.c
@@ -349,13 +349,13 @@ static inline void da850_evm_setup_nor_nand(void)
349 if (!HAS_MMC) { 349 if (!HAS_MMC) {
350 ret = davinci_cfg_reg_list(da850_evm_nand_pins); 350 ret = davinci_cfg_reg_list(da850_evm_nand_pins);
351 if (ret) 351 if (ret)
352 pr_warning("da850_evm_init: nand mux setup failed: " 352 pr_warn("%s: NAND mux setup failed: %d\n",
353 "%d\n", ret); 353 __func__, ret);
354 354
355 ret = davinci_cfg_reg_list(da850_evm_nor_pins); 355 ret = davinci_cfg_reg_list(da850_evm_nor_pins);
356 if (ret) 356 if (ret)
357 pr_warning("da850_evm_init: nor mux setup failed: %d\n", 357 pr_warn("%s: NOR mux setup failed: %d\n",
358 ret); 358 __func__, ret);
359 359
360 da850_evm_init_nor(); 360 da850_evm_init_nor();
361 361
@@ -477,19 +477,19 @@ static int da850_evm_ui_expander_setup(struct i2c_client *client, unsigned gpio,
477 477
478 ret = gpio_request(sel_a, da850_evm_ui_exp[DA850_EVM_UI_EXP_SEL_A]); 478 ret = gpio_request(sel_a, da850_evm_ui_exp[DA850_EVM_UI_EXP_SEL_A]);
479 if (ret) { 479 if (ret) {
480 pr_warning("Cannot open UI expander pin %d\n", sel_a); 480 pr_warn("Cannot open UI expander pin %d\n", sel_a);
481 goto exp_setup_sela_fail; 481 goto exp_setup_sela_fail;
482 } 482 }
483 483
484 ret = gpio_request(sel_b, da850_evm_ui_exp[DA850_EVM_UI_EXP_SEL_B]); 484 ret = gpio_request(sel_b, da850_evm_ui_exp[DA850_EVM_UI_EXP_SEL_B]);
485 if (ret) { 485 if (ret) {
486 pr_warning("Cannot open UI expander pin %d\n", sel_b); 486 pr_warn("Cannot open UI expander pin %d\n", sel_b);
487 goto exp_setup_selb_fail; 487 goto exp_setup_selb_fail;
488 } 488 }
489 489
490 ret = gpio_request(sel_c, da850_evm_ui_exp[DA850_EVM_UI_EXP_SEL_C]); 490 ret = gpio_request(sel_c, da850_evm_ui_exp[DA850_EVM_UI_EXP_SEL_C]);
491 if (ret) { 491 if (ret) {
492 pr_warning("Cannot open UI expander pin %d\n", sel_c); 492 pr_warn("Cannot open UI expander pin %d\n", sel_c);
493 goto exp_setup_selc_fail; 493 goto exp_setup_selc_fail;
494 } 494 }
495 495
@@ -501,7 +501,7 @@ static int da850_evm_ui_expander_setup(struct i2c_client *client, unsigned gpio,
501 da850_evm_ui_keys_init(gpio); 501 da850_evm_ui_keys_init(gpio);
502 ret = platform_device_register(&da850_evm_ui_keys_device); 502 ret = platform_device_register(&da850_evm_ui_keys_device);
503 if (ret) { 503 if (ret) {
504 pr_warning("Could not register UI GPIO expander push-buttons"); 504 pr_warn("Could not register UI GPIO expander push-buttons");
505 goto exp_setup_keys_fail; 505 goto exp_setup_keys_fail;
506 } 506 }
507 507
@@ -690,14 +690,14 @@ static int da850_evm_bb_expander_setup(struct i2c_client *client,
690 da850_evm_bb_keys_init(gpio); 690 da850_evm_bb_keys_init(gpio);
691 ret = platform_device_register(&da850_evm_bb_keys_device); 691 ret = platform_device_register(&da850_evm_bb_keys_device);
692 if (ret) { 692 if (ret) {
693 pr_warning("Could not register baseboard GPIO expander keys"); 693 pr_warn("Could not register baseboard GPIO expander keys");
694 goto io_exp_setup_sw_fail; 694 goto io_exp_setup_sw_fail;
695 } 695 }
696 696
697 da850_evm_bb_leds_init(gpio); 697 da850_evm_bb_leds_init(gpio);
698 ret = platform_device_register(&da850_evm_bb_leds_device); 698 ret = platform_device_register(&da850_evm_bb_leds_device);
699 if (ret) { 699 if (ret) {
700 pr_warning("Could not register baseboard GPIO expander LEDS"); 700 pr_warn("Could not register baseboard GPIO expander LEDs");
701 goto io_exp_setup_leds_fail; 701 goto io_exp_setup_leds_fail;
702 } 702 }
703 703
@@ -1065,21 +1065,19 @@ static int __init da850_evm_config_emac(void)
1065 } 1065 }
1066 1066
1067 if (ret) 1067 if (ret)
1068 pr_warning("da850_evm_init: cpgmac/rmii mux setup failed: %d\n", 1068 pr_warn("%s: CPGMAC/RMII mux setup failed: %d\n",
1069 ret); 1069 __func__, ret);
1070 1070
1071 /* configure the CFGCHIP3 register for RMII or MII */ 1071 /* configure the CFGCHIP3 register for RMII or MII */
1072 __raw_writel(val, cfg_chip3_base); 1072 __raw_writel(val, cfg_chip3_base);
1073 1073
1074 ret = davinci_cfg_reg(DA850_GPIO2_6); 1074 ret = davinci_cfg_reg(DA850_GPIO2_6);
1075 if (ret) 1075 if (ret)
1076 pr_warning("da850_evm_init:GPIO(2,6) mux setup " 1076 pr_warn("%s:GPIO(2,6) mux setup failed\n", __func__);
1077 "failed\n");
1078 1077
1079 ret = gpio_request(DA850_MII_MDIO_CLKEN_PIN, "mdio_clk_en"); 1078 ret = gpio_request(DA850_MII_MDIO_CLKEN_PIN, "mdio_clk_en");
1080 if (ret) { 1079 if (ret) {
1081 pr_warning("Cannot open GPIO %d\n", 1080 pr_warn("Cannot open GPIO %d\n", DA850_MII_MDIO_CLKEN_PIN);
1082 DA850_MII_MDIO_CLKEN_PIN);
1083 return ret; 1081 return ret;
1084 } 1082 }
1085 1083
@@ -1090,8 +1088,7 @@ static int __init da850_evm_config_emac(void)
1090 1088
1091 ret = da8xx_register_emac(); 1089 ret = da8xx_register_emac();
1092 if (ret) 1090 if (ret)
1093 pr_warning("da850_evm_init: emac registration failed: %d\n", 1091 pr_warn("%s: EMAC registration failed: %d\n", __func__, ret);
1094 ret);
1095 1092
1096 return 0; 1093 return 0;
1097} 1094}
@@ -1443,57 +1440,53 @@ static __init void da850_evm_init(void)
1443 1440
1444 ret = pmic_tps65070_init(); 1441 ret = pmic_tps65070_init();
1445 if (ret) 1442 if (ret)
1446 pr_warning("da850_evm_init: TPS65070 PMIC init failed: %d\n", 1443 pr_warn("%s: TPS65070 PMIC init failed: %d\n", __func__, ret);
1447 ret);
1448 1444
1449 ret = da850_register_edma(da850_edma_rsv); 1445 ret = da850_register_edma(da850_edma_rsv);
1450 if (ret) 1446 if (ret)
1451 pr_warning("da850_evm_init: edma registration failed: %d\n", 1447 pr_warn("%s: EDMA registration failed: %d\n", __func__, ret);
1452 ret);
1453 1448
1454 ret = davinci_cfg_reg_list(da850_i2c0_pins); 1449 ret = davinci_cfg_reg_list(da850_i2c0_pins);
1455 if (ret) 1450 if (ret)
1456 pr_warning("da850_evm_init: i2c0 mux setup failed: %d\n", 1451 pr_warn("%s: I2C0 mux setup failed: %d\n", __func__, ret);
1457 ret);
1458 1452
1459 ret = da8xx_register_i2c(0, &da850_evm_i2c_0_pdata); 1453 ret = da8xx_register_i2c(0, &da850_evm_i2c_0_pdata);
1460 if (ret) 1454 if (ret)
1461 pr_warning("da850_evm_init: i2c0 registration failed: %d\n", 1455 pr_warn("%s: I2C0 registration failed: %d\n", __func__, ret);
1462 ret);
1463 1456
1464 1457
1465 ret = da8xx_register_watchdog(); 1458 ret = da8xx_register_watchdog();
1466 if (ret) 1459 if (ret)
1467 pr_warning("da830_evm_init: watchdog registration failed: %d\n", 1460 pr_warn("%s: watchdog registration failed: %d\n",
1468 ret); 1461 __func__, ret);
1469 1462
1470 if (HAS_MMC) { 1463 if (HAS_MMC) {
1471 ret = davinci_cfg_reg_list(da850_evm_mmcsd0_pins); 1464 ret = davinci_cfg_reg_list(da850_evm_mmcsd0_pins);
1472 if (ret) 1465 if (ret)
1473 pr_warning("da850_evm_init: mmcsd0 mux setup failed:" 1466 pr_warn("%s: MMCSD0 mux setup failed: %d\n",
1474 " %d\n", ret); 1467 __func__, ret);
1475 1468
1476 ret = gpio_request(DA850_MMCSD_CD_PIN, "MMC CD\n"); 1469 ret = gpio_request(DA850_MMCSD_CD_PIN, "MMC CD\n");
1477 if (ret) 1470 if (ret)
1478 pr_warning("da850_evm_init: can not open GPIO %d\n", 1471 pr_warn("%s: can not open GPIO %d\n",
1479 DA850_MMCSD_CD_PIN); 1472 __func__, DA850_MMCSD_CD_PIN);
1480 gpio_direction_input(DA850_MMCSD_CD_PIN); 1473 gpio_direction_input(DA850_MMCSD_CD_PIN);
1481 1474
1482 ret = gpio_request(DA850_MMCSD_WP_PIN, "MMC WP\n"); 1475 ret = gpio_request(DA850_MMCSD_WP_PIN, "MMC WP\n");
1483 if (ret) 1476 if (ret)
1484 pr_warning("da850_evm_init: can not open GPIO %d\n", 1477 pr_warn("%s: can not open GPIO %d\n",
1485 DA850_MMCSD_WP_PIN); 1478 __func__, DA850_MMCSD_WP_PIN);
1486 gpio_direction_input(DA850_MMCSD_WP_PIN); 1479 gpio_direction_input(DA850_MMCSD_WP_PIN);
1487 1480
1488 ret = da8xx_register_mmcsd0(&da850_mmc_config); 1481 ret = da8xx_register_mmcsd0(&da850_mmc_config);
1489 if (ret) 1482 if (ret)
1490 pr_warning("da850_evm_init: mmcsd0 registration failed:" 1483 pr_warn("%s: MMCSD0 registration failed: %d\n",
1491 " %d\n", ret); 1484 __func__, ret);
1492 1485
1493 ret = da850_wl12xx_init(); 1486 ret = da850_wl12xx_init();
1494 if (ret) 1487 if (ret)
1495 pr_warning("da850_evm_init: wl12xx initialization" 1488 pr_warn("%s: WL12xx initialization failed: %d\n",
1496 " failed: %d\n", ret); 1489 __func__, ret);
1497 } 1490 }
1498 1491
1499 davinci_serial_init(&da850_evm_uart_config); 1492 davinci_serial_init(&da850_evm_uart_config);
@@ -1511,16 +1504,14 @@ static __init void da850_evm_init(void)
1511 1504
1512 ret = davinci_cfg_reg_list(da850_evm_mcasp_pins); 1505 ret = davinci_cfg_reg_list(da850_evm_mcasp_pins);
1513 if (ret) 1506 if (ret)
1514 pr_warning("da850_evm_init: mcasp mux setup failed: %d\n", 1507 pr_warn("%s: McASP mux setup failed: %d\n", __func__, ret);
1515 ret);
1516 1508
1517 da850_evm_snd_data.sram_pool = sram_get_gen_pool(); 1509 da850_evm_snd_data.sram_pool = sram_get_gen_pool();
1518 da8xx_register_mcasp(0, &da850_evm_snd_data); 1510 da8xx_register_mcasp(0, &da850_evm_snd_data);
1519 1511
1520 ret = davinci_cfg_reg_list(da850_lcdcntl_pins); 1512 ret = davinci_cfg_reg_list(da850_lcdcntl_pins);
1521 if (ret) 1513 if (ret)
1522 pr_warning("da850_evm_init: lcdcntl mux setup failed: %d\n", 1514 pr_warn("%s: LCDC mux setup failed: %d\n", __func__, ret);
1523 ret);
1524 1515
1525 ret = da8xx_register_uio_pruss(); 1516 ret = da8xx_register_uio_pruss();
1526 if (ret) 1517 if (ret)
@@ -1530,38 +1521,33 @@ static __init void da850_evm_init(void)
1530 /* Handle board specific muxing for LCD here */ 1521 /* Handle board specific muxing for LCD here */
1531 ret = davinci_cfg_reg_list(da850_evm_lcdc_pins); 1522 ret = davinci_cfg_reg_list(da850_evm_lcdc_pins);
1532 if (ret) 1523 if (ret)
1533 pr_warning("da850_evm_init: evm specific lcd mux setup " 1524 pr_warn("%s: EVM specific LCD mux setup failed: %d\n",
1534 "failed: %d\n", ret); 1525 __func__, ret);
1535 1526
1536 ret = da850_lcd_hw_init(); 1527 ret = da850_lcd_hw_init();
1537 if (ret) 1528 if (ret)
1538 pr_warning("da850_evm_init: lcd initialization failed: %d\n", 1529 pr_warn("%s: LCD initialization failed: %d\n", __func__, ret);
1539 ret);
1540 1530
1541 sharp_lk043t1dg01_pdata.panel_power_ctrl = da850_panel_power_ctrl, 1531 sharp_lk043t1dg01_pdata.panel_power_ctrl = da850_panel_power_ctrl,
1542 ret = da8xx_register_lcdc(&sharp_lk043t1dg01_pdata); 1532 ret = da8xx_register_lcdc(&sharp_lk043t1dg01_pdata);
1543 if (ret) 1533 if (ret)
1544 pr_warning("da850_evm_init: lcdc registration failed: %d\n", 1534 pr_warn("%s: LCDC registration failed: %d\n", __func__, ret);
1545 ret);
1546 1535
1547 ret = da8xx_register_rtc(); 1536 ret = da8xx_register_rtc();
1548 if (ret) 1537 if (ret)
1549 pr_warning("da850_evm_init: rtc setup failed: %d\n", ret); 1538 pr_warn("%s: RTC setup failed: %d\n", __func__, ret);
1550 1539
1551 ret = da850_evm_init_cpufreq(); 1540 ret = da850_evm_init_cpufreq();
1552 if (ret) 1541 if (ret)
1553 pr_warning("da850_evm_init: cpufreq registration failed: %d\n", 1542 pr_warn("%s: cpufreq registration failed: %d\n", __func__, ret);
1554 ret);
1555 1543
1556 ret = da8xx_register_cpuidle(); 1544 ret = da8xx_register_cpuidle();
1557 if (ret) 1545 if (ret)
1558 pr_warning("da850_evm_init: cpuidle registration failed: %d\n", 1546 pr_warn("%s: cpuidle registration failed: %d\n", __func__, ret);
1559 ret);
1560 1547
1561 ret = da850_register_pm(&da850_pm_device); 1548 ret = da850_register_pm(&da850_pm_device);
1562 if (ret) 1549 if (ret)
1563 pr_warning("da850_evm_init: suspend registration failed: %d\n", 1550 pr_warn("%s: suspend registration failed: %d\n", __func__, ret);
1564 ret);
1565 1551
1566 da850_vpif_init(); 1552 da850_vpif_init();
1567 1553
@@ -1573,13 +1559,11 @@ static __init void da850_evm_init(void)
1573 1559
1574 ret = da8xx_register_spi_bus(1, ARRAY_SIZE(da850evm_spi_info)); 1560 ret = da8xx_register_spi_bus(1, ARRAY_SIZE(da850evm_spi_info));
1575 if (ret) 1561 if (ret)
1576 pr_warning("da850_evm_init: spi 1 registration failed: %d\n", 1562 pr_warn("%s: SPI 1 registration failed: %d\n", __func__, ret);
1577 ret);
1578 1563
1579 ret = da850_register_sata(DA850EVM_SATA_REFCLKPN_RATE); 1564 ret = da850_register_sata(DA850EVM_SATA_REFCLKPN_RATE);
1580 if (ret) 1565 if (ret)
1581 pr_warning("da850_evm_init: sata registration failed: %d\n", 1566 pr_warn("%s: SATA registration failed: %d\n", __func__, ret);
1582 ret);
1583 1567
1584 da850_evm_setup_mac_addr(); 1568 da850_evm_setup_mac_addr();
1585} 1569}
diff --git a/arch/arm/mach-davinci/board-omapl138-hawk.c b/arch/arm/mach-davinci/board-omapl138-hawk.c
index deb3922612b9..5a2bd44da54d 100644
--- a/arch/arm/mach-davinci/board-omapl138-hawk.c
+++ b/arch/arm/mach-davinci/board-omapl138-hawk.c
@@ -48,8 +48,7 @@ static __init void omapl138_hawk_config_emac(void)
48 val &= ~BIT(8); 48 val &= ~BIT(8);
49 ret = davinci_cfg_reg_list(omapl138_hawk_mii_pins); 49 ret = davinci_cfg_reg_list(omapl138_hawk_mii_pins);
50 if (ret) { 50 if (ret) {
51 pr_warning("%s: cpgmac/mii mux setup failed: %d\n", 51 pr_warn("%s: CPGMAC/MII mux setup failed: %d\n", __func__, ret);
52 __func__, ret);
53 return; 52 return;
54 } 53 }
55 54
@@ -61,8 +60,7 @@ static __init void omapl138_hawk_config_emac(void)
61 60
62 ret = da8xx_register_emac(); 61 ret = da8xx_register_emac();
63 if (ret) 62 if (ret)
64 pr_warning("%s: emac registration failed: %d\n", 63 pr_warn("%s: EMAC registration failed: %d\n", __func__, ret);
65 __func__, ret);
66} 64}
67 65
68/* 66/*
@@ -147,15 +145,14 @@ static __init void omapl138_hawk_mmc_init(void)
147 145
148 ret = davinci_cfg_reg_list(hawk_mmcsd0_pins); 146 ret = davinci_cfg_reg_list(hawk_mmcsd0_pins);
149 if (ret) { 147 if (ret) {
150 pr_warning("%s: MMC/SD0 mux setup failed: %d\n", 148 pr_warn("%s: MMC/SD0 mux setup failed: %d\n", __func__, ret);
151 __func__, ret);
152 return; 149 return;
153 } 150 }
154 151
155 ret = gpio_request_one(DA850_HAWK_MMCSD_CD_PIN, 152 ret = gpio_request_one(DA850_HAWK_MMCSD_CD_PIN,
156 GPIOF_DIR_IN, "MMC CD"); 153 GPIOF_DIR_IN, "MMC CD");
157 if (ret < 0) { 154 if (ret < 0) {
158 pr_warning("%s: can not open GPIO %d\n", 155 pr_warn("%s: can not open GPIO %d\n",
159 __func__, DA850_HAWK_MMCSD_CD_PIN); 156 __func__, DA850_HAWK_MMCSD_CD_PIN);
160 return; 157 return;
161 } 158 }
@@ -163,15 +160,14 @@ static __init void omapl138_hawk_mmc_init(void)
163 ret = gpio_request_one(DA850_HAWK_MMCSD_WP_PIN, 160 ret = gpio_request_one(DA850_HAWK_MMCSD_WP_PIN,
164 GPIOF_DIR_IN, "MMC WP"); 161 GPIOF_DIR_IN, "MMC WP");
165 if (ret < 0) { 162 if (ret < 0) {
166 pr_warning("%s: can not open GPIO %d\n", 163 pr_warn("%s: can not open GPIO %d\n",
167 __func__, DA850_HAWK_MMCSD_WP_PIN); 164 __func__, DA850_HAWK_MMCSD_WP_PIN);
168 goto mmc_setup_wp_fail; 165 goto mmc_setup_wp_fail;
169 } 166 }
170 167
171 ret = da8xx_register_mmcsd0(&da850_mmc_config); 168 ret = da8xx_register_mmcsd0(&da850_mmc_config);
172 if (ret) { 169 if (ret) {
173 pr_warning("%s: MMC/SD0 registration failed: %d\n", 170 pr_warn("%s: MMC/SD0 registration failed: %d\n", __func__, ret);
174 __func__, ret);
175 goto mmc_setup_mmcsd_fail; 171 goto mmc_setup_mmcsd_fail;
176 } 172 }
177 173
@@ -250,8 +246,7 @@ static __init void omapl138_hawk_usb_init(void)
250 246
251 ret = davinci_cfg_reg_list(da850_hawk_usb11_pins); 247 ret = davinci_cfg_reg_list(da850_hawk_usb11_pins);
252 if (ret) { 248 if (ret) {
253 pr_warning("%s: USB 1.1 PinMux setup failed: %d\n", 249 pr_warn("%s: USB 1.1 PinMux setup failed: %d\n", __func__, ret);
254 __func__, ret);
255 return; 250 return;
256 } 251 }
257 252
@@ -280,8 +275,7 @@ static __init void omapl138_hawk_usb_init(void)
280 275
281 ret = da8xx_register_usb11(&omapl138_hawk_usb11_pdata); 276 ret = da8xx_register_usb11(&omapl138_hawk_usb11_pdata);
282 if (ret) { 277 if (ret) {
283 pr_warning("%s: USB 1.1 registration failed: %d\n", 278 pr_warn("%s: USB 1.1 registration failed: %d\n", __func__, ret);
284 __func__, ret);
285 goto usb11_setup_fail; 279 goto usb11_setup_fail;
286 } 280 }
287 281
@@ -307,8 +301,7 @@ static __init void omapl138_hawk_init(void)
307 301
308 ret = da850_register_edma(da850_edma_rsv); 302 ret = da850_register_edma(da850_edma_rsv);
309 if (ret) 303 if (ret)
310 pr_warning("%s: EDMA registration failed: %d\n", 304 pr_warn("%s: EDMA registration failed: %d\n", __func__, ret);
311 __func__, ret);
312 305
313 omapl138_hawk_mmc_init(); 306 omapl138_hawk_mmc_init();
314 307
@@ -316,9 +309,8 @@ static __init void omapl138_hawk_init(void)
316 309
317 ret = da8xx_register_watchdog(); 310 ret = da8xx_register_watchdog();
318 if (ret) 311 if (ret)
319 pr_warning("omapl138_hawk_init: " 312 pr_warn("%s: watchdog registration failed: %d\n",
320 "watchdog registration failed: %d\n", 313 __func__, ret);
321 ret);
322} 314}
323 315
324#ifdef CONFIG_SERIAL_8250_CONSOLE 316#ifdef CONFIG_SERIAL_8250_CONSOLE
diff --git a/arch/arm/mach-omap1/board-nokia770.c b/arch/arm/mach-omap1/board-nokia770.c
index 4695ca717706..62a15e289c79 100644
--- a/arch/arm/mach-omap1/board-nokia770.c
+++ b/arch/arm/mach-omap1/board-nokia770.c
@@ -7,6 +7,7 @@
7 * it under the terms of the GNU General Public License version 2 as 7 * it under the terms of the GNU General Public License version 2 as
8 * published by the Free Software Foundation. 8 * published by the Free Software Foundation.
9 */ 9 */
10#include <linux/irq.h>
10#include <linux/gpio.h> 11#include <linux/gpio.h>
11#include <linux/kernel.h> 12#include <linux/kernel.h>
12#include <linux/init.h> 13#include <linux/init.h>
@@ -23,6 +24,8 @@
23 24
24#include <linux/platform_data/keypad-omap.h> 25#include <linux/platform_data/keypad-omap.h>
25#include <linux/platform_data/lcd-mipid.h> 26#include <linux/platform_data/lcd-mipid.h>
27#include <linux/platform_data/gpio-omap.h>
28#include <linux/platform_data/i2c-cbus-gpio.h>
26 29
27#include <asm/mach-types.h> 30#include <asm/mach-types.h>
28#include <asm/mach/arch.h> 31#include <asm/mach/arch.h>
@@ -212,6 +215,45 @@ static inline void nokia770_mmc_init(void)
212} 215}
213#endif 216#endif
214 217
218#if defined(CONFIG_I2C_CBUS_GPIO) || defined(CONFIG_I2C_CBUS_GPIO_MODULE)
219static struct i2c_cbus_platform_data nokia770_cbus_data = {
220 .clk_gpio = OMAP_MPUIO(9),
221 .dat_gpio = OMAP_MPUIO(10),
222 .sel_gpio = OMAP_MPUIO(11),
223};
224
225static struct platform_device nokia770_cbus_device = {
226 .name = "i2c-cbus-gpio",
227 .id = 2,
228 .dev = {
229 .platform_data = &nokia770_cbus_data,
230 },
231};
232
233static struct i2c_board_info nokia770_i2c_board_info_2[] __initdata = {
234 {
235 I2C_BOARD_INFO("retu-mfd", 0x01),
236 },
237};
238
239static void __init nokia770_cbus_init(void)
240{
241 const int retu_irq_gpio = 62;
242
243 if (gpio_request_one(retu_irq_gpio, GPIOF_IN, "Retu IRQ"))
244 return;
245 irq_set_irq_type(gpio_to_irq(retu_irq_gpio), IRQ_TYPE_EDGE_RISING);
246 nokia770_i2c_board_info_2[0].irq = gpio_to_irq(retu_irq_gpio);
247 i2c_register_board_info(2, nokia770_i2c_board_info_2,
248 ARRAY_SIZE(nokia770_i2c_board_info_2));
249 platform_device_register(&nokia770_cbus_device);
250}
251#else /* CONFIG_I2C_CBUS_GPIO */
252static void __init nokia770_cbus_init(void)
253{
254}
255#endif /* CONFIG_I2C_CBUS_GPIO */
256
215static void __init omap_nokia770_init(void) 257static void __init omap_nokia770_init(void)
216{ 258{
217 /* On Nokia 770, the SleepX signal is masked with an 259 /* On Nokia 770, the SleepX signal is masked with an
@@ -233,6 +275,7 @@ static void __init omap_nokia770_init(void)
233 mipid_dev_init(); 275 mipid_dev_init();
234 omap1_usb_init(&nokia770_usb_config); 276 omap1_usb_init(&nokia770_usb_config);
235 nokia770_mmc_init(); 277 nokia770_mmc_init();
278 nokia770_cbus_init();
236} 279}
237 280
238MACHINE_START(NOKIA770, "Nokia 770") 281MACHINE_START(NOKIA770, "Nokia 770")
diff --git a/arch/arm/mach-omap2/Kconfig b/arch/arm/mach-omap2/Kconfig
index c3c033f283a9..22ad24e9496b 100644
--- a/arch/arm/mach-omap2/Kconfig
+++ b/arch/arm/mach-omap2/Kconfig
@@ -188,12 +188,6 @@ config MACH_OMAP_H4
188 select OMAP_DEBUG_DEVICES 188 select OMAP_DEBUG_DEVICES
189 select OMAP_PACKAGE_ZAF 189 select OMAP_PACKAGE_ZAF
190 190
191config MACH_OMAP_APOLLON
192 bool "OMAP 2420 Apollon board"
193 depends on SOC_OMAP2420
194 default y
195 select OMAP_PACKAGE_ZAC
196
197config MACH_OMAP_2430SDP 191config MACH_OMAP_2430SDP
198 bool "OMAP 2430 SDP board" 192 bool "OMAP 2430 SDP board"
199 depends on SOC_OMAP2430 193 depends on SOC_OMAP2430
diff --git a/arch/arm/mach-omap2/Makefile b/arch/arm/mach-omap2/Makefile
index 65fb6fb38caf..ff528df70119 100644
--- a/arch/arm/mach-omap2/Makefile
+++ b/arch/arm/mach-omap2/Makefile
@@ -223,7 +223,6 @@ endif
223obj-$(CONFIG_MACH_OMAP_GENERIC) += board-generic.o 223obj-$(CONFIG_MACH_OMAP_GENERIC) += board-generic.o
224obj-$(CONFIG_MACH_OMAP_H4) += board-h4.o 224obj-$(CONFIG_MACH_OMAP_H4) += board-h4.o
225obj-$(CONFIG_MACH_OMAP_2430SDP) += board-2430sdp.o 225obj-$(CONFIG_MACH_OMAP_2430SDP) += board-2430sdp.o
226obj-$(CONFIG_MACH_OMAP_APOLLON) += board-apollon.o
227obj-$(CONFIG_MACH_OMAP3_BEAGLE) += board-omap3beagle.o 226obj-$(CONFIG_MACH_OMAP3_BEAGLE) += board-omap3beagle.o
228obj-$(CONFIG_MACH_DEVKIT8000) += board-devkit8000.o 227obj-$(CONFIG_MACH_DEVKIT8000) += board-devkit8000.o
229obj-$(CONFIG_MACH_OMAP_LDP) += board-ldp.o 228obj-$(CONFIG_MACH_OMAP_LDP) += board-ldp.o
diff --git a/arch/arm/mach-omap2/board-3430sdp.c b/arch/arm/mach-omap2/board-3430sdp.c
index 15a3914ab492..ce812decfaca 100644
--- a/arch/arm/mach-omap2/board-3430sdp.c
+++ b/arch/arm/mach-omap2/board-3430sdp.c
@@ -25,6 +25,7 @@
25#include <linux/gpio.h> 25#include <linux/gpio.h>
26#include <linux/mmc/host.h> 26#include <linux/mmc/host.h>
27#include <linux/platform_data/spi-omap2-mcspi.h> 27#include <linux/platform_data/spi-omap2-mcspi.h>
28#include <linux/platform_data/omap-twl4030.h>
28#include <linux/usb/phy.h> 29#include <linux/usb/phy.h>
29 30
30#include <asm/mach-types.h> 31#include <asm/mach-types.h>
@@ -210,6 +211,19 @@ static struct omap2_hsmmc_info mmc[] = {
210 {} /* Terminator */ 211 {} /* Terminator */
211}; 212};
212 213
214static struct omap_tw4030_pdata omap_twl4030_audio_data = {
215 .voice_connected = true,
216 .custom_routing = true,
217
218 .has_hs = OMAP_TWL4030_LEFT | OMAP_TWL4030_RIGHT,
219 .has_hf = OMAP_TWL4030_LEFT | OMAP_TWL4030_RIGHT,
220
221 .has_mainmic = true,
222 .has_submic = true,
223 .has_hsmic = true,
224 .has_linein = OMAP_TWL4030_LEFT | OMAP_TWL4030_RIGHT,
225};
226
213static int sdp3430_twl_gpio_setup(struct device *dev, 227static int sdp3430_twl_gpio_setup(struct device *dev,
214 unsigned gpio, unsigned ngpio) 228 unsigned gpio, unsigned ngpio)
215{ 229{
@@ -226,6 +240,9 @@ static int sdp3430_twl_gpio_setup(struct device *dev,
226 /* gpio + 15 is "sub_lcd_nRST" (output) */ 240 /* gpio + 15 is "sub_lcd_nRST" (output) */
227 gpio_request_one(gpio + 15, GPIOF_OUT_INIT_LOW, "sub_lcd_nRST"); 241 gpio_request_one(gpio + 15, GPIOF_OUT_INIT_LOW, "sub_lcd_nRST");
228 242
243 omap_twl4030_audio_data.jack_detect = gpio + 2;
244 omap_twl4030_audio_init("SDP3430", &omap_twl4030_audio_data);
245
229 return 0; 246 return 0;
230} 247}
231 248
@@ -383,6 +400,9 @@ static int __init omap3430_i2c_init(void)
383 sdp3430_twldata.vpll2->constraints.apply_uV = true; 400 sdp3430_twldata.vpll2->constraints.apply_uV = true;
384 sdp3430_twldata.vpll2->constraints.name = "VDVI"; 401 sdp3430_twldata.vpll2->constraints.name = "VDVI";
385 402
403 sdp3430_twldata.audio->codec->hs_extmute = 1;
404 sdp3430_twldata.audio->codec->hs_extmute_gpio = -EINVAL;
405
386 omap3_pmic_init("twl4030", &sdp3430_twldata); 406 omap3_pmic_init("twl4030", &sdp3430_twldata);
387 407
388 /* i2c2 on camera connector (for sensor control) and optional isp1301 */ 408 /* i2c2 on camera connector (for sensor control) and optional isp1301 */
diff --git a/arch/arm/mach-omap2/board-4430sdp.c b/arch/arm/mach-omap2/board-4430sdp.c
index 508e2752b7de..35f3ad0cb7c7 100644
--- a/arch/arm/mach-omap2/board-4430sdp.c
+++ b/arch/arm/mach-omap2/board-4430sdp.c
@@ -24,8 +24,10 @@
24#include <linux/gpio_keys.h> 24#include <linux/gpio_keys.h>
25#include <linux/regulator/machine.h> 25#include <linux/regulator/machine.h>
26#include <linux/regulator/fixed.h> 26#include <linux/regulator/fixed.h>
27#include <linux/pwm.h>
27#include <linux/leds.h> 28#include <linux/leds.h>
28#include <linux/leds_pwm.h> 29#include <linux/leds_pwm.h>
30#include <linux/pwm_backlight.h>
29#include <linux/irqchip/arm-gic.h> 31#include <linux/irqchip/arm-gic.h>
30#include <linux/platform_data/omap4-keypad.h> 32#include <linux/platform_data/omap4-keypad.h>
31#include <linux/usb/musb.h> 33#include <linux/usb/musb.h>
@@ -257,10 +259,20 @@ static struct gpio_led_platform_data sdp4430_led_data = {
257 .num_leds = ARRAY_SIZE(sdp4430_gpio_leds), 259 .num_leds = ARRAY_SIZE(sdp4430_gpio_leds),
258}; 260};
259 261
262static struct pwm_lookup sdp4430_pwm_lookup[] = {
263 PWM_LOOKUP("twl-pwm", 0, "leds_pwm", "omap4::keypad"),
264 PWM_LOOKUP("twl-pwm", 1, "pwm-backlight", NULL),
265 PWM_LOOKUP("twl-pwmled", 0, "leds_pwm", "omap4:green:chrg"),
266};
267
260static struct led_pwm sdp4430_pwm_leds[] = { 268static struct led_pwm sdp4430_pwm_leds[] = {
261 { 269 {
270 .name = "omap4::keypad",
271 .max_brightness = 127,
272 .pwm_period_ns = 7812500,
273 },
274 {
262 .name = "omap4:green:chrg", 275 .name = "omap4:green:chrg",
263 .pwm_id = 1,
264 .max_brightness = 255, 276 .max_brightness = 255,
265 .pwm_period_ns = 7812500, 277 .pwm_period_ns = 7812500,
266 }, 278 },
@@ -279,6 +291,20 @@ static struct platform_device sdp4430_leds_pwm = {
279 }, 291 },
280}; 292};
281 293
294static struct platform_pwm_backlight_data sdp4430_backlight_data = {
295 .max_brightness = 127,
296 .dft_brightness = 127,
297 .pwm_period_ns = 7812500,
298};
299
300static struct platform_device sdp4430_backlight_pwm = {
301 .name = "pwm-backlight",
302 .id = -1,
303 .dev = {
304 .platform_data = &sdp4430_backlight_data,
305 },
306};
307
282static int omap_prox_activate(struct device *dev) 308static int omap_prox_activate(struct device *dev)
283{ 309{
284 gpio_set_value(OMAP4_SFH7741_ENABLE_GPIO , 1); 310 gpio_set_value(OMAP4_SFH7741_ENABLE_GPIO , 1);
@@ -413,6 +439,7 @@ static struct platform_device *sdp4430_devices[] __initdata = {
413 &sdp4430_gpio_keys_device, 439 &sdp4430_gpio_keys_device,
414 &sdp4430_leds_gpio, 440 &sdp4430_leds_gpio,
415 &sdp4430_leds_pwm, 441 &sdp4430_leds_pwm,
442 &sdp4430_backlight_pwm,
416 &sdp4430_vbat, 443 &sdp4430_vbat,
417 &sdp4430_dmic_codec, 444 &sdp4430_dmic_codec,
418 &sdp4430_abe_audio, 445 &sdp4430_abe_audio,
@@ -709,6 +736,7 @@ static void __init omap_4430sdp_init(void)
709 ARRAY_SIZE(sdp4430_spi_board_info)); 736 ARRAY_SIZE(sdp4430_spi_board_info));
710 } 737 }
711 738
739 pwm_add_table(sdp4430_pwm_lookup, ARRAY_SIZE(sdp4430_pwm_lookup));
712 status = omap4_keyboard_init(&sdp4430_keypad_data, &keypad_data); 740 status = omap4_keyboard_init(&sdp4430_keypad_data, &keypad_data);
713 if (status) 741 if (status)
714 pr_err("Keypad initialization failed: %d\n", status); 742 pr_err("Keypad initialization failed: %d\n", status);
diff --git a/arch/arm/mach-omap2/board-am3517crane.c b/arch/arm/mach-omap2/board-am3517crane.c
index 52cc2c597314..7d3358b2e593 100644
--- a/arch/arm/mach-omap2/board-am3517crane.c
+++ b/arch/arm/mach-omap2/board-am3517crane.c
@@ -20,12 +20,18 @@
20#include <linux/kernel.h> 20#include <linux/kernel.h>
21#include <linux/init.h> 21#include <linux/init.h>
22#include <linux/gpio.h> 22#include <linux/gpio.h>
23#include <linux/mfd/tps65910.h>
24#include <linux/mtd/mtd.h>
25#include <linux/mtd/nand.h>
26#include <linux/mtd/partitions.h>
23 27
24#include <asm/mach-types.h> 28#include <asm/mach-types.h>
25#include <asm/mach/arch.h> 29#include <asm/mach/arch.h>
26#include <asm/mach/map.h> 30#include <asm/mach/map.h>
27 31
28#include "common.h" 32#include "common.h"
33#include "common-board-devices.h"
34#include "board-flash.h"
29 35
30#include "am35xx-emac.h" 36#include "am35xx-emac.h"
31#include "mux.h" 37#include "mux.h"
@@ -36,6 +42,7 @@
36 42
37#ifdef CONFIG_OMAP_MUX 43#ifdef CONFIG_OMAP_MUX
38static struct omap_board_mux board_mux[] __initdata = { 44static struct omap_board_mux board_mux[] __initdata = {
45 OMAP3_MUX(SYS_NIRQ, OMAP_MUX_MODE0 | OMAP_PIN_INPUT_PULLUP),
39 { .reg_offset = OMAP_MUX_TERMINATOR }, 46 { .reg_offset = OMAP_MUX_TERMINATOR },
40}; 47};
41#endif 48#endif
@@ -51,6 +58,54 @@ static struct usbhs_omap_platform_data usbhs_bdata __initdata = {
51 .reset_gpio_port[2] = -EINVAL 58 .reset_gpio_port[2] = -EINVAL
52}; 59};
53 60
61static struct mtd_partition crane_nand_partitions[] = {
62 {
63 .name = "X-Loader",
64 .offset = 0,
65 .size = 4 * NAND_BLOCK_SIZE,
66 .mask_flags = MTD_WRITEABLE,
67 },
68 {
69 .name = "U-Boot",
70 .offset = MTDPART_OFS_APPEND,
71 .size = 14 * NAND_BLOCK_SIZE,
72 .mask_flags = MTD_WRITEABLE,
73 },
74 {
75 .name = "U-Boot Env",
76 .offset = MTDPART_OFS_APPEND,
77 .size = 2 * NAND_BLOCK_SIZE,
78 },
79 {
80 .name = "Kernel",
81 .offset = MTDPART_OFS_APPEND,
82 .size = 40 * NAND_BLOCK_SIZE,
83 },
84 {
85 .name = "File System",
86 .offset = MTDPART_OFS_APPEND,
87 .size = MTDPART_SIZ_FULL,
88 },
89};
90
91static struct tps65910_board tps65910_pdata = {
92 .irq = 7 + OMAP_INTC_START,
93 .en_ck32k_xtal = true,
94};
95
96static struct i2c_board_info __initdata tps65910_board_info[] = {
97 {
98 I2C_BOARD_INFO("tps65910", 0x2d),
99 .platform_data = &tps65910_pdata,
100 },
101};
102
103static void __init am3517_crane_i2c_init(void)
104{
105 omap_register_i2c_bus(1, 2600, tps65910_board_info,
106 ARRAY_SIZE(tps65910_board_info));
107}
108
54static void __init am3517_crane_init(void) 109static void __init am3517_crane_init(void)
55{ 110{
56 int ret; 111 int ret;
@@ -58,6 +113,10 @@ static void __init am3517_crane_init(void)
58 omap3_mux_init(board_mux, OMAP_PACKAGE_CBB); 113 omap3_mux_init(board_mux, OMAP_PACKAGE_CBB);
59 omap_serial_init(); 114 omap_serial_init();
60 omap_sdrc_init(NULL, NULL); 115 omap_sdrc_init(NULL, NULL);
116 board_nand_init(crane_nand_partitions,
117 ARRAY_SIZE(crane_nand_partitions), 0,
118 NAND_BUSWIDTH_16, NULL);
119 am3517_crane_i2c_init();
61 120
62 /* Configure GPIO for EHCI port */ 121 /* Configure GPIO for EHCI port */
63 if (omap_mux_init_gpio(GPIO_USB_NRESET, OMAP_PIN_OUTPUT)) { 122 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
index 3a6ca74709ab..000000000000
--- a/arch/arm/mach-omap2/board-apollon.c
+++ /dev/null
@@ -1,342 +0,0 @@
1/*
2 * linux/arch/arm/mach-omap2/board-apollon.c
3 *
4 * Copyright (C) 2005,2006 Samsung Electronics
5 * Author: Kyungmin Park <kyungmin.park@samsung.com>
6 *
7 * Modified from mach-omap/omap2/board-h4.c
8 *
9 * Code for apollon OMAP2 board. Should work on many OMAP2 systems where
10 * the bootloader passes the board-specific data to the kernel.
11 * Do not put any board specific code to this file; create a new machine
12 * type if you need custom low-level initializations.
13 *
14 * This program is free software; you can redistribute it and/or modify
15 * it under the terms of the GNU General Public License version 2 as
16 * published by the Free Software Foundation.
17 */
18
19#include <linux/kernel.h>
20#include <linux/init.h>
21#include <linux/platform_device.h>
22#include <linux/mtd/mtd.h>
23#include <linux/mtd/partitions.h>
24#include <linux/mtd/onenand.h>
25#include <linux/delay.h>
26#include <linux/leds.h>
27#include <linux/err.h>
28#include <linux/clk.h>
29#include <linux/smc91x.h>
30#include <linux/gpio.h>
31#include <linux/platform_data/leds-omap.h>
32
33#include <asm/mach-types.h>
34#include <asm/mach/arch.h>
35#include <asm/mach/flash.h>
36
37#include "common.h"
38#include "gpmc.h"
39
40#include <video/omapdss.h>
41#include <video/omap-panel-generic-dpi.h>
42
43#include "mux.h"
44#include "control.h"
45
46/* LED & Switch macros */
47#define LED0_GPIO13 13
48#define LED1_GPIO14 14
49#define LED2_GPIO15 15
50#define SW_ENTER_GPIO16 16
51#define SW_UP_GPIO17 17
52#define SW_DOWN_GPIO58 58
53
54#define APOLLON_FLASH_CS 0
55#define APOLLON_ETH_CS 1
56#define APOLLON_ETHR_GPIO_IRQ 74
57
58static struct mtd_partition apollon_partitions[] = {
59 {
60 .name = "X-Loader + U-Boot",
61 .offset = 0,
62 .size = SZ_128K,
63 .mask_flags = MTD_WRITEABLE,
64 },
65 {
66 .name = "params",
67 .offset = MTDPART_OFS_APPEND,
68 .size = SZ_128K,
69 },
70 {
71 .name = "kernel",
72 .offset = MTDPART_OFS_APPEND,
73 .size = SZ_2M,
74 },
75 {
76 .name = "rootfs",
77 .offset = MTDPART_OFS_APPEND,
78 .size = SZ_16M,
79 },
80 {
81 .name = "filesystem00",
82 .offset = MTDPART_OFS_APPEND,
83 .size = SZ_32M,
84 },
85 {
86 .name = "filesystem01",
87 .offset = MTDPART_OFS_APPEND,
88 .size = MTDPART_SIZ_FULL,
89 },
90};
91
92static struct onenand_platform_data apollon_flash_data = {
93 .parts = apollon_partitions,
94 .nr_parts = ARRAY_SIZE(apollon_partitions),
95};
96
97static struct resource apollon_flash_resource[] = {
98 [0] = {
99 .flags = IORESOURCE_MEM,
100 },
101};
102
103static struct platform_device apollon_onenand_device = {
104 .name = "onenand-flash",
105 .id = -1,
106 .dev = {
107 .platform_data = &apollon_flash_data,
108 },
109 .num_resources = ARRAY_SIZE(apollon_flash_resource),
110 .resource = apollon_flash_resource,
111};
112
113static void __init apollon_flash_init(void)
114{
115 unsigned long base;
116
117 if (gpmc_cs_request(APOLLON_FLASH_CS, SZ_128K, &base) < 0) {
118 printk(KERN_ERR "Cannot request OneNAND GPMC CS\n");
119 return;
120 }
121 apollon_flash_resource[0].start = base;
122 apollon_flash_resource[0].end = base + SZ_128K - 1;
123}
124
125static struct smc91x_platdata appolon_smc91x_info = {
126 .flags = SMC91X_USE_16BIT | SMC91X_NOWAIT,
127 .leda = RPC_LED_100_10,
128 .ledb = RPC_LED_TX_RX,
129};
130
131static struct resource apollon_smc91x_resources[] = {
132 [0] = {
133 .flags = IORESOURCE_MEM,
134 },
135 [1] = {
136 .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHEDGE,
137 },
138};
139
140static struct platform_device apollon_smc91x_device = {
141 .name = "smc91x",
142 .id = -1,
143 .dev = {
144 .platform_data = &appolon_smc91x_info,
145 },
146 .num_resources = ARRAY_SIZE(apollon_smc91x_resources),
147 .resource = apollon_smc91x_resources,
148};
149
150static struct omap_led_config apollon_led_config[] = {
151 {
152 .cdev = {
153 .name = "apollon:led0",
154 },
155 .gpio = LED0_GPIO13,
156 },
157 {
158 .cdev = {
159 .name = "apollon:led1",
160 },
161 .gpio = LED1_GPIO14,
162 },
163 {
164 .cdev = {
165 .name = "apollon:led2",
166 },
167 .gpio = LED2_GPIO15,
168 },
169};
170
171static struct omap_led_platform_data apollon_led_data = {
172 .nr_leds = ARRAY_SIZE(apollon_led_config),
173 .leds = apollon_led_config,
174};
175
176static struct platform_device apollon_led_device = {
177 .name = "omap-led",
178 .id = -1,
179 .dev = {
180 .platform_data = &apollon_led_data,
181 },
182};
183
184static struct platform_device *apollon_devices[] __initdata = {
185 &apollon_onenand_device,
186 &apollon_smc91x_device,
187 &apollon_led_device,
188};
189
190static inline void __init apollon_init_smc91x(void)
191{
192 unsigned long base;
193
194 unsigned int rate;
195 struct clk *gpmc_fck;
196 int eth_cs;
197 int err;
198
199 gpmc_fck = clk_get(NULL, "gpmc_fck"); /* Always on ENABLE_ON_INIT */
200 if (IS_ERR(gpmc_fck)) {
201 WARN_ON(1);
202 return;
203 }
204
205 clk_prepare_enable(gpmc_fck);
206 rate = clk_get_rate(gpmc_fck);
207
208 eth_cs = APOLLON_ETH_CS;
209
210 /* Make sure CS1 timings are correct */
211 gpmc_cs_write_reg(eth_cs, GPMC_CS_CONFIG1, 0x00011200);
212
213 if (rate >= 160000000) {
214 gpmc_cs_write_reg(eth_cs, GPMC_CS_CONFIG2, 0x001f1f01);
215 gpmc_cs_write_reg(eth_cs, GPMC_CS_CONFIG3, 0x00080803);
216 gpmc_cs_write_reg(eth_cs, GPMC_CS_CONFIG4, 0x1c0b1c0a);
217 gpmc_cs_write_reg(eth_cs, GPMC_CS_CONFIG5, 0x041f1F1F);
218 gpmc_cs_write_reg(eth_cs, GPMC_CS_CONFIG6, 0x000004C4);
219 } else if (rate >= 130000000) {
220 gpmc_cs_write_reg(eth_cs, GPMC_CS_CONFIG2, 0x001f1f00);
221 gpmc_cs_write_reg(eth_cs, GPMC_CS_CONFIG3, 0x00080802);
222 gpmc_cs_write_reg(eth_cs, GPMC_CS_CONFIG4, 0x1C091C09);
223 gpmc_cs_write_reg(eth_cs, GPMC_CS_CONFIG5, 0x041f1F1F);
224 gpmc_cs_write_reg(eth_cs, GPMC_CS_CONFIG6, 0x000004C4);
225 } else {/* rate = 100000000 */
226 gpmc_cs_write_reg(eth_cs, GPMC_CS_CONFIG2, 0x001f1f00);
227 gpmc_cs_write_reg(eth_cs, GPMC_CS_CONFIG3, 0x00080802);
228 gpmc_cs_write_reg(eth_cs, GPMC_CS_CONFIG4, 0x1C091C09);
229 gpmc_cs_write_reg(eth_cs, GPMC_CS_CONFIG5, 0x031A1F1F);
230 gpmc_cs_write_reg(eth_cs, GPMC_CS_CONFIG6, 0x000003C2);
231 }
232
233 if (gpmc_cs_request(APOLLON_ETH_CS, SZ_16M, &base) < 0) {
234 printk(KERN_ERR "Failed to request GPMC CS for smc91x\n");
235 goto out;
236 }
237 apollon_smc91x_resources[0].start = base + 0x300;
238 apollon_smc91x_resources[0].end = base + 0x30f;
239 udelay(100);
240
241 omap_mux_init_gpio(APOLLON_ETHR_GPIO_IRQ, 0);
242 err = gpio_request_one(APOLLON_ETHR_GPIO_IRQ, GPIOF_IN, "SMC91x irq");
243 if (err) {
244 printk(KERN_ERR "Failed to request GPIO%d for smc91x IRQ\n",
245 APOLLON_ETHR_GPIO_IRQ);
246 gpmc_cs_free(APOLLON_ETH_CS);
247 }
248out:
249 clk_disable_unprepare(gpmc_fck);
250 clk_put(gpmc_fck);
251}
252
253static struct panel_generic_dpi_data apollon_panel_data = {
254 .name = "apollon",
255};
256
257static struct omap_dss_device apollon_lcd_device = {
258 .name = "lcd",
259 .driver_name = "generic_dpi_panel",
260 .type = OMAP_DISPLAY_TYPE_DPI,
261 .phy.dpi.data_lines = 18,
262 .data = &apollon_panel_data,
263};
264
265static struct omap_dss_device *apollon_dss_devices[] = {
266 &apollon_lcd_device,
267};
268
269static struct omap_dss_board_info apollon_dss_data = {
270 .num_devices = ARRAY_SIZE(apollon_dss_devices),
271 .devices = apollon_dss_devices,
272 .default_device = &apollon_lcd_device,
273};
274
275static struct gpio apollon_gpio_leds[] __initdata = {
276 { LED0_GPIO13, GPIOF_OUT_INIT_LOW, "LED0" }, /* LED0 - AA10 */
277 { LED1_GPIO14, GPIOF_OUT_INIT_LOW, "LED1" }, /* LED1 - AA6 */
278 { LED2_GPIO15, GPIOF_OUT_INIT_LOW, "LED2" }, /* LED2 - AA4 */
279};
280
281static void __init apollon_led_init(void)
282{
283 omap_mux_init_signal("vlynq_clk.gpio_13", 0);
284 omap_mux_init_signal("vlynq_rx1.gpio_14", 0);
285 omap_mux_init_signal("vlynq_rx0.gpio_15", 0);
286
287 gpio_request_array(apollon_gpio_leds, ARRAY_SIZE(apollon_gpio_leds));
288}
289
290#ifdef CONFIG_OMAP_MUX
291static struct omap_board_mux board_mux[] __initdata = {
292 { .reg_offset = OMAP_MUX_TERMINATOR },
293};
294#endif
295
296static void __init omap_apollon_init(void)
297{
298 u32 v;
299
300 omap2420_mux_init(board_mux, OMAP_PACKAGE_ZAC);
301
302 apollon_init_smc91x();
303 apollon_led_init();
304 apollon_flash_init();
305
306 /* REVISIT: where's the correct place */
307 omap_mux_init_signal("sys_nirq", OMAP_PULL_ENA | OMAP_PULL_UP);
308
309 /* LCD PWR_EN */
310 omap_mux_init_signal("mcbsp2_dr.gpio_11", OMAP_PULL_ENA | OMAP_PULL_UP);
311
312 /* Use Internal loop-back in MMC/SDIO Module Input Clock selection */
313 v = omap_ctrl_readl(OMAP2_CONTROL_DEVCONF0);
314 v |= (1 << 24);
315 omap_ctrl_writel(v, OMAP2_CONTROL_DEVCONF0);
316
317 /*
318 * Make sure the serial ports are muxed on at this point.
319 * You have to mux them off in device drivers later on
320 * if not needed.
321 */
322 apollon_smc91x_resources[1].start = gpio_to_irq(APOLLON_ETHR_GPIO_IRQ);
323 apollon_smc91x_resources[1].end = gpio_to_irq(APOLLON_ETHR_GPIO_IRQ);
324 platform_add_devices(apollon_devices, ARRAY_SIZE(apollon_devices));
325 omap_serial_init();
326 omap_sdrc_init(NULL, NULL);
327 omap_display_init(&apollon_dss_data);
328}
329
330MACHINE_START(OMAP_APOLLON, "OMAP24xx Apollon")
331 /* Maintainer: Kyungmin Park <kyungmin.park@samsung.com> */
332 .atag_offset = 0x100,
333 .reserve = omap_reserve,
334 .map_io = omap242x_map_io,
335 .init_early = omap2420_init_early,
336 .init_irq = omap2_init_irq,
337 .handle_irq = omap2_intc_handle_irq,
338 .init_machine = omap_apollon_init,
339 .init_late = omap2420_init_late,
340 .init_time = omap2_sync32k_timer_init,
341 .restart = omap2xxx_restart,
342MACHINE_END
diff --git a/arch/arm/mach-omap2/board-cm-t35.c b/arch/arm/mach-omap2/board-cm-t35.c
index 10054e3c3482..af2bb219e214 100644
--- a/arch/arm/mach-omap2/board-cm-t35.c
+++ b/arch/arm/mach-omap2/board-cm-t35.c
@@ -723,7 +723,7 @@ static void __init cm_t3x_common_init(void)
723 cm_t35_init_ethernet(); 723 cm_t35_init_ethernet();
724 cm_t35_init_led(); 724 cm_t35_init_led();
725 cm_t35_init_display(); 725 cm_t35_init_display();
726 omap_twl4030_audio_init("cm-t3x"); 726 omap_twl4030_audio_init("cm-t3x", NULL);
727 727
728 usb_bind_phy("musb-hdrc.0.auto", 0, "twl4030_usb"); 728 usb_bind_phy("musb-hdrc.0.auto", 0, "twl4030_usb");
729 usb_musb_init(NULL); 729 usb_musb_init(NULL);
diff --git a/arch/arm/mach-omap2/board-cm-t3517.c b/arch/arm/mach-omap2/board-cm-t3517.c
index 5e54f565a294..a66da808cc4a 100644
--- a/arch/arm/mach-omap2/board-cm-t3517.c
+++ b/arch/arm/mach-omap2/board-cm-t3517.c
@@ -32,6 +32,7 @@
32#include <linux/mtd/mtd.h> 32#include <linux/mtd/mtd.h>
33#include <linux/mtd/nand.h> 33#include <linux/mtd/nand.h>
34#include <linux/mtd/partitions.h> 34#include <linux/mtd/partitions.h>
35#include <linux/mmc/host.h>
35#include <linux/can/platform/ti_hecc.h> 36#include <linux/can/platform/ti_hecc.h>
36 37
37#include <asm/mach-types.h> 38#include <asm/mach-types.h>
@@ -46,6 +47,7 @@
46 47
47#include "mux.h" 48#include "mux.h"
48#include "control.h" 49#include "control.h"
50#include "hsmmc.h"
49#include "common-board-devices.h" 51#include "common-board-devices.h"
50#include "am35xx-emac.h" 52#include "am35xx-emac.h"
51#include "gpmc-nand.h" 53#include "gpmc-nand.h"
@@ -121,6 +123,26 @@ static void cm_t3517_init_hecc(void)
121static inline void cm_t3517_init_hecc(void) {} 123static inline void cm_t3517_init_hecc(void) {}
122#endif 124#endif
123 125
126#if defined(CONFIG_MMC_OMAP_HS) || defined(CONFIG_MMC_OMAP_HS_MODULE)
127static struct omap2_hsmmc_info cm_t3517_mmc[] = {
128 {
129 .mmc = 1,
130 .caps = MMC_CAP_4_BIT_DATA,
131 .gpio_cd = 144,
132 .gpio_wp = 59,
133 },
134 {
135 .mmc = 2,
136 .caps = MMC_CAP_4_BIT_DATA,
137 .gpio_cd = -EINVAL,
138 .gpio_wp = -EINVAL,
139 },
140 {} /* Terminator */
141};
142#else
143#define cm_t3517_mmc NULL
144#endif
145
124#if defined(CONFIG_RTC_DRV_V3020) || defined(CONFIG_RTC_DRV_V3020_MODULE) 146#if defined(CONFIG_RTC_DRV_V3020) || defined(CONFIG_RTC_DRV_V3020_MODULE)
125#define RTC_IO_GPIO (153) 147#define RTC_IO_GPIO (153)
126#define RTC_WR_GPIO (154) 148#define RTC_WR_GPIO (154)
@@ -271,6 +293,10 @@ static struct omap_board_mux board_mux[] __initdata = {
271 /* CM-T3517 USB HUB nRESET */ 293 /* CM-T3517 USB HUB nRESET */
272 OMAP3_MUX(MCBSP4_CLKX, OMAP_MUX_MODE4 | OMAP_PIN_OUTPUT), 294 OMAP3_MUX(MCBSP4_CLKX, OMAP_MUX_MODE4 | OMAP_PIN_OUTPUT),
273 295
296 /* CD - GPIO144 and WP - GPIO59 for MMC1 - SB-T35 */
297 OMAP3_MUX(UART2_CTS, OMAP_MUX_MODE4 | OMAP_PIN_INPUT_PULLUP),
298 OMAP3_MUX(GPMC_CLK, OMAP_MUX_MODE4 | OMAP_PIN_INPUT_PULLUP),
299
274 { .reg_offset = OMAP_MUX_TERMINATOR }, 300 { .reg_offset = OMAP_MUX_TERMINATOR },
275}; 301};
276#endif 302#endif
@@ -286,6 +312,7 @@ static void __init cm_t3517_init(void)
286 cm_t3517_init_usbh(); 312 cm_t3517_init_usbh();
287 cm_t3517_init_hecc(); 313 cm_t3517_init_hecc();
288 am35xx_emac_init(AM35XX_DEFAULT_MDIO_FREQUENCY, 1); 314 am35xx_emac_init(AM35XX_DEFAULT_MDIO_FREQUENCY, 1);
315 omap_hsmmc_init(cm_t3517_mmc);
289} 316}
290 317
291MACHINE_START(CM_T3517, "Compulab CM-T3517") 318MACHINE_START(CM_T3517, "Compulab CM-T3517")
diff --git a/arch/arm/mach-omap2/board-devkit8000.c b/arch/arm/mach-omap2/board-devkit8000.c
index 4dadb0b7b808..53056c3b0836 100644
--- a/arch/arm/mach-omap2/board-devkit8000.c
+++ b/arch/arm/mach-omap2/board-devkit8000.c
@@ -629,7 +629,7 @@ static void __init devkit8000_init(void)
629 board_nand_init(devkit8000_nand_partitions, 629 board_nand_init(devkit8000_nand_partitions,
630 ARRAY_SIZE(devkit8000_nand_partitions), NAND_CS, 630 ARRAY_SIZE(devkit8000_nand_partitions), NAND_CS,
631 NAND_BUSWIDTH_16, NULL); 631 NAND_BUSWIDTH_16, NULL);
632 omap_twl4030_audio_init("omap3beagle"); 632 omap_twl4030_audio_init("omap3beagle", NULL);
633 633
634 /* Ensure SDRC pins are mux'd for self-refresh */ 634 /* Ensure SDRC pins are mux'd for self-refresh */
635 omap_mux_init_signal("sdrc_cke0", OMAP_PIN_OUTPUT); 635 omap_mux_init_signal("sdrc_cke0", OMAP_PIN_OUTPUT);
diff --git a/arch/arm/mach-omap2/board-igep0020.c b/arch/arm/mach-omap2/board-igep0020.c
index c10738a067cd..bf92678a01d0 100644
--- a/arch/arm/mach-omap2/board-igep0020.c
+++ b/arch/arm/mach-omap2/board-igep0020.c
@@ -301,20 +301,20 @@ static struct omap2_hsmmc_info mmc[] = {
301 301
302static struct gpio_led igep_gpio_leds[] = { 302static struct gpio_led igep_gpio_leds[] = {
303 [0] = { 303 [0] = {
304 .name = "gpio-led:red:d0", 304 .name = "omap3:red:user0",
305 .default_trigger = "default-off" 305 .default_state = 0,
306 }, 306 },
307 [1] = { 307 [1] = {
308 .name = "gpio-led:green:d0", 308 .name = "omap3:green:boot",
309 .default_trigger = "default-off", 309 .default_state = 1,
310 }, 310 },
311 [2] = { 311 [2] = {
312 .name = "gpio-led:red:d1", 312 .name = "omap3:red:user1",
313 .default_trigger = "default-off", 313 .default_state = 0,
314 }, 314 },
315 [3] = { 315 [3] = {
316 .name = "gpio-led:green:d1", 316 .name = "omap3:green:user1",
317 .default_trigger = "heartbeat", 317 .default_state = 0,
318 .gpio = -EINVAL, /* gets replaced */ 318 .gpio = -EINVAL, /* gets replaced */
319 .active_low = 1, 319 .active_low = 1,
320 }, 320 },
@@ -631,7 +631,7 @@ static void __init igep_init(void)
631 631
632 igep_flash_init(); 632 igep_flash_init();
633 igep_leds_init(); 633 igep_leds_init();
634 omap_twl4030_audio_init("igep2"); 634 omap_twl4030_audio_init("igep2", NULL);
635 635
636 /* 636 /*
637 * WLAN-BT combo module from MuRata which has a Marvell WLAN 637 * WLAN-BT combo module from MuRata which has a Marvell WLAN
diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c
index 70bc1fc808c8..c3558f93d42c 100644
--- a/arch/arm/mach-omap2/board-omap3beagle.c
+++ b/arch/arm/mach-omap2/board-omap3beagle.c
@@ -20,6 +20,8 @@
20#include <linux/clk.h> 20#include <linux/clk.h>
21#include <linux/io.h> 21#include <linux/io.h>
22#include <linux/leds.h> 22#include <linux/leds.h>
23#include <linux/pwm.h>
24#include <linux/leds_pwm.h>
23#include <linux/gpio.h> 25#include <linux/gpio.h>
24#include <linux/input.h> 26#include <linux/input.h>
25#include <linux/gpio_keys.h> 27#include <linux/gpio_keys.h>
@@ -56,6 +58,32 @@
56 58
57#define NAND_CS 0 59#define NAND_CS 0
58 60
61static struct pwm_lookup pwm_lookup[] = {
62 /* LEDB -> PMU_STAT */
63 PWM_LOOKUP("twl-pwmled", 1, "leds_pwm", "beagleboard::pmu_stat"),
64};
65
66static struct led_pwm pwm_leds[] = {
67 {
68 .name = "beagleboard::pmu_stat",
69 .max_brightness = 127,
70 .pwm_period_ns = 7812500,
71 },
72};
73
74static struct led_pwm_platform_data pwm_data = {
75 .num_leds = ARRAY_SIZE(pwm_leds),
76 .leds = pwm_leds,
77};
78
79static struct platform_device leds_pwm = {
80 .name = "leds_pwm",
81 .id = -1,
82 .dev = {
83 .platform_data = &pwm_data,
84 },
85};
86
59/* 87/*
60 * OMAP3 Beagle revision 88 * OMAP3 Beagle revision
61 * Run time detection of Beagle revision is done by reading GPIO. 89 * Run time detection of Beagle revision is done by reading GPIO.
@@ -293,9 +321,6 @@ static int beagle_twl_gpio_setup(struct device *dev,
293 gpio_request_one(gpio + TWL4030_GPIO_MAX, beagle_config.usb_pwr_level, 321 gpio_request_one(gpio + TWL4030_GPIO_MAX, beagle_config.usb_pwr_level,
294 "nEN_USB_PWR"); 322 "nEN_USB_PWR");
295 323
296 /* TWL4030_GPIO_MAX + 1 == ledB, PMU_STAT (out, active low LED) */
297 gpio_leds[2].gpio = gpio + TWL4030_GPIO_MAX + 1;
298
299 return 0; 324 return 0;
300} 325}
301 326
@@ -377,11 +402,6 @@ static struct gpio_led gpio_leds[] = {
377 .default_trigger = "mmc0", 402 .default_trigger = "mmc0",
378 .gpio = 149, 403 .gpio = 149,
379 }, 404 },
380 {
381 .name = "beagleboard::pmu_stat",
382 .gpio = -EINVAL, /* gets replaced */
383 .active_low = true,
384 },
385}; 405};
386 406
387static struct gpio_led_platform_data gpio_led_info = { 407static struct gpio_led_platform_data gpio_led_info = {
@@ -429,6 +449,7 @@ static struct platform_device *omap3_beagle_devices[] __initdata = {
429 &leds_gpio, 449 &leds_gpio,
430 &keys_gpio, 450 &keys_gpio,
431 &madc_hwmon, 451 &madc_hwmon,
452 &leds_pwm,
432}; 453};
433 454
434static struct usbhs_omap_platform_data usbhs_bdata __initdata = { 455static struct usbhs_omap_platform_data usbhs_bdata __initdata = {
@@ -526,7 +547,7 @@ static void __init omap3_beagle_init(void)
526 board_nand_init(omap3beagle_nand_partitions, 547 board_nand_init(omap3beagle_nand_partitions,
527 ARRAY_SIZE(omap3beagle_nand_partitions), NAND_CS, 548 ARRAY_SIZE(omap3beagle_nand_partitions), NAND_CS,
528 NAND_BUSWIDTH_16, NULL); 549 NAND_BUSWIDTH_16, NULL);
529 omap_twl4030_audio_init("omap3beagle"); 550 omap_twl4030_audio_init("omap3beagle", NULL);
530 551
531 /* Ensure msecure is mux'd to be able to set the RTC. */ 552 /* Ensure msecure is mux'd to be able to set the RTC. */
532 omap_mux_init_signal("sys_drm_msecure", OMAP_PIN_OFF_OUTPUT_HIGH); 553 omap_mux_init_signal("sys_drm_msecure", OMAP_PIN_OFF_OUTPUT_HIGH);
@@ -534,6 +555,8 @@ static void __init omap3_beagle_init(void)
534 /* Ensure SDRC pins are mux'd for self-refresh */ 555 /* Ensure SDRC pins are mux'd for self-refresh */
535 omap_mux_init_signal("sdrc_cke0", OMAP_PIN_OUTPUT); 556 omap_mux_init_signal("sdrc_cke0", OMAP_PIN_OUTPUT);
536 omap_mux_init_signal("sdrc_cke1", OMAP_PIN_OUTPUT); 557 omap_mux_init_signal("sdrc_cke1", OMAP_PIN_OUTPUT);
558
559 pwm_add_table(pwm_lookup, ARRAY_SIZE(pwm_lookup));
537} 560}
538 561
539MACHINE_START(OMAP3_BEAGLE, "OMAP3 Beagle Board") 562MACHINE_START(OMAP3_BEAGLE, "OMAP3 Beagle Board")
diff --git a/arch/arm/mach-omap2/board-omap3evm.c b/arch/arm/mach-omap2/board-omap3evm.c
index 8258a78c3dfb..48789e0bb915 100644
--- a/arch/arm/mach-omap2/board-omap3evm.c
+++ b/arch/arm/mach-omap2/board-omap3evm.c
@@ -746,7 +746,7 @@ static void __init omap3_evm_init(void)
746 omap3evm_init_smsc911x(); 746 omap3evm_init_smsc911x();
747 omap3_evm_display_init(); 747 omap3_evm_display_init();
748 omap3_evm_wl12xx_init(); 748 omap3_evm_wl12xx_init();
749 omap_twl4030_audio_init("omap3evm"); 749 omap_twl4030_audio_init("omap3evm", NULL);
750} 750}
751 751
752MACHINE_START(OMAP3EVM, "OMAP3 EVM") 752MACHINE_START(OMAP3EVM, "OMAP3 EVM")
diff --git a/arch/arm/mach-omap2/board-overo.c b/arch/arm/mach-omap2/board-overo.c
index 1bcf39671c35..86bab51154ee 100644
--- a/arch/arm/mach-omap2/board-overo.c
+++ b/arch/arm/mach-omap2/board-overo.c
@@ -508,7 +508,7 @@ static void __init overo_init(void)
508 overo_display_init(); 508 overo_display_init();
509 overo_init_led(); 509 overo_init_led();
510 overo_init_keys(); 510 overo_init_keys();
511 omap_twl4030_audio_init("overo"); 511 omap_twl4030_audio_init("overo", NULL);
512 512
513 /* Ensure SDRC pins are mux'd for self-refresh */ 513 /* Ensure SDRC pins are mux'd for self-refresh */
514 omap_mux_init_signal("sdrc_cke0", OMAP_PIN_OUTPUT); 514 omap_mux_init_signal("sdrc_cke0", OMAP_PIN_OUTPUT);
diff --git a/arch/arm/mach-omap2/board-rx51-peripherals.c b/arch/arm/mach-omap2/board-rx51-peripherals.c
index f3d075baebb6..c26d441ca4fb 100644
--- a/arch/arm/mach-omap2/board-rx51-peripherals.c
+++ b/arch/arm/mach-omap2/board-rx51-peripherals.c
@@ -162,30 +162,39 @@ static struct tsl2563_platform_data rx51_tsl2563_platform_data = {
162#if defined(CONFIG_LEDS_LP5523) || defined(CONFIG_LEDS_LP5523_MODULE) 162#if defined(CONFIG_LEDS_LP5523) || defined(CONFIG_LEDS_LP5523_MODULE)
163static struct lp5523_led_config rx51_lp5523_led_config[] = { 163static struct lp5523_led_config rx51_lp5523_led_config[] = {
164 { 164 {
165 .name = "lp5523:kb1",
165 .chan_nr = 0, 166 .chan_nr = 0,
166 .led_current = 50, 167 .led_current = 50,
167 }, { 168 }, {
169 .name = "lp5523:kb2",
168 .chan_nr = 1, 170 .chan_nr = 1,
169 .led_current = 50, 171 .led_current = 50,
170 }, { 172 }, {
173 .name = "lp5523:kb3",
171 .chan_nr = 2, 174 .chan_nr = 2,
172 .led_current = 50, 175 .led_current = 50,
173 }, { 176 }, {
177 .name = "lp5523:kb4",
174 .chan_nr = 3, 178 .chan_nr = 3,
175 .led_current = 50, 179 .led_current = 50,
176 }, { 180 }, {
181 .name = "lp5523:b",
177 .chan_nr = 4, 182 .chan_nr = 4,
178 .led_current = 50, 183 .led_current = 50,
179 }, { 184 }, {
185 .name = "lp5523:g",
180 .chan_nr = 5, 186 .chan_nr = 5,
181 .led_current = 50, 187 .led_current = 50,
182 }, { 188 }, {
189 .name = "lp5523:r",
183 .chan_nr = 6, 190 .chan_nr = 6,
184 .led_current = 50, 191 .led_current = 50,
185 }, { 192 }, {
193 .name = "lp5523:kb5",
186 .chan_nr = 7, 194 .chan_nr = 7,
187 .led_current = 50, 195 .led_current = 50,
188 }, { 196 }, {
197 .name = "lp5523:kb6",
189 .chan_nr = 8, 198 .chan_nr = 8,
190 .led_current = 50, 199 .led_current = 50,
191 } 200 }
@@ -1253,6 +1262,16 @@ static void __init rx51_init_lirc(void)
1253} 1262}
1254#endif 1263#endif
1255 1264
1265static struct platform_device madc_hwmon = {
1266 .name = "twl4030_madc_hwmon",
1267 .id = -1,
1268};
1269
1270static void __init rx51_init_twl4030_hwmon(void)
1271{
1272 platform_device_register(&madc_hwmon);
1273}
1274
1256void __init rx51_peripherals_init(void) 1275void __init rx51_peripherals_init(void)
1257{ 1276{
1258 rx51_i2c_init(); 1277 rx51_i2c_init();
@@ -1272,5 +1291,6 @@ void __init rx51_peripherals_init(void)
1272 omap_hsmmc_init(mmc); 1291 omap_hsmmc_init(mmc);
1273 1292
1274 rx51_charger_init(); 1293 rx51_charger_init();
1294 rx51_init_twl4030_hwmon();
1275} 1295}
1276 1296
diff --git a/arch/arm/mach-omap2/board-zoom-peripherals.c b/arch/arm/mach-omap2/board-zoom-peripherals.c
index dc5498b1b3a7..cdc0c1021863 100644
--- a/arch/arm/mach-omap2/board-zoom-peripherals.c
+++ b/arch/arm/mach-omap2/board-zoom-peripherals.c
@@ -20,6 +20,7 @@
20#include <linux/wl12xx.h> 20#include <linux/wl12xx.h>
21#include <linux/mmc/host.h> 21#include <linux/mmc/host.h>
22#include <linux/platform_data/gpio-omap.h> 22#include <linux/platform_data/gpio-omap.h>
23#include <linux/platform_data/omap-twl4030.h>
23#include <linux/usb/phy.h> 24#include <linux/usb/phy.h>
24 25
25#include <asm/mach-types.h> 26#include <asm/mach-types.h>
@@ -35,11 +36,9 @@
35#include "common-board-devices.h" 36#include "common-board-devices.h"
36 37
37#define OMAP_ZOOM_WLAN_PMENA_GPIO (101) 38#define OMAP_ZOOM_WLAN_PMENA_GPIO (101)
38#define ZOOM2_HEADSET_EXTMUTE_GPIO (153) 39#define OMAP_ZOOM_TSC2004_IRQ_GPIO (153)
39#define OMAP_ZOOM_WLAN_IRQ_GPIO (162) 40#define OMAP_ZOOM_WLAN_IRQ_GPIO (162)
40 41
41#define LCD_PANEL_ENABLE_GPIO (7 + OMAP_MAX_GPIO_LINES)
42
43/* Zoom2 has Qwerty keyboard*/ 42/* Zoom2 has Qwerty keyboard*/
44static uint32_t board_keymap[] = { 43static uint32_t board_keymap[] = {
45 KEY(0, 0, KEY_E), 44 KEY(0, 0, KEY_E),
@@ -227,22 +226,31 @@ static struct omap2_hsmmc_info mmc[] = {
227 {} /* Terminator */ 226 {} /* Terminator */
228}; 227};
229 228
229static struct omap_tw4030_pdata omap_twl4030_audio_data = {
230 .voice_connected = true,
231 .custom_routing = true,
232
233 .has_hs = OMAP_TWL4030_LEFT | OMAP_TWL4030_RIGHT,
234 .has_hf = OMAP_TWL4030_LEFT | OMAP_TWL4030_RIGHT,
235
236 .has_mainmic = true,
237 .has_submic = true,
238 .has_hsmic = true,
239 .has_linein = OMAP_TWL4030_LEFT | OMAP_TWL4030_RIGHT,
240};
241
230static int zoom_twl_gpio_setup(struct device *dev, 242static int zoom_twl_gpio_setup(struct device *dev,
231 unsigned gpio, unsigned ngpio) 243 unsigned gpio, unsigned ngpio)
232{ 244{
233 int ret;
234
235 /* gpio + 0 is "mmc0_cd" (input/IRQ) */ 245 /* gpio + 0 is "mmc0_cd" (input/IRQ) */
236 mmc[0].gpio_cd = gpio + 0; 246 mmc[0].gpio_cd = gpio + 0;
237 omap_hsmmc_late_init(mmc); 247 omap_hsmmc_late_init(mmc);
238 248
239 ret = gpio_request_one(LCD_PANEL_ENABLE_GPIO, GPIOF_OUT_INIT_LOW, 249 /* Audio setup */
240 "lcd enable"); 250 omap_twl4030_audio_data.jack_detect = gpio + 2;
241 if (ret) 251 omap_twl4030_audio_init("Zoom2", &omap_twl4030_audio_data);
242 pr_err("Failed to get LCD_PANEL_ENABLE_GPIO (gpio%d).\n",
243 LCD_PANEL_ENABLE_GPIO);
244 252
245 return ret; 253 return 0;
246} 254}
247 255
248static struct twl4030_gpio_platform_data zoom_gpio_data = { 256static struct twl4030_gpio_platform_data zoom_gpio_data = {
@@ -265,14 +273,9 @@ static int __init omap_i2c_init(void)
265 TWL_COMMON_PDATA_MADC | TWL_COMMON_PDATA_AUDIO, 273 TWL_COMMON_PDATA_MADC | TWL_COMMON_PDATA_AUDIO,
266 TWL_COMMON_REGULATOR_VDAC | TWL_COMMON_REGULATOR_VPLL2); 274 TWL_COMMON_REGULATOR_VDAC | TWL_COMMON_REGULATOR_VPLL2);
267 275
268 if (machine_is_omap_zoom2()) { 276 if (machine_is_omap_zoom2())
269 struct twl4030_codec_data *codec_data; 277 zoom_twldata.audio->codec->ramp_delay_value = 3; /* 161 ms */
270 codec_data = zoom_twldata.audio->codec;
271 278
272 codec_data->ramp_delay_value = 3; /* 161 ms */
273 codec_data->hs_extmute = 1;
274 codec_data->hs_extmute_gpio = ZOOM2_HEADSET_EXTMUTE_GPIO;
275 }
276 omap_pmic_init(1, 2400, "twl5030", 7 + OMAP_INTC_START, &zoom_twldata); 279 omap_pmic_init(1, 2400, "twl5030", 7 + OMAP_INTC_START, &zoom_twldata);
277 omap_register_i2c_bus(2, 400, NULL, 0); 280 omap_register_i2c_bus(2, 400, NULL, 0);
278 omap_register_i2c_bus(3, 400, NULL, 0); 281 omap_register_i2c_bus(3, 400, NULL, 0);
diff --git a/arch/arm/mach-omap2/gpmc.c b/arch/arm/mach-omap2/gpmc.c
index 8d70bd03c5d8..e4b16c8efe8b 100644
--- a/arch/arm/mach-omap2/gpmc.c
+++ b/arch/arm/mach-omap2/gpmc.c
@@ -790,9 +790,6 @@ static int gpmc_mem_init(void)
790 * even if we didn't boot from ROM. 790 * even if we didn't boot from ROM.
791 */ 791 */
792 boot_rom_space = BOOT_ROM_SPACE; 792 boot_rom_space = BOOT_ROM_SPACE;
793 /* In apollon the CS0 is mapped as 0x0000 0000 */
794 if (machine_is_omap_apollon())
795 boot_rom_space = 0;
796 gpmc_mem_root.start = GPMC_MEM_START + boot_rom_space; 793 gpmc_mem_root.start = GPMC_MEM_START + boot_rom_space;
797 gpmc_mem_root.end = GPMC_MEM_END; 794 gpmc_mem_root.end = GPMC_MEM_END;
798 795
diff --git a/arch/arm/mach-omap2/twl-common.c b/arch/arm/mach-omap2/twl-common.c
index 6a7aec6d1174..51e138cc5398 100644
--- a/arch/arm/mach-omap2/twl-common.c
+++ b/arch/arm/mach-omap2/twl-common.c
@@ -529,24 +529,29 @@ void __init omap4_pmic_get_config(struct twl4030_platform_data *pmic_data,
529 defined(CONFIG_SND_OMAP_SOC_OMAP_TWL4030_MODULE) 529 defined(CONFIG_SND_OMAP_SOC_OMAP_TWL4030_MODULE)
530#include <linux/platform_data/omap-twl4030.h> 530#include <linux/platform_data/omap-twl4030.h>
531 531
532/* Commonly used configuration */
532static struct omap_tw4030_pdata omap_twl4030_audio_data; 533static struct omap_tw4030_pdata omap_twl4030_audio_data;
533 534
534static struct platform_device audio_device = { 535static struct platform_device audio_device = {
535 .name = "omap-twl4030", 536 .name = "omap-twl4030",
536 .id = -1, 537 .id = -1,
537 .dev = {
538 .platform_data = &omap_twl4030_audio_data,
539 },
540}; 538};
541 539
542void __init omap_twl4030_audio_init(char *card_name) 540void omap_twl4030_audio_init(char *card_name,
541 struct omap_tw4030_pdata *pdata)
543{ 542{
544 omap_twl4030_audio_data.card_name = card_name; 543 if (!pdata)
544 pdata = &omap_twl4030_audio_data;
545
546 pdata->card_name = card_name;
547
548 audio_device.dev.platform_data = pdata;
545 platform_device_register(&audio_device); 549 platform_device_register(&audio_device);
546} 550}
547 551
548#else /* SOC_OMAP_TWL4030 */ 552#else /* SOC_OMAP_TWL4030 */
549void __init omap_twl4030_audio_init(char *card_name) 553void omap_twl4030_audio_init(char *card_name,
554 struct omap_tw4030_pdata *pdata)
550{ 555{
551 return; 556 return;
552} 557}
diff --git a/arch/arm/mach-omap2/twl-common.h b/arch/arm/mach-omap2/twl-common.h
index dcfbad5ac471..24b65d081b69 100644
--- a/arch/arm/mach-omap2/twl-common.h
+++ b/arch/arm/mach-omap2/twl-common.h
@@ -32,6 +32,7 @@
32 32
33struct twl4030_platform_data; 33struct twl4030_platform_data;
34struct twl6040_platform_data; 34struct twl6040_platform_data;
35struct omap_tw4030_pdata;
35struct i2c_board_info; 36struct i2c_board_info;
36 37
37void omap_pmic_init(int bus, u32 clkrate, const char *pmic_type, int pmic_irq, 38void 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,
60void omap4_pmic_get_config(struct twl4030_platform_data *pmic_data, 61void omap4_pmic_get_config(struct twl4030_platform_data *pmic_data,
61 u32 pdata_flags, u32 regulators_flags); 62 u32 pdata_flags, u32 regulators_flags);
62 63
63void omap_twl4030_audio_init(char *card_name); 64void omap_twl4030_audio_init(char *card_name, struct omap_tw4030_pdata *pdata);
64 65
65#endif /* __OMAP_PMIC_COMMON__ */ 66#endif /* __OMAP_PMIC_COMMON__ */
diff --git a/arch/arm/mach-pxa/palmtreo.c b/arch/arm/mach-pxa/palmtreo.c
index a29849d181c8..d82a50b4a803 100644
--- a/arch/arm/mach-pxa/palmtreo.c
+++ b/arch/arm/mach-pxa/palmtreo.c
@@ -167,7 +167,7 @@ static unsigned long centro685_pin_config[] __initdata = {
167/****************************************************************************** 167/******************************************************************************
168 * GPIO keyboard 168 * GPIO keyboard
169 ******************************************************************************/ 169 ******************************************************************************/
170#if defined(CONFIG_KEYBOARD_PXA27x) || defined(CONFIG_KEYBOARD_PXA27x_MODULE) 170#if IS_ENABLED(CONFIG_KEYBOARD_PXA27x)
171static unsigned int treo680_matrix_keys[] = { 171static unsigned int treo680_matrix_keys[] = {
172 KEY(0, 0, KEY_F8), /* Red/Off/Power */ 172 KEY(0, 0, KEY_F8), /* Red/Off/Power */
173 KEY(0, 1, KEY_LEFT), 173 KEY(0, 1, KEY_LEFT),
@@ -315,7 +315,7 @@ static inline void palmtreo_kpc_init(void) {}
315/****************************************************************************** 315/******************************************************************************
316 * USB host 316 * USB host
317 ******************************************************************************/ 317 ******************************************************************************/
318#if defined(CONFIG_USB_OHCI_HCD) || defined(CONFIG_USB_OHCI_HCD_MODULE) 318#if IS_ENABLED(CONFIG_USB_OHCI_HCD)
319static struct pxaohci_platform_data treo680_ohci_info = { 319static struct pxaohci_platform_data treo680_ohci_info = {
320 .port_mode = PMM_PERPORT_MODE, 320 .port_mode = PMM_PERPORT_MODE,
321 .flags = ENABLE_PORT1 | ENABLE_PORT3, 321 .flags = ENABLE_PORT1 | ENABLE_PORT3,
@@ -397,6 +397,36 @@ static void __init palmtreo_leds_init(void)
397} 397}
398 398
399/****************************************************************************** 399/******************************************************************************
400 * diskonchip docg4 flash
401 ******************************************************************************/
402#if defined(CONFIG_MACH_TREO680)
403/* REVISIT: does the centro have this device also? */
404#if IS_ENABLED(CONFIG_MTD_NAND_DOCG4)
405static struct resource docg4_resources[] = {
406 {
407 .start = 0x00000000,
408 .end = 0x00001FFF,
409 .flags = IORESOURCE_MEM,
410 },
411};
412
413static struct platform_device treo680_docg4_flash = {
414 .name = "docg4",
415 .id = -1,
416 .resource = docg4_resources,
417 .num_resources = ARRAY_SIZE(docg4_resources),
418};
419
420static void __init treo680_docg4_flash_init(void)
421{
422 platform_device_register(&treo680_docg4_flash);
423}
424#else
425static inline void treo680_docg4_flash_init(void) {}
426#endif
427#endif
428
429/******************************************************************************
400 * Machine init 430 * Machine init
401 ******************************************************************************/ 431 ******************************************************************************/
402static void __init treo_reserve(void) 432static void __init treo_reserve(void)
@@ -480,6 +510,7 @@ static void __init treo680_init(void)
480 treo680_gpio_init(); 510 treo680_gpio_init();
481 palm27x_mmc_init(GPIO_NR_TREO_SD_DETECT_N, GPIO_NR_TREO680_SD_READONLY, 511 palm27x_mmc_init(GPIO_NR_TREO_SD_DETECT_N, GPIO_NR_TREO680_SD_READONLY,
482 GPIO_NR_TREO680_SD_POWER, 0); 512 GPIO_NR_TREO680_SD_POWER, 0);
513 treo680_docg4_flash_init();
483} 514}
484#endif 515#endif
485 516
diff --git a/arch/arm/mach-pxa/pxa27x.c b/arch/arm/mach-pxa/pxa27x.c
index 69985b06c0da..3203a9f5b4a2 100644
--- a/arch/arm/mach-pxa/pxa27x.c
+++ b/arch/arm/mach-pxa/pxa27x.c
@@ -238,6 +238,7 @@ static struct clk_lookup pxa27x_clkregs[] = {
238 INIT_CLKREG(&clk_pxa27x_memc, NULL, "MEMCLK"), 238 INIT_CLKREG(&clk_pxa27x_memc, NULL, "MEMCLK"),
239 INIT_CLKREG(&clk_pxa27x_mem, "pxa2xx-pcmcia", NULL), 239 INIT_CLKREG(&clk_pxa27x_mem, "pxa2xx-pcmcia", NULL),
240 INIT_CLKREG(&clk_dummy, "pxa-gpio", NULL), 240 INIT_CLKREG(&clk_dummy, "pxa-gpio", NULL),
241 INIT_CLKREG(&clk_dummy, "sa1100-rtc", NULL),
241}; 242};
242 243
243#ifdef CONFIG_PM 244#ifdef CONFIG_PM
diff --git a/arch/arm/mach-shmobile/board-ag5evm.c b/arch/arm/mach-shmobile/board-ag5evm.c
index 705bc63c7984..8ff53a19c48c 100644
--- a/arch/arm/mach-shmobile/board-ag5evm.c
+++ b/arch/arm/mach-shmobile/board-ag5evm.c
@@ -479,11 +479,10 @@ static void ag5evm_sdhi1_set_pwr(struct platform_device *pdev, int state)
479 static int power_gpio = -EINVAL; 479 static int power_gpio = -EINVAL;
480 480
481 if (power_gpio < 0) { 481 if (power_gpio < 0) {
482 int ret = gpio_request(GPIO_PORT114, "sdhi1_power"); 482 int ret = gpio_request_one(GPIO_PORT114, GPIOF_OUT_INIT_LOW,
483 if (!ret) { 483 "sdhi1_power");
484 if (!ret)
484 power_gpio = GPIO_PORT114; 485 power_gpio = GPIO_PORT114;
485 gpio_direction_output(power_gpio, 0);
486 }
487 } 486 }
488 487
489 /* 488 /*
@@ -604,14 +603,11 @@ static void __init ag5evm_init(void)
604 gpio_request(GPIO_FN_MMCD0_5_PU, NULL); 603 gpio_request(GPIO_FN_MMCD0_5_PU, NULL);
605 gpio_request(GPIO_FN_MMCD0_6_PU, NULL); 604 gpio_request(GPIO_FN_MMCD0_6_PU, NULL);
606 gpio_request(GPIO_FN_MMCD0_7_PU, NULL); 605 gpio_request(GPIO_FN_MMCD0_7_PU, NULL);
607 gpio_request(GPIO_PORT208, NULL); /* Reset */ 606 gpio_request_one(GPIO_PORT208, GPIOF_OUT_INIT_HIGH, NULL); /* Reset */
608 gpio_direction_output(GPIO_PORT208, 1);
609 607
610 /* enable SMSC911X */ 608 /* enable SMSC911X */
611 gpio_request(GPIO_PORT144, NULL); /* PINTA2 */ 609 gpio_request_one(GPIO_PORT144, GPIOF_IN, NULL); /* PINTA2 */
612 gpio_direction_input(GPIO_PORT144); 610 gpio_request_one(GPIO_PORT145, GPIOF_OUT_INIT_HIGH, NULL); /* RESET */
613 gpio_request(GPIO_PORT145, NULL); /* RESET */
614 gpio_direction_output(GPIO_PORT145, 1);
615 611
616 /* FSI A */ 612 /* FSI A */
617 gpio_request(GPIO_FN_FSIACK, NULL); 613 gpio_request(GPIO_FN_FSIACK, NULL);
@@ -626,15 +622,13 @@ static void __init ag5evm_init(void)
626 gpio_request(GPIO_FN_PORT243_IRDA_FIRSEL, NULL); 622 gpio_request(GPIO_FN_PORT243_IRDA_FIRSEL, NULL);
627 623
628 /* LCD panel */ 624 /* LCD panel */
629 gpio_request(GPIO_PORT217, NULL); /* RESET */ 625 gpio_request_one(GPIO_PORT217, GPIOF_OUT_INIT_LOW, NULL); /* RESET */
630 gpio_direction_output(GPIO_PORT217, 0);
631 mdelay(1); 626 mdelay(1);
632 gpio_set_value(GPIO_PORT217, 1); 627 gpio_set_value(GPIO_PORT217, 1);
633 mdelay(100); 628 mdelay(100);
634 629
635 /* LCD backlight controller */ 630 /* LCD backlight controller */
636 gpio_request(GPIO_PORT235, NULL); /* RESET */ 631 gpio_request_one(GPIO_PORT235, GPIOF_OUT_INIT_LOW, NULL); /* RESET */
637 gpio_direction_output(GPIO_PORT235, 0);
638 lcd_backlight_set_brightness(0); 632 lcd_backlight_set_brightness(0);
639 633
640 /* enable SDHI0 on CN15 [SD I/F] */ 634 /* enable SDHI0 on CN15 [SD I/F] */
diff --git a/arch/arm/mach-shmobile/board-ap4evb.c b/arch/arm/mach-shmobile/board-ap4evb.c
index 2928cd686808..38f1259a0daf 100644
--- a/arch/arm/mach-shmobile/board-ap4evb.c
+++ b/arch/arm/mach-shmobile/board-ap4evb.c
@@ -143,6 +143,10 @@
143 * 143 *
144 * SW41 : ON : SH-Mobile AP4 Audio Mode 144 * SW41 : ON : SH-Mobile AP4 Audio Mode
145 * : OFF : Bluetooth Audio Mode 145 * : OFF : Bluetooth Audio Mode
146 *
147 * it needs amixer settings for playing
148 *
149 * amixer set "Headphone Enable" on
146 */ 150 */
147 151
148/* 152/*
@@ -1036,9 +1040,7 @@ static int ts_get_pendown_state(void)
1036 1040
1037 gpio_free(GPIO_TSC_IRQ); 1041 gpio_free(GPIO_TSC_IRQ);
1038 1042
1039 gpio_request(GPIO_TSC_PORT, NULL); 1043 gpio_request_one(GPIO_TSC_PORT, GPIOF_IN, NULL);
1040
1041 gpio_direction_input(GPIO_TSC_PORT);
1042 1044
1043 val = gpio_get_value(GPIO_TSC_PORT); 1045 val = gpio_get_value(GPIO_TSC_PORT);
1044 1046
@@ -1119,18 +1121,10 @@ static void __init ap4evb_init(void)
1119 gpio_request(GPIO_FN_IRQ6_39, NULL); 1121 gpio_request(GPIO_FN_IRQ6_39, NULL);
1120 1122
1121 /* enable Debug switch (S6) */ 1123 /* enable Debug switch (S6) */
1122 gpio_request(GPIO_PORT32, NULL); 1124 gpio_request_one(GPIO_PORT32, GPIOF_IN | GPIOF_EXPORT, NULL);
1123 gpio_request(GPIO_PORT33, NULL); 1125 gpio_request_one(GPIO_PORT33, GPIOF_IN | GPIOF_EXPORT, NULL);
1124 gpio_request(GPIO_PORT34, NULL); 1126 gpio_request_one(GPIO_PORT34, GPIOF_IN | GPIOF_EXPORT, NULL);
1125 gpio_request(GPIO_PORT35, NULL); 1127 gpio_request_one(GPIO_PORT35, GPIOF_IN | GPIOF_EXPORT, NULL);
1126 gpio_direction_input(GPIO_PORT32);
1127 gpio_direction_input(GPIO_PORT33);
1128 gpio_direction_input(GPIO_PORT34);
1129 gpio_direction_input(GPIO_PORT35);
1130 gpio_export(GPIO_PORT32, 0);
1131 gpio_export(GPIO_PORT33, 0);
1132 gpio_export(GPIO_PORT34, 0);
1133 gpio_export(GPIO_PORT35, 0);
1134 1128
1135 /* SDHI0 */ 1129 /* SDHI0 */
1136 gpio_request(GPIO_FN_SDHICD0, NULL); 1130 gpio_request(GPIO_FN_SDHICD0, NULL);
@@ -1178,8 +1172,7 @@ static void __init ap4evb_init(void)
1178 gpio_request(GPIO_FN_FSIAILR, NULL); 1172 gpio_request(GPIO_FN_FSIAILR, NULL);
1179 gpio_request(GPIO_FN_FSIAISLD, NULL); 1173 gpio_request(GPIO_FN_FSIAISLD, NULL);
1180 gpio_request(GPIO_FN_FSIAOSLD, NULL); 1174 gpio_request(GPIO_FN_FSIAOSLD, NULL);
1181 gpio_request(GPIO_PORT161, NULL); 1175 gpio_request_one(GPIO_PORT161, GPIOF_OUT_INIT_LOW, NULL); /* slave */
1182 gpio_direction_output(GPIO_PORT161, 0); /* slave */
1183 1176
1184 gpio_request(GPIO_PORT9, NULL); 1177 gpio_request(GPIO_PORT9, NULL);
1185 gpio_request(GPIO_PORT10, NULL); 1178 gpio_request(GPIO_PORT10, NULL);
@@ -1187,8 +1180,7 @@ static void __init ap4evb_init(void)
1187 gpio_direction_none(GPIO_PORT10CR); /* FSIAOLR needs no direction */ 1180 gpio_direction_none(GPIO_PORT10CR); /* FSIAOLR needs no direction */
1188 1181
1189 /* card detect pin for MMC slot (CN7) */ 1182 /* card detect pin for MMC slot (CN7) */
1190 gpio_request(GPIO_PORT41, NULL); 1183 gpio_request_one(GPIO_PORT41, GPIOF_IN, NULL);
1191 gpio_direction_input(GPIO_PORT41);
1192 1184
1193 /* setup FSI2 port B (HDMI) */ 1185 /* setup FSI2 port B (HDMI) */
1194 gpio_request(GPIO_FN_FSIBCK, NULL); 1186 gpio_request(GPIO_FN_FSIBCK, NULL);
@@ -1276,11 +1268,8 @@ static void __init ap4evb_init(void)
1276 gpio_request(GPIO_FN_LCDDISP, NULL); 1268 gpio_request(GPIO_FN_LCDDISP, NULL);
1277 gpio_request(GPIO_FN_LCDDCK, NULL); 1269 gpio_request(GPIO_FN_LCDDCK, NULL);
1278 1270
1279 gpio_request(GPIO_PORT189, NULL); /* backlight */ 1271 gpio_request_one(GPIO_PORT189, GPIOF_OUT_INIT_HIGH, NULL); /* backlight */
1280 gpio_direction_output(GPIO_PORT189, 1); 1272 gpio_request_one(GPIO_PORT151, GPIOF_OUT_INIT_HIGH, NULL); /* LCDDON */
1281
1282 gpio_request(GPIO_PORT151, NULL); /* LCDDON */
1283 gpio_direction_output(GPIO_PORT151, 1);
1284 1273
1285 lcdc_info.clock_source = LCDC_CLK_BUS; 1274 lcdc_info.clock_source = LCDC_CLK_BUS;
1286 lcdc_info.ch[0].interface_type = RGB18; 1275 lcdc_info.ch[0].interface_type = RGB18;
diff --git a/arch/arm/mach-shmobile/board-armadillo800eva.c b/arch/arm/mach-shmobile/board-armadillo800eva.c
index 81d91fda2d90..f2ec0777cfbe 100644
--- a/arch/arm/mach-shmobile/board-armadillo800eva.c
+++ b/arch/arm/mach-shmobile/board-armadillo800eva.c
@@ -124,6 +124,14 @@
124 * this command is required when playback. 124 * this command is required when playback.
125 * 125 *
126 * # amixer set "Headphone" 50 126 * # amixer set "Headphone" 50
127 *
128 * this command is required when capture.
129 *
130 * # amixer set "Input PGA" 15
131 * # amixer set "Left Input Mixer MicP" on
132 * # amixer set "Left Input Mixer MicN" on
133 * # amixer set "Right Input Mixer MicN" on
134 * # amixer set "Right Input Mixer MicP" on
127 */ 135 */
128 136
129/* 137/*
@@ -700,9 +708,9 @@ static int mt9t111_power(struct device *dev, int mode)
700 /* video1 (= CON1 camera) expect 24MHz */ 708 /* video1 (= CON1 camera) expect 24MHz */
701 clk_set_rate(mclk, clk_round_rate(mclk, 24000000)); 709 clk_set_rate(mclk, clk_round_rate(mclk, 24000000));
702 clk_enable(mclk); 710 clk_enable(mclk);
703 gpio_direction_output(GPIO_PORT158, 1); 711 gpio_set_value(GPIO_PORT158, 1);
704 } else { 712 } else {
705 gpio_direction_output(GPIO_PORT158, 0); 713 gpio_set_value(GPIO_PORT158, 0);
706 clk_disable(mclk); 714 clk_disable(mclk);
707 } 715 }
708 716
@@ -992,16 +1000,12 @@ static void __init eva_init(void)
992 gpio_request(GPIO_FN_LCD0_DISP, NULL); 1000 gpio_request(GPIO_FN_LCD0_DISP, NULL);
993 gpio_request(GPIO_FN_LCD0_LCLK_PORT165, NULL); 1001 gpio_request(GPIO_FN_LCD0_LCLK_PORT165, NULL);
994 1002
995 gpio_request(GPIO_PORT61, NULL); /* LCDDON */ 1003 gpio_request_one(GPIO_PORT61, GPIOF_OUT_INIT_HIGH, NULL); /* LCDDON */
996 gpio_direction_output(GPIO_PORT61, 1); 1004 gpio_request_one(GPIO_PORT202, GPIOF_OUT_INIT_LOW, NULL); /* LCD0_LED_CONT */
997
998 gpio_request(GPIO_PORT202, NULL); /* LCD0_LED_CONT */
999 gpio_direction_output(GPIO_PORT202, 0);
1000 1005
1001 /* Touchscreen */ 1006 /* Touchscreen */
1002 gpio_request(GPIO_FN_IRQ10, NULL); /* TP_INT */ 1007 gpio_request(GPIO_FN_IRQ10, NULL); /* TP_INT */
1003 gpio_request(GPIO_PORT166, NULL); /* TP_RST_B */ 1008 gpio_request_one(GPIO_PORT166, GPIOF_OUT_INIT_HIGH, NULL); /* TP_RST_B */
1004 gpio_direction_output(GPIO_PORT166, 1);
1005 1009
1006 /* GETHER */ 1010 /* GETHER */
1007 gpio_request(GPIO_FN_ET_CRS, NULL); 1011 gpio_request(GPIO_FN_ET_CRS, NULL);
@@ -1024,12 +1028,10 @@ static void __init eva_init(void)
1024 gpio_request(GPIO_FN_ET_RX_DV, NULL); 1028 gpio_request(GPIO_FN_ET_RX_DV, NULL);
1025 gpio_request(GPIO_FN_ET_RX_CLK, NULL); 1029 gpio_request(GPIO_FN_ET_RX_CLK, NULL);
1026 1030
1027 gpio_request(GPIO_PORT18, NULL); /* PHY_RST */ 1031 gpio_request_one(GPIO_PORT18, GPIOF_OUT_INIT_HIGH, NULL); /* PHY_RST */
1028 gpio_direction_output(GPIO_PORT18, 1);
1029 1032
1030 /* USB */ 1033 /* USB */
1031 gpio_request(GPIO_PORT159, NULL); /* USB_DEVICE_MODE */ 1034 gpio_request_one(GPIO_PORT159, GPIOF_IN, NULL); /* USB_DEVICE_MODE */
1032 gpio_direction_input(GPIO_PORT159);
1033 1035
1034 if (gpio_get_value(GPIO_PORT159)) { 1036 if (gpio_get_value(GPIO_PORT159)) {
1035 /* USB Host */ 1037 /* USB Host */
@@ -1043,8 +1045,7 @@ static void __init eva_init(void)
1043 * and select GPIO_PORT209 here 1045 * and select GPIO_PORT209 here
1044 */ 1046 */
1045 gpio_request(GPIO_FN_IRQ7_PORT209, NULL); 1047 gpio_request(GPIO_FN_IRQ7_PORT209, NULL);
1046 gpio_request(GPIO_PORT209, NULL); 1048 gpio_request_one(GPIO_PORT209, GPIOF_IN, NULL);
1047 gpio_direction_input(GPIO_PORT209);
1048 1049
1049 platform_device_register(&usbhsf_device); 1050 platform_device_register(&usbhsf_device);
1050 usb = &usbhsf_device; 1051 usb = &usbhsf_device;
@@ -1059,12 +1060,9 @@ static void __init eva_init(void)
1059 gpio_request(GPIO_FN_SDHI0_D3, NULL); 1060 gpio_request(GPIO_FN_SDHI0_D3, NULL);
1060 gpio_request(GPIO_FN_SDHI0_WP, NULL); 1061 gpio_request(GPIO_FN_SDHI0_WP, NULL);
1061 1062
1062 gpio_request(GPIO_PORT17, NULL); /* SDHI0_18/33_B */ 1063 gpio_request_one(GPIO_PORT17, GPIOF_OUT_INIT_LOW, NULL); /* SDHI0_18/33_B */
1063 gpio_request(GPIO_PORT74, NULL); /* SDHI0_PON */ 1064 gpio_request_one(GPIO_PORT74, GPIOF_OUT_INIT_HIGH, NULL); /* SDHI0_PON */
1064 gpio_request(GPIO_PORT75, NULL); /* SDSLOT1_PON */ 1065 gpio_request_one(GPIO_PORT75, GPIOF_OUT_INIT_HIGH, NULL); /* SDSLOT1_PON */
1065 gpio_direction_output(GPIO_PORT17, 0);
1066 gpio_direction_output(GPIO_PORT74, 1);
1067 gpio_direction_output(GPIO_PORT75, 1);
1068 1066
1069 /* we can use GPIO_FN_IRQ31_PORT167 here for SDHI0 CD irq */ 1067 /* we can use GPIO_FN_IRQ31_PORT167 here for SDHI0 CD irq */
1070 1068
@@ -1101,12 +1099,10 @@ static void __init eva_init(void)
1101 gpio_request(GPIO_FN_VIO_CKO, NULL); 1099 gpio_request(GPIO_FN_VIO_CKO, NULL);
1102 1100
1103 /* CON1/CON15 Camera */ 1101 /* CON1/CON15 Camera */
1104 gpio_request(GPIO_PORT173, NULL); /* STANDBY */ 1102 gpio_request_one(GPIO_PORT173, GPIOF_OUT_INIT_LOW, NULL); /* STANDBY */
1105 gpio_request(GPIO_PORT172, NULL); /* RST */ 1103 gpio_request_one(GPIO_PORT172, GPIOF_OUT_INIT_HIGH, NULL); /* RST */
1106 gpio_request(GPIO_PORT158, NULL); /* CAM_PON */ 1104 /* see mt9t111_power() */
1107 gpio_direction_output(GPIO_PORT173, 0); 1105 gpio_request_one(GPIO_PORT158, GPIOF_OUT_INIT_LOW, NULL); /* CAM_PON */
1108 gpio_direction_output(GPIO_PORT172, 1);
1109 gpio_direction_output(GPIO_PORT158, 0); /* see mt9t111_power() */
1110 1106
1111 /* FSI-WM8978 */ 1107 /* FSI-WM8978 */
1112 gpio_request(GPIO_FN_FSIAIBT, NULL); 1108 gpio_request(GPIO_FN_FSIAIBT, NULL);
@@ -1133,15 +1129,13 @@ static void __init eva_init(void)
1133 * DBGMD/LCDC0/FSIA MUX 1129 * DBGMD/LCDC0/FSIA MUX
1134 * DBGMD_SELECT_B should be set after setting PFC Function. 1130 * DBGMD_SELECT_B should be set after setting PFC Function.
1135 */ 1131 */
1136 gpio_request(GPIO_PORT176, NULL); 1132 gpio_request_one(GPIO_PORT176, GPIOF_OUT_INIT_HIGH, NULL);
1137 gpio_direction_output(GPIO_PORT176, 1);
1138 1133
1139 /* 1134 /*
1140 * We can switch CON8/CON14 by SW1.5, 1135 * We can switch CON8/CON14 by SW1.5,
1141 * but it needs after DBGMD_SELECT_B 1136 * but it needs after DBGMD_SELECT_B
1142 */ 1137 */
1143 gpio_request(GPIO_PORT6, NULL); 1138 gpio_request_one(GPIO_PORT6, GPIOF_IN, NULL);
1144 gpio_direction_input(GPIO_PORT6);
1145 if (gpio_get_value(GPIO_PORT6)) { 1139 if (gpio_get_value(GPIO_PORT6)) {
1146 /* CON14 enable */ 1140 /* CON14 enable */
1147 } else { 1141 } else {
@@ -1155,8 +1149,8 @@ static void __init eva_init(void)
1155 gpio_request(GPIO_FN_SDHI1_CD, NULL); 1149 gpio_request(GPIO_FN_SDHI1_CD, NULL);
1156 gpio_request(GPIO_FN_SDHI1_WP, NULL); 1150 gpio_request(GPIO_FN_SDHI1_WP, NULL);
1157 1151
1158 gpio_request(GPIO_PORT16, NULL); /* SDSLOT2_PON */ 1152 /* SDSLOT2_PON */
1159 gpio_direction_output(GPIO_PORT16, 1); 1153 gpio_request_one(GPIO_PORT16, GPIOF_OUT_INIT_HIGH, NULL);
1160 1154
1161 platform_device_register(&sdhi1_device); 1155 platform_device_register(&sdhi1_device);
1162 } 1156 }
@@ -1175,8 +1169,6 @@ static void __init eva_init(void)
1175 platform_add_devices(eva_devices, 1169 platform_add_devices(eva_devices,
1176 ARRAY_SIZE(eva_devices)); 1170 ARRAY_SIZE(eva_devices));
1177 1171
1178 eva_clock_init();
1179
1180 rmobile_add_device_to_domain("A4LC", &lcdc0_device); 1172 rmobile_add_device_to_domain("A4LC", &lcdc0_device);
1181 rmobile_add_device_to_domain("A4LC", &hdmi_lcdc_device); 1173 rmobile_add_device_to_domain("A4LC", &hdmi_lcdc_device);
1182 if (usb) 1174 if (usb)
@@ -1189,6 +1181,9 @@ static void __init eva_earlytimer_init(void)
1189{ 1181{
1190 r8a7740_clock_init(MD_CK0 | MD_CK2); 1182 r8a7740_clock_init(MD_CK0 | MD_CK2);
1191 shmobile_earlytimer_init(); 1183 shmobile_earlytimer_init();
1184
1185 /* the rate of extal1 clock must be set before late_time_init */
1186 eva_clock_init();
1192} 1187}
1193 1188
1194static void __init eva_add_early_devices(void) 1189static void __init eva_add_early_devices(void)
diff --git a/arch/arm/mach-shmobile/board-bonito.c b/arch/arm/mach-shmobile/board-bonito.c
index 331b7ce4edd8..e50f86691539 100644
--- a/arch/arm/mach-shmobile/board-bonito.c
+++ b/arch/arm/mach-shmobile/board-bonito.c
@@ -392,8 +392,7 @@ static void __init bonito_init(void)
392 /* 392 /*
393 * base board settings 393 * base board settings
394 */ 394 */
395 gpio_request(GPIO_PORT176, NULL); 395 gpio_request_one(GPIO_PORT176, GPIOF_IN, NULL);
396 gpio_direction_input(GPIO_PORT176);
397 if (!gpio_get_value(GPIO_PORT176)) { 396 if (!gpio_get_value(GPIO_PORT176)) {
398 u16 bsw2; 397 u16 bsw2;
399 u16 bsw3; 398 u16 bsw3;
@@ -462,8 +461,8 @@ static void __init bonito_init(void)
462 gpio_request(GPIO_FN_LCD0_DISP, NULL); 461 gpio_request(GPIO_FN_LCD0_DISP, NULL);
463 gpio_request(GPIO_FN_LCD0_LCLK_PORT165, NULL); 462 gpio_request(GPIO_FN_LCD0_LCLK_PORT165, NULL);
464 463
465 gpio_request(GPIO_PORT61, NULL); /* LCDDON */ 464 gpio_request_one(GPIO_PORT61, GPIOF_OUT_INIT_HIGH,
466 gpio_direction_output(GPIO_PORT61, 1); 465 NULL); /* LCDDON */
467 466
468 /* backlight on */ 467 /* backlight on */
469 bonito_fpga_write(LCDCR, 1); 468 bonito_fpga_write(LCDCR, 1);
diff --git a/arch/arm/mach-shmobile/board-kota2.c b/arch/arm/mach-shmobile/board-kota2.c
index d759a9c2b9e8..2ccc860403ef 100644
--- a/arch/arm/mach-shmobile/board-kota2.c
+++ b/arch/arm/mach-shmobile/board-kota2.c
@@ -474,10 +474,8 @@ static void __init kota2_init(void)
474 gpio_request(GPIO_FN_D15_NAF15, NULL); 474 gpio_request(GPIO_FN_D15_NAF15, NULL);
475 gpio_request(GPIO_FN_CS5A_, NULL); 475 gpio_request(GPIO_FN_CS5A_, NULL);
476 gpio_request(GPIO_FN_WE0__FWE, NULL); 476 gpio_request(GPIO_FN_WE0__FWE, NULL);
477 gpio_request(GPIO_PORT144, NULL); /* PINTA2 */ 477 gpio_request_one(GPIO_PORT144, GPIOF_IN, NULL); /* PINTA2 */
478 gpio_direction_input(GPIO_PORT144); 478 gpio_request_one(GPIO_PORT145, GPIOF_OUT_INIT_HIGH, NULL); /* RESET */
479 gpio_request(GPIO_PORT145, NULL); /* RESET */
480 gpio_direction_output(GPIO_PORT145, 1);
481 479
482 /* KEYSC */ 480 /* KEYSC */
483 gpio_request(GPIO_FN_KEYIN0_PU, NULL); 481 gpio_request(GPIO_FN_KEYIN0_PU, NULL);
@@ -509,8 +507,7 @@ static void __init kota2_init(void)
509 gpio_request(GPIO_FN_MMCD0_6, NULL); 507 gpio_request(GPIO_FN_MMCD0_6, NULL);
510 gpio_request(GPIO_FN_MMCD0_7, NULL); 508 gpio_request(GPIO_FN_MMCD0_7, NULL);
511 gpio_request(GPIO_FN_MMCCMD0, NULL); 509 gpio_request(GPIO_FN_MMCCMD0, NULL);
512 gpio_request(GPIO_PORT208, NULL); /* Reset */ 510 gpio_request_one(GPIO_PORT208, GPIOF_OUT_INIT_HIGH, NULL); /* Reset */
513 gpio_direction_output(GPIO_PORT208, 1);
514 511
515 /* SDHI0 (microSD) */ 512 /* SDHI0 (microSD) */
516 gpio_request(GPIO_FN_SDHICD0_PU, NULL); 513 gpio_request(GPIO_FN_SDHICD0_PU, NULL);
diff --git a/arch/arm/mach-shmobile/board-kzm9g.c b/arch/arm/mach-shmobile/board-kzm9g.c
index 3efff2e7b1e7..7f3a6b7e7b7c 100644
--- a/arch/arm/mach-shmobile/board-kzm9g.c
+++ b/arch/arm/mach-shmobile/board-kzm9g.c
@@ -623,7 +623,7 @@ static int __init as3711_enable_lcdc_backlight(void)
623 0x45, 0xf0, 623 0x45, 0xf0,
624 }; 624 };
625 625
626 if (!machine_is_kzm9g()) 626 if (!of_machine_is_compatible("renesas,kzm9g"))
627 return 0; 627 return 0;
628 628
629 if (!a) 629 if (!a)
@@ -672,8 +672,7 @@ static void __init kzm_init(void)
672 gpio_request(GPIO_FN_CS4_, NULL); /* CS4 */ 672 gpio_request(GPIO_FN_CS4_, NULL); /* CS4 */
673 673
674 /* SMSC */ 674 /* SMSC */
675 gpio_request(GPIO_PORT224, NULL); /* IRQ3 */ 675 gpio_request_one(GPIO_PORT224, GPIOF_IN, NULL); /* IRQ3 */
676 gpio_direction_input(GPIO_PORT224);
677 676
678 /* LCDC */ 677 /* LCDC */
679 gpio_request(GPIO_FN_LCDD23, NULL); 678 gpio_request(GPIO_FN_LCDD23, NULL);
@@ -703,14 +702,11 @@ static void __init kzm_init(void)
703 gpio_request(GPIO_FN_LCDDISP, NULL); 702 gpio_request(GPIO_FN_LCDDISP, NULL);
704 gpio_request(GPIO_FN_LCDDCK, NULL); 703 gpio_request(GPIO_FN_LCDDCK, NULL);
705 704
706 gpio_request(GPIO_PORT222, NULL); /* LCDCDON */ 705 gpio_request_one(GPIO_PORT222, GPIOF_OUT_INIT_HIGH, NULL); /* LCDCDON */
707 gpio_request(GPIO_PORT226, NULL); /* SC */ 706 gpio_request_one(GPIO_PORT226, GPIOF_OUT_INIT_HIGH, NULL); /* SC */
708 gpio_direction_output(GPIO_PORT222, 1);
709 gpio_direction_output(GPIO_PORT226, 1);
710 707
711 /* Touchscreen */ 708 /* Touchscreen */
712 gpio_request(GPIO_PORT223, NULL); /* IRQ8 */ 709 gpio_request_one(GPIO_PORT223, GPIOF_IN, NULL); /* IRQ8 */
713 gpio_direction_input(GPIO_PORT223);
714 710
715 /* enable MMCIF */ 711 /* enable MMCIF */
716 gpio_request(GPIO_FN_MMCCLK0, NULL); 712 gpio_request(GPIO_FN_MMCCLK0, NULL);
@@ -734,8 +730,7 @@ static void __init kzm_init(void)
734 gpio_request(GPIO_FN_SDHID0_1, NULL); 730 gpio_request(GPIO_FN_SDHID0_1, NULL);
735 gpio_request(GPIO_FN_SDHID0_0, NULL); 731 gpio_request(GPIO_FN_SDHID0_0, NULL);
736 gpio_request(GPIO_FN_SDHI0_VCCQ_MC0_ON, NULL); 732 gpio_request(GPIO_FN_SDHI0_VCCQ_MC0_ON, NULL);
737 gpio_request(GPIO_PORT15, NULL); 733 gpio_request_one(GPIO_PORT15, GPIOF_OUT_INIT_HIGH, NULL); /* power */
738 gpio_direction_output(GPIO_PORT15, 1); /* power */
739 734
740 /* enable Micro SD */ 735 /* enable Micro SD */
741 gpio_request(GPIO_FN_SDHID2_0, NULL); 736 gpio_request(GPIO_FN_SDHID2_0, NULL);
@@ -744,8 +739,7 @@ static void __init kzm_init(void)
744 gpio_request(GPIO_FN_SDHID2_3, NULL); 739 gpio_request(GPIO_FN_SDHID2_3, NULL);
745 gpio_request(GPIO_FN_SDHICMD2, NULL); 740 gpio_request(GPIO_FN_SDHICMD2, NULL);
746 gpio_request(GPIO_FN_SDHICLK2, NULL); 741 gpio_request(GPIO_FN_SDHICLK2, NULL);
747 gpio_request(GPIO_PORT14, NULL); 742 gpio_request_one(GPIO_PORT14, GPIOF_OUT_INIT_HIGH, NULL); /* power */
748 gpio_direction_output(GPIO_PORT14, 1); /* power */
749 743
750 /* I2C 3 */ 744 /* I2C 3 */
751 gpio_request(GPIO_FN_PORT27_I2C_SCL3, NULL); 745 gpio_request(GPIO_FN_PORT27_I2C_SCL3, NULL);
diff --git a/arch/arm/mach-shmobile/board-mackerel.c b/arch/arm/mach-shmobile/board-mackerel.c
index e2fafca9432b..db968a585ff0 100644
--- a/arch/arm/mach-shmobile/board-mackerel.c
+++ b/arch/arm/mach-shmobile/board-mackerel.c
@@ -202,9 +202,7 @@
202 * 202 *
203 * it needs amixer settings for playing 203 * it needs amixer settings for playing
204 * 204 *
205 * amixer set "Headphone" on 205 * amixer set "Headphone Enable" on
206 * amixer set "HPOUTL Mixer DACH" on
207 * amixer set "HPOUTR Mixer DACH" on
208 */ 206 */
209 207
210/* Fixed 3.3V and 1.8V regulators to be used by multiple devices */ 208/* Fixed 3.3V and 1.8V regulators to be used by multiple devices */
@@ -1404,11 +1402,10 @@ static void __init mackerel_init(void)
1404 gpio_request(GPIO_FN_LCDDISP, NULL); 1402 gpio_request(GPIO_FN_LCDDISP, NULL);
1405 gpio_request(GPIO_FN_LCDDCK, NULL); 1403 gpio_request(GPIO_FN_LCDDCK, NULL);
1406 1404
1407 gpio_request(GPIO_PORT31, NULL); /* backlight */ 1405 /* backlight, off by default */
1408 gpio_direction_output(GPIO_PORT31, 0); /* off by default */ 1406 gpio_request_one(GPIO_PORT31, GPIOF_OUT_INIT_LOW, NULL);
1409 1407
1410 gpio_request(GPIO_PORT151, NULL); /* LCDDON */ 1408 gpio_request_one(GPIO_PORT151, GPIOF_OUT_INIT_HIGH, NULL); /* LCDDON */
1411 gpio_direction_output(GPIO_PORT151, 1);
1412 1409
1413 /* USBHS0 */ 1410 /* USBHS0 */
1414 gpio_request(GPIO_FN_VBUS0_0, NULL); 1411 gpio_request(GPIO_FN_VBUS0_0, NULL);
@@ -1424,8 +1421,7 @@ static void __init mackerel_init(void)
1424 gpio_request(GPIO_FN_FSIAILR, NULL); 1421 gpio_request(GPIO_FN_FSIAILR, NULL);
1425 gpio_request(GPIO_FN_FSIAISLD, NULL); 1422 gpio_request(GPIO_FN_FSIAISLD, NULL);
1426 gpio_request(GPIO_FN_FSIAOSLD, NULL); 1423 gpio_request(GPIO_FN_FSIAOSLD, NULL);
1427 gpio_request(GPIO_PORT161, NULL); 1424 gpio_request_one(GPIO_PORT161, GPIOF_OUT_INIT_LOW, NULL); /* slave */
1428 gpio_direction_output(GPIO_PORT161, 0); /* slave */
1429 1425
1430 gpio_request(GPIO_PORT9, NULL); 1426 gpio_request(GPIO_PORT9, NULL);
1431 gpio_request(GPIO_PORT10, NULL); 1427 gpio_request(GPIO_PORT10, NULL);
@@ -1479,8 +1475,7 @@ static void __init mackerel_init(void)
1479 gpio_request(GPIO_FN_SDHID1_0, NULL); 1475 gpio_request(GPIO_FN_SDHID1_0, NULL);
1480#endif 1476#endif
1481 /* card detect pin for MMC slot (CN7) */ 1477 /* card detect pin for MMC slot (CN7) */
1482 gpio_request(GPIO_PORT41, NULL); 1478 gpio_request_one(GPIO_PORT41, GPIOF_IN, NULL);
1483 gpio_direction_input(GPIO_PORT41);
1484 1479
1485 /* enable SDHI2 */ 1480 /* enable SDHI2 */
1486 gpio_request(GPIO_FN_SDHICMD2, NULL); 1481 gpio_request(GPIO_FN_SDHICMD2, NULL);
@@ -1491,8 +1486,7 @@ static void __init mackerel_init(void)
1491 gpio_request(GPIO_FN_SDHID2_0, NULL); 1486 gpio_request(GPIO_FN_SDHID2_0, NULL);
1492 1487
1493 /* card detect pin for microSD slot (CN23) */ 1488 /* card detect pin for microSD slot (CN23) */
1494 gpio_request(GPIO_PORT162, NULL); 1489 gpio_request_one(GPIO_PORT162, GPIOF_IN, NULL);
1495 gpio_direction_input(GPIO_PORT162);
1496 1490
1497 /* MMCIF */ 1491 /* MMCIF */
1498 gpio_request(GPIO_FN_MMCD0_0, NULL); 1492 gpio_request(GPIO_FN_MMCD0_0, NULL);
diff --git a/drivers/video/omap2/displays/panel-generic-dpi.c b/drivers/video/omap2/displays/panel-generic-dpi.c
index 54ca8ae21078..c904f42d81c1 100644
--- a/drivers/video/omap2/displays/panel-generic-dpi.c
+++ b/drivers/video/omap2/displays/panel-generic-dpi.c
@@ -291,30 +291,6 @@ static struct panel_config generic_dpi_panels[] = {
291 .name = "h4", 291 .name = "h4",
292 }, 292 },
293 293
294 /* Unknown panel used in Samsung OMAP2 Apollon */
295 {
296 {
297 .x_res = 480,
298 .y_res = 272,
299
300 .pixel_clock = 6250,
301
302 .hsw = 41,
303 .hfp = 2,
304 .hbp = 2,
305
306 .vsw = 10,
307 .vfp = 2,
308 .vbp = 2,
309
310 .vsync_level = OMAPDSS_SIG_ACTIVE_LOW,
311 .hsync_level = OMAPDSS_SIG_ACTIVE_LOW,
312 .data_pclk_edge = OMAPDSS_DRIVE_SIG_RISING_EDGE,
313 .de_level = OMAPDSS_SIG_ACTIVE_HIGH,
314 .sync_pclk_edge = OMAPDSS_DRIVE_SIG_OPPOSITE_EDGES,
315 },
316 .name = "apollon",
317 },
318 /* FocalTech ETM070003DH6 */ 294 /* FocalTech ETM070003DH6 */
319 { 295 {
320 { 296 {