aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm')
-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/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
44 files changed, 532 insertions, 616 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/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 82ce8d738fa1..76938cb50b45 100644
--- a/arch/arm/configs/omap2plus_defconfig
+++ b/arch/arm/configs/omap2plus_defconfig
@@ -52,6 +52,11 @@ CONFIG_IP_PNP_RARP=y
52# CONFIG_INET_LRO is not set 52# CONFIG_INET_LRO is not set
53# CONFIG_IPV6 is not set 53# CONFIG_IPV6 is not set
54CONFIG_NETFILTER=y 54CONFIG_NETFILTER=y
55CONFIG_CAN=m
56CONFIG_CAN_RAW=m
57CONFIG_CAN_BCM=m
58CONFIG_CAN_C_CAN=m
59CONFIG_CAN_C_CAN_PLATFORM=m
55CONFIG_BT=m 60CONFIG_BT=m
56CONFIG_BT_HCIUART=m 61CONFIG_BT_HCIUART=m
57CONFIG_BT_HCIUART_H4=y 62CONFIG_BT_HCIUART_H4=y
@@ -64,6 +69,7 @@ CONFIG_MAC80211=m
64CONFIG_MAC80211_RC_PID=y 69CONFIG_MAC80211_RC_PID=y
65CONFIG_MAC80211_RC_DEFAULT_PID=y 70CONFIG_MAC80211_RC_DEFAULT_PID=y
66CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 71CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
72CONFIG_CMA=y
67CONFIG_CONNECTOR=y 73CONFIG_CONNECTOR=y
68CONFIG_DEVTMPFS=y 74CONFIG_DEVTMPFS=y
69CONFIG_DEVTMPFS_MOUNT=y 75CONFIG_DEVTMPFS_MOUNT=y
@@ -83,6 +89,9 @@ CONFIG_MTD_UBI=y
83CONFIG_BLK_DEV_LOOP=y 89CONFIG_BLK_DEV_LOOP=y
84CONFIG_BLK_DEV_RAM=y 90CONFIG_BLK_DEV_RAM=y
85CONFIG_BLK_DEV_RAM_SIZE=16384 91CONFIG_BLK_DEV_RAM_SIZE=16384
92CONFIG_SENSORS_LIS3LV02D=m
93CONFIG_SENSORS_TSL2550=m
94CONFIG_SENSORS_LIS3_I2C=m
86CONFIG_SCSI=y 95CONFIG_SCSI=y
87CONFIG_BLK_DEV_SD=y 96CONFIG_BLK_DEV_SD=y
88CONFIG_SCSI_MULTI_LUN=y 97CONFIG_SCSI_MULTI_LUN=y
@@ -108,6 +117,7 @@ CONFIG_USB_KC2190=y
108CONFIG_INPUT_JOYDEV=y 117CONFIG_INPUT_JOYDEV=y
109CONFIG_INPUT_EVDEV=y 118CONFIG_INPUT_EVDEV=y
110CONFIG_KEYBOARD_GPIO=y 119CONFIG_KEYBOARD_GPIO=y
120CONFIG_KEYBOARD_MATRIX=m
111CONFIG_KEYBOARD_TWL4030=y 121CONFIG_KEYBOARD_TWL4030=y
112CONFIG_INPUT_TOUCHSCREEN=y 122CONFIG_INPUT_TOUCHSCREEN=y
113CONFIG_TOUCHSCREEN_ADS7846=y 123CONFIG_TOUCHSCREEN_ADS7846=y
@@ -131,14 +141,17 @@ CONFIG_GPIO_SYSFS=y
131CONFIG_GPIO_TWL4030=y 141CONFIG_GPIO_TWL4030=y
132CONFIG_W1=y 142CONFIG_W1=y
133CONFIG_POWER_SUPPLY=y 143CONFIG_POWER_SUPPLY=y
144CONFIG_SENSORS_LM75=m
134CONFIG_WATCHDOG=y 145CONFIG_WATCHDOG=y
135CONFIG_OMAP_WATCHDOG=y 146CONFIG_OMAP_WATCHDOG=y
136CONFIG_TWL4030_WATCHDOG=y 147CONFIG_TWL4030_WATCHDOG=y
137CONFIG_MFD_TPS65217=y 148CONFIG_MFD_TPS65217=y
149CONFIG_MFD_TPS65910=y
138CONFIG_REGULATOR_TWL4030=y 150CONFIG_REGULATOR_TWL4030=y
139CONFIG_REGULATOR_TPS65023=y 151CONFIG_REGULATOR_TPS65023=y
140CONFIG_REGULATOR_TPS6507X=y 152CONFIG_REGULATOR_TPS6507X=y
141CONFIG_REGULATOR_TPS65217=y 153CONFIG_REGULATOR_TPS65217=y
154CONFIG_REGULATOR_TPS65910=y
142CONFIG_FB=y 155CONFIG_FB=y
143CONFIG_FIRMWARE_EDID=y 156CONFIG_FIRMWARE_EDID=y
144CONFIG_FB_MODE_HELPERS=y 157CONFIG_FB_MODE_HELPERS=y
@@ -150,6 +163,7 @@ CONFIG_OMAP2_DSS_SDI=y
150CONFIG_OMAP2_DSS_DSI=y 163CONFIG_OMAP2_DSS_DSI=y
151CONFIG_FB_OMAP2=m 164CONFIG_FB_OMAP2=m
152CONFIG_PANEL_GENERIC_DPI=m 165CONFIG_PANEL_GENERIC_DPI=m
166CONFIG_PANEL_TFP410=m
153CONFIG_PANEL_SHARP_LS037V7DW01=m 167CONFIG_PANEL_SHARP_LS037V7DW01=m
154CONFIG_PANEL_NEC_NL8048HL11_01B=m 168CONFIG_PANEL_NEC_NL8048HL11_01B=m
155CONFIG_PANEL_TAAL=m 169CONFIG_PANEL_TAAL=m
@@ -196,9 +210,20 @@ CONFIG_MMC_UNSAFE_RESUME=y
196CONFIG_SDIO_UART=y 210CONFIG_SDIO_UART=y
197CONFIG_MMC_OMAP=y 211CONFIG_MMC_OMAP=y
198CONFIG_MMC_OMAP_HS=y 212CONFIG_MMC_OMAP_HS=y
213CONFIG_NEW_LEDS=y
214CONFIG_LEDS_GPIO=y
215CONFIG_LEDS_TRIGGERS=y
216CONFIG_LEDS_TRIGGER_TIMER=y
217CONFIG_LEDS_TRIGGER_ONESHOT=y
218CONFIG_LEDS_TRIGGER_HEARTBEAT=y
219CONFIG_LEDS_TRIGGER_BACKLIGHT=y
220CONFIG_LEDS_TRIGGER_CPU=y
221CONFIG_LEDS_TRIGGER_GPIO=y
222CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
199CONFIG_RTC_CLASS=y 223CONFIG_RTC_CLASS=y
200CONFIG_RTC_DRV_TWL92330=y 224CONFIG_RTC_DRV_TWL92330=y
201CONFIG_RTC_DRV_TWL4030=y 225CONFIG_RTC_DRV_TWL4030=y
226CONFIG_RTC_DRV_OMAP=y
202CONFIG_DMADEVICES=y 227CONFIG_DMADEVICES=y
203CONFIG_DMA_OMAP=y 228CONFIG_DMA_OMAP=y
204CONFIG_EXT2_FS=y 229CONFIG_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 0299915575a8..fae66e37f6e6 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,51 +1521,44 @@ 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
1568 ret = da8xx_register_spi(1, da850evm_spi_info, 1554 ret = da8xx_register_spi(1, da850evm_spi_info,
1569 ARRAY_SIZE(da850evm_spi_info)); 1555 ARRAY_SIZE(da850evm_spi_info));
1570 if (ret) 1556 if (ret)
1571 pr_warning("da850_evm_init: spi 1 registration failed: %d\n", 1557 pr_warn("%s: SPI 1 registration failed: %d\n", __func__, ret);
1572 ret);
1573 1558
1574 ret = da850_register_sata(DA850EVM_SATA_REFCLKPN_RATE); 1559 ret = da850_register_sata(DA850EVM_SATA_REFCLKPN_RATE);
1575 if (ret) 1560 if (ret)
1576 pr_warning("da850_evm_init: sata registration failed: %d\n", 1561 pr_warn("%s: SATA registration failed: %d\n", __func__, ret);
1577 ret);
1578 1562
1579 da850_evm_setup_mac_addr(); 1563 da850_evm_setup_mac_addr();
1580} 1564}
diff --git a/arch/arm/mach-davinci/board-omapl138-hawk.c b/arch/arm/mach-davinci/board-omapl138-hawk.c
index dc1208e9e664..d5a6bcd38903 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 24d2f2df11a0..ecd3f2a61bd4 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 41b581fd0213..d4e4f9590a95 100644
--- a/arch/arm/mach-omap2/Kconfig
+++ b/arch/arm/mach-omap2/Kconfig
@@ -165,12 +165,6 @@ config MACH_OMAP_H4
165 select OMAP_DEBUG_DEVICES 165 select OMAP_DEBUG_DEVICES
166 select OMAP_PACKAGE_ZAF 166 select OMAP_PACKAGE_ZAF
167 167
168config MACH_OMAP_APOLLON
169 bool "OMAP 2420 Apollon board"
170 depends on SOC_OMAP2420
171 default y
172 select OMAP_PACKAGE_ZAC
173
174config MACH_OMAP_2430SDP 168config MACH_OMAP_2430SDP
175 bool "OMAP 2430 SDP board" 169 bool "OMAP 2430 SDP board"
176 depends on SOC_OMAP2430 170 depends on SOC_OMAP2430
diff --git a/arch/arm/mach-omap2/Makefile b/arch/arm/mach-omap2/Makefile
index 947cafe65aef..0c66759a1174 100644
--- a/arch/arm/mach-omap2/Makefile
+++ b/arch/arm/mach-omap2/Makefile
@@ -220,7 +220,6 @@ endif
220obj-$(CONFIG_MACH_OMAP_GENERIC) += board-generic.o 220obj-$(CONFIG_MACH_OMAP_GENERIC) += board-generic.o
221obj-$(CONFIG_MACH_OMAP_H4) += board-h4.o 221obj-$(CONFIG_MACH_OMAP_H4) += board-h4.o
222obj-$(CONFIG_MACH_OMAP_2430SDP) += board-2430sdp.o 222obj-$(CONFIG_MACH_OMAP_2430SDP) += board-2430sdp.o
223obj-$(CONFIG_MACH_OMAP_APOLLON) += board-apollon.o
224obj-$(CONFIG_MACH_OMAP3_BEAGLE) += board-omap3beagle.o 223obj-$(CONFIG_MACH_OMAP3_BEAGLE) += board-omap3beagle.o
225obj-$(CONFIG_MACH_DEVKIT8000) += board-devkit8000.o 224obj-$(CONFIG_MACH_DEVKIT8000) += board-devkit8000.o
226obj-$(CONFIG_MACH_OMAP_LDP) += board-ldp.o 225obj-$(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 bb73afc9ac17..e7ef3111a0f2 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 29
29#include <asm/mach-types.h> 30#include <asm/mach-types.h>
30#include <asm/mach/arch.h> 31#include <asm/mach/arch.h>
@@ -209,6 +210,19 @@ static struct omap2_hsmmc_info mmc[] = {
209 {} /* Terminator */ 210 {} /* Terminator */
210}; 211};
211 212
213static struct omap_tw4030_pdata omap_twl4030_audio_data = {
214 .voice_connected = true,
215 .custom_routing = true,
216
217 .has_hs = OMAP_TWL4030_LEFT | OMAP_TWL4030_RIGHT,
218 .has_hf = OMAP_TWL4030_LEFT | OMAP_TWL4030_RIGHT,
219
220 .has_mainmic = true,
221 .has_submic = true,
222 .has_hsmic = true,
223 .has_linein = OMAP_TWL4030_LEFT | OMAP_TWL4030_RIGHT,
224};
225
212static int sdp3430_twl_gpio_setup(struct device *dev, 226static int sdp3430_twl_gpio_setup(struct device *dev,
213 unsigned gpio, unsigned ngpio) 227 unsigned gpio, unsigned ngpio)
214{ 228{
@@ -225,6 +239,9 @@ static int sdp3430_twl_gpio_setup(struct device *dev,
225 /* gpio + 15 is "sub_lcd_nRST" (output) */ 239 /* gpio + 15 is "sub_lcd_nRST" (output) */
226 gpio_request_one(gpio + 15, GPIOF_OUT_INIT_LOW, "sub_lcd_nRST"); 240 gpio_request_one(gpio + 15, GPIOF_OUT_INIT_LOW, "sub_lcd_nRST");
227 241
242 omap_twl4030_audio_data.jack_detect = gpio + 2;
243 omap_twl4030_audio_init("SDP3430", &omap_twl4030_audio_data);
244
228 return 0; 245 return 0;
229} 246}
230 247
@@ -382,6 +399,9 @@ static int __init omap3430_i2c_init(void)
382 sdp3430_twldata.vpll2->constraints.apply_uV = true; 399 sdp3430_twldata.vpll2->constraints.apply_uV = true;
383 sdp3430_twldata.vpll2->constraints.name = "VDVI"; 400 sdp3430_twldata.vpll2->constraints.name = "VDVI";
384 401
402 sdp3430_twldata.audio->codec->hs_extmute = 1;
403 sdp3430_twldata.audio->codec->hs_extmute_gpio = -EINVAL;
404
385 omap3_pmic_init("twl4030", &sdp3430_twldata); 405 omap3_pmic_init("twl4030", &sdp3430_twldata);
386 406
387 /* i2c2 on camera connector (for sensor control) and optional isp1301 */ 407 /* 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 1cc6696594fd..918b73bd0215 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/platform_data/omap4-keypad.h> 31#include <linux/platform_data/omap4-keypad.h>
30#include <linux/usb/musb.h> 32#include <linux/usb/musb.h>
31 33
@@ -256,10 +258,20 @@ static struct gpio_led_platform_data sdp4430_led_data = {
256 .num_leds = ARRAY_SIZE(sdp4430_gpio_leds), 258 .num_leds = ARRAY_SIZE(sdp4430_gpio_leds),
257}; 259};
258 260
261static struct pwm_lookup sdp4430_pwm_lookup[] = {
262 PWM_LOOKUP("twl-pwm", 0, "leds_pwm", "omap4::keypad"),
263 PWM_LOOKUP("twl-pwm", 1, "pwm-backlight", NULL),
264 PWM_LOOKUP("twl-pwmled", 0, "leds_pwm", "omap4:green:chrg"),
265};
266
259static struct led_pwm sdp4430_pwm_leds[] = { 267static struct led_pwm sdp4430_pwm_leds[] = {
260 { 268 {
269 .name = "omap4::keypad",
270 .max_brightness = 127,
271 .pwm_period_ns = 7812500,
272 },
273 {
261 .name = "omap4:green:chrg", 274 .name = "omap4:green:chrg",
262 .pwm_id = 1,
263 .max_brightness = 255, 275 .max_brightness = 255,
264 .pwm_period_ns = 7812500, 276 .pwm_period_ns = 7812500,
265 }, 277 },
@@ -278,6 +290,20 @@ static struct platform_device sdp4430_leds_pwm = {
278 }, 290 },
279}; 291};
280 292
293static struct platform_pwm_backlight_data sdp4430_backlight_data = {
294 .max_brightness = 127,
295 .dft_brightness = 127,
296 .pwm_period_ns = 7812500,
297};
298
299static struct platform_device sdp4430_backlight_pwm = {
300 .name = "pwm-backlight",
301 .id = -1,
302 .dev = {
303 .platform_data = &sdp4430_backlight_data,
304 },
305};
306
281static int omap_prox_activate(struct device *dev) 307static int omap_prox_activate(struct device *dev)
282{ 308{
283 gpio_set_value(OMAP4_SFH7741_ENABLE_GPIO , 1); 309 gpio_set_value(OMAP4_SFH7741_ENABLE_GPIO , 1);
@@ -412,6 +438,7 @@ static struct platform_device *sdp4430_devices[] __initdata = {
412 &sdp4430_gpio_keys_device, 438 &sdp4430_gpio_keys_device,
413 &sdp4430_leds_gpio, 439 &sdp4430_leds_gpio,
414 &sdp4430_leds_pwm, 440 &sdp4430_leds_pwm,
441 &sdp4430_backlight_pwm,
415 &sdp4430_vbat, 442 &sdp4430_vbat,
416 &sdp4430_dmic_codec, 443 &sdp4430_dmic_codec,
417 &sdp4430_abe_audio, 444 &sdp4430_abe_audio,
@@ -707,6 +734,7 @@ static void __init omap_4430sdp_init(void)
707 ARRAY_SIZE(sdp4430_spi_board_info)); 734 ARRAY_SIZE(sdp4430_spi_board_info));
708 } 735 }
709 736
737 pwm_add_table(sdp4430_pwm_lookup, ARRAY_SIZE(sdp4430_pwm_lookup));
710 status = omap4_keyboard_init(&sdp4430_keypad_data, &keypad_data); 738 status = omap4_keyboard_init(&sdp4430_keypad_data, &keypad_data);
711 if (status) 739 if (status)
712 pr_err("Keypad initialization failed: %d\n", status); 740 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 51b96a1206d1..82805de80056 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_board_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 5d0a61f54165..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 .timer = &omap2_timer,
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 b3102c2f4a3c..eec635e15edd 100644
--- a/arch/arm/mach-omap2/board-cm-t35.c
+++ b/arch/arm/mach-omap2/board-cm-t35.c
@@ -722,7 +722,7 @@ static void __init cm_t3x_common_init(void)
722 cm_t35_init_ethernet(); 722 cm_t35_init_ethernet();
723 cm_t35_init_led(); 723 cm_t35_init_led();
724 cm_t35_init_display(); 724 cm_t35_init_display();
725 omap_twl4030_audio_init("cm-t3x"); 725 omap_twl4030_audio_init("cm-t3x", NULL);
726 726
727 usb_musb_init(NULL); 727 usb_musb_init(NULL);
728 cm_t35_init_usbh(); 728 cm_t35_init_usbh();
diff --git a/arch/arm/mach-omap2/board-cm-t3517.c b/arch/arm/mach-omap2/board-cm-t3517.c
index ebbc2adb499e..792d6841790a 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 12865af25d3a..f0aa64b1e977 100644
--- a/arch/arm/mach-omap2/board-devkit8000.c
+++ b/arch/arm/mach-omap2/board-devkit8000.c
@@ -627,7 +627,7 @@ static void __init devkit8000_init(void)
627 board_nand_init(devkit8000_nand_partitions, 627 board_nand_init(devkit8000_nand_partitions,
628 ARRAY_SIZE(devkit8000_nand_partitions), NAND_CS, 628 ARRAY_SIZE(devkit8000_nand_partitions), NAND_CS,
629 NAND_BUSWIDTH_16, NULL); 629 NAND_BUSWIDTH_16, NULL);
630 omap_twl4030_audio_init("omap3beagle"); 630 omap_twl4030_audio_init("omap3beagle", NULL);
631 631
632 /* Ensure SDRC pins are mux'd for self-refresh */ 632 /* Ensure SDRC pins are mux'd for self-refresh */
633 omap_mux_init_signal("sdrc_cke0", OMAP_PIN_OUTPUT); 633 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 0f24cb84ba5a..2939c3d65492 100644
--- a/arch/arm/mach-omap2/board-igep0020.c
+++ b/arch/arm/mach-omap2/board-igep0020.c
@@ -300,20 +300,20 @@ static struct omap2_hsmmc_info mmc[] = {
300 300
301static struct gpio_led igep_gpio_leds[] = { 301static struct gpio_led igep_gpio_leds[] = {
302 [0] = { 302 [0] = {
303 .name = "gpio-led:red:d0", 303 .name = "omap3:red:user0",
304 .default_trigger = "default-off" 304 .default_state = 0,
305 }, 305 },
306 [1] = { 306 [1] = {
307 .name = "gpio-led:green:d0", 307 .name = "omap3:green:boot",
308 .default_trigger = "default-off", 308 .default_state = 1,
309 }, 309 },
310 [2] = { 310 [2] = {
311 .name = "gpio-led:red:d1", 311 .name = "omap3:red:user1",
312 .default_trigger = "default-off", 312 .default_state = 0,
313 }, 313 },
314 [3] = { 314 [3] = {
315 .name = "gpio-led:green:d1", 315 .name = "omap3:green:user1",
316 .default_trigger = "heartbeat", 316 .default_state = 0,
317 .gpio = -EINVAL, /* gets replaced */ 317 .gpio = -EINVAL, /* gets replaced */
318 .active_low = 1, 318 .active_low = 1,
319 }, 319 },
@@ -629,7 +629,7 @@ static void __init igep_init(void)
629 629
630 igep_flash_init(); 630 igep_flash_init();
631 igep_leds_init(); 631 igep_leds_init();
632 omap_twl4030_audio_init("igep2"); 632 omap_twl4030_audio_init("igep2", NULL);
633 633
634 /* 634 /*
635 * WLAN-BT combo module from MuRata which has a Marvell WLAN 635 * 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 22c483d5dfa8..2a6e8ad1d68b 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>
@@ -55,6 +57,32 @@
55 57
56#define NAND_CS 0 58#define NAND_CS 0
57 59
60static struct pwm_lookup pwm_lookup[] = {
61 /* LEDB -> PMU_STAT */
62 PWM_LOOKUP("twl-pwmled", 1, "leds_pwm", "beagleboard::pmu_stat"),
63};
64
65static struct led_pwm pwm_leds[] = {
66 {
67 .name = "beagleboard::pmu_stat",
68 .max_brightness = 127,
69 .pwm_period_ns = 7812500,
70 },
71};
72
73static struct led_pwm_platform_data pwm_data = {
74 .num_leds = ARRAY_SIZE(pwm_leds),
75 .leds = pwm_leds,
76};
77
78static struct platform_device leds_pwm = {
79 .name = "leds_pwm",
80 .id = -1,
81 .dev = {
82 .platform_data = &pwm_data,
83 },
84};
85
58/* 86/*
59 * OMAP3 Beagle revision 87 * OMAP3 Beagle revision
60 * Run time detection of Beagle revision is done by reading GPIO. 88 * Run time detection of Beagle revision is done by reading GPIO.
@@ -292,9 +320,6 @@ static int beagle_twl_gpio_setup(struct device *dev,
292 gpio_request_one(gpio + TWL4030_GPIO_MAX, beagle_config.usb_pwr_level, 320 gpio_request_one(gpio + TWL4030_GPIO_MAX, beagle_config.usb_pwr_level,
293 "nEN_USB_PWR"); 321 "nEN_USB_PWR");
294 322
295 /* TWL4030_GPIO_MAX + 1 == ledB, PMU_STAT (out, active low LED) */
296 gpio_leds[2].gpio = gpio + TWL4030_GPIO_MAX + 1;
297
298 return 0; 323 return 0;
299} 324}
300 325
@@ -376,11 +401,6 @@ static struct gpio_led gpio_leds[] = {
376 .default_trigger = "mmc0", 401 .default_trigger = "mmc0",
377 .gpio = 149, 402 .gpio = 149,
378 }, 403 },
379 {
380 .name = "beagleboard::pmu_stat",
381 .gpio = -EINVAL, /* gets replaced */
382 .active_low = true,
383 },
384}; 404};
385 405
386static struct gpio_led_platform_data gpio_led_info = { 406static struct gpio_led_platform_data gpio_led_info = {
@@ -428,6 +448,7 @@ static struct platform_device *omap3_beagle_devices[] __initdata = {
428 &leds_gpio, 448 &leds_gpio,
429 &keys_gpio, 449 &keys_gpio,
430 &madc_hwmon, 450 &madc_hwmon,
451 &leds_pwm,
431}; 452};
432 453
433static const struct usbhs_omap_board_data usbhs_bdata __initconst = { 454static const struct usbhs_omap_board_data usbhs_bdata __initconst = {
@@ -524,7 +545,7 @@ static void __init omap3_beagle_init(void)
524 board_nand_init(omap3beagle_nand_partitions, 545 board_nand_init(omap3beagle_nand_partitions,
525 ARRAY_SIZE(omap3beagle_nand_partitions), NAND_CS, 546 ARRAY_SIZE(omap3beagle_nand_partitions), NAND_CS,
526 NAND_BUSWIDTH_16, NULL); 547 NAND_BUSWIDTH_16, NULL);
527 omap_twl4030_audio_init("omap3beagle"); 548 omap_twl4030_audio_init("omap3beagle", NULL);
528 549
529 /* Ensure msecure is mux'd to be able to set the RTC. */ 550 /* Ensure msecure is mux'd to be able to set the RTC. */
530 omap_mux_init_signal("sys_drm_msecure", OMAP_PIN_OFF_OUTPUT_HIGH); 551 omap_mux_init_signal("sys_drm_msecure", OMAP_PIN_OFF_OUTPUT_HIGH);
@@ -532,6 +553,8 @@ static void __init omap3_beagle_init(void)
532 /* Ensure SDRC pins are mux'd for self-refresh */ 553 /* Ensure SDRC pins are mux'd for self-refresh */
533 omap_mux_init_signal("sdrc_cke0", OMAP_PIN_OUTPUT); 554 omap_mux_init_signal("sdrc_cke0", OMAP_PIN_OUTPUT);
534 omap_mux_init_signal("sdrc_cke1", OMAP_PIN_OUTPUT); 555 omap_mux_init_signal("sdrc_cke1", OMAP_PIN_OUTPUT);
556
557 pwm_add_table(pwm_lookup, ARRAY_SIZE(pwm_lookup));
535} 558}
536 559
537MACHINE_START(OMAP3_BEAGLE, "OMAP3 Beagle Board") 560MACHINE_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 3985f35aee06..8803b5cff09d 100644
--- a/arch/arm/mach-omap2/board-omap3evm.c
+++ b/arch/arm/mach-omap2/board-omap3evm.c
@@ -744,7 +744,7 @@ static void __init omap3_evm_init(void)
744 omap3evm_init_smsc911x(); 744 omap3evm_init_smsc911x();
745 omap3_evm_display_init(); 745 omap3_evm_display_init();
746 omap3_evm_wl12xx_init(); 746 omap3_evm_wl12xx_init();
747 omap_twl4030_audio_init("omap3evm"); 747 omap_twl4030_audio_init("omap3evm", NULL);
748} 748}
749 749
750MACHINE_START(OMAP3EVM, "OMAP3 EVM") 750MACHINE_START(OMAP3EVM, "OMAP3 EVM")
diff --git a/arch/arm/mach-omap2/board-overo.c b/arch/arm/mach-omap2/board-overo.c
index c8fde3e56441..fe644ebe7657 100644
--- a/arch/arm/mach-omap2/board-overo.c
+++ b/arch/arm/mach-omap2/board-overo.c
@@ -506,7 +506,7 @@ static void __init overo_init(void)
506 overo_display_init(); 506 overo_display_init();
507 overo_init_led(); 507 overo_init_led();
508 overo_init_keys(); 508 overo_init_keys();
509 omap_twl4030_audio_init("overo"); 509 omap_twl4030_audio_init("overo", NULL);
510 510
511 /* Ensure SDRC pins are mux'd for self-refresh */ 511 /* Ensure SDRC pins are mux'd for self-refresh */
512 omap_mux_init_signal("sdrc_cke0", OMAP_PIN_OUTPUT); 512 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 cf07e289b4ea..07a9ca8eda9f 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 26e07addc9d7..0745bd93f398 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 24
24#include <asm/mach-types.h> 25#include <asm/mach-types.h>
25#include <asm/mach/arch.h> 26#include <asm/mach/arch.h>
@@ -34,11 +35,9 @@
34#include "common-board-devices.h" 35#include "common-board-devices.h"
35 36
36#define OMAP_ZOOM_WLAN_PMENA_GPIO (101) 37#define OMAP_ZOOM_WLAN_PMENA_GPIO (101)
37#define ZOOM2_HEADSET_EXTMUTE_GPIO (153) 38#define OMAP_ZOOM_TSC2004_IRQ_GPIO (153)
38#define OMAP_ZOOM_WLAN_IRQ_GPIO (162) 39#define OMAP_ZOOM_WLAN_IRQ_GPIO (162)
39 40
40#define LCD_PANEL_ENABLE_GPIO (7 + OMAP_MAX_GPIO_LINES)
41
42/* Zoom2 has Qwerty keyboard*/ 41/* Zoom2 has Qwerty keyboard*/
43static uint32_t board_keymap[] = { 42static uint32_t board_keymap[] = {
44 KEY(0, 0, KEY_E), 43 KEY(0, 0, KEY_E),
@@ -226,22 +225,31 @@ static struct omap2_hsmmc_info mmc[] = {
226 {} /* Terminator */ 225 {} /* Terminator */
227}; 226};
228 227
228static struct omap_tw4030_pdata omap_twl4030_audio_data = {
229 .voice_connected = true,
230 .custom_routing = true,
231
232 .has_hs = OMAP_TWL4030_LEFT | OMAP_TWL4030_RIGHT,
233 .has_hf = OMAP_TWL4030_LEFT | OMAP_TWL4030_RIGHT,
234
235 .has_mainmic = true,
236 .has_submic = true,
237 .has_hsmic = true,
238 .has_linein = OMAP_TWL4030_LEFT | OMAP_TWL4030_RIGHT,
239};
240
229static int zoom_twl_gpio_setup(struct device *dev, 241static int zoom_twl_gpio_setup(struct device *dev,
230 unsigned gpio, unsigned ngpio) 242 unsigned gpio, unsigned ngpio)
231{ 243{
232 int ret;
233
234 /* gpio + 0 is "mmc0_cd" (input/IRQ) */ 244 /* gpio + 0 is "mmc0_cd" (input/IRQ) */
235 mmc[0].gpio_cd = gpio + 0; 245 mmc[0].gpio_cd = gpio + 0;
236 omap_hsmmc_late_init(mmc); 246 omap_hsmmc_late_init(mmc);
237 247
238 ret = gpio_request_one(LCD_PANEL_ENABLE_GPIO, GPIOF_OUT_INIT_LOW, 248 /* Audio setup */
239 "lcd enable"); 249 omap_twl4030_audio_data.jack_detect = gpio + 2;
240 if (ret) 250 omap_twl4030_audio_init("Zoom2", &omap_twl4030_audio_data);
241 pr_err("Failed to get LCD_PANEL_ENABLE_GPIO (gpio%d).\n",
242 LCD_PANEL_ENABLE_GPIO);
243 251
244 return ret; 252 return 0;
245} 253}
246 254
247static struct twl4030_gpio_platform_data zoom_gpio_data = { 255static struct twl4030_gpio_platform_data zoom_gpio_data = {
@@ -264,14 +272,9 @@ static int __init omap_i2c_init(void)
264 TWL_COMMON_PDATA_MADC | TWL_COMMON_PDATA_AUDIO, 272 TWL_COMMON_PDATA_MADC | TWL_COMMON_PDATA_AUDIO,
265 TWL_COMMON_REGULATOR_VDAC | TWL_COMMON_REGULATOR_VPLL2); 273 TWL_COMMON_REGULATOR_VDAC | TWL_COMMON_REGULATOR_VPLL2);
266 274
267 if (machine_is_omap_zoom2()) { 275 if (machine_is_omap_zoom2())
268 struct twl4030_codec_data *codec_data; 276 zoom_twldata.audio->codec->ramp_delay_value = 3; /* 161 ms */
269 codec_data = zoom_twldata.audio->codec;
270 277
271 codec_data->ramp_delay_value = 3; /* 161 ms */
272 codec_data->hs_extmute = 1;
273 codec_data->hs_extmute_gpio = ZOOM2_HEADSET_EXTMUTE_GPIO;
274 }
275 omap_pmic_init(1, 2400, "twl5030", 7 + OMAP_INTC_START, &zoom_twldata); 278 omap_pmic_init(1, 2400, "twl5030", 7 + OMAP_INTC_START, &zoom_twldata);
276 omap_register_i2c_bus(2, 400, NULL, 0); 279 omap_register_i2c_bus(2, 400, NULL, 0);
277 omap_register_i2c_bus(3, 400, NULL, 0); 280 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 8033cb747c86..609c0913b0f3 100644
--- a/arch/arm/mach-omap2/gpmc.c
+++ b/arch/arm/mach-omap2/gpmc.c
@@ -783,9 +783,6 @@ static int gpmc_mem_init(void)
783 * even if we didn't boot from ROM. 783 * even if we didn't boot from ROM.
784 */ 784 */
785 boot_rom_space = BOOT_ROM_SPACE; 785 boot_rom_space = BOOT_ROM_SPACE;
786 /* In apollon the CS0 is mapped as 0x0000 0000 */
787 if (machine_is_omap_apollon())
788 boot_rom_space = 0;
789 gpmc_mem_root.start = GPMC_MEM_START + boot_rom_space; 786 gpmc_mem_root.start = GPMC_MEM_START + boot_rom_space;
790 gpmc_mem_root.end = GPMC_MEM_END; 787 gpmc_mem_root.end = GPMC_MEM_END;
791 788
diff --git a/arch/arm/mach-omap2/twl-common.c b/arch/arm/mach-omap2/twl-common.c
index e49b40b4c90a..62cf40b86e4a 100644
--- a/arch/arm/mach-omap2/twl-common.c
+++ b/arch/arm/mach-omap2/twl-common.c
@@ -528,24 +528,29 @@ void __init omap4_pmic_get_config(struct twl4030_platform_data *pmic_data,
528 defined(CONFIG_SND_OMAP_SOC_OMAP_TWL4030_MODULE) 528 defined(CONFIG_SND_OMAP_SOC_OMAP_TWL4030_MODULE)
529#include <linux/platform_data/omap-twl4030.h> 529#include <linux/platform_data/omap-twl4030.h>
530 530
531/* Commonly used configuration */
531static struct omap_tw4030_pdata omap_twl4030_audio_data; 532static struct omap_tw4030_pdata omap_twl4030_audio_data;
532 533
533static struct platform_device audio_device = { 534static struct platform_device audio_device = {
534 .name = "omap-twl4030", 535 .name = "omap-twl4030",
535 .id = -1, 536 .id = -1,
536 .dev = {
537 .platform_data = &omap_twl4030_audio_data,
538 },
539}; 537};
540 538
541void __init omap_twl4030_audio_init(char *card_name) 539void omap_twl4030_audio_init(char *card_name,
540 struct omap_tw4030_pdata *pdata)
542{ 541{
543 omap_twl4030_audio_data.card_name = card_name; 542 if (!pdata)
543 pdata = &omap_twl4030_audio_data;
544
545 pdata->card_name = card_name;
546
547 audio_device.dev.platform_data = pdata;
544 platform_device_register(&audio_device); 548 platform_device_register(&audio_device);
545} 549}
546 550
547#else /* SOC_OMAP_TWL4030 */ 551#else /* SOC_OMAP_TWL4030 */
548void __init omap_twl4030_audio_init(char *card_name) 552void omap_twl4030_audio_init(char *card_name,
553 struct omap_tw4030_pdata *pdata)
549{ 554{
550 return; 555 return;
551} 556}
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 3f3c48f2f7ce..c181a60a23f4 100644
--- a/arch/arm/mach-pxa/palmtreo.c
+++ b/arch/arm/mach-pxa/palmtreo.c
@@ -161,7 +161,7 @@ static unsigned long centro685_pin_config[] __initdata = {
161/****************************************************************************** 161/******************************************************************************
162 * GPIO keyboard 162 * GPIO keyboard
163 ******************************************************************************/ 163 ******************************************************************************/
164#if defined(CONFIG_KEYBOARD_PXA27x) || defined(CONFIG_KEYBOARD_PXA27x_MODULE) 164#if IS_ENABLED(CONFIG_KEYBOARD_PXA27x)
165static unsigned int treo680_matrix_keys[] = { 165static unsigned int treo680_matrix_keys[] = {
166 KEY(0, 0, KEY_F8), /* Red/Off/Power */ 166 KEY(0, 0, KEY_F8), /* Red/Off/Power */
167 KEY(0, 1, KEY_LEFT), 167 KEY(0, 1, KEY_LEFT),
@@ -309,7 +309,7 @@ static inline void palmtreo_kpc_init(void) {}
309/****************************************************************************** 309/******************************************************************************
310 * USB host 310 * USB host
311 ******************************************************************************/ 311 ******************************************************************************/
312#if defined(CONFIG_USB_OHCI_HCD) || defined(CONFIG_USB_OHCI_HCD_MODULE) 312#if IS_ENABLED(CONFIG_USB_OHCI_HCD)
313static struct pxaohci_platform_data treo680_ohci_info = { 313static struct pxaohci_platform_data treo680_ohci_info = {
314 .port_mode = PMM_PERPORT_MODE, 314 .port_mode = PMM_PERPORT_MODE,
315 .flags = ENABLE_PORT1 | ENABLE_PORT3, 315 .flags = ENABLE_PORT1 | ENABLE_PORT3,
@@ -396,6 +396,36 @@ static inline void palmtreo_leds_init(void) {}
396#endif 396#endif
397 397
398/****************************************************************************** 398/******************************************************************************
399 * diskonchip docg4 flash
400 ******************************************************************************/
401#if defined(CONFIG_MACH_TREO680)
402/* REVISIT: does the centro have this device also? */
403#if IS_ENABLED(CONFIG_MTD_NAND_DOCG4)
404static struct resource docg4_resources[] = {
405 {
406 .start = 0x00000000,
407 .end = 0x00001FFF,
408 .flags = IORESOURCE_MEM,
409 },
410};
411
412static struct platform_device treo680_docg4_flash = {
413 .name = "docg4",
414 .id = -1,
415 .resource = docg4_resources,
416 .num_resources = ARRAY_SIZE(docg4_resources),
417};
418
419static void __init treo680_docg4_flash_init(void)
420{
421 platform_device_register(&treo680_docg4_flash);
422}
423#else
424static inline void treo680_docg4_flash_init(void) {}
425#endif
426#endif
427
428/******************************************************************************
399 * Machine init 429 * Machine init
400 ******************************************************************************/ 430 ******************************************************************************/
401static void __init treo_reserve(void) 431static void __init treo_reserve(void)
@@ -430,6 +460,7 @@ static void __init treo680_init(void)
430 palmphone_common_init(); 460 palmphone_common_init();
431 palm27x_mmc_init(GPIO_NR_TREO_SD_DETECT_N, GPIO_NR_TREO680_SD_READONLY, 461 palm27x_mmc_init(GPIO_NR_TREO_SD_DETECT_N, GPIO_NR_TREO680_SD_READONLY,
432 GPIO_NR_TREO680_SD_POWER, 0); 462 GPIO_NR_TREO680_SD_POWER, 0);
463 treo680_docg4_flash_init();
433} 464}
434#endif 465#endif
435 466
diff --git a/arch/arm/mach-pxa/pxa27x.c b/arch/arm/mach-pxa/pxa27x.c
index 616cb87b6179..07f1bdb9cd8e 100644
--- a/arch/arm/mach-pxa/pxa27x.c
+++ b/arch/arm/mach-pxa/pxa27x.c
@@ -230,6 +230,7 @@ static struct clk_lookup pxa27x_clkregs[] = {
230 INIT_CLKREG(&clk_pxa27x_memc, NULL, "MEMCLK"), 230 INIT_CLKREG(&clk_pxa27x_memc, NULL, "MEMCLK"),
231 INIT_CLKREG(&clk_pxa27x_mem, "pxa2xx-pcmcia", NULL), 231 INIT_CLKREG(&clk_pxa27x_mem, "pxa2xx-pcmcia", NULL),
232 INIT_CLKREG(&clk_dummy, "pxa-gpio", NULL), 232 INIT_CLKREG(&clk_dummy, "pxa-gpio", NULL),
233 INIT_CLKREG(&clk_dummy, "sa1100-rtc", NULL),
233}; 234};
234 235
235#ifdef CONFIG_PM 236#ifdef CONFIG_PM
diff --git a/arch/arm/mach-shmobile/board-ag5evm.c b/arch/arm/mach-shmobile/board-ag5evm.c
index 032d10817e79..5e7fe157f5a6 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 99ef190d0909..0c59464230fb 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/*
@@ -1042,9 +1046,7 @@ static int ts_get_pendown_state(void)
1042 1046
1043 gpio_free(GPIO_TSC_IRQ); 1047 gpio_free(GPIO_TSC_IRQ);
1044 1048
1045 gpio_request(GPIO_TSC_PORT, NULL); 1049 gpio_request_one(GPIO_TSC_PORT, GPIOF_IN, NULL);
1046
1047 gpio_direction_input(GPIO_TSC_PORT);
1048 1050
1049 val = gpio_get_value(GPIO_TSC_PORT); 1051 val = gpio_get_value(GPIO_TSC_PORT);
1050 1052
@@ -1125,18 +1127,10 @@ static void __init ap4evb_init(void)
1125 gpio_request(GPIO_FN_IRQ6_39, NULL); 1127 gpio_request(GPIO_FN_IRQ6_39, NULL);
1126 1128
1127 /* enable Debug switch (S6) */ 1129 /* enable Debug switch (S6) */
1128 gpio_request(GPIO_PORT32, NULL); 1130 gpio_request_one(GPIO_PORT32, GPIOF_IN | GPIOF_EXPORT, NULL);
1129 gpio_request(GPIO_PORT33, NULL); 1131 gpio_request_one(GPIO_PORT33, GPIOF_IN | GPIOF_EXPORT, NULL);
1130 gpio_request(GPIO_PORT34, NULL); 1132 gpio_request_one(GPIO_PORT34, GPIOF_IN | GPIOF_EXPORT, NULL);
1131 gpio_request(GPIO_PORT35, NULL); 1133 gpio_request_one(GPIO_PORT35, GPIOF_IN | GPIOF_EXPORT, NULL);
1132 gpio_direction_input(GPIO_PORT32);
1133 gpio_direction_input(GPIO_PORT33);
1134 gpio_direction_input(GPIO_PORT34);
1135 gpio_direction_input(GPIO_PORT35);
1136 gpio_export(GPIO_PORT32, 0);
1137 gpio_export(GPIO_PORT33, 0);
1138 gpio_export(GPIO_PORT34, 0);
1139 gpio_export(GPIO_PORT35, 0);
1140 1134
1141 /* SDHI0 */ 1135 /* SDHI0 */
1142 gpio_request(GPIO_FN_SDHICD0, NULL); 1136 gpio_request(GPIO_FN_SDHICD0, NULL);
@@ -1184,8 +1178,7 @@ static void __init ap4evb_init(void)
1184 gpio_request(GPIO_FN_FSIAILR, NULL); 1178 gpio_request(GPIO_FN_FSIAILR, NULL);
1185 gpio_request(GPIO_FN_FSIAISLD, NULL); 1179 gpio_request(GPIO_FN_FSIAISLD, NULL);
1186 gpio_request(GPIO_FN_FSIAOSLD, NULL); 1180 gpio_request(GPIO_FN_FSIAOSLD, NULL);
1187 gpio_request(GPIO_PORT161, NULL); 1181 gpio_request_one(GPIO_PORT161, GPIOF_OUT_INIT_LOW, NULL); /* slave */
1188 gpio_direction_output(GPIO_PORT161, 0); /* slave */
1189 1182
1190 gpio_request(GPIO_PORT9, NULL); 1183 gpio_request(GPIO_PORT9, NULL);
1191 gpio_request(GPIO_PORT10, NULL); 1184 gpio_request(GPIO_PORT10, NULL);
@@ -1193,8 +1186,7 @@ static void __init ap4evb_init(void)
1193 gpio_direction_none(GPIO_PORT10CR); /* FSIAOLR needs no direction */ 1186 gpio_direction_none(GPIO_PORT10CR); /* FSIAOLR needs no direction */
1194 1187
1195 /* card detect pin for MMC slot (CN7) */ 1188 /* card detect pin for MMC slot (CN7) */
1196 gpio_request(GPIO_PORT41, NULL); 1189 gpio_request_one(GPIO_PORT41, GPIOF_IN, NULL);
1197 gpio_direction_input(GPIO_PORT41);
1198 1190
1199 /* setup FSI2 port B (HDMI) */ 1191 /* setup FSI2 port B (HDMI) */
1200 gpio_request(GPIO_FN_FSIBCK, NULL); 1192 gpio_request(GPIO_FN_FSIBCK, NULL);
@@ -1282,11 +1274,8 @@ static void __init ap4evb_init(void)
1282 gpio_request(GPIO_FN_LCDDISP, NULL); 1274 gpio_request(GPIO_FN_LCDDISP, NULL);
1283 gpio_request(GPIO_FN_LCDDCK, NULL); 1275 gpio_request(GPIO_FN_LCDDCK, NULL);
1284 1276
1285 gpio_request(GPIO_PORT189, NULL); /* backlight */ 1277 gpio_request_one(GPIO_PORT189, GPIOF_OUT_INIT_HIGH, NULL); /* backlight */
1286 gpio_direction_output(GPIO_PORT189, 1); 1278 gpio_request_one(GPIO_PORT151, GPIOF_OUT_INIT_HIGH, NULL); /* LCDDON */
1287
1288 gpio_request(GPIO_PORT151, NULL); /* LCDDON */
1289 gpio_direction_output(GPIO_PORT151, 1);
1290 1279
1291 lcdc_info.clock_source = LCDC_CLK_BUS; 1280 lcdc_info.clock_source = LCDC_CLK_BUS;
1292 lcdc_info.ch[0].interface_type = RGB18; 1281 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 5353adf6b828..9008ad102a88 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)
@@ -1187,6 +1179,9 @@ static void __init eva_earlytimer_init(void)
1187{ 1179{
1188 r8a7740_clock_init(MD_CK0 | MD_CK2); 1180 r8a7740_clock_init(MD_CK0 | MD_CK2);
1189 shmobile_earlytimer_init(); 1181 shmobile_earlytimer_init();
1182
1183 /* the rate of extal1 clock must be set before late_time_init */
1184 eva_clock_init();
1190} 1185}
1191 1186
1192static void __init eva_add_early_devices(void) 1187static 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 cb8c994e1430..932a9c0926bc 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 bf88f9a8b7ac..7ec3112e971f 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 c02448d6847f..2d08f57631d0 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 2fed62f66045..8de350fe2a97 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 */
@@ -1408,11 +1406,10 @@ static void __init mackerel_init(void)
1408 gpio_request(GPIO_FN_LCDDISP, NULL); 1406 gpio_request(GPIO_FN_LCDDISP, NULL);
1409 gpio_request(GPIO_FN_LCDDCK, NULL); 1407 gpio_request(GPIO_FN_LCDDCK, NULL);
1410 1408
1411 gpio_request(GPIO_PORT31, NULL); /* backlight */ 1409 /* backlight, off by default */
1412 gpio_direction_output(GPIO_PORT31, 0); /* off by default */ 1410 gpio_request_one(GPIO_PORT31, GPIOF_OUT_INIT_LOW, NULL);
1413 1411
1414 gpio_request(GPIO_PORT151, NULL); /* LCDDON */ 1412 gpio_request_one(GPIO_PORT151, GPIOF_OUT_INIT_HIGH, NULL); /* LCDDON */
1415 gpio_direction_output(GPIO_PORT151, 1);
1416 1413
1417 /* USBHS0 */ 1414 /* USBHS0 */
1418 gpio_request(GPIO_FN_VBUS0_0, NULL); 1415 gpio_request(GPIO_FN_VBUS0_0, NULL);
@@ -1428,8 +1425,7 @@ static void __init mackerel_init(void)
1428 gpio_request(GPIO_FN_FSIAILR, NULL); 1425 gpio_request(GPIO_FN_FSIAILR, NULL);
1429 gpio_request(GPIO_FN_FSIAISLD, NULL); 1426 gpio_request(GPIO_FN_FSIAISLD, NULL);
1430 gpio_request(GPIO_FN_FSIAOSLD, NULL); 1427 gpio_request(GPIO_FN_FSIAOSLD, NULL);
1431 gpio_request(GPIO_PORT161, NULL); 1428 gpio_request_one(GPIO_PORT161, GPIOF_OUT_INIT_LOW, NULL); /* slave */
1432 gpio_direction_output(GPIO_PORT161, 0); /* slave */
1433 1429
1434 gpio_request(GPIO_PORT9, NULL); 1430 gpio_request(GPIO_PORT9, NULL);
1435 gpio_request(GPIO_PORT10, NULL); 1431 gpio_request(GPIO_PORT10, NULL);
@@ -1483,8 +1479,7 @@ static void __init mackerel_init(void)
1483 gpio_request(GPIO_FN_SDHID1_0, NULL); 1479 gpio_request(GPIO_FN_SDHID1_0, NULL);
1484#endif 1480#endif
1485 /* card detect pin for MMC slot (CN7) */ 1481 /* card detect pin for MMC slot (CN7) */
1486 gpio_request(GPIO_PORT41, NULL); 1482 gpio_request_one(GPIO_PORT41, GPIOF_IN, NULL);
1487 gpio_direction_input(GPIO_PORT41);
1488 1483
1489 /* enable SDHI2 */ 1484 /* enable SDHI2 */
1490 gpio_request(GPIO_FN_SDHICMD2, NULL); 1485 gpio_request(GPIO_FN_SDHICMD2, NULL);
@@ -1495,8 +1490,7 @@ static void __init mackerel_init(void)
1495 gpio_request(GPIO_FN_SDHID2_0, NULL); 1490 gpio_request(GPIO_FN_SDHID2_0, NULL);
1496 1491
1497 /* card detect pin for microSD slot (CN23) */ 1492 /* card detect pin for microSD slot (CN23) */
1498 gpio_request(GPIO_PORT162, NULL); 1493 gpio_request_one(GPIO_PORT162, GPIOF_IN, NULL);
1499 gpio_direction_input(GPIO_PORT162);
1500 1494
1501 /* MMCIF */ 1495 /* MMCIF */
1502 gpio_request(GPIO_FN_MMCD0_0, NULL); 1496 gpio_request(GPIO_FN_MMCD0_0, NULL);