aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2013-05-04 15:34:30 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2013-05-04 15:34:30 -0400
commit150a8dcf109f68f322bf112c7604f2d950303f00 (patch)
treed2219f3de4facbcd34625c733b6fae85ea3b7b8c /arch/arm
parente3d98847ded1d183111ff7c4d1ef56b161c7f13e (diff)
parent21bdcc1a2ffce8c9bc7caad711401fff47f99c00 (diff)
Merge tag 'boards-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
Pull ARM SoC board specific changes (part 1) from Olof Johansson: "These changes are all for board specific files. These used to make up a large portion of the ARM changes in the past, but as we are generalizing the support and moving to device tree probing, this has gotten significantly smaller. The only platform actually adding new code here at the moment is Renesas shmobile, as they are still busy converting their code to device tree and have not come far enough to not need it." * tag 'boards-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (43 commits) ARM: msm: USB_MSM_OTG needs USB_PHY ARM: davinci: da850 evm: fix const qualifier placement ARM: davinci: da850 board: add remoteproc support ARM: pxa: move debug uart code ARM: pxa: select PXA935 on saar & tavorevb ARM: mmp: add more compatible names in gpio driver ARM: pxa: move PXA_GPIO_TO_IRQ macro ARM: pxa: remove cpu_is_xxx in gpio driver ARM: Kirkwood: update Network Space Mini v2 description ARM: Kirkwood: DT board setup for CloudBox ARM: Kirkwood: sort board entries by ASCII-code order ARM: OMAP: board-4430sdp: Provide regulator to pwm-backlight ARM: OMAP: zoom: Use pwm stack for lcd and keyboard backlight ARM: OMAP2+: omap2plus_defconfig: Add support for BMP085 pressure sensor omap2+: Remove useless Makefile line omap2+: Remove useless Makefile line ARM: OMAP: RX-51: add missing regulator supply definitions for lis3lv02d ARM: OMAP1: fix omap_udc registration ARM: davinci: use is IS_ENABLED macro ARM: kirkwood: add MACH_GURUPLUG_DT to defconfig ...
Diffstat (limited to 'arch/arm')
-rw-r--r--arch/arm/Kconfig.debug15
-rw-r--r--arch/arm/boot/dts/Makefile6
-rw-r--r--arch/arm/boot/dts/kirkwood-cloudbox.dts89
-rw-r--r--arch/arm/boot/dts/kirkwood-netgear_readynas_duo_v2.dts180
-rw-r--r--arch/arm/boot/dts/kirkwood-ns2mini.dts1
-rw-r--r--arch/arm/boot/dts/mmp2.dtsi2
-rw-r--r--arch/arm/boot/dts/pxa168.dtsi2
-rw-r--r--arch/arm/boot/dts/pxa910.dtsi2
-rw-r--r--arch/arm/boot/dts/r8a7779-marzen-reference.dts47
-rw-r--r--arch/arm/boot/dts/sh73a0-kzm9g-reference.dts66
-rw-r--r--arch/arm/boot/dts/sh73a0-reference.dtsi24
-rw-r--r--arch/arm/boot/dts/sh73a0.dtsi44
-rw-r--r--arch/arm/configs/da8xx_omapl_defconfig1
-rw-r--r--arch/arm/configs/davinci_all_defconfig1
-rw-r--r--arch/arm/configs/kirkwood_defconfig53
-rw-r--r--arch/arm/configs/msm_defconfig155
-rw-r--r--arch/arm/configs/omap2plus_defconfig1
-rw-r--r--arch/arm/include/debug/pxa.S33
-rw-r--r--arch/arm/mach-davinci/board-da830-evm.c6
-rw-r--r--arch/arm/mach-davinci/board-da850-evm.c17
-rw-r--r--arch/arm/mach-davinci/board-dm644x-evm.c25
-rw-r--r--arch/arm/mach-davinci/board-dm646x-evm.c7
-rw-r--r--arch/arm/mach-davinci/board-neuros-osd2.c15
-rw-r--r--arch/arm/mach-davinci/board-omapl138-hawk.c6
-rw-r--r--arch/arm/mach-davinci/devices.c2
-rw-r--r--arch/arm/mach-davinci/usb.c2
-rw-r--r--arch/arm/mach-kirkwood/Kconfig334
-rw-r--r--arch/arm/mach-kirkwood/Makefile42
-rw-r--r--arch/arm/mach-kirkwood/board-dt.c18
-rw-r--r--arch/arm/mach-kirkwood/board-ns2.c3
-rw-r--r--arch/arm/mach-kirkwood/board-readynas.c28
-rw-r--r--arch/arm/mach-kirkwood/common.h12
-rw-r--r--arch/arm/mach-mmp/aspenite.c7
-rw-r--r--arch/arm/mach-mmp/avengers_lite.c7
-rw-r--r--arch/arm/mach-mmp/brownstone.c7
-rw-r--r--arch/arm/mach-mmp/clock-mmp2.c2
-rw-r--r--arch/arm/mach-mmp/clock-pxa168.c2
-rw-r--r--arch/arm/mach-mmp/clock-pxa910.c2
-rw-r--r--arch/arm/mach-mmp/flint.c7
-rw-r--r--arch/arm/mach-mmp/gplugd.c7
-rw-r--r--arch/arm/mach-mmp/include/mach/debug-macro.S30
-rw-r--r--arch/arm/mach-mmp/jasper.c8
-rw-r--r--arch/arm/mach-mmp/mmp-dt.c4
-rw-r--r--arch/arm/mach-mmp/mmp2-dt.c2
-rw-r--r--arch/arm/mach-mmp/mmp2.c2
-rw-r--r--arch/arm/mach-mmp/pxa168.c2
-rw-r--r--arch/arm/mach-mmp/pxa910.c2
-rw-r--r--arch/arm/mach-mmp/tavorevb.c7
-rw-r--r--arch/arm/mach-mmp/teton_bga.c7
-rw-r--r--arch/arm/mach-mmp/ttc_dkb.c7
-rw-r--r--arch/arm/mach-omap1/include/mach/usb.h2
-rw-r--r--arch/arm/mach-omap1/usb.c6
-rw-r--r--arch/arm/mach-omap2/Makefile3
-rw-r--r--arch/arm/mach-omap2/board-4430sdp.c6
-rw-r--r--arch/arm/mach-omap2/board-rx51-peripherals.c4
-rw-r--r--arch/arm/mach-omap2/board-zoom-display.c56
-rw-r--r--arch/arm/mach-omap2/board-zoom-peripherals.c53
-rw-r--r--arch/arm/mach-pxa/Kconfig2
-rw-r--r--arch/arm/mach-pxa/devices.c29
-rw-r--r--arch/arm/mach-pxa/devices.h6
-rw-r--r--arch/arm/mach-pxa/include/mach/debug-macro.S23
-rw-r--r--arch/arm/mach-pxa/pxa25x.c11
-rw-r--r--arch/arm/mach-pxa/pxa27x.c7
-rw-r--r--arch/arm/mach-pxa/pxa3xx.c23
-rw-r--r--arch/arm/mach-pxa/pxa930.c17
-rw-r--r--arch/arm/mach-shmobile/Kconfig27
-rw-r--r--arch/arm/mach-shmobile/Makefile2
-rw-r--r--arch/arm/mach-shmobile/board-armadillo800eva.c148
-rw-r--r--arch/arm/mach-shmobile/board-kzm9g-reference.c107
-rw-r--r--arch/arm/mach-shmobile/board-kzm9g.c82
-rw-r--r--arch/arm/mach-shmobile/board-mackerel.c2
-rw-r--r--arch/arm/mach-shmobile/board-marzen-reference.c75
-rw-r--r--arch/arm/mach-shmobile/board-marzen.c12
73 files changed, 1526 insertions, 528 deletions
diff --git a/arch/arm/Kconfig.debug b/arch/arm/Kconfig.debug
index 5c8e59f6a6f4..f57a6ba26e04 100644
--- a/arch/arm/Kconfig.debug
+++ b/arch/arm/Kconfig.debug
@@ -330,6 +330,13 @@ choice
330 Say Y here if you want kernel low-level debugging support 330 Say Y here if you want kernel low-level debugging support
331 on PicoXcell based platforms. 331 on PicoXcell based platforms.
332 332
333 config DEBUG_PXA_UART1
334 depends on ARCH_PXA
335 bool "Use PXA UART1 for low-level debug"
336 help
337 Say Y here if you want kernel low-level debugging support
338 on PXA UART1.
339
333 config DEBUG_REALVIEW_STD_PORT 340 config DEBUG_REALVIEW_STD_PORT
334 bool "RealView Default UART" 341 bool "RealView Default UART"
335 depends on ARCH_REALVIEW 342 depends on ARCH_REALVIEW
@@ -615,6 +622,7 @@ config DEBUG_LL_INCLUDE
615 default "debug/bcm2835.S" if DEBUG_BCM2835 622 default "debug/bcm2835.S" if DEBUG_BCM2835
616 default "debug/cns3xxx.S" if DEBUG_CNS3XXX 623 default "debug/cns3xxx.S" if DEBUG_CNS3XXX
617 default "debug/exynos.S" if DEBUG_EXYNOS_UART 624 default "debug/exynos.S" if DEBUG_EXYNOS_UART
625 default "debug/highbank.S" if DEBUG_HIGHBANK_UART
618 default "debug/icedcc.S" if DEBUG_ICEDCC 626 default "debug/icedcc.S" if DEBUG_ICEDCC
619 default "debug/imx.S" if DEBUG_IMX1_UART || \ 627 default "debug/imx.S" if DEBUG_IMX1_UART || \
620 DEBUG_IMX25_UART || \ 628 DEBUG_IMX25_UART || \
@@ -624,20 +632,21 @@ config DEBUG_LL_INCLUDE
624 DEBUG_IMX51_UART || \ 632 DEBUG_IMX51_UART || \
625 DEBUG_IMX53_UART ||\ 633 DEBUG_IMX53_UART ||\
626 DEBUG_IMX6Q_UART 634 DEBUG_IMX6Q_UART
627 default "debug/highbank.S" if DEBUG_HIGHBANK_UART
628 default "debug/mvebu.S" if DEBUG_MVEBU_UART 635 default "debug/mvebu.S" if DEBUG_MVEBU_UART
629 default "debug/mxs.S" if DEBUG_IMX23_UART || DEBUG_IMX28_UART 636 default "debug/mxs.S" if DEBUG_IMX23_UART || DEBUG_IMX28_UART
630 default "debug/nomadik.S" if DEBUG_NOMADIK_UART 637 default "debug/nomadik.S" if DEBUG_NOMADIK_UART
631 default "debug/omap2plus.S" if DEBUG_OMAP2PLUS_UART 638 default "debug/omap2plus.S" if DEBUG_OMAP2PLUS_UART
632 default "debug/picoxcell.S" if DEBUG_PICOXCELL_UART 639 default "debug/picoxcell.S" if DEBUG_PICOXCELL_UART
640 default "debug/pxa.S" if DEBUG_PXA_UART1 || DEBUG_MMP_UART2 || \
641 DEBUG_MMP_UART3
633 default "debug/sirf.S" if DEBUG_SIRFPRIMA2_UART1 || DEBUG_SIRFMARCO_UART1 642 default "debug/sirf.S" if DEBUG_SIRFPRIMA2_UART1 || DEBUG_SIRFMARCO_UART1
634 default "debug/socfpga.S" if DEBUG_SOCFPGA_UART 643 default "debug/socfpga.S" if DEBUG_SOCFPGA_UART
635 default "debug/sunxi.S" if DEBUG_SUNXI_UART0 || DEBUG_SUNXI_UART1 644 default "debug/sunxi.S" if DEBUG_SUNXI_UART0 || DEBUG_SUNXI_UART1
645 default "debug/tegra.S" if DEBUG_TEGRA_UART
646 default "debug/ux500.S" if DEBUG_UX500_UART
636 default "debug/vexpress.S" if DEBUG_VEXPRESS_UART0_DETECT || \ 647 default "debug/vexpress.S" if DEBUG_VEXPRESS_UART0_DETECT || \
637 DEBUG_VEXPRESS_UART0_CA9 || DEBUG_VEXPRESS_UART0_RS1 648 DEBUG_VEXPRESS_UART0_CA9 || DEBUG_VEXPRESS_UART0_RS1
638 default "debug/vt8500.S" if DEBUG_VT8500_UART0 649 default "debug/vt8500.S" if DEBUG_VT8500_UART0
639 default "debug/tegra.S" if DEBUG_TEGRA_UART
640 default "debug/ux500.S" if DEBUG_UX500_UART
641 default "debug/zynq.S" if DEBUG_ZYNQ_UART0 || DEBUG_ZYNQ_UART1 650 default "debug/zynq.S" if DEBUG_ZYNQ_UART0 || DEBUG_ZYNQ_UART1
642 default "mach/debug-macro.S" 651 default "mach/debug-macro.S"
643 652
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index 55196639211d..853e199ea89f 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -61,7 +61,8 @@ dtb-$(CONFIG_ARCH_HIGHBANK) += highbank.dtb \
61dtb-$(CONFIG_ARCH_INTEGRATOR) += integratorap.dtb \ 61dtb-$(CONFIG_ARCH_INTEGRATOR) += integratorap.dtb \
62 integratorcp.dtb 62 integratorcp.dtb
63dtb-$(CONFIG_ARCH_LPC32XX) += ea3250.dtb phy3250.dtb 63dtb-$(CONFIG_ARCH_LPC32XX) += ea3250.dtb phy3250.dtb
64dtb-$(CONFIG_ARCH_KIRKWOOD) += kirkwood-dns320.dtb \ 64dtb-$(CONFIG_ARCH_KIRKWOOD) += kirkwood-cloudbox.dtb \
65 kirkwood-dns320.dtb \
65 kirkwood-dns325.dtb \ 66 kirkwood-dns325.dtb \
66 kirkwood-dockstar.dtb \ 67 kirkwood-dockstar.dtb \
67 kirkwood-dreamplug.dtb \ 68 kirkwood-dreamplug.dtb \
@@ -75,6 +76,7 @@ dtb-$(CONFIG_ARCH_KIRKWOOD) += kirkwood-dns320.dtb \
75 kirkwood-lschlv2.dtb \ 76 kirkwood-lschlv2.dtb \
76 kirkwood-lsxhl.dtb \ 77 kirkwood-lsxhl.dtb \
77 kirkwood-mplcec4.dtb \ 78 kirkwood-mplcec4.dtb \
79 kirkwood-netgear_readynas_duo_v2.dtb \
78 kirkwood-ns2.dtb \ 80 kirkwood-ns2.dtb \
79 kirkwood-ns2lite.dtb \ 81 kirkwood-ns2lite.dtb \
80 kirkwood-ns2max.dtb \ 82 kirkwood-ns2max.dtb \
@@ -153,7 +155,9 @@ dtb-$(CONFIG_ARCH_U8500) += snowball.dtb \
153 ccu9540.dtb 155 ccu9540.dtb
154dtb-$(CONFIG_ARCH_SHMOBILE) += emev2-kzm9d.dtb \ 156dtb-$(CONFIG_ARCH_SHMOBILE) += emev2-kzm9d.dtb \
155 r8a7740-armadillo800eva.dtb \ 157 r8a7740-armadillo800eva.dtb \
158 r8a7779-marzen-reference.dtb \
156 sh73a0-kzm9g.dtb \ 159 sh73a0-kzm9g.dtb \
160 sh73a0-kzm9g-reference.dtb \
157 sh7372-mackerel.dtb 161 sh7372-mackerel.dtb
158dtb-$(CONFIG_ARCH_SOCFPGA) += socfpga_cyclone5.dtb \ 162dtb-$(CONFIG_ARCH_SOCFPGA) += socfpga_cyclone5.dtb \
159 socfpga_vt.dtb 163 socfpga_vt.dtb
diff --git a/arch/arm/boot/dts/kirkwood-cloudbox.dts b/arch/arm/boot/dts/kirkwood-cloudbox.dts
new file mode 100644
index 000000000000..5f21d4e427b0
--- /dev/null
+++ b/arch/arm/boot/dts/kirkwood-cloudbox.dts
@@ -0,0 +1,89 @@
1/dts-v1/;
2
3/include/ "kirkwood.dtsi"
4/include/ "kirkwood-6281.dtsi"
5
6/ {
7 model = "LaCie CloudBox";
8 compatible = "lacie,cloudbox", "marvell,kirkwood-88f6702", "marvell,kirkwood";
9
10 memory {
11 device_type = "memory";
12 reg = <0x00000000 0x10000000>;
13 };
14
15 chosen {
16 bootargs = "console=ttyS0,115200n8";
17 };
18
19 ocp@f1000000 {
20 pinctrl: pinctrl@10000 {
21 pinctrl-0 = < &pmx_spi &pmx_uart0
22 &pmx_cloudbox_sata0 >;
23 pinctrl-names = "default";
24
25 pmx_cloudbox_sata0: pmx-cloudbox-sata0 {
26 marvell,pins = "mpp15";
27 marvell,function = "sata0";
28 };
29 };
30
31 serial@12000 {
32 clock-frequency = <166666667>;
33 status = "okay";
34 };
35
36 sata@80000 {
37 status = "okay";
38 nr-ports = <1>;
39 };
40
41 spi@10600 {
42 status = "okay";
43
44 flash@0 {
45 #address-cells = <1>;
46 #size-cells = <1>;
47 compatible = "mx25l4005a";
48 reg = <0>;
49 spi-max-frequency = <20000000>;
50 mode = <0>;
51
52 partition@0 {
53 reg = <0x0 0x80000>;
54 label = "u-boot";
55 };
56 };
57 };
58 };
59
60 gpio_keys {
61 compatible = "gpio-keys";
62 #address-cells = <1>;
63 #size-cells = <0>;
64
65 button@1 {
66 label = "Power push button";
67 linux,code = <116>;
68 gpios = <&gpio0 16 1>;
69 };
70 };
71
72 gpio-leds {
73 compatible = "gpio-leds";
74
75 red-fail {
76 label = "cloudbox:red:fail";
77 gpios = <&gpio0 14 0>;
78 };
79 blue-sata {
80 label = "cloudbox:blue:sata";
81 gpios = <&gpio0 15 0>;
82 };
83 };
84
85 gpio_poweroff {
86 compatible = "gpio-poweroff";
87 gpios = <&gpio0 17 0>;
88 };
89};
diff --git a/arch/arm/boot/dts/kirkwood-netgear_readynas_duo_v2.dts b/arch/arm/boot/dts/kirkwood-netgear_readynas_duo_v2.dts
new file mode 100644
index 000000000000..1ca66ab83ad6
--- /dev/null
+++ b/arch/arm/boot/dts/kirkwood-netgear_readynas_duo_v2.dts
@@ -0,0 +1,180 @@
1/dts-v1/;
2
3/include/ "kirkwood.dtsi"
4/include/ "kirkwood-6282.dtsi"
5
6/ {
7 model = "NETGEAR ReadyNAS Duo v2";
8 compatible = "netgear,readynas-duo-v2", "netgear,readynas", "marvell,kirkwood-88f6282", "marvell,kirkwood";
9
10 memory { /* 256 MB */
11 device_type = "memory";
12 reg = <0x00000000 0x10000000>;
13 };
14
15 chosen {
16 bootargs = "console=ttyS0,115200n8 earlyprintk";
17 };
18
19 ocp@f1000000 {
20 pinctrl: pinctrl@10000 {
21
22 pinctrl-0 = < &pmx_uart0
23 &pmx_button_power
24 &pmx_button_backup
25 &pmx_button_reset
26 &pmx_led_blue_power
27 &pmx_led_blue_activity
28 &pmx_led_blue_disk1
29 &pmx_led_blue_disk2
30 &pmx_led_blue_backup >;
31 pinctrl-names = "default";
32
33 pmx_button_power: pmx-button-power {
34 marvell,pins = "mpp47";
35 marvell,function = "gpio";
36 };
37 pmx_button_backup: pmx-button-backup {
38 marvell,pins = "mpp45";
39 marvell,function = "gpio";
40 };
41 pmx_button_reset: pmx-button-reset {
42 marvell,pins = "mpp13";
43 marvell,function = "gpio";
44 };
45 pmx_led_blue_power: pmx-led-blue-power {
46 marvell,pins = "mpp31";
47 marvell,function = "gpio";
48 };
49 pmx_led_blue_activity: pmx-led-blue-activity {
50 marvell,pins = "mpp38";
51 marvell,function = "gpio";
52 };
53 pmx_led_blue_disk1: pmx-led-blue-disk1 {
54 marvell,pins = "mpp23";
55 marvell,function = "gpio";
56 };
57 pmx_led_blue_disk2: pmx-led-blue-disk2 {
58 marvell,pins = "mpp22";
59 marvell,function = "gpio";
60 };
61 pmx_led_blue_backup: pmx-led-blue-backup {
62 marvell,pins = "mpp29";
63 marvell,function = "gpio";
64 };
65 };
66
67 i2c@11000 {
68 status = "okay";
69
70 rs5c372a: rs5c372a@32 {
71 compatible = "ricoh,rs5c372a";
72 reg = <0x32>;
73 };
74 };
75
76 serial@12000 {
77 status = "okay";
78 };
79
80 nand@3000000 {
81 status = "okay";
82
83 partition@0 {
84 label = "u-boot";
85 reg = <0x0000000 0x180000>;
86 read-only;
87 };
88
89 partition@180000 {
90 label = "u-boot-env";
91 reg = <0x180000 0x20000>;
92 };
93
94 partition@200000 {
95 label = "uImage";
96 reg = <0x0200000 0x600000>;
97 };
98
99 partition@800000 {
100 label = "minirootfs";
101 reg = <0x0800000 0x1000000>;
102 };
103
104 partition@1800000 {
105 label = "jffs2";
106 reg = <0x1800000 0x6800000>;
107 };
108 };
109
110 sata@80000 {
111 status = "okay";
112 nr-ports = <2>;
113 };
114 };
115
116 gpio-leds {
117 compatible = "gpio-leds";
118
119 power_led {
120 label = "status:blue:power_led";
121 gpios = <&gpio0 31 1>; /* GPIO 31 Active Low */
122 linux,default-trigger = "default-on";
123 };
124 activity_led {
125 label = "status:blue:activity_led";
126 gpios = <&gpio1 6 1>; /* GPIO 38 Active Low */
127 };
128 disk1_led {
129 label = "status:blue:disk1_led";
130 gpios = <&gpio0 23 1>; /* GPIO 23 Active Low */
131 };
132 disk2_led {
133 label = "status:blue:disk2_led";
134 gpios = <&gpio0 22 1>; /* GPIO 22 Active Low */
135 };
136 backup_led {
137 label = "status:blue:backup_led";
138 gpios = <&gpio0 29 1>; /* GPIO 29 Active Low*/
139 };
140 };
141
142 gpio_keys {
143 compatible = "gpio-keys";
144 #address-cells = <1>;
145 #size-cells = <0>;
146 button@1 {
147 label = "Power Button";
148 linux,code = <116>; /* KEY_POWER */
149 gpios = <&gpio1 15 1>;
150 };
151 button@2 {
152 label = "Reset Button";
153 linux,code = <0x198>; /* KEY_RESTART */
154 gpios = <&gpio0 13 1>;
155 };
156 button@3 {
157 label = "Backup Button";
158 linux,code = <133>; /* KEY_COPY */
159 gpios = <&gpio1 13 1>;
160 };
161 };
162
163 regulators {
164 compatible = "simple-bus";
165 #address-cells = <1>;
166 #size-cells = <0>;
167
168 usb_power: regulator@1 {
169 compatible = "regulator-fixed";
170 reg = <1>;
171 regulator-name = "USB 3.0 Power";
172 regulator-min-microvolt = <5000000>;
173 regulator-max-microvolt = <5000000>;
174 enable-active-high;
175 regulator-always-on;
176 regulator-boot-on;
177 gpio = <&gpio1 14 0>;
178 };
179 };
180};
diff --git a/arch/arm/boot/dts/kirkwood-ns2mini.dts b/arch/arm/boot/dts/kirkwood-ns2mini.dts
index b79f5eb25589..adab1ab25733 100644
--- a/arch/arm/boot/dts/kirkwood-ns2mini.dts
+++ b/arch/arm/boot/dts/kirkwood-ns2mini.dts
@@ -3,6 +3,7 @@
3/include/ "kirkwood-ns2-common.dtsi" 3/include/ "kirkwood-ns2-common.dtsi"
4 4
5/ { 5/ {
6 /* This machine is embedded in the first LaCie CloudBox product. */
6 model = "LaCie Network Space Mini v2"; 7 model = "LaCie Network Space Mini v2";
7 compatible = "lacie,netspace_mini_v2", "marvell,kirkwood-88f6192", "marvell,kirkwood"; 8 compatible = "lacie,netspace_mini_v2", "marvell,kirkwood-88f6192", "marvell,kirkwood";
8 9
diff --git a/arch/arm/boot/dts/mmp2.dtsi b/arch/arm/boot/dts/mmp2.dtsi
index 1429ac05b36d..4e8b08c628c7 100644
--- a/arch/arm/boot/dts/mmp2.dtsi
+++ b/arch/arm/boot/dts/mmp2.dtsi
@@ -160,7 +160,7 @@
160 }; 160 };
161 161
162 gpio@d4019000 { 162 gpio@d4019000 {
163 compatible = "mrvl,mmp-gpio"; 163 compatible = "marvell,mmp2-gpio";
164 #address-cells = <1>; 164 #address-cells = <1>;
165 #size-cells = <1>; 165 #size-cells = <1>;
166 reg = <0xd4019000 0x1000>; 166 reg = <0xd4019000 0x1000>;
diff --git a/arch/arm/boot/dts/pxa168.dtsi b/arch/arm/boot/dts/pxa168.dtsi
index 31a718696080..975dad21ac38 100644
--- a/arch/arm/boot/dts/pxa168.dtsi
+++ b/arch/arm/boot/dts/pxa168.dtsi
@@ -77,7 +77,7 @@
77 }; 77 };
78 78
79 gpio@d4019000 { 79 gpio@d4019000 {
80 compatible = "mrvl,mmp-gpio"; 80 compatible = "marvell,mmp-gpio";
81 #address-cells = <1>; 81 #address-cells = <1>;
82 #size-cells = <1>; 82 #size-cells = <1>;
83 reg = <0xd4019000 0x1000>; 83 reg = <0xd4019000 0x1000>;
diff --git a/arch/arm/boot/dts/pxa910.dtsi b/arch/arm/boot/dts/pxa910.dtsi
index 825aaca33034..0247c622f580 100644
--- a/arch/arm/boot/dts/pxa910.dtsi
+++ b/arch/arm/boot/dts/pxa910.dtsi
@@ -89,7 +89,7 @@
89 }; 89 };
90 90
91 gpio@d4019000 { 91 gpio@d4019000 {
92 compatible = "mrvl,mmp-gpio"; 92 compatible = "marvell,mmp-gpio";
93 #address-cells = <1>; 93 #address-cells = <1>;
94 #size-cells = <1>; 94 #size-cells = <1>;
95 reg = <0xd4019000 0x1000>; 95 reg = <0xd4019000 0x1000>;
diff --git a/arch/arm/boot/dts/r8a7779-marzen-reference.dts b/arch/arm/boot/dts/r8a7779-marzen-reference.dts
new file mode 100644
index 000000000000..72be4c87cfb5
--- /dev/null
+++ b/arch/arm/boot/dts/r8a7779-marzen-reference.dts
@@ -0,0 +1,47 @@
1/*
2 * Reference Device Tree Source for the Marzen board
3 *
4 * Copyright (C) 2013 Renesas Solutions Corp.
5 * Copyright (C) 2013 Simon Horman
6 *
7 * This file is licensed under the terms of the GNU General Public License
8 * version 2. This program is licensed "as is" without any warranty of any
9 * kind, whether express or implied.
10 */
11
12/dts-v1/;
13/include/ "r8a7779.dtsi"
14
15/ {
16 model = "marzen";
17 compatible = "renesas,marzen-reference", "renesas,r8a7779";
18
19 chosen {
20 bootargs = "console=ttySC2,115200 earlyprintk=sh-sci.2,115200 ignore_loglevel root=/dev/nfs ip=on";
21 };
22
23 memory {
24 device_type = "memory";
25 reg = <0x60000000 0x40000000>;
26 };
27
28 fixedregulator3v3: fixedregulator@0 {
29 compatible = "regulator-fixed";
30 regulator-name = "fixed-3.3V";
31 regulator-min-microvolt = <3300000>;
32 regulator-max-microvolt = <3300000>;
33 regulator-boot-on;
34 regulator-always-on;
35 };
36
37 lan0@18000000 {
38 compatible = "smsc,lan9220", "smsc,lan9115";
39 reg = <0x18000000 0x100>;
40 phy-mode = "mii";
41 interrupt-parent = <&gic>;
42 interrupts = <0 28 0x4>;
43 reg-io-width = <4>;
44 vddvario-supply = <&fixedregulator3v3>;
45 vdd33a-supply = <&fixedregulator3v3>;
46 };
47};
diff --git a/arch/arm/boot/dts/sh73a0-kzm9g-reference.dts b/arch/arm/boot/dts/sh73a0-kzm9g-reference.dts
new file mode 100644
index 000000000000..f33b5ccb7446
--- /dev/null
+++ b/arch/arm/boot/dts/sh73a0-kzm9g-reference.dts
@@ -0,0 +1,66 @@
1/*
2 * Device Tree Source for the KZM-A9-GT board
3 *
4 * Copyright (C) 2012 Horms Solutions Ltd.
5 *
6 * Based on sh73a0-kzm9g.dts
7 * Copyright (C) 2012 Renesas Solutions Corp.
8 *
9 * This file is licensed under the terms of the GNU General Public License
10 * version 2. This program is licensed "as is" without any warranty of any
11 * kind, whether express or implied.
12 */
13
14/dts-v1/;
15/include/ "sh73a0.dtsi"
16
17/ {
18 model = "KZM-A9-GT";
19 compatible = "renesas,kzm9g-reference", "renesas,sh73a0";
20
21 chosen {
22 bootargs = "console=tty0 console=ttySC4,115200 root=/dev/nfs ip=dhcp ignore_loglevel earlyprintk=sh-sci.4,115200";
23 };
24
25 memory {
26 device_type = "memory";
27 reg = <0x41000000 0x1e800000>;
28 };
29
30 reg_1p8v: regulator@0 {
31 compatible = "regulator-fixed";
32 regulator-name = "fixed-1.8V";
33 regulator-min-microvolt = <1800000>;
34 regulator-max-microvolt = <1800000>;
35 regulator-always-on;
36 regulator-boot-on;
37 };
38
39 reg_3p3v: regulator@1 {
40 compatible = "regulator-fixed";
41 regulator-name = "fixed-3.3V";
42 regulator-min-microvolt = <3300000>;
43 regulator-max-microvolt = <3300000>;
44 regulator-always-on;
45 regulator-boot-on;
46 };
47};
48
49&mmcif {
50 bus-width = <8>;
51 vmmc-supply = <&reg_1p8v>;
52 status = "okay";
53};
54
55&sdhi0 {
56 vmmc-supply = <&reg_3p3v>;
57 bus-width = <4>;
58 status = "okay";
59};
60
61&sdhi2 {
62 vmmc-supply = <&reg_3p3v>;
63 bus-width = <4>;
64 broken-cd;
65 status = "okay";
66};
diff --git a/arch/arm/boot/dts/sh73a0-reference.dtsi b/arch/arm/boot/dts/sh73a0-reference.dtsi
deleted file mode 100644
index d4bb0125b2b2..000000000000
--- a/arch/arm/boot/dts/sh73a0-reference.dtsi
+++ /dev/null
@@ -1,24 +0,0 @@
1/*
2 * Device Tree Source for the SH73A0 SoC
3 *
4 * Copyright (C) 2012 Renesas Solutions Corp.
5 *
6 * This file is licensed under the terms of the GNU General Public License
7 * version 2. This program is licensed "as is" without any warranty of any
8 * kind, whether express or implied.
9 */
10
11/include/ "sh73a0.dtsi"
12
13/ {
14 compatible = "renesas,sh73a0";
15
16 mmcif: mmcif@0x10010000 {
17 compatible = "renesas,sh-mmcif";
18 reg = <0xe6bd0000 0x100>;
19 interrupt-parent = <&gic>;
20 interrupts = <0 140 0x4
21 0 141 0x4>;
22 reg-io-width = <4>;
23 };
24};
diff --git a/arch/arm/boot/dts/sh73a0.dtsi b/arch/arm/boot/dts/sh73a0.dtsi
index 8a59465d0231..3e4d383ac6d9 100644
--- a/arch/arm/boot/dts/sh73a0.dtsi
+++ b/arch/arm/boot/dts/sh73a0.dtsi
@@ -97,4 +97,48 @@
97 0 189 0x4 97 0 189 0x4
98 0 190 0x4>; 98 0 190 0x4>;
99 }; 99 };
100
101 mmcif: mmcif@0x10010000 {
102 compatible = "renesas,sh-mmcif";
103 reg = <0xe6bd0000 0x100>;
104 interrupt-parent = <&gic>;
105 interrupts = <0 140 0x4
106 0 141 0x4>;
107 reg-io-width = <4>;
108 status = "disabled";
109 };
110
111 sdhi0: sdhi@0xee100000 {
112 compatible = "renesas,r8a7740-sdhi";
113 reg = <0xee100000 0x100>;
114 interrupt-parent = <&gic>;
115 interrupts = <0 83 4
116 0 84 4
117 0 85 4>;
118 cap-sd-highspeed;
119 status = "disabled";
120 };
121
122 /* SDHI1 and SDHI2 have no CD pins, no need for CD IRQ */
123 sdhi1: sdhi@0xee120000 {
124 compatible = "renesas,r8a7740-sdhi";
125 reg = <0xee120000 0x100>;
126 interrupt-parent = <&gic>;
127 interrupts = <0 88 4
128 0 89 4>;
129 toshiba,mmc-wrprotect-disable;
130 cap-sd-highspeed;
131 status = "disabled";
132 };
133
134 sdhi2: sdhi@0xee140000 {
135 compatible = "renesas,r8a7740-sdhi";
136 reg = <0xee140000 0x100>;
137 interrupt-parent = <&gic>;
138 interrupts = <0 104 4
139 0 105 4>;
140 toshiba,mmc-wrprotect-disable;
141 cap-sd-highspeed;
142 status = "disabled";
143 };
100}; 144};
diff --git a/arch/arm/configs/da8xx_omapl_defconfig b/arch/arm/configs/da8xx_omapl_defconfig
index 9aaad36a1728..7c868139bdb0 100644
--- a/arch/arm/configs/da8xx_omapl_defconfig
+++ b/arch/arm/configs/da8xx_omapl_defconfig
@@ -5,6 +5,7 @@ CONFIG_POSIX_MQUEUE=y
5CONFIG_IKCONFIG=y 5CONFIG_IKCONFIG=y
6CONFIG_IKCONFIG_PROC=y 6CONFIG_IKCONFIG_PROC=y
7CONFIG_LOG_BUF_SHIFT=14 7CONFIG_LOG_BUF_SHIFT=14
8CONFIG_CGROUPS=y
8CONFIG_BLK_DEV_INITRD=y 9CONFIG_BLK_DEV_INITRD=y
9CONFIG_EXPERT=y 10CONFIG_EXPERT=y
10CONFIG_MODULES=y 11CONFIG_MODULES=y
diff --git a/arch/arm/configs/davinci_all_defconfig b/arch/arm/configs/davinci_all_defconfig
index 3edc78a40b66..c86fd75e181a 100644
--- a/arch/arm/configs/davinci_all_defconfig
+++ b/arch/arm/configs/davinci_all_defconfig
@@ -5,6 +5,7 @@ CONFIG_POSIX_MQUEUE=y
5CONFIG_IKCONFIG=y 5CONFIG_IKCONFIG=y
6CONFIG_IKCONFIG_PROC=y 6CONFIG_IKCONFIG_PROC=y
7CONFIG_LOG_BUF_SHIFT=14 7CONFIG_LOG_BUF_SHIFT=14
8CONFIG_CGROUPS=y
8CONFIG_BLK_DEV_INITRD=y 9CONFIG_BLK_DEV_INITRD=y
9CONFIG_EXPERT=y 10CONFIG_EXPERT=y
10CONFIG_MODULES=y 11CONFIG_MODULES=y
diff --git a/arch/arm/configs/kirkwood_defconfig b/arch/arm/configs/kirkwood_defconfig
index 3d8667f648b8..a1d8252e9ec7 100644
--- a/arch/arm/configs/kirkwood_defconfig
+++ b/arch/arm/configs/kirkwood_defconfig
@@ -10,45 +10,48 @@ CONFIG_MODULES=y
10CONFIG_MODULE_UNLOAD=y 10CONFIG_MODULE_UNLOAD=y
11# CONFIG_BLK_DEV_BSG is not set 11# CONFIG_BLK_DEV_BSG is not set
12CONFIG_ARCH_KIRKWOOD=y 12CONFIG_ARCH_KIRKWOOD=y
13CONFIG_MACH_D2NET_V2=y
13CONFIG_MACH_DB88F6281_BP=y 14CONFIG_MACH_DB88F6281_BP=y
15CONFIG_MACH_DOCKSTAR=y
16CONFIG_MACH_ESATA_SHEEVAPLUG=y
17CONFIG_MACH_GURUPLUG=y
18CONFIG_MACH_INETSPACE_V2=y
19CONFIG_MACH_MV88F6281GTW_GE=y
20CONFIG_MACH_NET2BIG_V2=y
21CONFIG_MACH_NET5BIG_V2=y
22CONFIG_MACH_NETSPACE_MAX_V2=y
23CONFIG_MACH_NETSPACE_V2=y
24CONFIG_MACH_OPENRD_BASE=y
25CONFIG_MACH_OPENRD_CLIENT=y
26CONFIG_MACH_OPENRD_ULTIMATE=y
14CONFIG_MACH_RD88F6192_NAS=y 27CONFIG_MACH_RD88F6192_NAS=y
15CONFIG_MACH_RD88F6281=y 28CONFIG_MACH_RD88F6281=y
16CONFIG_MACH_MV88F6281GTW_GE=y
17CONFIG_MACH_SHEEVAPLUG=y 29CONFIG_MACH_SHEEVAPLUG=y
18CONFIG_MACH_ESATA_SHEEVAPLUG=y 30CONFIG_MACH_T5325=y
19CONFIG_MACH_GURUPLUG=y 31CONFIG_MACH_TS219=y
20CONFIG_MACH_DREAMPLUG_DT=y 32CONFIG_MACH_TS41X=y
21CONFIG_MACH_ICONNECT_DT=y 33CONFIG_MACH_CLOUDBOX_DT=y
22CONFIG_MACH_DLINK_KIRKWOOD_DT=y 34CONFIG_MACH_DLINK_KIRKWOOD_DT=y
23CONFIG_MACH_IB62X0_DT=y
24CONFIG_MACH_TS219_DT=y
25CONFIG_MACH_DOCKSTAR_DT=y 35CONFIG_MACH_DOCKSTAR_DT=y
36CONFIG_MACH_DREAMPLUG_DT=y
26CONFIG_MACH_GOFLEXNET_DT=y 37CONFIG_MACH_GOFLEXNET_DT=y
27CONFIG_MACH_LSXL_DT=y 38CONFIG_MACH_GURUPLUG_DT=y
39CONFIG_MACH_IB62X0_DT=y
40CONFIG_MACH_ICONNECT_DT=y
41CONFIG_MACH_INETSPACE_V2_DT=y
28CONFIG_MACH_IOMEGA_IX2_200_DT=y 42CONFIG_MACH_IOMEGA_IX2_200_DT=y
29CONFIG_MACH_KM_KIRKWOOD_DT=y 43CONFIG_MACH_KM_KIRKWOOD_DT=y
30CONFIG_MACH_INETSPACE_V2_DT=y 44CONFIG_MACH_LSXL_DT=y
31CONFIG_MACH_MPLCEC4_DT=y 45CONFIG_MACH_MPLCEC4_DT=y
32CONFIG_MACH_NETSPACE_V2_DT=y
33CONFIG_MACH_NETSPACE_MAX_V2_DT=y
34CONFIG_MACH_NETSPACE_LITE_V2_DT=y 46CONFIG_MACH_NETSPACE_LITE_V2_DT=y
47CONFIG_MACH_NETSPACE_MAX_V2_DT=y
35CONFIG_MACH_NETSPACE_MINI_V2_DT=y 48CONFIG_MACH_NETSPACE_MINI_V2_DT=y
49CONFIG_MACH_NETSPACE_V2_DT=y
50CONFIG_MACH_NSA310_DT=y
36CONFIG_MACH_OPENBLOCKS_A6_DT=y 51CONFIG_MACH_OPENBLOCKS_A6_DT=y
52CONFIG_MACH_READYNAS_DT=y
37CONFIG_MACH_TOPKICK_DT=y 53CONFIG_MACH_TOPKICK_DT=y
38CONFIG_MACH_TS219=y 54CONFIG_MACH_TS219_DT=y
39CONFIG_MACH_TS41X=y
40CONFIG_MACH_DOCKSTAR=y
41CONFIG_MACH_OPENRD_BASE=y
42CONFIG_MACH_OPENRD_CLIENT=y
43CONFIG_MACH_OPENRD_ULTIMATE=y
44CONFIG_MACH_NETSPACE_V2=y
45CONFIG_MACH_INETSPACE_V2=y
46CONFIG_MACH_NETSPACE_MAX_V2=y
47CONFIG_MACH_D2NET_V2=y
48CONFIG_MACH_NET2BIG_V2=y
49CONFIG_MACH_NET5BIG_V2=y
50CONFIG_MACH_T5325=y
51CONFIG_MACH_NSA310_DT=y
52# CONFIG_CPU_FEROCEON_OLD_ID is not set 55# CONFIG_CPU_FEROCEON_OLD_ID is not set
53CONFIG_PREEMPT=y 56CONFIG_PREEMPT=y
54CONFIG_AEABI=y 57CONFIG_AEABI=y
diff --git a/arch/arm/configs/msm_defconfig b/arch/arm/configs/msm_defconfig
index 2b8f7affc1eb..690b5f9c7462 100644
--- a/arch/arm/configs/msm_defconfig
+++ b/arch/arm/configs/msm_defconfig
@@ -1,72 +1,137 @@
1CONFIG_EXPERIMENTAL=y 1CONFIG_SYSVIPC=y
2CONFIG_NO_HZ=y
3CONFIG_HIGH_RES_TIMERS=y
2CONFIG_IKCONFIG=y 4CONFIG_IKCONFIG=y
3CONFIG_IKCONFIG_PROC=y 5CONFIG_IKCONFIG_PROC=y
4CONFIG_BLK_DEV_INITRD=y 6CONFIG_BLK_DEV_INITRD=y
5CONFIG_SLAB=y 7CONFIG_SYSCTL_SYSCALL=y
6# CONFIG_BLK_DEV_BSG is not set 8CONFIG_KALLSYMS_ALL=y
7# CONFIG_IOSCHED_DEADLINE is not set 9CONFIG_EMBEDDED=y
8# CONFIG_IOSCHED_CFQ is not set 10# CONFIG_SLUB_DEBUG is not set
11# CONFIG_COMPAT_BRK is not set
12CONFIG_PROFILING=y
13CONFIG_OPROFILE=y
14CONFIG_KPROBES=y
15CONFIG_MODULES=y
16CONFIG_MODULE_UNLOAD=y
17CONFIG_MODULE_FORCE_UNLOAD=y
18CONFIG_MODVERSIONS=y
19CONFIG_PARTITION_ADVANCED=y
9CONFIG_ARCH_MSM=y 20CONFIG_ARCH_MSM=y
10CONFIG_MACH_HALIBUT=y 21CONFIG_ARCH_MSM8X60=y
11CONFIG_NO_HZ=y 22CONFIG_ARCH_MSM8960=y
12CONFIG_HIGH_RES_TIMERS=y 23CONFIG_SMP=y
13CONFIG_PREEMPT=y 24CONFIG_PREEMPT=y
14CONFIG_AEABI=y 25CONFIG_AEABI=y
15# CONFIG_OABI_COMPAT is not set 26CONFIG_HIGHMEM=y
16CONFIG_ZBOOT_ROM_TEXT=0x0 27CONFIG_HIGHPTE=y
17CONFIG_ZBOOT_ROM_BSS=0x0 28CONFIG_CLEANCACHE=y
18CONFIG_CMDLINE="mem=64M console=ttyMSM,115200n8" 29CONFIG_CC_STACKPROTECTOR=y
19CONFIG_PM=y 30CONFIG_ARM_APPENDED_DTB=y
31CONFIG_ARM_ATAG_DTB_COMPAT=y
32CONFIG_AUTO_ZRELADDR=y
33CONFIG_VFP=y
34CONFIG_NEON=y
35# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
20CONFIG_NET=y 36CONFIG_NET=y
37CONFIG_PACKET=y
21CONFIG_UNIX=y 38CONFIG_UNIX=y
22CONFIG_INET=y 39CONFIG_INET=y
40CONFIG_IP_ADVANCED_ROUTER=y
41CONFIG_IP_MULTIPLE_TABLES=y
42CONFIG_IP_ROUTE_VERBOSE=y
43CONFIG_IP_PNP=y
44CONFIG_IP_PNP_DHCP=y
23# CONFIG_INET_XFRM_MODE_TRANSPORT is not set 45# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
24# CONFIG_INET_XFRM_MODE_TUNNEL is not set 46# CONFIG_INET_XFRM_MODE_TUNNEL is not set
25# CONFIG_INET_XFRM_MODE_BEET is not set 47# CONFIG_INET_XFRM_MODE_BEET is not set
26# CONFIG_INET_DIAG is not set 48# CONFIG_INET_LRO is not set
27# CONFIG_IPV6 is not set 49# CONFIG_IPV6 is not set
28CONFIG_MTD=y 50CONFIG_CFG80211=y
29CONFIG_MTD_PARTITIONS=y 51CONFIG_RFKILL=y
30CONFIG_MTD_CMDLINE_PARTS=y 52CONFIG_BLK_DEV_LOOP=y
31CONFIG_MTD_CHAR=y 53CONFIG_BLK_DEV_RAM=y
32CONFIG_MTD_BLOCK=y 54CONFIG_SCSI=y
55CONFIG_SCSI_TGT=y
56CONFIG_BLK_DEV_SD=y
57CONFIG_CHR_DEV_SG=y
58CONFIG_CHR_DEV_SCH=y
59CONFIG_SCSI_MULTI_LUN=y
60CONFIG_SCSI_CONSTANTS=y
61CONFIG_SCSI_LOGGING=y
62CONFIG_SCSI_SCAN_ASYNC=y
33CONFIG_NETDEVICES=y 63CONFIG_NETDEVICES=y
34CONFIG_DUMMY=y 64CONFIG_DUMMY=y
35CONFIG_NET_ETHERNET=y 65CONFIG_PHYLIB=y
36CONFIG_SMC91X=y 66CONFIG_SLIP=y
37CONFIG_PPP=y 67CONFIG_SLIP_COMPRESSED=y
38CONFIG_PPP_ASYNC=y 68CONFIG_SLIP_MODE_SLIP6=y
39CONFIG_PPP_DEFLATE=y 69CONFIG_USB_USBNET=y
40CONFIG_PPP_BSDCOMP=y 70# CONFIG_USB_NET_AX8817X is not set
41# CONFIG_INPUT_MOUSEDEV_PSAUX is not set 71# CONFIG_USB_NET_ZAURUS is not set
42CONFIG_INPUT_EVDEV=y 72CONFIG_INPUT_EVDEV=y
43# CONFIG_KEYBOARD_ATKBD is not set 73# CONFIG_KEYBOARD_ATKBD is not set
44# CONFIG_INPUT_MOUSE is not set 74# CONFIG_MOUSE_PS2 is not set
75CONFIG_INPUT_JOYSTICK=y
45CONFIG_INPUT_TOUCHSCREEN=y 76CONFIG_INPUT_TOUCHSCREEN=y
46CONFIG_INPUT_MISC=y 77CONFIG_INPUT_MISC=y
47# CONFIG_SERIO is not set 78CONFIG_INPUT_UINPUT=y
48CONFIG_VT_HW_CONSOLE_BINDING=y 79CONFIG_SERIO_LIBPS2=y
80# CONFIG_LEGACY_PTYS is not set
49CONFIG_SERIAL_MSM=y 81CONFIG_SERIAL_MSM=y
50CONFIG_SERIAL_MSM_CONSOLE=y 82CONFIG_SERIAL_MSM_CONSOLE=y
51# CONFIG_LEGACY_PTYS is not set 83CONFIG_HW_RANDOM=y
52# CONFIG_HW_RANDOM is not set
53CONFIG_I2C=y 84CONFIG_I2C=y
54# CONFIG_HWMON is not set 85CONFIG_I2C_CHARDEV=y
55CONFIG_VIDEO_OUTPUT_CONTROL=y 86CONFIG_SPI=y
87CONFIG_SSBI=y
88CONFIG_DEBUG_GPIO=y
89CONFIG_GPIO_SYSFS=y
90CONFIG_POWER_SUPPLY=y
91CONFIG_THERMAL=y
92CONFIG_REGULATOR=y
93CONFIG_MEDIA_SUPPORT=y
56CONFIG_FB=y 94CONFIG_FB=y
57CONFIG_FB_MODE_HELPERS=y 95CONFIG_SOUND=y
58CONFIG_FB_TILEBLITTING=y 96CONFIG_SND=y
59CONFIG_FB_MSM=y 97CONFIG_SND_DYNAMIC_MINORS=y
60# CONFIG_VGA_CONSOLE is not set 98# CONFIG_SND_ARM is not set
61CONFIG_FRAMEBUFFER_CONSOLE=y 99# CONFIG_SND_SPI is not set
100# CONFIG_SND_USB is not set
101CONFIG_SND_SOC=y
102CONFIG_HID_BATTERY_STRENGTH=y
103CONFIG_USB=y
104CONFIG_USB_PHY=y
105CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
106CONFIG_USB_MON=y
107CONFIG_USB_EHCI_HCD=y
108CONFIG_USB_EHCI_MSM=y
109CONFIG_USB_ACM=y
110CONFIG_USB_SERIAL=y
111CONFIG_USB_GADGET=y
112CONFIG_USB_GADGET_DEBUG_FILES=y
113CONFIG_USB_GADGET_VBUS_DRAW=500
62CONFIG_NEW_LEDS=y 114CONFIG_NEW_LEDS=y
63CONFIG_LEDS_CLASS=y 115CONFIG_RTC_CLASS=y
64CONFIG_INOTIFY=y 116CONFIG_STAGING=y
117CONFIG_MSM_IOMMU=y
118CONFIG_EXT2_FS=y
119CONFIG_EXT2_FS_XATTR=y
120CONFIG_EXT3_FS=y
121# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
122CONFIG_EXT4_FS=y
123CONFIG_FUSE_FS=y
124CONFIG_VFAT_FS=y
65CONFIG_TMPFS=y 125CONFIG_TMPFS=y
126CONFIG_NFS_FS=y
127CONFIG_NFS_V3_ACL=y
128CONFIG_NFS_V4=y
129CONFIG_CIFS=y
130CONFIG_PRINTK_TIME=y
66CONFIG_MAGIC_SYSRQ=y 131CONFIG_MAGIC_SYSRQ=y
67CONFIG_DEBUG_KERNEL=y 132CONFIG_LOCKUP_DETECTOR=y
68CONFIG_SCHEDSTATS=y 133# CONFIG_DETECT_HUNG_TASK is not set
69CONFIG_DEBUG_MUTEXES=y 134# CONFIG_SCHED_DEBUG is not set
70CONFIG_DEBUG_SPINLOCK_SLEEP=y 135CONFIG_TIMER_STATS=y
71CONFIG_DEBUG_INFO=y 136CONFIG_DEBUG_INFO=y
72CONFIG_DEBUG_LL=y 137CONFIG_DYNAMIC_DEBUG=y
diff --git a/arch/arm/configs/omap2plus_defconfig b/arch/arm/configs/omap2plus_defconfig
index bd07864f14a0..33903ca0d879 100644
--- a/arch/arm/configs/omap2plus_defconfig
+++ b/arch/arm/configs/omap2plus_defconfig
@@ -93,6 +93,7 @@ CONFIG_BLK_DEV_RAM_SIZE=16384
93CONFIG_SENSORS_LIS3LV02D=m 93CONFIG_SENSORS_LIS3LV02D=m
94CONFIG_SENSORS_TSL2550=m 94CONFIG_SENSORS_TSL2550=m
95CONFIG_SENSORS_LIS3_I2C=m 95CONFIG_SENSORS_LIS3_I2C=m
96CONFIG_BMP085_I2C=m
96CONFIG_SCSI=y 97CONFIG_SCSI=y
97CONFIG_BLK_DEV_SD=y 98CONFIG_BLK_DEV_SD=y
98CONFIG_SCSI_MULTI_LUN=y 99CONFIG_SCSI_MULTI_LUN=y
diff --git a/arch/arm/include/debug/pxa.S b/arch/arm/include/debug/pxa.S
new file mode 100644
index 000000000000..e1e795aa3d7f
--- /dev/null
+++ b/arch/arm/include/debug/pxa.S
@@ -0,0 +1,33 @@
1/*
2 * Early serial output macro for Marvell PXA/MMP SoC
3 *
4 * Copyright (C) 1994-1999 Russell King
5 * Moved from linux/arch/arm/kernel/debug.S by Ben Dooks
6 *
7 * Copyright (C) 2013 Haojian Zhuang
8 *
9 * This program is free software; you can redistribute it and/or modify
10 * it under the terms of the GNU General Public License version 2 as
11 * published by the Free Software Foundation.
12*/
13
14#if defined(CONFIG_DEBUG_PXA_UART1)
15#define PXA_UART_REG_PHYS_BASE 0x40100000
16#define PXA_UART_REG_VIRT_BASE 0xf2100000
17#elif defined(CONFIG_DEBUG_MMP_UART2)
18#define PXA_UART_REG_PHYS_BASE 0xd4017000
19#define PXA_UART_REG_VIRT_BASE 0xfe017000
20#elif defined(CONFIG_DEBUG_MMP_UART3)
21#define PXA_UART_REG_PHYS_BASE 0xd4018000
22#define PXA_UART_REG_VIRT_BASE 0xfe018000
23#else
24#error "Select uart for DEBUG_LL"
25#endif
26
27 .macro addruart, rp, rv, tmp
28 ldr \rp, =PXA_UART_REG_PHYS_BASE
29 ldr \rv, =PXA_UART_REG_VIRT_BASE
30 .endm
31
32#define UART_SHIFT 2
33#include <asm/hardware/debug-8250.S>
diff --git a/arch/arm/mach-davinci/board-da830-evm.c b/arch/arm/mach-davinci/board-da830-evm.c
index 12e6f756361d..1332de8c52c9 100644
--- a/arch/arm/mach-davinci/board-da830-evm.c
+++ b/arch/arm/mach-davinci/board-da830-evm.c
@@ -297,11 +297,7 @@ static const short da830_evm_emif25_pins[] = {
297 -1 297 -1
298}; 298};
299 299
300#if defined(CONFIG_MMC_DAVINCI) || defined(CONFIG_MMC_DAVINCI_MODULE) 300#define HAS_MMC IS_ENABLED(CONFIG_MMC_DAVINCI)
301#define HAS_MMC 1
302#else
303#define HAS_MMC 0
304#endif
305 301
306#ifdef CONFIG_DA830_UI_NAND 302#ifdef CONFIG_DA830_UI_NAND
307static struct mtd_partition da830_evm_nand_partitions[] = { 303static struct mtd_partition da830_evm_nand_partitions[] = {
diff --git a/arch/arm/mach-davinci/board-da850-evm.c b/arch/arm/mach-davinci/board-da850-evm.c
index dcc8710936a5..8a24b6c6339f 100644
--- a/arch/arm/mach-davinci/board-da850-evm.c
+++ b/arch/arm/mach-davinci/board-da850-evm.c
@@ -335,12 +335,7 @@ static const short da850_evm_nor_pins[] = {
335 -1 335 -1
336}; 336};
337 337
338#if defined(CONFIG_MMC_DAVINCI) || \ 338#define HAS_MMC IS_ENABLED(CONFIG_MMC_DAVINCI)
339 defined(CONFIG_MMC_DAVINCI_MODULE)
340#define HAS_MMC 1
341#else
342#define HAS_MMC 0
343#endif
344 339
345static inline void da850_evm_setup_nor_nand(void) 340static inline void da850_evm_setup_nor_nand(void)
346{ 341{
@@ -401,7 +396,7 @@ enum da850_evm_ui_exp_pins {
401 DA850_EVM_UI_EXP_PB1, 396 DA850_EVM_UI_EXP_PB1,
402}; 397};
403 398
404static const char const *da850_evm_ui_exp[] = { 399static const char * const da850_evm_ui_exp[] = {
405 [DA850_EVM_UI_EXP_SEL_C] = "sel_c", 400 [DA850_EVM_UI_EXP_SEL_C] = "sel_c",
406 [DA850_EVM_UI_EXP_SEL_B] = "sel_b", 401 [DA850_EVM_UI_EXP_SEL_B] = "sel_b",
407 [DA850_EVM_UI_EXP_SEL_A] = "sel_a", 402 [DA850_EVM_UI_EXP_SEL_A] = "sel_a",
@@ -565,7 +560,7 @@ enum da850_evm_bb_exp_pins {
565 DA850_EVM_BB_EXP_USER_SW8 560 DA850_EVM_BB_EXP_USER_SW8
566}; 561};
567 562
568static const char const *da850_evm_bb_exp[] = { 563static const char * const da850_evm_bb_exp[] = {
569 [DA850_EVM_BB_EXP_DEEP_SLEEP_EN] = "deep_sleep_en", 564 [DA850_EVM_BB_EXP_DEEP_SLEEP_EN] = "deep_sleep_en",
570 [DA850_EVM_BB_EXP_SW_RST] = "sw_rst", 565 [DA850_EVM_BB_EXP_SW_RST] = "sw_rst",
571 [DA850_EVM_BB_EXP_TP_23] = "tp_23", 566 [DA850_EVM_BB_EXP_TP_23] = "tp_23",
@@ -1577,6 +1572,11 @@ static __init void da850_evm_init(void)
1577 pr_warn("%s: SATA registration failed: %d\n", __func__, ret); 1572 pr_warn("%s: SATA registration failed: %d\n", __func__, ret);
1578 1573
1579 da850_evm_setup_mac_addr(); 1574 da850_evm_setup_mac_addr();
1575
1576 ret = da8xx_register_rproc();
1577 if (ret)
1578 pr_warn("%s: dsp/rproc registration failed: %d\n",
1579 __func__, ret);
1580} 1580}
1581 1581
1582#ifdef CONFIG_SERIAL_8250_CONSOLE 1582#ifdef CONFIG_SERIAL_8250_CONSOLE
@@ -1604,4 +1604,5 @@ MACHINE_START(DAVINCI_DA850_EVM, "DaVinci DA850/OMAP-L138/AM18x EVM")
1604 .init_late = davinci_init_late, 1604 .init_late = davinci_init_late,
1605 .dma_zone_size = SZ_128M, 1605 .dma_zone_size = SZ_128M,
1606 .restart = da8xx_restart, 1606 .restart = da8xx_restart,
1607 .reserve = da8xx_rproc_reserve_cma,
1607MACHINE_END 1608MACHINE_END
diff --git a/arch/arm/mach-davinci/board-dm644x-evm.c b/arch/arm/mach-davinci/board-dm644x-evm.c
index e62108fd7926..a33686a6fbb2 100644
--- a/arch/arm/mach-davinci/board-dm644x-evm.c
+++ b/arch/arm/mach-davinci/board-dm644x-evm.c
@@ -749,26 +749,11 @@ static int davinci_phy_fixup(struct phy_device *phydev)
749 return 0; 749 return 0;
750} 750}
751 751
752#if defined(CONFIG_BLK_DEV_PALMCHIP_BK3710) || \ 752#define HAS_ATA IS_ENABLED(CONFIG_BLK_DEV_PALMCHIP_BK3710)
753 defined(CONFIG_BLK_DEV_PALMCHIP_BK3710_MODULE) 753
754#define HAS_ATA 1 754#define HAS_NOR IS_ENABLED(CONFIG_MTD_PHYSMAP)
755#else 755
756#define HAS_ATA 0 756#define HAS_NAND IS_ENABLED(CONFIG_MTD_NAND_DAVINCI)
757#endif
758
759#if defined(CONFIG_MTD_PHYSMAP) || \
760 defined(CONFIG_MTD_PHYSMAP_MODULE)
761#define HAS_NOR 1
762#else
763#define HAS_NOR 0
764#endif
765
766#if defined(CONFIG_MTD_NAND_DAVINCI) || \
767 defined(CONFIG_MTD_NAND_DAVINCI_MODULE)
768#define HAS_NAND 1
769#else
770#define HAS_NAND 0
771#endif
772 757
773static __init void davinci_evm_init(void) 758static __init void davinci_evm_init(void)
774{ 759{
diff --git a/arch/arm/mach-davinci/board-dm646x-evm.c b/arch/arm/mach-davinci/board-dm646x-evm.c
index fc4871ac1c2c..fbb8e5ab1dc1 100644
--- a/arch/arm/mach-davinci/board-dm646x-evm.c
+++ b/arch/arm/mach-davinci/board-dm646x-evm.c
@@ -117,12 +117,7 @@ static struct platform_device davinci_nand_device = {
117 }, 117 },
118}; 118};
119 119
120#if defined(CONFIG_BLK_DEV_PALMCHIP_BK3710) || \ 120#define HAS_ATA IS_ENABLED(CONFIG_BLK_DEV_PALMCHIP_BK3710)
121 defined(CONFIG_BLK_DEV_PALMCHIP_BK3710_MODULE)
122#define HAS_ATA 1
123#else
124#define HAS_ATA 0
125#endif
126 121
127/* CPLD Register 0 bits to control ATA */ 122/* CPLD Register 0 bits to control ATA */
128#define DM646X_EVM_ATA_RST BIT(0) 123#define DM646X_EVM_ATA_RST BIT(0)
diff --git a/arch/arm/mach-davinci/board-neuros-osd2.c b/arch/arm/mach-davinci/board-neuros-osd2.c
index b70e83c03bed..2bc112adf565 100644
--- a/arch/arm/mach-davinci/board-neuros-osd2.c
+++ b/arch/arm/mach-davinci/board-neuros-osd2.c
@@ -166,20 +166,9 @@ static struct davinci_mmc_config davinci_ntosd2_mmc_config = {
166 .wires = 4, 166 .wires = 4,
167}; 167};
168 168
169#define HAS_ATA IS_ENABLED(CONFIG_BLK_DEV_PALMCHIP_BK3710)
169 170
170#if defined(CONFIG_BLK_DEV_PALMCHIP_BK3710) || \ 171#define HAS_NAND IS_ENABLED(CONFIG_MTD_NAND_DAVINCI)
171 defined(CONFIG_BLK_DEV_PALMCHIP_BK3710_MODULE)
172#define HAS_ATA 1
173#else
174#define HAS_ATA 0
175#endif
176
177#if defined(CONFIG_MTD_NAND_DAVINCI) || \
178 defined(CONFIG_MTD_NAND_DAVINCI_MODULE)
179#define HAS_NAND 1
180#else
181#define HAS_NAND 0
182#endif
183 172
184static __init void davinci_ntosd2_init(void) 173static __init void davinci_ntosd2_init(void)
185{ 174{
diff --git a/arch/arm/mach-davinci/board-omapl138-hawk.c b/arch/arm/mach-davinci/board-omapl138-hawk.c
index 328dbd8a37f5..b8c20de10ca2 100644
--- a/arch/arm/mach-davinci/board-omapl138-hawk.c
+++ b/arch/arm/mach-davinci/board-omapl138-hawk.c
@@ -310,6 +310,11 @@ static __init void omapl138_hawk_init(void)
310 if (ret) 310 if (ret)
311 pr_warn("%s: watchdog registration failed: %d\n", 311 pr_warn("%s: watchdog registration failed: %d\n",
312 __func__, ret); 312 __func__, ret);
313
314 ret = da8xx_register_rproc();
315 if (ret)
316 pr_warn("%s: dsp/rproc registration failed: %d\n",
317 __func__, ret);
313} 318}
314 319
315#ifdef CONFIG_SERIAL_8250_CONSOLE 320#ifdef CONFIG_SERIAL_8250_CONSOLE
@@ -337,4 +342,5 @@ MACHINE_START(OMAPL138_HAWKBOARD, "AM18x/OMAP-L138 Hawkboard")
337 .init_late = davinci_init_late, 342 .init_late = davinci_init_late,
338 .dma_zone_size = SZ_128M, 343 .dma_zone_size = SZ_128M,
339 .restart = da8xx_restart, 344 .restart = da8xx_restart,
345 .reserve = da8xx_rproc_reserve_cma,
340MACHINE_END 346MACHINE_END
diff --git a/arch/arm/mach-davinci/devices.c b/arch/arm/mach-davinci/devices.c
index f6927df2dda8..a7068a3aa9d3 100644
--- a/arch/arm/mach-davinci/devices.c
+++ b/arch/arm/mach-davinci/devices.c
@@ -119,7 +119,7 @@ void __init davinci_init_ide(void)
119 platform_device_register(&ide_device); 119 platform_device_register(&ide_device);
120} 120}
121 121
122#if defined(CONFIG_MMC_DAVINCI) || defined(CONFIG_MMC_DAVINCI_MODULE) 122#if IS_ENABLED(CONFIG_MMC_DAVINCI)
123 123
124static u64 mmcsd0_dma_mask = DMA_BIT_MASK(32); 124static u64 mmcsd0_dma_mask = DMA_BIT_MASK(32);
125 125
diff --git a/arch/arm/mach-davinci/usb.c b/arch/arm/mach-davinci/usb.c
index 2b4c648f99b6..b0a6b522575f 100644
--- a/arch/arm/mach-davinci/usb.c
+++ b/arch/arm/mach-davinci/usb.c
@@ -18,7 +18,7 @@
18#define DA8XX_USB0_BASE 0x01e00000 18#define DA8XX_USB0_BASE 0x01e00000
19#define DA8XX_USB1_BASE 0x01e25000 19#define DA8XX_USB1_BASE 0x01e25000
20 20
21#if defined(CONFIG_USB_MUSB_HDRC) || defined(CONFIG_USB_MUSB_HDRC_MODULE) 21#if IS_ENABLED(CONFIG_USB_MUSB_HDRC)
22static struct musb_hdrc_eps_bits musb_eps[] = { 22static struct musb_hdrc_eps_bits musb_eps[] = {
23 { "ep1_tx", 8, }, 23 { "ep1_tx", 8, },
24 { "ep1_rx", 8, }, 24 { "ep1_rx", 8, },
diff --git a/arch/arm/mach-kirkwood/Kconfig b/arch/arm/mach-kirkwood/Kconfig
index 7b6a64bc5f40..7509a89af967 100644
--- a/arch/arm/mach-kirkwood/Kconfig
+++ b/arch/arm/mach-kirkwood/Kconfig
@@ -2,23 +2,41 @@ if ARCH_KIRKWOOD
2 2
3menu "Marvell Kirkwood Implementations" 3menu "Marvell Kirkwood Implementations"
4 4
5config MACH_D2NET_V2
6 bool "LaCie d2 Network v2 NAS Board"
7 help
8 Say 'Y' here if you want your kernel to support the
9 LaCie d2 Network v2 NAS.
10
5config MACH_DB88F6281_BP 11config MACH_DB88F6281_BP
6 bool "Marvell DB-88F6281-BP Development Board" 12 bool "Marvell DB-88F6281-BP Development Board"
7 help 13 help
8 Say 'Y' here if you want your kernel to support the 14 Say 'Y' here if you want your kernel to support the
9 Marvell DB-88F6281-BP Development Board. 15 Marvell DB-88F6281-BP Development Board.
10 16
11config MACH_RD88F6192_NAS 17config MACH_DOCKSTAR
12 bool "Marvell RD-88F6192-NAS Reference Board" 18 bool "Seagate FreeAgent DockStar"
13 help 19 help
14 Say 'Y' here if you want your kernel to support the 20 Say 'Y' here if you want your kernel to support the
15 Marvell RD-88F6192-NAS Reference Board. 21 Seagate FreeAgent DockStar.
16 22
17config MACH_RD88F6281 23config MACH_ESATA_SHEEVAPLUG
18 bool "Marvell RD-88F6281 Reference Board" 24 bool "Marvell eSATA SheevaPlug Reference Board"
19 help 25 help
20 Say 'Y' here if you want your kernel to support the 26 Say 'Y' here if you want your kernel to support the
21 Marvell RD-88F6281 Reference Board. 27 Marvell eSATA SheevaPlug Reference Board.
28
29config MACH_GURUPLUG
30 bool "Marvell GuruPlug Reference Board"
31 help
32 Say 'Y' here if you want your kernel to support the
33 Marvell GuruPlug Reference Board.
34
35config MACH_INETSPACE_V2
36 bool "LaCie Internet Space v2 NAS Board"
37 help
38 Say 'Y' here if you want your kernel to support the
39 LaCie Internet Space v2 NAS.
22 40
23config MACH_MV88F6281GTW_GE 41config MACH_MV88F6281GTW_GE
24 bool "Marvell 88F6281 GTW GE Board" 42 bool "Marvell 88F6281 GTW GE Board"
@@ -26,23 +44,93 @@ config MACH_MV88F6281GTW_GE
26 Say 'Y' here if you want your kernel to support the 44 Say 'Y' here if you want your kernel to support the
27 Marvell 88F6281 GTW GE Board. 45 Marvell 88F6281 GTW GE Board.
28 46
47config MACH_NET2BIG_V2
48 bool "LaCie 2Big Network v2 NAS Board"
49 help
50 Say 'Y' here if you want your kernel to support the
51 LaCie 2Big Network v2 NAS.
52
53config MACH_NET5BIG_V2
54 bool "LaCie 5Big Network v2 NAS Board"
55 help
56 Say 'Y' here if you want your kernel to support the
57 LaCie 5Big Network v2 NAS.
58
59config MACH_NETSPACE_MAX_V2
60 bool "LaCie Network Space Max v2 NAS Board"
61 help
62 Say 'Y' here if you want your kernel to support the
63 LaCie Network Space Max v2 NAS.
64
65config MACH_NETSPACE_V2
66 bool "LaCie Network Space v2 NAS Board"
67 help
68 Say 'Y' here if you want your kernel to support the
69 LaCie Network Space v2 NAS.
70
71config MACH_OPENRD
72 bool
73
74config MACH_OPENRD_BASE
75 bool "Marvell OpenRD Base Board"
76 select MACH_OPENRD
77 help
78 Say 'Y' here if you want your kernel to support the
79 Marvell OpenRD Base Board.
80
81config MACH_OPENRD_CLIENT
82 bool "Marvell OpenRD Client Board"
83 select MACH_OPENRD
84 help
85 Say 'Y' here if you want your kernel to support the
86 Marvell OpenRD Client Board.
87
88config MACH_OPENRD_ULTIMATE
89 bool "Marvell OpenRD Ultimate Board"
90 select MACH_OPENRD
91 help
92 Say 'Y' here if you want your kernel to support the
93 Marvell OpenRD Ultimate Board.
94
95config MACH_RD88F6192_NAS
96 bool "Marvell RD-88F6192-NAS Reference Board"
97 help
98 Say 'Y' here if you want your kernel to support the
99 Marvell RD-88F6192-NAS Reference Board.
100
101config MACH_RD88F6281
102 bool "Marvell RD-88F6281 Reference Board"
103 help
104 Say 'Y' here if you want your kernel to support the
105 Marvell RD-88F6281 Reference Board.
106
29config MACH_SHEEVAPLUG 107config MACH_SHEEVAPLUG
30 bool "Marvell SheevaPlug Reference Board" 108 bool "Marvell SheevaPlug Reference Board"
31 help 109 help
32 Say 'Y' here if you want your kernel to support the 110 Say 'Y' here if you want your kernel to support the
33 Marvell SheevaPlug Reference Board. 111 Marvell SheevaPlug Reference Board.
34 112
35config MACH_ESATA_SHEEVAPLUG 113config MACH_T5325
36 bool "Marvell eSATA SheevaPlug Reference Board" 114 bool "HP t5325 Thin Client"
37 help 115 help
38 Say 'Y' here if you want your kernel to support the 116 Say 'Y' here if you want your kernel to support the
39 Marvell eSATA SheevaPlug Reference Board. 117 HP t5325 Thin Client.
40 118
41config MACH_GURUPLUG 119config MACH_TS219
42 bool "Marvell GuruPlug Reference Board" 120 bool "QNAP TS-110, TS-119, TS-119P+, TS-210, TS-219, TS-219P and TS-219P+ Turbo NAS"
43 help 121 help
44 Say 'Y' here if you want your kernel to support the 122 Say 'Y' here if you want your kernel to support the
45 Marvell GuruPlug Reference Board. 123 QNAP TS-110, TS-119, TS-119P+, TS-210, TS-219, TS-219P and
124 TS-219P+ Turbo NAS devices.
125
126config MACH_TS41X
127 bool "QNAP TS-410, TS-410U, TS-419P, TS-419P+ and TS-419U Turbo NAS"
128 help
129 Say 'Y' here if you want your kernel to support the
130 QNAP TS-410, TS-410U, TS-419P, TS-419P+ and TS-419U Turbo
131 NAS devices.
132
133comment "Device tree entries"
46 134
47config ARCH_KIRKWOOD_DT 135config ARCH_KIRKWOOD_DT
48 bool "Marvell Kirkwood Flattened Device Tree" 136 bool "Marvell Kirkwood Flattened Device Tree"
@@ -58,12 +146,27 @@ config ARCH_KIRKWOOD_DT
58 Say 'Y' here if you want your kernel to support the 146 Say 'Y' here if you want your kernel to support the
59 Marvell Kirkwood using flattened device tree. 147 Marvell Kirkwood using flattened device tree.
60 148
61config MACH_GURUPLUG_DT 149config MACH_CLOUDBOX_DT
62 bool "Marvell GuruPlug Reference Board (Flattened Device Tree)" 150 bool "LaCie CloudBox NAS (Flattened Device Tree)"
151 select ARCH_KIRKWOOD_DT
152 help
153 Say 'Y' here if you want your kernel to support the LaCie
154 CloudBox NAS, using Flattened Device Tree.
155
156config MACH_DLINK_KIRKWOOD_DT
157 bool "D-Link Kirkwood-based NAS (Flattened Device Tree)"
63 select ARCH_KIRKWOOD_DT 158 select ARCH_KIRKWOOD_DT
64 help 159 help
65 Say 'Y' here if you want your kernel to support the 160 Say 'Y' here if you want your kernel to support the
66 Marvell GuruPlug Reference Board (Flattened Device Tree). 161 Kirkwood-based D-Link NASes such as DNS-320 & DNS-325,
162 using Flattened Device Tree.
163
164config MACH_DOCKSTAR_DT
165 bool "Seagate FreeAgent Dockstar (Flattened Device Tree)"
166 select ARCH_KIRKWOOD_DT
167 help
168 Say 'Y' here if you want your kernel to support the
169 Seagate FreeAgent Dockstar (Flattened Device Tree).
67 170
68config MACH_DREAMPLUG_DT 171config MACH_DREAMPLUG_DT
69 bool "Marvell DreamPlug (Flattened Device Tree)" 172 bool "Marvell DreamPlug (Flattened Device Tree)"
@@ -72,19 +175,19 @@ config MACH_DREAMPLUG_DT
72 Say 'Y' here if you want your kernel to support the 175 Say 'Y' here if you want your kernel to support the
73 Marvell DreamPlug (Flattened Device Tree). 176 Marvell DreamPlug (Flattened Device Tree).
74 177
75config MACH_ICONNECT_DT 178config MACH_GOFLEXNET_DT
76 bool "Iomega Iconnect (Flattened Device Tree)" 179 bool "Seagate GoFlex Net (Flattened Device Tree)"
77 select ARCH_KIRKWOOD_DT 180 select ARCH_KIRKWOOD_DT
78 help 181 help
79 Say 'Y' here to enable Iomega Iconnect support. 182 Say 'Y' here if you want your kernel to support the
183 Seagate GoFlex Net (Flattened Device Tree).
80 184
81config MACH_DLINK_KIRKWOOD_DT 185config MACH_GURUPLUG_DT
82 bool "D-Link Kirkwood-based NAS (Flattened Device Tree)" 186 bool "Marvell GuruPlug Reference Board (Flattened Device Tree)"
83 select ARCH_KIRKWOOD_DT 187 select ARCH_KIRKWOOD_DT
84 help 188 help
85 Say 'Y' here if you want your kernel to support the 189 Say 'Y' here if you want your kernel to support the
86 Kirkwood-based D-Link NASes such as DNS-320 & DNS-325, 190 Marvell GuruPlug Reference Board (Flattened Device Tree).
87 using Flattened Device Tree.
88 191
89config MACH_IB62X0_DT 192config MACH_IB62X0_DT
90 bool "RaidSonic IB-NAS6210, IB-NAS6220 (Flattened Device Tree)" 193 bool "RaidSonic IB-NAS6210, IB-NAS6220 (Flattened Device Tree)"
@@ -94,41 +197,18 @@ config MACH_IB62X0_DT
94 RaidSonic IB-NAS6210 & IB-NAS6220 devices, using 197 RaidSonic IB-NAS6210 & IB-NAS6220 devices, using
95 Flattened Device Tree. 198 Flattened Device Tree.
96 199
97config MACH_TS219_DT 200config MACH_ICONNECT_DT
98 bool "Device Tree for QNAP TS-11X, TS-21X NAS" 201 bool "Iomega Iconnect (Flattened Device Tree)"
99 select ARCH_KIRKWOOD_DT
100 select ARM_APPENDED_DTB
101 select ARM_ATAG_DTB_COMPAT
102 help
103 Say 'Y' here if you want your kernel to support the QNAP
104 TS-110, TS-119, TS-119P+, TS-210, TS-219, TS-219P and
105 TS-219P+ Turbo NAS devices using Fattened Device Tree.
106 There are two different Device Tree descriptions, depending
107 on if the device is based on an if the board uses the MV6281
108 or MV6282. If you have the wrong one, the buttons will not
109 work.
110
111config MACH_DOCKSTAR_DT
112 bool "Seagate FreeAgent Dockstar (Flattened Device Tree)"
113 select ARCH_KIRKWOOD_DT
114 help
115 Say 'Y' here if you want your kernel to support the
116 Seagate FreeAgent Dockstar (Flattened Device Tree).
117
118config MACH_GOFLEXNET_DT
119 bool "Seagate GoFlex Net (Flattened Device Tree)"
120 select ARCH_KIRKWOOD_DT 202 select ARCH_KIRKWOOD_DT
121 help 203 help
122 Say 'Y' here if you want your kernel to support the 204 Say 'Y' here to enable Iomega Iconnect support.
123 Seagate GoFlex Net (Flattened Device Tree).
124 205
125config MACH_LSXL_DT 206config MACH_INETSPACE_V2_DT
126 bool "Buffalo Linkstation LS-XHL, LS-CHLv2 (Flattened Device Tree)" 207 bool "LaCie Internet Space v2 NAS (Flattened Device Tree)"
127 select ARCH_KIRKWOOD_DT 208 select ARCH_KIRKWOOD_DT
128 help 209 help
129 Say 'Y' here if you want your kernel to support the 210 Say 'Y' here if you want your kernel to support the LaCie
130 Buffalo Linkstation LS-XHL & LS-CHLv2 devices, using 211 Internet Space v2 NAS, using Flattened Device Tree.
131 Flattened Device Tree.
132 212
133config MACH_IOMEGA_IX2_200_DT 213config MACH_IOMEGA_IX2_200_DT
134 bool "Iomega StorCenter ix2-200 (Flattened Device Tree)" 214 bool "Iomega StorCenter ix2-200 (Flattened Device Tree)"
@@ -144,12 +224,13 @@ config MACH_KM_KIRKWOOD_DT
144 Say 'Y' here if you want your kernel to support the 224 Say 'Y' here if you want your kernel to support the
145 Keymile Kirkwood Reference Desgin, using Flattened Device Tree. 225 Keymile Kirkwood Reference Desgin, using Flattened Device Tree.
146 226
147config MACH_INETSPACE_V2_DT 227config MACH_LSXL_DT
148 bool "LaCie Internet Space v2 NAS (Flattened Device Tree)" 228 bool "Buffalo Linkstation LS-XHL, LS-CHLv2 (Flattened Device Tree)"
149 select ARCH_KIRKWOOD_DT 229 select ARCH_KIRKWOOD_DT
150 help 230 help
151 Say 'Y' here if you want your kernel to support the LaCie 231 Say 'Y' here if you want your kernel to support the
152 Internet Space v2 NAS, using Flattened Device Tree. 232 Buffalo Linkstation LS-XHL & LS-CHLv2 devices, using
233 Flattened Device Tree.
153 234
154config MACH_MPLCEC4_DT 235config MACH_MPLCEC4_DT
155 bool "MPL CEC4 (Flattened Device Tree)" 236 bool "MPL CEC4 (Flattened Device Tree)"
@@ -158,12 +239,12 @@ config MACH_MPLCEC4_DT
158 Say 'Y' here if you want your kernel to support the 239 Say 'Y' here if you want your kernel to support the
159 MPL CEC4 (Flattened Device Tree). 240 MPL CEC4 (Flattened Device Tree).
160 241
161config MACH_NETSPACE_V2_DT 242config MACH_NETSPACE_LITE_V2_DT
162 bool "LaCie Network Space v2 NAS (Flattened Device Tree)" 243 bool "LaCie Network Space Lite v2 NAS (Flattened Device Tree)"
163 select ARCH_KIRKWOOD_DT 244 select ARCH_KIRKWOOD_DT
164 help 245 help
165 Say 'Y' here if you want your kernel to support the LaCie 246 Say 'Y' here if you want your kernel to support the LaCie
166 Network Space v2 NAS, using Flattened Device Tree. 247 Network Space Lite v2 NAS, using Flattened Device Tree.
167 248
168config MACH_NETSPACE_MAX_V2_DT 249config MACH_NETSPACE_MAX_V2_DT
169 bool "LaCie Network Space Max v2 NAS (Flattened Device Tree)" 250 bool "LaCie Network Space Max v2 NAS (Flattened Device Tree)"
@@ -172,128 +253,69 @@ config MACH_NETSPACE_MAX_V2_DT
172 Say 'Y' here if you want your kernel to support the LaCie 253 Say 'Y' here if you want your kernel to support the LaCie
173 Network Space Max v2 NAS, using Flattened Device Tree. 254 Network Space Max v2 NAS, using Flattened Device Tree.
174 255
175config MACH_NETSPACE_LITE_V2_DT
176 bool "LaCie Network Space Lite v2 NAS (Flattened Device Tree)"
177 select ARCH_KIRKWOOD_DT
178 help
179 Say 'Y' here if you want your kernel to support the LaCie
180 Network Space Lite v2 NAS, using Flattened Device Tree.
181
182config MACH_NETSPACE_MINI_V2_DT 256config MACH_NETSPACE_MINI_V2_DT
183 bool "LaCie Network Space Mini v2 NAS (Flattened Device Tree)" 257 bool "LaCie Network Space Mini v2 NAS (Flattened Device Tree)"
184 select ARCH_KIRKWOOD_DT 258 select ARCH_KIRKWOOD_DT
185 help 259 help
186 Say 'Y' here if you want your kernel to support the LaCie 260 Say 'Y' here if you want your kernel to support the LaCie
187 Network Space Mini v2 NAS (aka SafeBox), using Flattened 261 Network Space Mini v2 NAS using Flattened Device Tree.
188 Device Tree.
189 262
190config MACH_OPENBLOCKS_A6_DT 263 This board is embedded in a product named CloudBox, which
191 bool "Plat'Home OpenBlocks A6 (Flattened Device Tree)" 264 provides automatic backup on a 100GB cloud storage. This
192 select ARCH_KIRKWOOD_DT 265 should not confused with a more recent LaCie NAS also named
193 help 266 CloudBox. For this last, the disk capacity is 1TB or above.
194 Say 'Y' here if you want your kernel to support the
195 Plat'Home OpenBlocks A6 (Flattened Device Tree).
196 267
197config MACH_TOPKICK_DT 268config MACH_NETSPACE_V2_DT
198 bool "USI Topkick (Flattened Device Tree)" 269 bool "LaCie Network Space v2 NAS (Flattened Device Tree)"
199 select ARCH_KIRKWOOD_DT 270 select ARCH_KIRKWOOD_DT
200 help 271 help
201 Say 'Y' here if you want your kernel to support the 272 Say 'Y' here if you want your kernel to support the LaCie
202 USI Topkick, using Flattened Device Tree 273 Network Space v2 NAS, using Flattened Device Tree.
203
204config MACH_TS219
205 bool "QNAP TS-110, TS-119, TS-119P+, TS-210, TS-219, TS-219P and TS-219P+ Turbo NAS"
206 help
207 Say 'Y' here if you want your kernel to support the
208 QNAP TS-110, TS-119, TS-119P+, TS-210, TS-219, TS-219P and
209 TS-219P+ Turbo NAS devices.
210
211config MACH_TS41X
212 bool "QNAP TS-410, TS-410U, TS-419P, TS-419P+ and TS-419U Turbo NAS"
213 help
214 Say 'Y' here if you want your kernel to support the
215 QNAP TS-410, TS-410U, TS-419P, TS-419P+ and TS-419U Turbo
216 NAS devices.
217
218config MACH_DOCKSTAR
219 bool "Seagate FreeAgent DockStar"
220 help
221 Say 'Y' here if you want your kernel to support the
222 Seagate FreeAgent DockStar.
223
224config MACH_OPENRD
225 bool
226
227config MACH_OPENRD_BASE
228 bool "Marvell OpenRD Base Board"
229 select MACH_OPENRD
230 help
231 Say 'Y' here if you want your kernel to support the
232 Marvell OpenRD Base Board.
233
234config MACH_OPENRD_CLIENT
235 bool "Marvell OpenRD Client Board"
236 select MACH_OPENRD
237 help
238 Say 'Y' here if you want your kernel to support the
239 Marvell OpenRD Client Board.
240
241config MACH_OPENRD_ULTIMATE
242 bool "Marvell OpenRD Ultimate Board"
243 select MACH_OPENRD
244 help
245 Say 'Y' here if you want your kernel to support the
246 Marvell OpenRD Ultimate Board.
247
248config MACH_NETSPACE_V2
249 bool "LaCie Network Space v2 NAS Board"
250 help
251 Say 'Y' here if you want your kernel to support the
252 LaCie Network Space v2 NAS.
253
254config MACH_INETSPACE_V2
255 bool "LaCie Internet Space v2 NAS Board"
256 help
257 Say 'Y' here if you want your kernel to support the
258 LaCie Internet Space v2 NAS.
259
260config MACH_NETSPACE_MAX_V2
261 bool "LaCie Network Space Max v2 NAS Board"
262 help
263 Say 'Y' here if you want your kernel to support the
264 LaCie Network Space Max v2 NAS.
265 274
266config MACH_D2NET_V2 275config MACH_NSA310_DT
267 bool "LaCie d2 Network v2 NAS Board" 276 bool "ZyXEL NSA-310 (Flattened Device Tree)"
277 select ARCH_KIRKWOOD_DT
278 select ARM_ATAG_DTB_COMPAT
268 help 279 help
269 Say 'Y' here if you want your kernel to support the 280 Say 'Y' here if you want your kernel to support the
270 LaCie d2 Network v2 NAS. 281 ZyXEL NSA-310 board (Flattened Device Tree).
271 282
272config MACH_NET2BIG_V2 283config MACH_OPENBLOCKS_A6_DT
273 bool "LaCie 2Big Network v2 NAS Board" 284 bool "Plat'Home OpenBlocks A6 (Flattened Device Tree)"
285 select ARCH_KIRKWOOD_DT
274 help 286 help
275 Say 'Y' here if you want your kernel to support the 287 Say 'Y' here if you want your kernel to support the
276 LaCie 2Big Network v2 NAS. 288 Plat'Home OpenBlocks A6 (Flattened Device Tree).
277 289
278config MACH_NET5BIG_V2 290config MACH_READYNAS_DT
279 bool "LaCie 5Big Network v2 NAS Board" 291 bool "NETGEAR ReadyNAS Duo v2 (Flattened Device Tree)"
292 select ARCH_KIRKWOOD_DT
293 select ARM_APPENDED_DTB
294 select ARM_ATAG_DTB_COMPAT
280 help 295 help
281 Say 'Y' here if you want your kernel to support the 296 Say 'Y' here if you want your kernel to support the
282 LaCie 5Big Network v2 NAS. 297 NETGEAR ReadyNAS Duo v2 using Fattened Device Tree.
283 298
284config MACH_T5325 299config MACH_TOPKICK_DT
285 bool "HP t5325 Thin Client" 300 bool "USI Topkick (Flattened Device Tree)"
301 select ARCH_KIRKWOOD_DT
286 help 302 help
287 Say 'Y' here if you want your kernel to support the 303 Say 'Y' here if you want your kernel to support the
288 HP t5325 Thin Client. 304 USI Topkick, using Flattened Device Tree
289 305
290config MACH_NSA310_DT 306config MACH_TS219_DT
291 bool "ZyXEL NSA-310 (Flattened Device Tree)" 307 bool "Device Tree for QNAP TS-11X, TS-21X NAS"
292 select ARCH_KIRKWOOD_DT 308 select ARCH_KIRKWOOD_DT
309 select ARM_APPENDED_DTB
293 select ARM_ATAG_DTB_COMPAT 310 select ARM_ATAG_DTB_COMPAT
294 help 311 help
295 Say 'Y' here if you want your kernel to support the 312 Say 'Y' here if you want your kernel to support the QNAP
296 ZyXEL NSA-310 board (Flattened Device Tree). 313 TS-110, TS-119, TS-119P+, TS-210, TS-219, TS-219P and
314 TS-219P+ Turbo NAS devices using Fattened Device Tree.
315 There are two different Device Tree descriptions, depending
316 on if the device is based on an if the board uses the MV6281
317 or MV6282. If you have the wrong one, the buttons will not
318 work.
297 319
298endmenu 320endmenu
299 321
diff --git a/arch/arm/mach-kirkwood/Makefile b/arch/arm/mach-kirkwood/Makefile
index 4cc4bee4d0cf..cdbca328a412 100644
--- a/arch/arm/mach-kirkwood/Makefile
+++ b/arch/arm/mach-kirkwood/Makefile
@@ -1,42 +1,44 @@
1obj-y += common.o addr-map.o irq.o pcie.o mpp.o 1obj-y += common.o addr-map.o irq.o pcie.o mpp.o
2 2
3obj-$(CONFIG_MACH_D2NET_V2) += d2net_v2-setup.o lacie_v2-common.o
3obj-$(CONFIG_MACH_DB88F6281_BP) += db88f6281-bp-setup.o 4obj-$(CONFIG_MACH_DB88F6281_BP) += db88f6281-bp-setup.o
4obj-$(CONFIG_MACH_RD88F6192_NAS) += rd88f6192-nas-setup.o 5obj-$(CONFIG_MACH_DOCKSTAR) += dockstar-setup.o
5obj-$(CONFIG_MACH_RD88F6281) += rd88f6281-setup.o
6obj-$(CONFIG_MACH_MV88F6281GTW_GE) += mv88f6281gtw_ge-setup.o
7obj-$(CONFIG_MACH_SHEEVAPLUG) += sheevaplug-setup.o
8obj-$(CONFIG_MACH_ESATA_SHEEVAPLUG) += sheevaplug-setup.o 6obj-$(CONFIG_MACH_ESATA_SHEEVAPLUG) += sheevaplug-setup.o
9obj-$(CONFIG_MACH_GURUPLUG) += guruplug-setup.o 7obj-$(CONFIG_MACH_GURUPLUG) += guruplug-setup.o
10obj-$(CONFIG_MACH_DOCKSTAR) += dockstar-setup.o
11obj-$(CONFIG_MACH_TS219) += ts219-setup.o tsx1x-common.o
12obj-$(CONFIG_MACH_TS41X) += ts41x-setup.o tsx1x-common.o
13obj-$(CONFIG_MACH_OPENRD) += openrd-setup.o
14obj-$(CONFIG_MACH_NETSPACE_V2) += netspace_v2-setup.o lacie_v2-common.o
15obj-$(CONFIG_MACH_INETSPACE_V2) += netspace_v2-setup.o lacie_v2-common.o 8obj-$(CONFIG_MACH_INETSPACE_V2) += netspace_v2-setup.o lacie_v2-common.o
16obj-$(CONFIG_MACH_NETSPACE_MAX_V2) += netspace_v2-setup.o lacie_v2-common.o 9obj-$(CONFIG_MACH_MV88F6281GTW_GE) += mv88f6281gtw_ge-setup.o
17obj-$(CONFIG_MACH_D2NET_V2) += d2net_v2-setup.o lacie_v2-common.o
18obj-$(CONFIG_MACH_NET2BIG_V2) += netxbig_v2-setup.o lacie_v2-common.o 10obj-$(CONFIG_MACH_NET2BIG_V2) += netxbig_v2-setup.o lacie_v2-common.o
19obj-$(CONFIG_MACH_NET5BIG_V2) += netxbig_v2-setup.o lacie_v2-common.o 11obj-$(CONFIG_MACH_NET5BIG_V2) += netxbig_v2-setup.o lacie_v2-common.o
12obj-$(CONFIG_MACH_NETSPACE_MAX_V2) += netspace_v2-setup.o lacie_v2-common.o
13obj-$(CONFIG_MACH_NETSPACE_V2) += netspace_v2-setup.o lacie_v2-common.o
14obj-$(CONFIG_MACH_OPENRD) += openrd-setup.o
15obj-$(CONFIG_MACH_RD88F6192_NAS) += rd88f6192-nas-setup.o
16obj-$(CONFIG_MACH_RD88F6281) += rd88f6281-setup.o
17obj-$(CONFIG_MACH_SHEEVAPLUG) += sheevaplug-setup.o
20obj-$(CONFIG_MACH_T5325) += t5325-setup.o 18obj-$(CONFIG_MACH_T5325) += t5325-setup.o
19obj-$(CONFIG_MACH_TS219) += ts219-setup.o tsx1x-common.o
20obj-$(CONFIG_MACH_TS41X) += ts41x-setup.o tsx1x-common.o
21 21
22obj-$(CONFIG_ARCH_KIRKWOOD_DT) += board-dt.o 22obj-$(CONFIG_ARCH_KIRKWOOD_DT) += board-dt.o
23obj-$(CONFIG_MACH_DREAMPLUG_DT) += board-dreamplug.o 23obj-$(CONFIG_MACH_CLOUDBOX_DT) += board-ns2.o
24obj-$(CONFIG_MACH_GURUPLUG_DT) += board-guruplug.o
25obj-$(CONFIG_MACH_ICONNECT_DT) += board-iconnect.o
26obj-$(CONFIG_MACH_DLINK_KIRKWOOD_DT) += board-dnskw.o 24obj-$(CONFIG_MACH_DLINK_KIRKWOOD_DT) += board-dnskw.o
27obj-$(CONFIG_MACH_IB62X0_DT) += board-ib62x0.o
28obj-$(CONFIG_MACH_TS219_DT) += board-ts219.o tsx1x-common.o
29obj-$(CONFIG_MACH_DOCKSTAR_DT) += board-dockstar.o 25obj-$(CONFIG_MACH_DOCKSTAR_DT) += board-dockstar.o
26obj-$(CONFIG_MACH_DREAMPLUG_DT) += board-dreamplug.o
30obj-$(CONFIG_MACH_GOFLEXNET_DT) += board-goflexnet.o 27obj-$(CONFIG_MACH_GOFLEXNET_DT) += board-goflexnet.o
31obj-$(CONFIG_MACH_LSXL_DT) += board-lsxl.o 28obj-$(CONFIG_MACH_GURUPLUG_DT) += board-guruplug.o
29obj-$(CONFIG_MACH_IB62X0_DT) += board-ib62x0.o
30obj-$(CONFIG_MACH_ICONNECT_DT) += board-iconnect.o
31obj-$(CONFIG_MACH_INETSPACE_V2_DT) += board-ns2.o
32obj-$(CONFIG_MACH_IOMEGA_IX2_200_DT) += board-iomega_ix2_200.o 32obj-$(CONFIG_MACH_IOMEGA_IX2_200_DT) += board-iomega_ix2_200.o
33obj-$(CONFIG_MACH_KM_KIRKWOOD_DT) += board-km_kirkwood.o 33obj-$(CONFIG_MACH_KM_KIRKWOOD_DT) += board-km_kirkwood.o
34obj-$(CONFIG_MACH_INETSPACE_V2_DT) += board-ns2.o 34obj-$(CONFIG_MACH_LSXL_DT) += board-lsxl.o
35obj-$(CONFIG_MACH_MPLCEC4_DT) += board-mplcec4.o 35obj-$(CONFIG_MACH_MPLCEC4_DT) += board-mplcec4.o
36obj-$(CONFIG_MACH_NETSPACE_V2_DT) += board-ns2.o
37obj-$(CONFIG_MACH_NETSPACE_MAX_V2_DT) += board-ns2.o
38obj-$(CONFIG_MACH_NETSPACE_LITE_V2_DT) += board-ns2.o 36obj-$(CONFIG_MACH_NETSPACE_LITE_V2_DT) += board-ns2.o
37obj-$(CONFIG_MACH_NETSPACE_MAX_V2_DT) += board-ns2.o
39obj-$(CONFIG_MACH_NETSPACE_MINI_V2_DT) += board-ns2.o 38obj-$(CONFIG_MACH_NETSPACE_MINI_V2_DT) += board-ns2.o
39obj-$(CONFIG_MACH_NETSPACE_V2_DT) += board-ns2.o
40obj-$(CONFIG_MACH_NSA310_DT) += board-nsa310.o 40obj-$(CONFIG_MACH_NSA310_DT) += board-nsa310.o
41obj-$(CONFIG_MACH_OPENBLOCKS_A6_DT) += board-openblocks_a6.o 41obj-$(CONFIG_MACH_OPENBLOCKS_A6_DT) += board-openblocks_a6.o
42obj-$(CONFIG_MACH_READYNAS_DT) += board-readynas.o
42obj-$(CONFIG_MACH_TOPKICK_DT) += board-usi_topkick.o 43obj-$(CONFIG_MACH_TOPKICK_DT) += board-usi_topkick.o
44obj-$(CONFIG_MACH_TS219_DT) += board-ts219.o tsx1x-common.o
diff --git a/arch/arm/mach-kirkwood/board-dt.c b/arch/arm/mach-kirkwood/board-dt.c
index d367aa6b47bb..7904758e771f 100644
--- a/arch/arm/mach-kirkwood/board-dt.c
+++ b/arch/arm/mach-kirkwood/board-dt.c
@@ -139,16 +139,20 @@ static void __init kirkwood_dt_init(void)
139 if (of_machine_is_compatible("keymile,km_kirkwood")) 139 if (of_machine_is_compatible("keymile,km_kirkwood"))
140 km_kirkwood_init(); 140 km_kirkwood_init();
141 141
142 if (of_machine_is_compatible("lacie,inetspace_v2") || 142 if (of_machine_is_compatible("lacie,cloudbox") ||
143 of_machine_is_compatible("lacie,netspace_v2") || 143 of_machine_is_compatible("lacie,inetspace_v2") ||
144 of_machine_is_compatible("lacie,netspace_max_v2") ||
145 of_machine_is_compatible("lacie,netspace_lite_v2") || 144 of_machine_is_compatible("lacie,netspace_lite_v2") ||
146 of_machine_is_compatible("lacie,netspace_mini_v2")) 145 of_machine_is_compatible("lacie,netspace_max_v2") ||
146 of_machine_is_compatible("lacie,netspace_mini_v2") ||
147 of_machine_is_compatible("lacie,netspace_v2"))
147 ns2_init(); 148 ns2_init();
148 149
149 if (of_machine_is_compatible("mpl,cec4")) 150 if (of_machine_is_compatible("mpl,cec4"))
150 mplcec4_init(); 151 mplcec4_init();
151 152
153 if (of_machine_is_compatible("netgear,readynas-duo-v2"))
154 netgear_readynas_init();
155
152 if (of_machine_is_compatible("plathome,openblocks-a6")) 156 if (of_machine_is_compatible("plathome,openblocks-a6"))
153 openblocks_a6_init(); 157 openblocks_a6_init();
154 158
@@ -171,12 +175,14 @@ static const char * const kirkwood_dt_board_compat[] = {
171 "buffalo,lsxl", 175 "buffalo,lsxl",
172 "iom,ix2-200", 176 "iom,ix2-200",
173 "keymile,km_kirkwood", 177 "keymile,km_kirkwood",
178 "lacie,cloudbox",
174 "lacie,inetspace_v2", 179 "lacie,inetspace_v2",
175 "lacie,netspace_max_v2",
176 "lacie,netspace_v2",
177 "lacie,netspace_lite_v2", 180 "lacie,netspace_lite_v2",
181 "lacie,netspace_max_v2",
178 "lacie,netspace_mini_v2", 182 "lacie,netspace_mini_v2",
183 "lacie,netspace_v2",
179 "mpl,cec4", 184 "mpl,cec4",
185 "netgear,readynas-duo-v2",
180 "plathome,openblocks-a6", 186 "plathome,openblocks-a6",
181 "usi,topkick", 187 "usi,topkick",
182 "zyxel,nsa310", 188 "zyxel,nsa310",
diff --git a/arch/arm/mach-kirkwood/board-ns2.c b/arch/arm/mach-kirkwood/board-ns2.c
index f2ea3b7ad726..f8f660525ace 100644
--- a/arch/arm/mach-kirkwood/board-ns2.c
+++ b/arch/arm/mach-kirkwood/board-ns2.c
@@ -27,7 +27,8 @@ void __init ns2_init(void)
27 /* 27 /*
28 * Basic setup. Needs to be called early. 28 * Basic setup. Needs to be called early.
29 */ 29 */
30 if (of_machine_is_compatible("lacie,netspace_lite_v2") || 30 if (of_machine_is_compatible("lacie,cloudbox") ||
31 of_machine_is_compatible("lacie,netspace_lite_v2") ||
31 of_machine_is_compatible("lacie,netspace_mini_v2")) 32 of_machine_is_compatible("lacie,netspace_mini_v2"))
32 ns2_ge00_data.phy_addr = MV643XX_ETH_PHY_ADDR(0); 33 ns2_ge00_data.phy_addr = MV643XX_ETH_PHY_ADDR(0);
33 kirkwood_ge00_init(&ns2_ge00_data); 34 kirkwood_ge00_init(&ns2_ge00_data);
diff --git a/arch/arm/mach-kirkwood/board-readynas.c b/arch/arm/mach-kirkwood/board-readynas.c
new file mode 100644
index 000000000000..fb42c20e273f
--- /dev/null
+++ b/arch/arm/mach-kirkwood/board-readynas.c
@@ -0,0 +1,28 @@
1/*
2 * NETGEAR ReadyNAS Duo v2 Board setup for drivers not already
3 * converted to DT.
4 *
5 * Copyright (C) 2013, Arnaud EBALARD <arno@natisbad.org>
6 *
7 * This program is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License
9 * as published by the Free Software Foundation; either version
10 * 2 of the License, or (at your option) any later version.
11 */
12
13#include <linux/kernel.h>
14#include <linux/init.h>
15#include <linux/platform_device.h>
16#include <linux/mv643xx_eth.h>
17#include <mach/kirkwood.h>
18#include "common.h"
19
20static struct mv643xx_eth_platform_data netgear_readynas_ge00_data = {
21 .phy_addr = MV643XX_ETH_PHY_ADDR(0),
22};
23
24void __init netgear_readynas_init(void)
25{
26 kirkwood_ge00_init(&netgear_readynas_ge00_data);
27 kirkwood_pcie_init(KW_PCIE0);
28}
diff --git a/arch/arm/mach-kirkwood/common.h b/arch/arm/mach-kirkwood/common.h
index 5ed70565c843..3147be2f34da 100644
--- a/arch/arm/mach-kirkwood/common.h
+++ b/arch/arm/mach-kirkwood/common.h
@@ -141,12 +141,24 @@ void openblocks_a6_init(void);
141static inline void openblocks_a6_init(void) {}; 141static inline void openblocks_a6_init(void) {};
142#endif 142#endif
143 143
144#ifdef CONFIG_MACH_READYNAS_DT
145void netgear_readynas_init(void);
146#else
147static inline void netgear_readynas_init(void) {};
148#endif
149
144#ifdef CONFIG_MACH_TOPKICK_DT 150#ifdef CONFIG_MACH_TOPKICK_DT
145void usi_topkick_init(void); 151void usi_topkick_init(void);
146#else 152#else
147static inline void usi_topkick_init(void) {}; 153static inline void usi_topkick_init(void) {};
148#endif 154#endif
149 155
156#ifdef CONFIG_MACH_CLOUDBOX_DT
157void cloudbox_init(void);
158#else
159static inline void cloudbox_init(void) {};
160#endif
161
150/* early init functions not converted to fdt yet */ 162/* early init functions not converted to fdt yet */
151char *kirkwood_id(void); 163char *kirkwood_id(void);
152void kirkwood_l2_init(void); 164void kirkwood_l2_init(void);
diff --git a/arch/arm/mach-mmp/aspenite.c b/arch/arm/mach-mmp/aspenite.c
index 76901f4ce611..5b660ec09ef5 100644
--- a/arch/arm/mach-mmp/aspenite.c
+++ b/arch/arm/mach-mmp/aspenite.c
@@ -9,6 +9,7 @@
9 * publishhed by the Free Software Foundation. 9 * publishhed by the Free Software Foundation.
10 */ 10 */
11#include <linux/gpio.h> 11#include <linux/gpio.h>
12#include <linux/gpio-pxa.h>
12#include <linux/init.h> 13#include <linux/init.h>
13#include <linux/kernel.h> 14#include <linux/kernel.h>
14#include <linux/platform_device.h> 15#include <linux/platform_device.h>
@@ -110,6 +111,10 @@ static unsigned long common_pin_config[] __initdata = {
110 GPIO121_KP_MKIN4, 111 GPIO121_KP_MKIN4,
111}; 112};
112 113
114static struct pxa_gpio_platform_data pxa168_gpio_pdata = {
115 .irq_base = MMP_GPIO_TO_IRQ(0),
116};
117
113static struct smc91x_platdata smc91x_info = { 118static struct smc91x_platdata smc91x_info = {
114 .flags = SMC91X_USE_16BIT | SMC91X_NOWAIT, 119 .flags = SMC91X_USE_16BIT | SMC91X_NOWAIT,
115}; 120};
@@ -242,6 +247,8 @@ static void __init common_init(void)
242 pxa168_add_nand(&aspenite_nand_info); 247 pxa168_add_nand(&aspenite_nand_info);
243 pxa168_add_fb(&aspenite_lcd_info); 248 pxa168_add_fb(&aspenite_lcd_info);
244 pxa168_add_keypad(&aspenite_keypad_info); 249 pxa168_add_keypad(&aspenite_keypad_info);
250 platform_device_add_data(&pxa168_device_gpio, &pxa168_gpio_pdata,
251 sizeof(struct pxa_gpio_platform_data));
245 platform_device_register(&pxa168_device_gpio); 252 platform_device_register(&pxa168_device_gpio);
246 253
247 /* off-chip devices */ 254 /* off-chip devices */
diff --git a/arch/arm/mach-mmp/avengers_lite.c b/arch/arm/mach-mmp/avengers_lite.c
index 1f94957b56ae..a451a0f4d512 100644
--- a/arch/arm/mach-mmp/avengers_lite.c
+++ b/arch/arm/mach-mmp/avengers_lite.c
@@ -12,6 +12,7 @@
12 12
13#include <linux/init.h> 13#include <linux/init.h>
14#include <linux/kernel.h> 14#include <linux/kernel.h>
15#include <linux/gpio-pxa.h>
15#include <linux/platform_device.h> 16#include <linux/platform_device.h>
16 17
17#include <asm/mach-types.h> 18#include <asm/mach-types.h>
@@ -32,12 +33,18 @@ static unsigned long avengers_lite_pin_config_V16F[] __initdata = {
32 GPIO89_UART2_RXD, 33 GPIO89_UART2_RXD,
33}; 34};
34 35
36static struct pxa_gpio_platform_data pxa168_gpio_pdata = {
37 .irq_base = MMP_GPIO_TO_IRQ(0),
38};
39
35static void __init avengers_lite_init(void) 40static void __init avengers_lite_init(void)
36{ 41{
37 mfp_config(ARRAY_AND_SIZE(avengers_lite_pin_config_V16F)); 42 mfp_config(ARRAY_AND_SIZE(avengers_lite_pin_config_V16F));
38 43
39 /* on-chip devices */ 44 /* on-chip devices */
40 pxa168_add_uart(2); 45 pxa168_add_uart(2);
46 platform_device_add_data(&pxa168_device_gpio, &pxa168_gpio_pdata,
47 sizeof(struct pxa_gpio_platform_data));
41 platform_device_register(&pxa168_device_gpio); 48 platform_device_register(&pxa168_device_gpio);
42} 49}
43 50
diff --git a/arch/arm/mach-mmp/brownstone.c b/arch/arm/mach-mmp/brownstone.c
index 2358011c7d8e..ac25544b8cdb 100644
--- a/arch/arm/mach-mmp/brownstone.c
+++ b/arch/arm/mach-mmp/brownstone.c
@@ -14,6 +14,7 @@
14#include <linux/kernel.h> 14#include <linux/kernel.h>
15#include <linux/platform_device.h> 15#include <linux/platform_device.h>
16#include <linux/io.h> 16#include <linux/io.h>
17#include <linux/gpio-pxa.h>
17#include <linux/regulator/machine.h> 18#include <linux/regulator/machine.h>
18#include <linux/regulator/max8649.h> 19#include <linux/regulator/max8649.h>
19#include <linux/regulator/fixed.h> 20#include <linux/regulator/fixed.h>
@@ -104,6 +105,10 @@ static unsigned long brownstone_pin_config[] __initdata = {
104 GPIO89_GPIO, 105 GPIO89_GPIO,
105}; 106};
106 107
108static struct pxa_gpio_platform_data mmp2_gpio_pdata = {
109 .irq_base = MMP_GPIO_TO_IRQ(0),
110};
111
107static struct regulator_consumer_supply max8649_supply[] = { 112static struct regulator_consumer_supply max8649_supply[] = {
108 REGULATOR_SUPPLY("vcc_core", NULL), 113 REGULATOR_SUPPLY("vcc_core", NULL),
109}; 114};
@@ -202,6 +207,8 @@ static void __init brownstone_init(void)
202 /* on-chip devices */ 207 /* on-chip devices */
203 mmp2_add_uart(1); 208 mmp2_add_uart(1);
204 mmp2_add_uart(3); 209 mmp2_add_uart(3);
210 platform_device_add_data(&mmp2_device_gpio, &mmp2_gpio_pdata,
211 sizeof(struct pxa_gpio_platform_data));
205 platform_device_register(&mmp2_device_gpio); 212 platform_device_register(&mmp2_device_gpio);
206 mmp2_add_twsi(1, NULL, ARRAY_AND_SIZE(brownstone_twsi1_info)); 213 mmp2_add_twsi(1, NULL, ARRAY_AND_SIZE(brownstone_twsi1_info));
207 mmp2_add_sdhost(0, &mmp2_sdh_platdata_mmc0); /* SD/MMC */ 214 mmp2_add_sdhost(0, &mmp2_sdh_platdata_mmc0); /* SD/MMC */
diff --git a/arch/arm/mach-mmp/clock-mmp2.c b/arch/arm/mach-mmp/clock-mmp2.c
index 21d22002cd19..53d77cbd6000 100644
--- a/arch/arm/mach-mmp/clock-mmp2.c
+++ b/arch/arm/mach-mmp/clock-mmp2.c
@@ -98,7 +98,7 @@ static struct clk_lookup mmp2_clkregs[] = {
98 INIT_CLKREG(&clk_twsi5, "pxa2xx-i2c.4", NULL), 98 INIT_CLKREG(&clk_twsi5, "pxa2xx-i2c.4", NULL),
99 INIT_CLKREG(&clk_twsi6, "pxa2xx-i2c.5", NULL), 99 INIT_CLKREG(&clk_twsi6, "pxa2xx-i2c.5", NULL),
100 INIT_CLKREG(&clk_nand, "pxa3xx-nand", NULL), 100 INIT_CLKREG(&clk_nand, "pxa3xx-nand", NULL),
101 INIT_CLKREG(&clk_gpio, "pxa-gpio", NULL), 101 INIT_CLKREG(&clk_gpio, "mmp2-gpio", NULL),
102 INIT_CLKREG(&clk_sdh0, "sdhci-pxav3.0", "PXA-SDHCLK"), 102 INIT_CLKREG(&clk_sdh0, "sdhci-pxav3.0", "PXA-SDHCLK"),
103 INIT_CLKREG(&clk_sdh1, "sdhci-pxav3.1", "PXA-SDHCLK"), 103 INIT_CLKREG(&clk_sdh1, "sdhci-pxav3.1", "PXA-SDHCLK"),
104 INIT_CLKREG(&clk_sdh2, "sdhci-pxav3.2", "PXA-SDHCLK"), 104 INIT_CLKREG(&clk_sdh2, "sdhci-pxav3.2", "PXA-SDHCLK"),
diff --git a/arch/arm/mach-mmp/clock-pxa168.c b/arch/arm/mach-mmp/clock-pxa168.c
index 5e6c18ccebd4..c572f219ae26 100644
--- a/arch/arm/mach-mmp/clock-pxa168.c
+++ b/arch/arm/mach-mmp/clock-pxa168.c
@@ -78,7 +78,7 @@ static struct clk_lookup pxa168_clkregs[] = {
78 INIT_CLKREG(&clk_ssp5, "pxa168-ssp.4", NULL), 78 INIT_CLKREG(&clk_ssp5, "pxa168-ssp.4", NULL),
79 INIT_CLKREG(&clk_nand, "pxa3xx-nand", NULL), 79 INIT_CLKREG(&clk_nand, "pxa3xx-nand", NULL),
80 INIT_CLKREG(&clk_lcd, "pxa168-fb", NULL), 80 INIT_CLKREG(&clk_lcd, "pxa168-fb", NULL),
81 INIT_CLKREG(&clk_gpio, "pxa-gpio", NULL), 81 INIT_CLKREG(&clk_gpio, "mmp-gpio", NULL),
82 INIT_CLKREG(&clk_keypad, "pxa27x-keypad", NULL), 82 INIT_CLKREG(&clk_keypad, "pxa27x-keypad", NULL),
83 INIT_CLKREG(&clk_eth, "pxa168-eth", "MFUCLK"), 83 INIT_CLKREG(&clk_eth, "pxa168-eth", "MFUCLK"),
84 INIT_CLKREG(&clk_usb, NULL, "PXA168-USBCLK"), 84 INIT_CLKREG(&clk_usb, NULL, "PXA168-USBCLK"),
diff --git a/arch/arm/mach-mmp/clock-pxa910.c b/arch/arm/mach-mmp/clock-pxa910.c
index 933ea71d0b56..379e1df61c70 100644
--- a/arch/arm/mach-mmp/clock-pxa910.c
+++ b/arch/arm/mach-mmp/clock-pxa910.c
@@ -56,7 +56,7 @@ static struct clk_lookup pxa910_clkregs[] = {
56 INIT_CLKREG(&clk_pwm3, "pxa910-pwm.2", NULL), 56 INIT_CLKREG(&clk_pwm3, "pxa910-pwm.2", NULL),
57 INIT_CLKREG(&clk_pwm4, "pxa910-pwm.3", NULL), 57 INIT_CLKREG(&clk_pwm4, "pxa910-pwm.3", NULL),
58 INIT_CLKREG(&clk_nand, "pxa3xx-nand", NULL), 58 INIT_CLKREG(&clk_nand, "pxa3xx-nand", NULL),
59 INIT_CLKREG(&clk_gpio, "pxa-gpio", NULL), 59 INIT_CLKREG(&clk_gpio, "mmp-gpio", NULL),
60 INIT_CLKREG(&clk_u2o, NULL, "U2OCLK"), 60 INIT_CLKREG(&clk_u2o, NULL, "U2OCLK"),
61 INIT_CLKREG(&clk_rtc, "sa1100-rtc", NULL), 61 INIT_CLKREG(&clk_rtc, "sa1100-rtc", NULL),
62}; 62};
diff --git a/arch/arm/mach-mmp/flint.c b/arch/arm/mach-mmp/flint.c
index 754c352dd02b..6291c33d83e2 100644
--- a/arch/arm/mach-mmp/flint.c
+++ b/arch/arm/mach-mmp/flint.c
@@ -16,6 +16,7 @@
16#include <linux/smc91x.h> 16#include <linux/smc91x.h>
17#include <linux/io.h> 17#include <linux/io.h>
18#include <linux/gpio.h> 18#include <linux/gpio.h>
19#include <linux/gpio-pxa.h>
19#include <linux/interrupt.h> 20#include <linux/interrupt.h>
20 21
21#include <asm/mach-types.h> 22#include <asm/mach-types.h>
@@ -77,6 +78,10 @@ static unsigned long flint_pin_config[] __initdata = {
77 GPIO160_ND_RDY1, 78 GPIO160_ND_RDY1,
78}; 79};
79 80
81static struct pxa_gpio_platform_data mmp2_gpio_pdata = {
82 .irq_base = MMP_GPIO_TO_IRQ(0),
83};
84
80static struct smc91x_platdata flint_smc91x_info = { 85static struct smc91x_platdata flint_smc91x_info = {
81 .flags = SMC91X_USE_16BIT | SMC91X_NOWAIT, 86 .flags = SMC91X_USE_16BIT | SMC91X_NOWAIT,
82}; 87};
@@ -111,6 +116,8 @@ static void __init flint_init(void)
111 /* on-chip devices */ 116 /* on-chip devices */
112 mmp2_add_uart(1); 117 mmp2_add_uart(1);
113 mmp2_add_uart(2); 118 mmp2_add_uart(2);
119 platform_device_add_data(&mmp2_device_gpio, &mmp2_gpio_pdata,
120 sizeof(struct pxa_gpio_platform_data));
114 platform_device_register(&mmp2_device_gpio); 121 platform_device_register(&mmp2_device_gpio);
115 122
116 /* off-chip devices */ 123 /* off-chip devices */
diff --git a/arch/arm/mach-mmp/gplugd.c b/arch/arm/mach-mmp/gplugd.c
index f62b68d926f4..d81b2475e67e 100644
--- a/arch/arm/mach-mmp/gplugd.c
+++ b/arch/arm/mach-mmp/gplugd.c
@@ -11,6 +11,7 @@
11#include <linux/init.h> 11#include <linux/init.h>
12#include <linux/platform_device.h> 12#include <linux/platform_device.h>
13#include <linux/gpio.h> 13#include <linux/gpio.h>
14#include <linux/gpio-pxa.h>
14 15
15#include <asm/mach/arch.h> 16#include <asm/mach/arch.h>
16#include <asm/mach-types.h> 17#include <asm/mach-types.h>
@@ -128,6 +129,10 @@ static unsigned long gplugd_pin_config[] __initdata = {
128 GPIO116_I2S_TXD 129 GPIO116_I2S_TXD
129}; 130};
130 131
132static struct pxa_gpio_platform_data pxa168_gpio_pdata = {
133 .irq_base = MMP_GPIO_TO_IRQ(0),
134};
135
131static struct i2c_board_info gplugd_i2c_board_info[] = { 136static struct i2c_board_info gplugd_i2c_board_info[] = {
132 { 137 {
133 .type = "isl1208", 138 .type = "isl1208",
@@ -186,6 +191,8 @@ static void __init gplugd_init(void)
186 pxa168_add_uart(3); 191 pxa168_add_uart(3);
187 pxa168_add_ssp(1); 192 pxa168_add_ssp(1);
188 pxa168_add_twsi(0, NULL, ARRAY_AND_SIZE(gplugd_i2c_board_info)); 193 pxa168_add_twsi(0, NULL, ARRAY_AND_SIZE(gplugd_i2c_board_info));
194 platform_device_add_data(&pxa168_device_gpio, &pxa168_gpio_pdata,
195 sizeof(struct pxa_gpio_platform_data));
189 platform_device_register(&pxa168_device_gpio); 196 platform_device_register(&pxa168_device_gpio);
190 197
191 pxa168_add_eth(&gplugd_eth_platform_data); 198 pxa168_add_eth(&gplugd_eth_platform_data);
diff --git a/arch/arm/mach-mmp/include/mach/debug-macro.S b/arch/arm/mach-mmp/include/mach/debug-macro.S
deleted file mode 100644
index 5c3cc29688ab..000000000000
--- a/arch/arm/mach-mmp/include/mach/debug-macro.S
+++ /dev/null
@@ -1,30 +0,0 @@
1/* arch/arm/mach-mmp/include/mach/debug-macro.S
2 *
3 * Debugging macro include header
4 *
5 * Copied from arch/arm/mach-pxa/include/mach/debug.S
6 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License version 2 as
9 * published by the Free Software Foundation.
10 */
11
12#if defined(CONFIG_DEBUG_MMP_UART2)
13#define MMP_UART_OFFSET 0x00017000
14#elif defined(CONFIG_DEBUG_MMP_UART3)
15#define MMP_UART_OFFSET 0x00018000
16#else
17#error "Select uart for DEBUG_LL"
18#endif
19
20#include <mach/addr-map.h>
21
22 .macro addruart, rp, rv, tmp
23 ldr \rp, =APB_PHYS_BASE @ physical
24 ldr \rv, =APB_VIRT_BASE @ virtual
25 orr \rp, \rp, #MMP_UART_OFFSET
26 orr \rv, \rv, #MMP_UART_OFFSET
27 .endm
28
29#define UART_SHIFT 2
30#include <asm/hardware/debug-8250.S>
diff --git a/arch/arm/mach-mmp/jasper.c b/arch/arm/mach-mmp/jasper.c
index 66634fd0ecb0..0e9e5c05b37c 100644
--- a/arch/arm/mach-mmp/jasper.c
+++ b/arch/arm/mach-mmp/jasper.c
@@ -12,6 +12,7 @@
12 12
13#include <linux/init.h> 13#include <linux/init.h>
14#include <linux/kernel.h> 14#include <linux/kernel.h>
15#include <linux/gpio-pxa.h>
15#include <linux/platform_device.h> 16#include <linux/platform_device.h>
16#include <linux/io.h> 17#include <linux/io.h>
17#include <linux/regulator/machine.h> 18#include <linux/regulator/machine.h>
@@ -99,6 +100,10 @@ static unsigned long jasper_pin_config[] __initdata = {
99 GPIO151_MMC3_CLK, 100 GPIO151_MMC3_CLK,
100}; 101};
101 102
103static struct pxa_gpio_platform_data mmp2_gpio_pdata = {
104 .irq_base = MMP_GPIO_TO_IRQ(0),
105};
106
102static struct regulator_consumer_supply max8649_supply[] = { 107static struct regulator_consumer_supply max8649_supply[] = {
103 REGULATOR_SUPPLY("vcc_core", NULL), 108 REGULATOR_SUPPLY("vcc_core", NULL),
104}; 109};
@@ -165,6 +170,9 @@ static void __init jasper_init(void)
165 mmp2_add_uart(1); 170 mmp2_add_uart(1);
166 mmp2_add_uart(3); 171 mmp2_add_uart(3);
167 mmp2_add_twsi(1, NULL, ARRAY_AND_SIZE(jasper_twsi1_info)); 172 mmp2_add_twsi(1, NULL, ARRAY_AND_SIZE(jasper_twsi1_info));
173 platform_device_add_data(&mmp2_device_gpio, &mmp2_gpio_pdata,
174 sizeof(struct pxa_gpio_platform_data));
175 platform_device_register(&mmp2_device_gpio);
168 mmp2_add_sdhost(0, &mmp2_sdh_platdata_mmc0); /* SD/MMC */ 176 mmp2_add_sdhost(0, &mmp2_sdh_platdata_mmc0); /* SD/MMC */
169 177
170 regulator_has_full_constraints(); 178 regulator_has_full_constraints();
diff --git a/arch/arm/mach-mmp/mmp-dt.c b/arch/arm/mach-mmp/mmp-dt.c
index d063efa0a4f1..b37915dc4470 100644
--- a/arch/arm/mach-mmp/mmp-dt.c
+++ b/arch/arm/mach-mmp/mmp-dt.c
@@ -28,7 +28,7 @@ static const struct of_dev_auxdata pxa168_auxdata_lookup[] __initconst = {
28 OF_DEV_AUXDATA("mrvl,mmp-uart", 0xd4026000, "pxa2xx-uart.2", NULL), 28 OF_DEV_AUXDATA("mrvl,mmp-uart", 0xd4026000, "pxa2xx-uart.2", NULL),
29 OF_DEV_AUXDATA("mrvl,mmp-twsi", 0xd4011000, "pxa2xx-i2c.0", NULL), 29 OF_DEV_AUXDATA("mrvl,mmp-twsi", 0xd4011000, "pxa2xx-i2c.0", NULL),
30 OF_DEV_AUXDATA("mrvl,mmp-twsi", 0xd4025000, "pxa2xx-i2c.1", NULL), 30 OF_DEV_AUXDATA("mrvl,mmp-twsi", 0xd4025000, "pxa2xx-i2c.1", NULL),
31 OF_DEV_AUXDATA("mrvl,mmp-gpio", 0xd4019000, "pxa-gpio", NULL), 31 OF_DEV_AUXDATA("marvell,mmp-gpio", 0xd4019000, "mmp-gpio", NULL),
32 OF_DEV_AUXDATA("mrvl,mmp-rtc", 0xd4010000, "sa1100-rtc", NULL), 32 OF_DEV_AUXDATA("mrvl,mmp-rtc", 0xd4010000, "sa1100-rtc", NULL),
33 {} 33 {}
34}; 34};
@@ -39,7 +39,7 @@ static const struct of_dev_auxdata pxa910_auxdata_lookup[] __initconst = {
39 OF_DEV_AUXDATA("mrvl,mmp-uart", 0xd4036000, "pxa2xx-uart.2", NULL), 39 OF_DEV_AUXDATA("mrvl,mmp-uart", 0xd4036000, "pxa2xx-uart.2", NULL),
40 OF_DEV_AUXDATA("mrvl,mmp-twsi", 0xd4011000, "pxa2xx-i2c.0", NULL), 40 OF_DEV_AUXDATA("mrvl,mmp-twsi", 0xd4011000, "pxa2xx-i2c.0", NULL),
41 OF_DEV_AUXDATA("mrvl,mmp-twsi", 0xd4037000, "pxa2xx-i2c.1", NULL), 41 OF_DEV_AUXDATA("mrvl,mmp-twsi", 0xd4037000, "pxa2xx-i2c.1", NULL),
42 OF_DEV_AUXDATA("mrvl,mmp-gpio", 0xd4019000, "pxa-gpio", NULL), 42 OF_DEV_AUXDATA("marvell,mmp-gpio", 0xd4019000, "mmp-gpio", NULL),
43 OF_DEV_AUXDATA("mrvl,mmp-rtc", 0xd4010000, "sa1100-rtc", NULL), 43 OF_DEV_AUXDATA("mrvl,mmp-rtc", 0xd4010000, "sa1100-rtc", NULL),
44 {} 44 {}
45}; 45};
diff --git a/arch/arm/mach-mmp/mmp2-dt.c b/arch/arm/mach-mmp/mmp2-dt.c
index fad431aa6e09..4ac256720f7d 100644
--- a/arch/arm/mach-mmp/mmp2-dt.c
+++ b/arch/arm/mach-mmp/mmp2-dt.c
@@ -31,7 +31,7 @@ static const struct of_dev_auxdata mmp2_auxdata_lookup[] __initconst = {
31 OF_DEV_AUXDATA("mrvl,mmp-uart", 0xd4016000, "pxa2xx-uart.3", NULL), 31 OF_DEV_AUXDATA("mrvl,mmp-uart", 0xd4016000, "pxa2xx-uart.3", NULL),
32 OF_DEV_AUXDATA("mrvl,mmp-twsi", 0xd4011000, "pxa2xx-i2c.0", NULL), 32 OF_DEV_AUXDATA("mrvl,mmp-twsi", 0xd4011000, "pxa2xx-i2c.0", NULL),
33 OF_DEV_AUXDATA("mrvl,mmp-twsi", 0xd4025000, "pxa2xx-i2c.1", NULL), 33 OF_DEV_AUXDATA("mrvl,mmp-twsi", 0xd4025000, "pxa2xx-i2c.1", NULL),
34 OF_DEV_AUXDATA("mrvl,mmp-gpio", 0xd4019000, "pxa-gpio", NULL), 34 OF_DEV_AUXDATA("marvell,mmp-gpio", 0xd4019000, "mmp2-gpio", NULL),
35 OF_DEV_AUXDATA("mrvl,mmp-rtc", 0xd4010000, "sa1100-rtc", NULL), 35 OF_DEV_AUXDATA("mrvl,mmp-rtc", 0xd4010000, "sa1100-rtc", NULL),
36 {} 36 {}
37}; 37};
diff --git a/arch/arm/mach-mmp/mmp2.c b/arch/arm/mach-mmp/mmp2.c
index d94d114eef7b..c7592f168bbd 100644
--- a/arch/arm/mach-mmp/mmp2.c
+++ b/arch/arm/mach-mmp/mmp2.c
@@ -164,7 +164,7 @@ struct resource mmp2_resource_gpio[] = {
164}; 164};
165 165
166struct platform_device mmp2_device_gpio = { 166struct platform_device mmp2_device_gpio = {
167 .name = "pxa-gpio", 167 .name = "mmp2-gpio",
168 .id = -1, 168 .id = -1,
169 .num_resources = ARRAY_SIZE(mmp2_resource_gpio), 169 .num_resources = ARRAY_SIZE(mmp2_resource_gpio),
170 .resource = mmp2_resource_gpio, 170 .resource = mmp2_resource_gpio,
diff --git a/arch/arm/mach-mmp/pxa168.c b/arch/arm/mach-mmp/pxa168.c
index 9bc7b86a86a7..a30dcf3b7d9e 100644
--- a/arch/arm/mach-mmp/pxa168.c
+++ b/arch/arm/mach-mmp/pxa168.c
@@ -125,7 +125,7 @@ struct resource pxa168_resource_gpio[] = {
125}; 125};
126 126
127struct platform_device pxa168_device_gpio = { 127struct platform_device pxa168_device_gpio = {
128 .name = "pxa-gpio", 128 .name = "mmp-gpio",
129 .id = -1, 129 .id = -1,
130 .num_resources = ARRAY_SIZE(pxa168_resource_gpio), 130 .num_resources = ARRAY_SIZE(pxa168_resource_gpio),
131 .resource = pxa168_resource_gpio, 131 .resource = pxa168_resource_gpio,
diff --git a/arch/arm/mach-mmp/pxa910.c b/arch/arm/mach-mmp/pxa910.c
index 36cb321a3d70..ce6393acad86 100644
--- a/arch/arm/mach-mmp/pxa910.c
+++ b/arch/arm/mach-mmp/pxa910.c
@@ -152,7 +152,7 @@ struct resource pxa910_resource_gpio[] = {
152}; 152};
153 153
154struct platform_device pxa910_device_gpio = { 154struct platform_device pxa910_device_gpio = {
155 .name = "pxa-gpio", 155 .name = "mmp-gpio",
156 .id = -1, 156 .id = -1,
157 .num_resources = ARRAY_SIZE(pxa910_resource_gpio), 157 .num_resources = ARRAY_SIZE(pxa910_resource_gpio),
158 .resource = pxa910_resource_gpio, 158 .resource = pxa910_resource_gpio,
diff --git a/arch/arm/mach-mmp/tavorevb.c b/arch/arm/mach-mmp/tavorevb.c
index 4c127d23955d..cdfc9bfee1a4 100644
--- a/arch/arm/mach-mmp/tavorevb.c
+++ b/arch/arm/mach-mmp/tavorevb.c
@@ -8,6 +8,7 @@
8 * publishhed by the Free Software Foundation. 8 * publishhed by the Free Software Foundation.
9 */ 9 */
10#include <linux/gpio.h> 10#include <linux/gpio.h>
11#include <linux/gpio-pxa.h>
11#include <linux/init.h> 12#include <linux/init.h>
12#include <linux/kernel.h> 13#include <linux/kernel.h>
13#include <linux/platform_device.h> 14#include <linux/platform_device.h>
@@ -60,6 +61,10 @@ static unsigned long tavorevb_pin_config[] __initdata = {
60 DF_RDY0_DF_RDY0, 61 DF_RDY0_DF_RDY0,
61}; 62};
62 63
64static struct pxa_gpio_platform_data pxa910_gpio_pdata = {
65 .irq_base = MMP_GPIO_TO_IRQ(0),
66};
67
63static struct smc91x_platdata tavorevb_smc91x_info = { 68static struct smc91x_platdata tavorevb_smc91x_info = {
64 .flags = SMC91X_USE_16BIT | SMC91X_NOWAIT, 69 .flags = SMC91X_USE_16BIT | SMC91X_NOWAIT,
65}; 70};
@@ -93,6 +98,8 @@ static void __init tavorevb_init(void)
93 98
94 /* on-chip devices */ 99 /* on-chip devices */
95 pxa910_add_uart(1); 100 pxa910_add_uart(1);
101 platform_device_add_data(&pxa910_device_gpio, &pxa910_gpio_pdata,
102 sizeof(struct pxa_gpio_platform_data));
96 platform_device_register(&pxa910_device_gpio); 103 platform_device_register(&pxa910_device_gpio);
97 104
98 /* off-chip devices */ 105 /* off-chip devices */
diff --git a/arch/arm/mach-mmp/teton_bga.c b/arch/arm/mach-mmp/teton_bga.c
index 8609967975ed..e4d95b4c6bb2 100644
--- a/arch/arm/mach-mmp/teton_bga.c
+++ b/arch/arm/mach-mmp/teton_bga.c
@@ -16,6 +16,7 @@
16#include <linux/kernel.h> 16#include <linux/kernel.h>
17#include <linux/platform_device.h> 17#include <linux/platform_device.h>
18#include <linux/gpio.h> 18#include <linux/gpio.h>
19#include <linux/gpio-pxa.h>
19#include <linux/input.h> 20#include <linux/input.h>
20#include <linux/platform_data/keypad-pxa27x.h> 21#include <linux/platform_data/keypad-pxa27x.h>
21#include <linux/i2c.h> 22#include <linux/i2c.h>
@@ -49,6 +50,10 @@ static unsigned long teton_bga_pin_config[] __initdata = {
49 GPIO78_GPIO, 50 GPIO78_GPIO,
50}; 51};
51 52
53static struct pxa_gpio_platform_data pxa168_gpio_pdata = {
54 .irq_base = MMP_GPIO_TO_IRQ(0),
55};
56
52static unsigned int teton_bga_matrix_key_map[] = { 57static unsigned int teton_bga_matrix_key_map[] = {
53 KEY(0, 6, KEY_ESC), 58 KEY(0, 6, KEY_ESC),
54 KEY(0, 7, KEY_ENTER), 59 KEY(0, 7, KEY_ENTER),
@@ -79,6 +84,8 @@ static void __init teton_bga_init(void)
79 pxa168_add_uart(1); 84 pxa168_add_uart(1);
80 pxa168_add_keypad(&teton_bga_keypad_info); 85 pxa168_add_keypad(&teton_bga_keypad_info);
81 pxa168_add_twsi(0, NULL, ARRAY_AND_SIZE(teton_bga_i2c_info)); 86 pxa168_add_twsi(0, NULL, ARRAY_AND_SIZE(teton_bga_i2c_info));
87 platform_device_add_data(&pxa168_device_gpio, &pxa168_gpio_pdata,
88 sizeof(struct pxa_gpio_platform_data));
82 platform_device_register(&pxa168_device_gpio); 89 platform_device_register(&pxa168_device_gpio);
83} 90}
84 91
diff --git a/arch/arm/mach-mmp/ttc_dkb.c b/arch/arm/mach-mmp/ttc_dkb.c
index 6528a5fa6a26..8483906d4308 100644
--- a/arch/arm/mach-mmp/ttc_dkb.c
+++ b/arch/arm/mach-mmp/ttc_dkb.c
@@ -17,6 +17,7 @@
17#include <linux/interrupt.h> 17#include <linux/interrupt.h>
18#include <linux/i2c/pca953x.h> 18#include <linux/i2c/pca953x.h>
19#include <linux/gpio.h> 19#include <linux/gpio.h>
20#include <linux/gpio-pxa.h>
20#include <linux/mfd/88pm860x.h> 21#include <linux/mfd/88pm860x.h>
21#include <linux/platform_data/mv_usb.h> 22#include <linux/platform_data/mv_usb.h>
22#include <linux/spi/spi.h> 23#include <linux/spi/spi.h>
@@ -75,6 +76,10 @@ static unsigned long ttc_dkb_pin_config[] __initdata = {
75 DF_RDY0_DF_RDY0, 76 DF_RDY0_DF_RDY0,
76}; 77};
77 78
79static struct pxa_gpio_platform_data pxa910_gpio_pdata = {
80 .irq_base = MMP_GPIO_TO_IRQ(0),
81};
82
78static struct mtd_partition ttc_dkb_onenand_partitions[] = { 83static struct mtd_partition ttc_dkb_onenand_partitions[] = {
79 { 84 {
80 .name = "bootloader", 85 .name = "bootloader",
@@ -278,6 +283,8 @@ static void __init ttc_dkb_init(void)
278 283
279 /* off-chip devices */ 284 /* off-chip devices */
280 pxa910_add_twsi(0, NULL, ARRAY_AND_SIZE(ttc_dkb_i2c_info)); 285 pxa910_add_twsi(0, NULL, ARRAY_AND_SIZE(ttc_dkb_i2c_info));
286 platform_device_add_data(&pxa910_device_gpio, &pxa910_gpio_pdata,
287 sizeof(struct pxa_gpio_platform_data));
281 platform_add_devices(ARRAY_AND_SIZE(ttc_dkb_devices)); 288 platform_add_devices(ARRAY_AND_SIZE(ttc_dkb_devices));
282 289
283#ifdef CONFIG_USB_MV_UDC 290#ifdef CONFIG_USB_MV_UDC
diff --git a/arch/arm/mach-omap1/include/mach/usb.h b/arch/arm/mach-omap1/include/mach/usb.h
index 753cd5ce6949..45e5ac707cbb 100644
--- a/arch/arm/mach-omap1/include/mach/usb.h
+++ b/arch/arm/mach-omap1/include/mach/usb.h
@@ -2,7 +2,7 @@
2 * FIXME correct answer depends on hmc_mode, 2 * FIXME correct answer depends on hmc_mode,
3 * as does (on omap1) any nonzero value for config->otg port number 3 * as does (on omap1) any nonzero value for config->otg port number
4 */ 4 */
5#ifdef CONFIG_USB_GADGET_OMAP 5#if IS_ENABLED(CONFIG_USB_OMAP)
6#define is_usb0_device(config) 1 6#define is_usb0_device(config) 1
7#else 7#else
8#define is_usb0_device(config) 0 8#define is_usb0_device(config) 0
diff --git a/arch/arm/mach-omap1/usb.c b/arch/arm/mach-omap1/usb.c
index 1a1db5971cd9..4118db50d5e8 100644
--- a/arch/arm/mach-omap1/usb.c
+++ b/arch/arm/mach-omap1/usb.c
@@ -123,7 +123,7 @@ omap_otg_init(struct omap_usb_config *config)
123 syscon = omap_readl(OTG_SYSCON_1); 123 syscon = omap_readl(OTG_SYSCON_1);
124 syscon |= HST_IDLE_EN|DEV_IDLE_EN|OTG_IDLE_EN; 124 syscon |= HST_IDLE_EN|DEV_IDLE_EN|OTG_IDLE_EN;
125 125
126#ifdef CONFIG_USB_GADGET_OMAP 126#if IS_ENABLED(CONFIG_USB_OMAP)
127 if (config->otg || config->register_dev) { 127 if (config->otg || config->register_dev) {
128 struct platform_device *udc_device = config->udc_device; 128 struct platform_device *udc_device = config->udc_device;
129 int status; 129 int status;
@@ -169,7 +169,7 @@ omap_otg_init(struct omap_usb_config *config)
169void omap_otg_init(struct omap_usb_config *config) {} 169void omap_otg_init(struct omap_usb_config *config) {}
170#endif 170#endif
171 171
172#ifdef CONFIG_USB_GADGET_OMAP 172#if IS_ENABLED(CONFIG_USB_OMAP)
173 173
174static struct resource udc_resources[] = { 174static struct resource udc_resources[] = {
175 /* order is significant! */ 175 /* order is significant! */
@@ -600,7 +600,7 @@ static void __init omap_1510_usb_init(struct omap_usb_config *config)
600 while (!(omap_readw(ULPD_DPLL_CTRL) & DPLL_LOCK)) 600 while (!(omap_readw(ULPD_DPLL_CTRL) & DPLL_LOCK))
601 cpu_relax(); 601 cpu_relax();
602 602
603#ifdef CONFIG_USB_GADGET_OMAP 603#if IS_ENABLED(CONFIG_USB_OMAP)
604 if (config->register_dev) { 604 if (config->register_dev) {
605 int status; 605 int status;
606 606
diff --git a/arch/arm/mach-omap2/Makefile b/arch/arm/mach-omap2/Makefile
index b068b7fe99ef..62bb352c2d37 100644
--- a/arch/arm/mach-omap2/Makefile
+++ b/arch/arm/mach-omap2/Makefile
@@ -229,7 +229,6 @@ obj-$(CONFIG_MACH_DEVKIT8000) += board-devkit8000.o
229obj-$(CONFIG_MACH_OMAP_LDP) += board-ldp.o 229obj-$(CONFIG_MACH_OMAP_LDP) += board-ldp.o
230obj-$(CONFIG_MACH_OMAP3530_LV_SOM) += board-omap3logic.o 230obj-$(CONFIG_MACH_OMAP3530_LV_SOM) += board-omap3logic.o
231obj-$(CONFIG_MACH_OMAP3_TORPEDO) += board-omap3logic.o 231obj-$(CONFIG_MACH_OMAP3_TORPEDO) += board-omap3logic.o
232obj-$(CONFIG_MACH_ENCORE) += board-omap3encore.o
233obj-$(CONFIG_MACH_OVERO) += board-overo.o 232obj-$(CONFIG_MACH_OVERO) += board-overo.o
234obj-$(CONFIG_MACH_OMAP3EVM) += board-omap3evm.o 233obj-$(CONFIG_MACH_OMAP3EVM) += board-omap3evm.o
235obj-$(CONFIG_MACH_OMAP3_PANDORA) += board-omap3pandora.o 234obj-$(CONFIG_MACH_OMAP3_PANDORA) += board-omap3pandora.o
@@ -255,8 +254,6 @@ obj-$(CONFIG_MACH_TOUCHBOOK) += board-omap3touchbook.o
255obj-$(CONFIG_MACH_OMAP_4430SDP) += board-4430sdp.o 254obj-$(CONFIG_MACH_OMAP_4430SDP) += board-4430sdp.o
256obj-$(CONFIG_MACH_OMAP4_PANDA) += board-omap4panda.o 255obj-$(CONFIG_MACH_OMAP4_PANDA) += board-omap4panda.o
257 256
258obj-$(CONFIG_MACH_PCM049) += board-omap4pcm049.o
259
260obj-$(CONFIG_MACH_OMAP3517EVM) += board-am3517evm.o 257obj-$(CONFIG_MACH_OMAP3517EVM) += board-am3517evm.o
261 258
262obj-$(CONFIG_MACH_CRANEBOARD) += board-am3517crane.o 259obj-$(CONFIG_MACH_CRANEBOARD) += board-am3517crane.o
diff --git a/arch/arm/mach-omap2/board-4430sdp.c b/arch/arm/mach-omap2/board-4430sdp.c
index 35f3ad0cb7c7..00d72902ef4f 100644
--- a/arch/arm/mach-omap2/board-4430sdp.c
+++ b/arch/arm/mach-omap2/board-4430sdp.c
@@ -291,6 +291,10 @@ static struct platform_device sdp4430_leds_pwm = {
291 }, 291 },
292}; 292};
293 293
294/* Dummy regulator for pwm-backlight driver */
295static struct regulator_consumer_supply backlight_supply =
296 REGULATOR_SUPPLY("enable", "pwm-backlight");
297
294static struct platform_pwm_backlight_data sdp4430_backlight_data = { 298static struct platform_pwm_backlight_data sdp4430_backlight_data = {
295 .max_brightness = 127, 299 .max_brightness = 127,
296 .dft_brightness = 127, 300 .dft_brightness = 127,
@@ -718,6 +722,8 @@ static void __init omap_4430sdp_init(void)
718 722
719 omap4_i2c_init(); 723 omap4_i2c_init();
720 omap_sfh7741prox_init(); 724 omap_sfh7741prox_init();
725 regulator_register_always_on(0, "backlight-enable",
726 &backlight_supply, 1, 0);
721 platform_add_devices(sdp4430_devices, ARRAY_SIZE(sdp4430_devices)); 727 platform_add_devices(sdp4430_devices, ARRAY_SIZE(sdp4430_devices));
722 omap_serial_init(); 728 omap_serial_init();
723 omap_sdrc_init(NULL, NULL); 729 omap_sdrc_init(NULL, NULL);
diff --git a/arch/arm/mach-omap2/board-rx51-peripherals.c b/arch/arm/mach-omap2/board-rx51-peripherals.c
index 3a077df6b8df..1a884670a6c4 100644
--- a/arch/arm/mach-omap2/board-rx51-peripherals.c
+++ b/arch/arm/mach-omap2/board-rx51-peripherals.c
@@ -547,12 +547,16 @@ static struct regulator_consumer_supply rx51_vio_supplies[] = {
547 REGULATOR_SUPPLY("DVDD", "2-0019"), 547 REGULATOR_SUPPLY("DVDD", "2-0019"),
548 /* Si4713 IO supply */ 548 /* Si4713 IO supply */
549 REGULATOR_SUPPLY("vio", "2-0063"), 549 REGULATOR_SUPPLY("vio", "2-0063"),
550 /* lis3lv02d */
551 REGULATOR_SUPPLY("Vdd_IO", "3-001d"),
550}; 552};
551 553
552static struct regulator_consumer_supply rx51_vaux1_consumers[] = { 554static struct regulator_consumer_supply rx51_vaux1_consumers[] = {
553 REGULATOR_SUPPLY("vdds_sdi", "omapdss"), 555 REGULATOR_SUPPLY("vdds_sdi", "omapdss"),
554 /* Si4713 supply */ 556 /* Si4713 supply */
555 REGULATOR_SUPPLY("vdd", "2-0063"), 557 REGULATOR_SUPPLY("vdd", "2-0063"),
558 /* lis3lv02d */
559 REGULATOR_SUPPLY("Vdd", "3-001d"),
556}; 560};
557 561
558static struct regulator_init_data rx51_vaux1 = { 562static struct regulator_init_data rx51_vaux1 = {
diff --git a/arch/arm/mach-omap2/board-zoom-display.c b/arch/arm/mach-omap2/board-zoom-display.c
index 8cef477d6b00..9a7174faac51 100644
--- a/arch/arm/mach-omap2/board-zoom-display.c
+++ b/arch/arm/mach-omap2/board-zoom-display.c
@@ -12,7 +12,6 @@
12#include <linux/init.h> 12#include <linux/init.h>
13#include <linux/platform_device.h> 13#include <linux/platform_device.h>
14#include <linux/gpio.h> 14#include <linux/gpio.h>
15#include <linux/i2c/twl.h>
16#include <linux/spi/spi.h> 15#include <linux/spi/spi.h>
17#include <linux/platform_data/spi-omap2-mcspi.h> 16#include <linux/platform_data/spi-omap2-mcspi.h>
18#include <video/omapdss.h> 17#include <video/omapdss.h>
@@ -49,59 +48,6 @@ static void zoom_panel_disable_lcd(struct omap_dss_device *dssdev)
49{ 48{
50} 49}
51 50
52/* Register offsets in TWL4030_MODULE_INTBR */
53#define TWL_INTBR_PMBR1 0xD
54#define TWL_INTBR_GPBR1 0xC
55
56/* Register offsets in TWL_MODULE_PWM */
57#define TWL_LED_PWMON 0x3
58#define TWL_LED_PWMOFF 0x4
59
60static int zoom_set_bl_intensity(struct omap_dss_device *dssdev, int level)
61{
62#ifdef CONFIG_TWL4030_CORE
63 unsigned char c;
64 u8 mux_pwm, enb_pwm;
65
66 if (level > 100)
67 return -1;
68
69 twl_i2c_read_u8(TWL4030_MODULE_INTBR, &mux_pwm, TWL_INTBR_PMBR1);
70 twl_i2c_read_u8(TWL4030_MODULE_INTBR, &enb_pwm, TWL_INTBR_GPBR1);
71
72 if (level == 0) {
73 /* disable pwm1 output and clock */
74 enb_pwm = enb_pwm & 0xF5;
75 /* change pwm1 pin to gpio pin */
76 mux_pwm = mux_pwm & 0xCF;
77 twl_i2c_write_u8(TWL4030_MODULE_INTBR,
78 enb_pwm, TWL_INTBR_GPBR1);
79 twl_i2c_write_u8(TWL4030_MODULE_INTBR,
80 mux_pwm, TWL_INTBR_PMBR1);
81 return 0;
82 }
83
84 if (!((enb_pwm & 0xA) && (mux_pwm & 0x30))) {
85 /* change gpio pin to pwm1 pin */
86 mux_pwm = mux_pwm | 0x30;
87 /* enable pwm1 output and clock*/
88 enb_pwm = enb_pwm | 0x0A;
89 twl_i2c_write_u8(TWL4030_MODULE_INTBR,
90 mux_pwm, TWL_INTBR_PMBR1);
91 twl_i2c_write_u8(TWL4030_MODULE_INTBR,
92 enb_pwm, TWL_INTBR_GPBR1);
93 }
94
95 c = ((50 * (100 - level)) / 100) + 1;
96 twl_i2c_write_u8(TWL_MODULE_PWM, 0x7F, TWL_LED_PWMOFF);
97 twl_i2c_write_u8(TWL_MODULE_PWM, c, TWL_LED_PWMON);
98#else
99 pr_warn("Backlight not enabled\n");
100#endif
101
102 return 0;
103}
104
105static struct omap_dss_device zoom_lcd_device = { 51static struct omap_dss_device zoom_lcd_device = {
106 .name = "lcd", 52 .name = "lcd",
107 .driver_name = "NEC_8048_panel", 53 .driver_name = "NEC_8048_panel",
@@ -109,8 +55,6 @@ static struct omap_dss_device zoom_lcd_device = {
109 .phy.dpi.data_lines = 24, 55 .phy.dpi.data_lines = 24,
110 .platform_enable = zoom_panel_enable_lcd, 56 .platform_enable = zoom_panel_enable_lcd,
111 .platform_disable = zoom_panel_disable_lcd, 57 .platform_disable = zoom_panel_disable_lcd,
112 .max_backlight_level = 100,
113 .set_backlight = zoom_set_bl_intensity,
114}; 58};
115 59
116static struct omap_dss_device *zoom_dss_devices[] = { 60static struct omap_dss_device *zoom_dss_devices[] = {
diff --git a/arch/arm/mach-omap2/board-zoom-peripherals.c b/arch/arm/mach-omap2/board-zoom-peripherals.c
index cdc0c1021863..a90375d5b2b6 100644
--- a/arch/arm/mach-omap2/board-zoom-peripherals.c
+++ b/arch/arm/mach-omap2/board-zoom-peripherals.c
@@ -22,6 +22,9 @@
22#include <linux/platform_data/gpio-omap.h> 22#include <linux/platform_data/gpio-omap.h>
23#include <linux/platform_data/omap-twl4030.h> 23#include <linux/platform_data/omap-twl4030.h>
24#include <linux/usb/phy.h> 24#include <linux/usb/phy.h>
25#include <linux/pwm.h>
26#include <linux/leds_pwm.h>
27#include <linux/pwm_backlight.h>
25 28
26#include <asm/mach-types.h> 29#include <asm/mach-types.h>
27#include <asm/mach/arch.h> 30#include <asm/mach/arch.h>
@@ -193,6 +196,53 @@ static struct platform_device omap_vwlan_device = {
193 }, 196 },
194}; 197};
195 198
199static struct pwm_lookup zoom_pwm_lookup[] = {
200 PWM_LOOKUP("twl-pwm", 0, "leds_pwm", "zoom::keypad"),
201 PWM_LOOKUP("twl-pwm", 1, "pwm-backlight", "backlight"),
202};
203
204static struct led_pwm zoom_pwm_leds[] = {
205 {
206 .name = "zoom::keypad",
207 .max_brightness = 127,
208 .pwm_period_ns = 7812500,
209 },
210};
211
212static struct led_pwm_platform_data zoom_pwm_data = {
213 .num_leds = ARRAY_SIZE(zoom_pwm_leds),
214 .leds = zoom_pwm_leds,
215};
216
217static struct platform_device zoom_leds_pwm = {
218 .name = "leds_pwm",
219 .id = -1,
220 .dev = {
221 .platform_data = &zoom_pwm_data,
222 },
223};
224
225static struct platform_pwm_backlight_data zoom_backlight_data = {
226 .pwm_id = 1,
227 .max_brightness = 127,
228 .dft_brightness = 127,
229 .pwm_period_ns = 7812500,
230};
231
232static struct platform_device zoom_backlight_pwm = {
233 .name = "pwm-backlight",
234 .id = -1,
235 .dev = {
236 .platform_data = &zoom_backlight_data,
237 },
238};
239
240static struct platform_device *zoom_devices[] __initdata = {
241 &omap_vwlan_device,
242 &zoom_leds_pwm,
243 &zoom_backlight_pwm,
244};
245
196static struct wl12xx_platform_data omap_zoom_wlan_data __initdata = { 246static struct wl12xx_platform_data omap_zoom_wlan_data __initdata = {
197 .board_ref_clock = WL12XX_REFCLOCK_26, /* 26 MHz */ 247 .board_ref_clock = WL12XX_REFCLOCK_26, /* 26 MHz */
198}; 248};
@@ -301,7 +351,8 @@ void __init zoom_peripherals_init(void)
301 351
302 omap_hsmmc_init(mmc); 352 omap_hsmmc_init(mmc);
303 omap_i2c_init(); 353 omap_i2c_init();
304 platform_device_register(&omap_vwlan_device); 354 pwm_add_table(zoom_pwm_lookup, ARRAY_SIZE(zoom_pwm_lookup));
355 platform_add_devices(zoom_devices, ARRAY_SIZE(zoom_devices));
305 usb_bind_phy("musb-hdrc.0.auto", 0, "twl4030_usb"); 356 usb_bind_phy("musb-hdrc.0.auto", 0, "twl4030_usb");
306 usb_musb_init(NULL); 357 usb_musb_init(NULL);
307 enable_board_wakeup_source(); 358 enable_board_wakeup_source();
diff --git a/arch/arm/mach-pxa/Kconfig b/arch/arm/mach-pxa/Kconfig
index 86eec4159cbc..9075461999c1 100644
--- a/arch/arm/mach-pxa/Kconfig
+++ b/arch/arm/mach-pxa/Kconfig
@@ -51,11 +51,13 @@ config MACH_LITTLETON
51config MACH_TAVOREVB 51config MACH_TAVOREVB
52 bool "PXA930 Evaluation Board (aka TavorEVB)" 52 bool "PXA930 Evaluation Board (aka TavorEVB)"
53 select CPU_PXA930 53 select CPU_PXA930
54 select CPU_PXA935
54 select PXA3xx 55 select PXA3xx
55 56
56config MACH_SAAR 57config MACH_SAAR
57 bool "PXA930 Handheld Platform (aka SAAR)" 58 bool "PXA930 Handheld Platform (aka SAAR)"
58 select CPU_PXA930 59 select CPU_PXA930
60 select CPU_PXA935
59 select PXA3xx 61 select PXA3xx
60 62
61comment "Third Party Dev Platforms (sorted by vendor name)" 63comment "Third Party Dev Platforms (sorted by vendor name)"
diff --git a/arch/arm/mach-pxa/devices.c b/arch/arm/mach-pxa/devices.c
index daa86d39ed9e..666094315ab1 100644
--- a/arch/arm/mach-pxa/devices.c
+++ b/arch/arm/mach-pxa/devices.c
@@ -1107,8 +1107,33 @@ struct resource pxa_resource_gpio[] = {
1107 }, 1107 },
1108}; 1108};
1109 1109
1110struct platform_device pxa_device_gpio = { 1110struct platform_device pxa25x_device_gpio = {
1111 .name = "pxa-gpio", 1111#ifdef CONFIG_CPU_PXA26x
1112 .name = "pxa26x-gpio",
1113#else
1114 .name = "pxa25x-gpio",
1115#endif
1116 .id = -1,
1117 .num_resources = ARRAY_SIZE(pxa_resource_gpio),
1118 .resource = pxa_resource_gpio,
1119};
1120
1121struct platform_device pxa27x_device_gpio = {
1122 .name = "pxa27x-gpio",
1123 .id = -1,
1124 .num_resources = ARRAY_SIZE(pxa_resource_gpio),
1125 .resource = pxa_resource_gpio,
1126};
1127
1128struct platform_device pxa3xx_device_gpio = {
1129 .name = "pxa3xx-gpio",
1130 .id = -1,
1131 .num_resources = ARRAY_SIZE(pxa_resource_gpio),
1132 .resource = pxa_resource_gpio,
1133};
1134
1135struct platform_device pxa93x_device_gpio = {
1136 .name = "pxa93x-gpio",
1112 .id = -1, 1137 .id = -1,
1113 .num_resources = ARRAY_SIZE(pxa_resource_gpio), 1138 .num_resources = ARRAY_SIZE(pxa_resource_gpio),
1114 .resource = pxa_resource_gpio, 1139 .resource = pxa_resource_gpio,
diff --git a/arch/arm/mach-pxa/devices.h b/arch/arm/mach-pxa/devices.h
index 1475db107254..0f3fd0d65b12 100644
--- a/arch/arm/mach-pxa/devices.h
+++ b/arch/arm/mach-pxa/devices.h
@@ -16,7 +16,6 @@ extern struct platform_device pxa_device_ficp;
16extern struct platform_device sa1100_device_rtc; 16extern struct platform_device sa1100_device_rtc;
17extern struct platform_device pxa_device_rtc; 17extern struct platform_device pxa_device_rtc;
18extern struct platform_device pxa_device_ac97; 18extern struct platform_device pxa_device_ac97;
19extern struct platform_device pxa_device_gpio;
20 19
21extern struct platform_device pxa27x_device_i2c_power; 20extern struct platform_device pxa27x_device_i2c_power;
22extern struct platform_device pxa27x_device_ohci; 21extern struct platform_device pxa27x_device_ohci;
@@ -46,4 +45,9 @@ extern struct platform_device pxa_device_asoc_ssp2;
46extern struct platform_device pxa_device_asoc_ssp3; 45extern struct platform_device pxa_device_asoc_ssp3;
47extern struct platform_device pxa_device_asoc_ssp4; 46extern struct platform_device pxa_device_asoc_ssp4;
48 47
48extern struct platform_device pxa25x_device_gpio;
49extern struct platform_device pxa27x_device_gpio;
50extern struct platform_device pxa3xx_device_gpio;
51extern struct platform_device pxa93x_device_gpio;
52
49void __init pxa_register_device(struct platform_device *dev, void *data); 53void __init pxa_register_device(struct platform_device *dev, void *data);
diff --git a/arch/arm/mach-pxa/include/mach/debug-macro.S b/arch/arm/mach-pxa/include/mach/debug-macro.S
deleted file mode 100644
index 70b112e8ef68..000000000000
--- a/arch/arm/mach-pxa/include/mach/debug-macro.S
+++ /dev/null
@@ -1,23 +0,0 @@
1/* arch/arm/mach-pxa/include/mach/debug-macro.S
2 *
3 * Debugging macro include header
4 *
5 * Copyright (C) 1994-1999 Russell King
6 * Moved from linux/arch/arm/kernel/debug.S by Ben Dooks
7 *
8 * This program is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License version 2 as
10 * published by the Free Software Foundation.
11 *
12*/
13
14#include "hardware.h"
15
16 .macro addruart, rp, rv, tmp
17 mov \rp, #0x00100000
18 orr \rv, \rp, #io_p2v(0x40000000) @ virtual
19 orr \rp, \rp, #0x40000000 @ physical
20 .endm
21
22#define UART_SHIFT 2
23#include <asm/hardware/debug-8250.S>
diff --git a/arch/arm/mach-pxa/pxa25x.c b/arch/arm/mach-pxa/pxa25x.c
index 3f5171eaf67b..f2c28972084d 100644
--- a/arch/arm/mach-pxa/pxa25x.c
+++ b/arch/arm/mach-pxa/pxa25x.c
@@ -208,7 +208,11 @@ static struct clk_lookup pxa25x_clkregs[] = {
208 INIT_CLKREG(&clk_pxa25x_gpio11, NULL, "GPIO11_CLK"), 208 INIT_CLKREG(&clk_pxa25x_gpio11, NULL, "GPIO11_CLK"),
209 INIT_CLKREG(&clk_pxa25x_gpio12, NULL, "GPIO12_CLK"), 209 INIT_CLKREG(&clk_pxa25x_gpio12, NULL, "GPIO12_CLK"),
210 INIT_CLKREG(&clk_pxa25x_mem, "pxa2xx-pcmcia", NULL), 210 INIT_CLKREG(&clk_pxa25x_mem, "pxa2xx-pcmcia", NULL),
211 INIT_CLKREG(&clk_dummy, "pxa-gpio", NULL), 211#ifdef CONFIG_CPU_PXA26x
212 INIT_CLKREG(&clk_dummy, "pxa26x-gpio", NULL),
213#else
214 INIT_CLKREG(&clk_dummy, "pxa25x-gpio", NULL),
215#endif
212 INIT_CLKREG(&clk_dummy, "sa1100-rtc", NULL), 216 INIT_CLKREG(&clk_dummy, "sa1100-rtc", NULL),
213}; 217};
214 218
@@ -340,7 +344,8 @@ void __init pxa25x_map_io(void)
340} 344}
341 345
342static struct pxa_gpio_platform_data pxa25x_gpio_info __initdata = { 346static struct pxa_gpio_platform_data pxa25x_gpio_info __initdata = {
343 .gpio_set_wake = gpio_set_wake, 347 .irq_base = PXA_GPIO_TO_IRQ(0),
348 .gpio_set_wake = gpio_set_wake,
344}; 349};
345 350
346static struct platform_device *pxa25x_devices[] __initdata = { 351static struct platform_device *pxa25x_devices[] __initdata = {
@@ -375,7 +380,7 @@ static int __init pxa25x_init(void)
375 register_syscore_ops(&pxa2xx_mfp_syscore_ops); 380 register_syscore_ops(&pxa2xx_mfp_syscore_ops);
376 register_syscore_ops(&pxa2xx_clock_syscore_ops); 381 register_syscore_ops(&pxa2xx_clock_syscore_ops);
377 382
378 pxa_register_device(&pxa_device_gpio, &pxa25x_gpio_info); 383 pxa_register_device(&pxa25x_device_gpio, &pxa25x_gpio_info);
379 ret = platform_add_devices(pxa25x_devices, 384 ret = platform_add_devices(pxa25x_devices,
380 ARRAY_SIZE(pxa25x_devices)); 385 ARRAY_SIZE(pxa25x_devices));
381 if (ret) 386 if (ret)
diff --git a/arch/arm/mach-pxa/pxa27x.c b/arch/arm/mach-pxa/pxa27x.c
index 3203a9f5b4a2..301471a07a10 100644
--- a/arch/arm/mach-pxa/pxa27x.c
+++ b/arch/arm/mach-pxa/pxa27x.c
@@ -237,7 +237,7 @@ static struct clk_lookup pxa27x_clkregs[] = {
237 INIT_CLKREG(&clk_pxa27x_im, NULL, "IMCLK"), 237 INIT_CLKREG(&clk_pxa27x_im, NULL, "IMCLK"),
238 INIT_CLKREG(&clk_pxa27x_memc, NULL, "MEMCLK"), 238 INIT_CLKREG(&clk_pxa27x_memc, NULL, "MEMCLK"),
239 INIT_CLKREG(&clk_pxa27x_mem, "pxa2xx-pcmcia", NULL), 239 INIT_CLKREG(&clk_pxa27x_mem, "pxa2xx-pcmcia", NULL),
240 INIT_CLKREG(&clk_dummy, "pxa-gpio", NULL), 240 INIT_CLKREG(&clk_dummy, "pxa27x-gpio", NULL),
241 INIT_CLKREG(&clk_dummy, "sa1100-rtc", NULL), 241 INIT_CLKREG(&clk_dummy, "sa1100-rtc", NULL),
242}; 242};
243 243
@@ -431,7 +431,8 @@ void __init pxa27x_set_i2c_power_info(struct i2c_pxa_platform_data *info)
431} 431}
432 432
433static struct pxa_gpio_platform_data pxa27x_gpio_info __initdata = { 433static struct pxa_gpio_platform_data pxa27x_gpio_info __initdata = {
434 .gpio_set_wake = gpio_set_wake, 434 .irq_base = PXA_GPIO_TO_IRQ(0),
435 .gpio_set_wake = gpio_set_wake,
435}; 436};
436 437
437static struct platform_device *devices[] __initdata = { 438static struct platform_device *devices[] __initdata = {
@@ -470,7 +471,7 @@ static int __init pxa27x_init(void)
470 register_syscore_ops(&pxa2xx_mfp_syscore_ops); 471 register_syscore_ops(&pxa2xx_mfp_syscore_ops);
471 register_syscore_ops(&pxa2xx_clock_syscore_ops); 472 register_syscore_ops(&pxa2xx_clock_syscore_ops);
472 473
473 pxa_register_device(&pxa_device_gpio, &pxa27x_gpio_info); 474 pxa_register_device(&pxa27x_device_gpio, &pxa27x_gpio_info);
474 ret = platform_add_devices(devices, ARRAY_SIZE(devices)); 475 ret = platform_add_devices(devices, ARRAY_SIZE(devices));
475 } 476 }
476 477
diff --git a/arch/arm/mach-pxa/pxa3xx.c b/arch/arm/mach-pxa/pxa3xx.c
index 656a1bb16d14..87011f3de69d 100644
--- a/arch/arm/mach-pxa/pxa3xx.c
+++ b/arch/arm/mach-pxa/pxa3xx.c
@@ -15,6 +15,7 @@
15#include <linux/module.h> 15#include <linux/module.h>
16#include <linux/kernel.h> 16#include <linux/kernel.h>
17#include <linux/init.h> 17#include <linux/init.h>
18#include <linux/gpio-pxa.h>
18#include <linux/pm.h> 19#include <linux/pm.h>
19#include <linux/platform_device.h> 20#include <linux/platform_device.h>
20#include <linux/irq.h> 21#include <linux/irq.h>
@@ -92,7 +93,8 @@ static struct clk_lookup pxa3xx_clkregs[] = {
92 INIT_CLKREG(&clk_pxa3xx_mmc1, "pxa2xx-mci.0", NULL), 93 INIT_CLKREG(&clk_pxa3xx_mmc1, "pxa2xx-mci.0", NULL),
93 INIT_CLKREG(&clk_pxa3xx_mmc2, "pxa2xx-mci.1", NULL), 94 INIT_CLKREG(&clk_pxa3xx_mmc2, "pxa2xx-mci.1", NULL),
94 INIT_CLKREG(&clk_pxa3xx_smemc, "pxa2xx-pcmcia", NULL), 95 INIT_CLKREG(&clk_pxa3xx_smemc, "pxa2xx-pcmcia", NULL),
95 INIT_CLKREG(&clk_pxa3xx_gpio, "pxa-gpio", NULL), 96 INIT_CLKREG(&clk_pxa3xx_gpio, "pxa3xx-gpio", NULL),
97 INIT_CLKREG(&clk_pxa3xx_gpio, "pxa93x-gpio", NULL),
96 INIT_CLKREG(&clk_dummy, "sa1100-rtc", NULL), 98 INIT_CLKREG(&clk_dummy, "sa1100-rtc", NULL),
97}; 99};
98 100
@@ -435,8 +437,11 @@ void __init pxa3xx_set_i2c_power_info(struct i2c_pxa_platform_data *info)
435 pxa_register_device(&pxa3xx_device_i2c_power, info); 437 pxa_register_device(&pxa3xx_device_i2c_power, info);
436} 438}
437 439
440static struct pxa_gpio_platform_data pxa3xx_gpio_pdata = {
441 .irq_base = PXA_GPIO_TO_IRQ(0),
442};
443
438static struct platform_device *devices[] __initdata = { 444static struct platform_device *devices[] __initdata = {
439 &pxa_device_gpio,
440 &pxa27x_device_udc, 445 &pxa27x_device_udc,
441 &pxa_device_pmu, 446 &pxa_device_pmu,
442 &pxa_device_i2s, 447 &pxa_device_i2s,
@@ -482,8 +487,18 @@ static int __init pxa3xx_init(void)
482 register_syscore_ops(&pxa3xx_mfp_syscore_ops); 487 register_syscore_ops(&pxa3xx_mfp_syscore_ops);
483 register_syscore_ops(&pxa3xx_clock_syscore_ops); 488 register_syscore_ops(&pxa3xx_clock_syscore_ops);
484 489
485 if (!of_have_populated_dt()) 490 if (of_have_populated_dt())
486 ret = platform_add_devices(devices, ARRAY_SIZE(devices)); 491 return 0;
492
493 ret = platform_add_devices(devices, ARRAY_SIZE(devices));
494 if (ret)
495 return ret;
496 if (cpu_is_pxa300() || cpu_is_pxa310() || cpu_is_pxa320()) {
497 platform_device_add_data(&pxa3xx_device_gpio,
498 &pxa3xx_gpio_pdata,
499 sizeof(pxa3xx_gpio_pdata));
500 ret = platform_device_register(&pxa3xx_device_gpio);
501 }
487 } 502 }
488 503
489 return ret; 504 return ret;
diff --git a/arch/arm/mach-pxa/pxa930.c b/arch/arm/mach-pxa/pxa930.c
index 8aeacf908784..ab624487cf39 100644
--- a/arch/arm/mach-pxa/pxa930.c
+++ b/arch/arm/mach-pxa/pxa930.c
@@ -12,12 +12,15 @@
12 12
13#include <linux/module.h> 13#include <linux/module.h>
14#include <linux/kernel.h> 14#include <linux/kernel.h>
15#include <linux/platform_device.h>
16#include <linux/irq.h>
17#include <linux/dma-mapping.h> 15#include <linux/dma-mapping.h>
16#include <linux/irq.h>
17#include <linux/gpio-pxa.h>
18#include <linux/platform_device.h>
18 19
19#include <mach/pxa930.h> 20#include <mach/pxa930.h>
20 21
22#include "devices.h"
23
21static struct mfp_addr_map pxa930_mfp_addr_map[] __initdata = { 24static struct mfp_addr_map pxa930_mfp_addr_map[] __initdata = {
22 25
23 MFP_ADDR(GPIO0, 0x02e0), 26 MFP_ADDR(GPIO0, 0x02e0),
@@ -190,11 +193,21 @@ static struct mfp_addr_map pxa935_mfp_addr_map[] __initdata = {
190 MFP_ADDR_END, 193 MFP_ADDR_END,
191}; 194};
192 195
196static struct pxa_gpio_platform_data pxa93x_gpio_pdata = {
197 .irq_base = PXA_GPIO_TO_IRQ(0),
198};
199
193static int __init pxa930_init(void) 200static int __init pxa930_init(void)
194{ 201{
202 int ret = 0;
203
195 if (cpu_is_pxa93x()) { 204 if (cpu_is_pxa93x()) {
196 mfp_init_base(io_p2v(MFPR_BASE)); 205 mfp_init_base(io_p2v(MFPR_BASE));
197 mfp_init_addr(pxa930_mfp_addr_map); 206 mfp_init_addr(pxa930_mfp_addr_map);
207 platform_device_add_data(&pxa93x_device_gpio,
208 &pxa93x_gpio_pdata,
209 sizeof(pxa93x_gpio_pdata));
210 ret = platform_device_register(&pxa93x_device_gpio);
198 } 211 }
199 212
200 if (cpu_is_pxa935()) 213 if (cpu_is_pxa935())
diff --git a/arch/arm/mach-shmobile/Kconfig b/arch/arm/mach-shmobile/Kconfig
index 75d413c004b6..eb3a7ff19e72 100644
--- a/arch/arm/mach-shmobile/Kconfig
+++ b/arch/arm/mach-shmobile/Kconfig
@@ -104,6 +104,19 @@ config MACH_MARZEN
104 select ARCH_REQUIRE_GPIOLIB 104 select ARCH_REQUIRE_GPIOLIB
105 select REGULATOR_FIXED_VOLTAGE if REGULATOR 105 select REGULATOR_FIXED_VOLTAGE if REGULATOR
106 106
107config MACH_MARZEN_REFERENCE
108 bool "MARZEN board - Reference Device Tree Implementation"
109 depends on ARCH_R8A7779
110 select ARCH_REQUIRE_GPIOLIB
111 select REGULATOR_FIXED_VOLTAGE if REGULATOR
112 select USE_OF
113 ---help---
114 Use reference implementation of Marzen board support
115 which makes use of device tree at the expense
116 of not supporting a number of devices.
117
118 This is intended to aid developers
119
107config MACH_KZM9D 120config MACH_KZM9D
108 bool "KZM9D board" 121 bool "KZM9D board"
109 depends on ARCH_EMEV2 122 depends on ARCH_EMEV2
@@ -118,6 +131,20 @@ config MACH_KZM9G
118 select SND_SOC_AK4642 if SND_SIMPLE_CARD 131 select SND_SOC_AK4642 if SND_SIMPLE_CARD
119 select USE_OF 132 select USE_OF
120 133
134config MACH_KZM9G_REFERENCE
135 bool "KZM-A9-GT board - Reference Device Tree Implementation"
136 depends on ARCH_SH73A0
137 select ARCH_REQUIRE_GPIOLIB
138 select REGULATOR_FIXED_VOLTAGE if REGULATOR
139 select SND_SOC_AK4642 if SND_SIMPLE_CARD
140 select USE_OF
141 ---help---
142 Use reference implementation of KZM-A9-GT board support
143 which makes as greater use of device tree at the expense
144 of not supporting a number of devices.
145
146 This is intended to aid developers
147
121comment "SH-Mobile System Configuration" 148comment "SH-Mobile System Configuration"
122 149
123config CPU_HAS_INTEVT 150config CPU_HAS_INTEVT
diff --git a/arch/arm/mach-shmobile/Makefile b/arch/arm/mach-shmobile/Makefile
index b646ff4d742a..c621edfa6ead 100644
--- a/arch/arm/mach-shmobile/Makefile
+++ b/arch/arm/mach-shmobile/Makefile
@@ -38,9 +38,11 @@ obj-$(CONFIG_MACH_MACKEREL) += board-mackerel.o
38obj-$(CONFIG_MACH_KOTA2) += board-kota2.o 38obj-$(CONFIG_MACH_KOTA2) += board-kota2.o
39obj-$(CONFIG_MACH_BONITO) += board-bonito.o 39obj-$(CONFIG_MACH_BONITO) += board-bonito.o
40obj-$(CONFIG_MACH_MARZEN) += board-marzen.o 40obj-$(CONFIG_MACH_MARZEN) += board-marzen.o
41obj-$(CONFIG_MACH_MARZEN_REFERENCE) += board-marzen-reference.o
41obj-$(CONFIG_MACH_ARMADILLO800EVA) += board-armadillo800eva.o 42obj-$(CONFIG_MACH_ARMADILLO800EVA) += board-armadillo800eva.o
42obj-$(CONFIG_MACH_KZM9D) += board-kzm9d.o 43obj-$(CONFIG_MACH_KZM9D) += board-kzm9d.o
43obj-$(CONFIG_MACH_KZM9G) += board-kzm9g.o 44obj-$(CONFIG_MACH_KZM9G) += board-kzm9g.o
45obj-$(CONFIG_MACH_KZM9G_REFERENCE) += board-kzm9g-reference.o
44 46
45# Framework support 47# Framework support
46obj-$(CONFIG_SMP) += $(smp-y) 48obj-$(CONFIG_SMP) += $(smp-y)
diff --git a/arch/arm/mach-shmobile/board-armadillo800eva.c b/arch/arm/mach-shmobile/board-armadillo800eva.c
index 80d5c2f5c09c..4dfe32262eb7 100644
--- a/arch/arm/mach-shmobile/board-armadillo800eva.c
+++ b/arch/arm/mach-shmobile/board-armadillo800eva.c
@@ -29,8 +29,10 @@
29#include <linux/platform_device.h> 29#include <linux/platform_device.h>
30#include <linux/gpio.h> 30#include <linux/gpio.h>
31#include <linux/gpio_keys.h> 31#include <linux/gpio_keys.h>
32#include <linux/regulator/driver.h>
32#include <linux/pinctrl/machine.h> 33#include <linux/pinctrl/machine.h>
33#include <linux/regulator/fixed.h> 34#include <linux/regulator/fixed.h>
35#include <linux/regulator/gpio-regulator.h>
34#include <linux/regulator/machine.h> 36#include <linux/regulator/machine.h>
35#include <linux/sh_eth.h> 37#include <linux/sh_eth.h>
36#include <linux/videodev2.h> 38#include <linux/videodev2.h>
@@ -560,15 +562,119 @@ static struct platform_device gpio_keys_device = {
560 }, 562 },
561}; 563};
562 564
563/* Fixed 3.3V regulator to be used by SDHI0, SDHI1, MMCIF */ 565/* Fixed 3.3V regulator to be used by SDHI1, MMCIF */
564static struct regulator_consumer_supply fixed3v3_power_consumers[] = 566static struct regulator_consumer_supply fixed3v3_power_consumers[] = {
565{ 567 REGULATOR_SUPPLY("vmmc", "sh_mmcif"),
568 REGULATOR_SUPPLY("vqmmc", "sh_mmcif"),
569};
570
571/* Fixed 3.3V regulator to be used by SDHI0 */
572static struct regulator_consumer_supply vcc_sdhi0_consumers[] = {
566 REGULATOR_SUPPLY("vmmc", "sh_mobile_sdhi.0"), 573 REGULATOR_SUPPLY("vmmc", "sh_mobile_sdhi.0"),
574};
575
576static struct regulator_init_data vcc_sdhi0_init_data = {
577 .constraints = {
578 .valid_ops_mask = REGULATOR_CHANGE_STATUS,
579 },
580 .num_consumer_supplies = ARRAY_SIZE(vcc_sdhi0_consumers),
581 .consumer_supplies = vcc_sdhi0_consumers,
582};
583
584static struct fixed_voltage_config vcc_sdhi0_info = {
585 .supply_name = "SDHI0 Vcc",
586 .microvolts = 3300000,
587 .gpio = GPIO_PORT75,
588 .enable_high = 1,
589 .init_data = &vcc_sdhi0_init_data,
590};
591
592static struct platform_device vcc_sdhi0 = {
593 .name = "reg-fixed-voltage",
594 .id = 1,
595 .dev = {
596 .platform_data = &vcc_sdhi0_info,
597 },
598};
599
600/* 1.8 / 3.3V SDHI0 VccQ regulator */
601static struct regulator_consumer_supply vccq_sdhi0_consumers[] = {
567 REGULATOR_SUPPLY("vqmmc", "sh_mobile_sdhi.0"), 602 REGULATOR_SUPPLY("vqmmc", "sh_mobile_sdhi.0"),
603};
604
605static struct regulator_init_data vccq_sdhi0_init_data = {
606 .constraints = {
607 .input_uV = 3300000,
608 .min_uV = 1800000,
609 .max_uV = 3300000,
610 .valid_ops_mask = REGULATOR_CHANGE_VOLTAGE |
611 REGULATOR_CHANGE_STATUS,
612 },
613 .num_consumer_supplies = ARRAY_SIZE(vccq_sdhi0_consumers),
614 .consumer_supplies = vccq_sdhi0_consumers,
615};
616
617static struct gpio vccq_sdhi0_gpios[] = {
618 {GPIO_PORT17, GPIOF_OUT_INIT_LOW, "vccq-sdhi0" },
619};
620
621static struct gpio_regulator_state vccq_sdhi0_states[] = {
622 { .value = 3300000, .gpios = (0 << 0) },
623 { .value = 1800000, .gpios = (1 << 0) },
624};
625
626static struct gpio_regulator_config vccq_sdhi0_info = {
627 .supply_name = "vqmmc",
628
629 .enable_gpio = GPIO_PORT74,
630 .enable_high = 1,
631 .enabled_at_boot = 0,
632
633 .gpios = vccq_sdhi0_gpios,
634 .nr_gpios = ARRAY_SIZE(vccq_sdhi0_gpios),
635
636 .states = vccq_sdhi0_states,
637 .nr_states = ARRAY_SIZE(vccq_sdhi0_states),
638
639 .type = REGULATOR_VOLTAGE,
640 .init_data = &vccq_sdhi0_init_data,
641};
642
643static struct platform_device vccq_sdhi0 = {
644 .name = "gpio-regulator",
645 .id = -1,
646 .dev = {
647 .platform_data = &vccq_sdhi0_info,
648 },
649};
650
651/* Fixed 3.3V regulator to be used by SDHI1 */
652static struct regulator_consumer_supply vcc_sdhi1_consumers[] = {
568 REGULATOR_SUPPLY("vmmc", "sh_mobile_sdhi.1"), 653 REGULATOR_SUPPLY("vmmc", "sh_mobile_sdhi.1"),
569 REGULATOR_SUPPLY("vqmmc", "sh_mobile_sdhi.1"), 654};
570 REGULATOR_SUPPLY("vmmc", "sh_mmcif"), 655
571 REGULATOR_SUPPLY("vqmmc", "sh_mmcif"), 656static struct regulator_init_data vcc_sdhi1_init_data = {
657 .constraints = {
658 .valid_ops_mask = REGULATOR_CHANGE_STATUS,
659 },
660 .num_consumer_supplies = ARRAY_SIZE(vcc_sdhi1_consumers),
661 .consumer_supplies = vcc_sdhi1_consumers,
662};
663
664static struct fixed_voltage_config vcc_sdhi1_info = {
665 .supply_name = "SDHI1 Vcc",
666 .microvolts = 3300000,
667 .gpio = GPIO_PORT16,
668 .enable_high = 1,
669 .init_data = &vcc_sdhi1_init_data,
670};
671
672static struct platform_device vcc_sdhi1 = {
673 .name = "reg-fixed-voltage",
674 .id = 2,
675 .dev = {
676 .platform_data = &vcc_sdhi1_info,
677 },
572}; 678};
573 679
574/* SDHI0 */ 680/* SDHI0 */
@@ -584,10 +690,10 @@ static struct regulator_consumer_supply fixed3v3_power_consumers[] =
584static struct sh_mobile_sdhi_info sdhi0_info = { 690static struct sh_mobile_sdhi_info sdhi0_info = {
585 .dma_slave_tx = SHDMA_SLAVE_SDHI0_TX, 691 .dma_slave_tx = SHDMA_SLAVE_SDHI0_TX,
586 .dma_slave_rx = SHDMA_SLAVE_SDHI0_RX, 692 .dma_slave_rx = SHDMA_SLAVE_SDHI0_RX,
587 .tmio_caps = MMC_CAP_SD_HIGHSPEED | MMC_CAP_SDIO_IRQ |\ 693 .tmio_caps = MMC_CAP_SD_HIGHSPEED | MMC_CAP_SDIO_IRQ |
588 MMC_CAP_NEEDS_POLL, 694 MMC_CAP_POWER_OFF_CARD,
589 .tmio_ocr_mask = MMC_VDD_165_195 | MMC_VDD_32_33 | MMC_VDD_33_34, 695 .tmio_flags = TMIO_MMC_HAS_IDLE_WAIT | TMIO_MMC_USE_GPIO_CD,
590 .tmio_flags = TMIO_MMC_HAS_IDLE_WAIT, 696 .cd_gpio = GPIO_PORT167,
591}; 697};
592 698
593static struct resource sdhi0_resources[] = { 699static struct resource sdhi0_resources[] = {
@@ -626,9 +732,11 @@ static struct platform_device sdhi0_device = {
626static struct sh_mobile_sdhi_info sdhi1_info = { 732static struct sh_mobile_sdhi_info sdhi1_info = {
627 .dma_slave_tx = SHDMA_SLAVE_SDHI1_TX, 733 .dma_slave_tx = SHDMA_SLAVE_SDHI1_TX,
628 .dma_slave_rx = SHDMA_SLAVE_SDHI1_RX, 734 .dma_slave_rx = SHDMA_SLAVE_SDHI1_RX,
629 .tmio_caps = MMC_CAP_SD_HIGHSPEED | MMC_CAP_SDIO_IRQ, 735 .tmio_caps = MMC_CAP_SD_HIGHSPEED | MMC_CAP_SDIO_IRQ |
630 .tmio_ocr_mask = MMC_VDD_165_195 | MMC_VDD_32_33 | MMC_VDD_33_34, 736 MMC_CAP_POWER_OFF_CARD,
631 .tmio_flags = TMIO_MMC_HAS_IDLE_WAIT, 737 .tmio_flags = TMIO_MMC_HAS_IDLE_WAIT | TMIO_MMC_USE_GPIO_CD,
738 /* Port72 cannot generate IRQs, will be used in polling mode. */
739 .cd_gpio = GPIO_PORT72,
632}; 740};
633 741
634static struct resource sdhi1_resources[] = { 742static struct resource sdhi1_resources[] = {
@@ -676,7 +784,6 @@ static const struct pinctrl_map eva_sdhi1_pinctrl_map[] = {
676/* MMCIF */ 784/* MMCIF */
677static struct sh_mmcif_plat_data sh_mmcif_plat = { 785static struct sh_mmcif_plat_data sh_mmcif_plat = {
678 .sup_pclk = 0, 786 .sup_pclk = 0,
679 .ocr = MMC_VDD_165_195 | MMC_VDD_32_33 | MMC_VDD_33_34,
680 .caps = MMC_CAP_4_BIT_DATA | 787 .caps = MMC_CAP_4_BIT_DATA |
681 MMC_CAP_8_BIT_DATA | 788 MMC_CAP_8_BIT_DATA |
682 MMC_CAP_NONREMOVABLE, 789 MMC_CAP_NONREMOVABLE,
@@ -924,6 +1031,8 @@ static struct platform_device *eva_devices[] __initdata = {
924 &lcdc0_device, 1031 &lcdc0_device,
925 &gpio_keys_device, 1032 &gpio_keys_device,
926 &sh_eth_device, 1033 &sh_eth_device,
1034 &vcc_sdhi0,
1035 &vccq_sdhi0,
927 &sdhi0_device, 1036 &sdhi0_device,
928 &sh_mmcif_device, 1037 &sh_mmcif_device,
929 &hdmi_device, 1038 &hdmi_device,
@@ -1067,13 +1176,6 @@ static void __init eva_init(void)
1067 usb = &usbhsf_device; 1176 usb = &usbhsf_device;
1068 } 1177 }
1069 1178
1070 /* SDHI0 */
1071 gpio_request_one(17, GPIOF_OUT_INIT_LOW, NULL); /* SDHI0_18/33_B */
1072 gpio_request_one(74, GPIOF_OUT_INIT_HIGH, NULL); /* SDHI0_PON */
1073 gpio_request_one(75, GPIOF_OUT_INIT_HIGH, NULL); /* SDSLOT1_PON */
1074
1075 /* we can use GPIO_FN_IRQ31_PORT167 here for SDHI0 CD irq */
1076
1077 /* CEU0 */ 1179 /* CEU0 */
1078 gpio_request(GPIO_FN_VIO0_D7, NULL); 1180 gpio_request(GPIO_FN_VIO0_D7, NULL);
1079 gpio_request(GPIO_FN_VIO0_D6, NULL); 1181 gpio_request(GPIO_FN_VIO0_D6, NULL);
@@ -1134,9 +1236,7 @@ static void __init eva_init(void)
1134 pinctrl_register_mappings(eva_sdhi1_pinctrl_map, 1236 pinctrl_register_mappings(eva_sdhi1_pinctrl_map,
1135 ARRAY_SIZE(eva_sdhi1_pinctrl_map)); 1237 ARRAY_SIZE(eva_sdhi1_pinctrl_map));
1136 1238
1137 /* SDSLOT2_PON */ 1239 platform_device_register(&vcc_sdhi1);
1138 gpio_request_one(16, GPIOF_OUT_INIT_HIGH, NULL);
1139
1140 platform_device_register(&sdhi1_device); 1240 platform_device_register(&sdhi1_device);
1141 } 1241 }
1142 1242
diff --git a/arch/arm/mach-shmobile/board-kzm9g-reference.c b/arch/arm/mach-shmobile/board-kzm9g-reference.c
new file mode 100644
index 000000000000..aefa50d385b7
--- /dev/null
+++ b/arch/arm/mach-shmobile/board-kzm9g-reference.c
@@ -0,0 +1,107 @@
1/*
2 * KZM-A9-GT board support - Reference Device Tree Implementation
3 *
4 * Copyright (C) 2012 Horms Solutions Ltd.
5 *
6 * Based on board-kzm9g.c
7 * Copyright (C) 2012 Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
8 *
9 * This program is free software; you can redistribute it and/or modify
10 * it under the terms of the GNU General Public License as published by
11 * the Free Software Foundation; version 2 of the License.
12 *
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
17 *
18 * You should have received a copy of the GNU General Public License
19 * along with this program; if not, write to the Free Software
20 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
21 */
22
23#include <linux/delay.h>
24#include <linux/gpio.h>
25#include <linux/io.h>
26#include <linux/irq.h>
27#include <linux/irqchip.h>
28#include <linux/input.h>
29#include <linux/of_platform.h>
30#include <linux/pinctrl/machine.h>
31#include <linux/pinctrl/pinconf-generic.h>
32#include <mach/sh73a0.h>
33#include <mach/common.h>
34#include <asm/hardware/cache-l2x0.h>
35#include <asm/mach-types.h>
36#include <asm/mach/arch.h>
37
38static unsigned long pin_pullup_conf[] = {
39 PIN_CONF_PACKED(PIN_CONFIG_BIAS_PULL_UP, 0),
40};
41
42static const struct pinctrl_map kzm_pinctrl_map[] = {
43 PIN_MAP_MUX_GROUP_DEFAULT("e6826000.i2c", "pfc-sh73a0",
44 "i2c3_1", "i2c3"),
45 /* MMCIF */
46 PIN_MAP_MUX_GROUP_DEFAULT("e6bd0000.mmcif", "pfc-sh73a0",
47 "mmc0_data8_0", "mmc0"),
48 PIN_MAP_MUX_GROUP_DEFAULT("e6bd0000.mmcif", "pfc-sh73a0",
49 "mmc0_ctrl_0", "mmc0"),
50 PIN_MAP_CONFIGS_PIN_DEFAULT("e6bd0000.mmcif", "pfc-sh73a0",
51 "PORT279", pin_pullup_conf),
52 PIN_MAP_CONFIGS_GROUP_DEFAULT("e6bd0000.mmcif", "pfc-sh73a0",
53 "mmc0_data8_0", pin_pullup_conf),
54 /* SCIFA4 */
55 PIN_MAP_MUX_GROUP_DEFAULT("sh-sci.4", "pfc-sh73a0",
56 "scifa4_data", "scifa4"),
57 PIN_MAP_MUX_GROUP_DEFAULT("sh-sci.4", "pfc-sh73a0",
58 "scifa4_ctrl", "scifa4"),
59 /* SDHI0 */
60 PIN_MAP_MUX_GROUP_DEFAULT("ee100000.sdhi", "pfc-sh73a0",
61 "sdhi0_data4", "sdhi0"),
62 PIN_MAP_MUX_GROUP_DEFAULT("ee100000.sdhi", "pfc-sh73a0",
63 "sdhi0_ctrl", "sdhi0"),
64 PIN_MAP_MUX_GROUP_DEFAULT("ee100000.sdhi", "pfc-sh73a0",
65 "sdhi0_cd", "sdhi0"),
66 PIN_MAP_MUX_GROUP_DEFAULT("ee100000.sdhi", "pfc-sh73a0",
67 "sdhi0_wp", "sdhi0"),
68 /* SDHI2 */
69 PIN_MAP_MUX_GROUP_DEFAULT("ee140000.sdhi", "pfc-sh73a0",
70 "sdhi2_data4", "sdhi2"),
71 PIN_MAP_MUX_GROUP_DEFAULT("ee140000.sdhi", "pfc-sh73a0",
72 "sdhi2_ctrl", "sdhi2"),
73};
74
75static void __init kzm_init(void)
76{
77 sh73a0_add_standard_devices_dt();
78 pinctrl_register_mappings(kzm_pinctrl_map, ARRAY_SIZE(kzm_pinctrl_map));
79 sh73a0_pinmux_init();
80
81 /* enable SD */
82 gpio_request(GPIO_FN_SDHI0_VCCQ_MC0_ON, NULL);
83 gpio_request_one(15, GPIOF_OUT_INIT_HIGH, NULL); /* power */
84
85 gpio_request_one(14, GPIOF_OUT_INIT_HIGH, NULL); /* power */
86
87#ifdef CONFIG_CACHE_L2X0
88 /* Early BRESP enable, Shared attribute override enable, 64K*8way */
89 l2x0_init(IOMEM(0xf0100000), 0x40460000, 0x82000fff);
90#endif
91}
92
93static const char *kzm9g_boards_compat_dt[] __initdata = {
94 "renesas,kzm9g-reference",
95 NULL,
96};
97
98DT_MACHINE_START(KZM9G_DT, "kzm9g-reference")
99 .smp = smp_ops(sh73a0_smp_ops),
100 .map_io = sh73a0_map_io,
101 .init_early = sh73a0_init_delay,
102 .nr_irqs = NR_IRQS_LEGACY,
103 .init_irq = irqchip_init,
104 .init_machine = kzm_init,
105 .init_time = shmobile_timer_init,
106 .dt_compat = kzm9g_boards_compat_dt,
107MACHINE_END
diff --git a/arch/arm/mach-shmobile/board-kzm9g.c b/arch/arm/mach-shmobile/board-kzm9g.c
index 42e51645ee54..e6b775a10aad 100644
--- a/arch/arm/mach-shmobile/board-kzm9g.c
+++ b/arch/arm/mach-shmobile/board-kzm9g.c
@@ -63,8 +63,8 @@
63 63
64/* Dummy supplies, where voltage doesn't matter */ 64/* Dummy supplies, where voltage doesn't matter */
65static struct regulator_consumer_supply dummy_supplies[] = { 65static struct regulator_consumer_supply dummy_supplies[] = {
66 REGULATOR_SUPPLY("vddvario", "smsc911x"), 66 REGULATOR_SUPPLY("vddvario", "smsc911x.0"),
67 REGULATOR_SUPPLY("vdd33a", "smsc911x"), 67 REGULATOR_SUPPLY("vdd33a", "smsc911x.0"),
68}; 68};
69 69
70/* 70/*
@@ -379,13 +379,64 @@ static struct platform_device mmc_device = {
379 .resource = sh_mmcif_resources, 379 .resource = sh_mmcif_resources,
380}; 380};
381 381
382/* Fixed 2.8V regulators to be used by SDHI0 and SDHI2 */ 382/* Fixed 3.3V regulators to be used by SDHI0 */
383static struct regulator_consumer_supply fixed2v8_power_consumers[] = 383static struct regulator_consumer_supply vcc_sdhi0_consumers[] =
384{ 384{
385 REGULATOR_SUPPLY("vmmc", "sh_mobile_sdhi.0"), 385 REGULATOR_SUPPLY("vmmc", "sh_mobile_sdhi.0"),
386 REGULATOR_SUPPLY("vqmmc", "sh_mobile_sdhi.0"), 386};
387
388static struct regulator_init_data vcc_sdhi0_init_data = {
389 .constraints = {
390 .valid_ops_mask = REGULATOR_CHANGE_STATUS,
391 },
392 .num_consumer_supplies = ARRAY_SIZE(vcc_sdhi0_consumers),
393 .consumer_supplies = vcc_sdhi0_consumers,
394};
395
396static struct fixed_voltage_config vcc_sdhi0_info = {
397 .supply_name = "SDHI0 Vcc",
398 .microvolts = 3300000,
399 .gpio = 15,
400 .enable_high = 1,
401 .init_data = &vcc_sdhi0_init_data,
402};
403
404static struct platform_device vcc_sdhi0 = {
405 .name = "reg-fixed-voltage",
406 .id = 0,
407 .dev = {
408 .platform_data = &vcc_sdhi0_info,
409 },
410};
411
412/* Fixed 3.3V regulators to be used by SDHI2 */
413static struct regulator_consumer_supply vcc_sdhi2_consumers[] =
414{
387 REGULATOR_SUPPLY("vmmc", "sh_mobile_sdhi.2"), 415 REGULATOR_SUPPLY("vmmc", "sh_mobile_sdhi.2"),
388 REGULATOR_SUPPLY("vqmmc", "sh_mobile_sdhi.2"), 416};
417
418static struct regulator_init_data vcc_sdhi2_init_data = {
419 .constraints = {
420 .valid_ops_mask = REGULATOR_CHANGE_STATUS,
421 },
422 .num_consumer_supplies = ARRAY_SIZE(vcc_sdhi2_consumers),
423 .consumer_supplies = vcc_sdhi2_consumers,
424};
425
426static struct fixed_voltage_config vcc_sdhi2_info = {
427 .supply_name = "SDHI2 Vcc",
428 .microvolts = 3300000,
429 .gpio = 14,
430 .enable_high = 1,
431 .init_data = &vcc_sdhi2_init_data,
432};
433
434static struct platform_device vcc_sdhi2 = {
435 .name = "reg-fixed-voltage",
436 .id = 1,
437 .dev = {
438 .platform_data = &vcc_sdhi2_info,
439 },
389}; 440};
390 441
391/* SDHI */ 442/* SDHI */
@@ -393,8 +444,8 @@ static struct sh_mobile_sdhi_info sdhi0_info = {
393 .dma_slave_tx = SHDMA_SLAVE_SDHI0_TX, 444 .dma_slave_tx = SHDMA_SLAVE_SDHI0_TX,
394 .dma_slave_rx = SHDMA_SLAVE_SDHI0_RX, 445 .dma_slave_rx = SHDMA_SLAVE_SDHI0_RX,
395 .tmio_flags = TMIO_MMC_HAS_IDLE_WAIT, 446 .tmio_flags = TMIO_MMC_HAS_IDLE_WAIT,
396 .tmio_caps = MMC_CAP_SD_HIGHSPEED, 447 .tmio_caps = MMC_CAP_SD_HIGHSPEED | MMC_CAP_SDIO_IRQ |
397 .tmio_ocr_mask = MMC_VDD_27_28 | MMC_VDD_28_29, 448 MMC_CAP_POWER_OFF_CARD,
398}; 449};
399 450
400static struct resource sdhi0_resources[] = { 451static struct resource sdhi0_resources[] = {
@@ -437,8 +488,7 @@ static struct sh_mobile_sdhi_info sdhi2_info = {
437 .tmio_flags = TMIO_MMC_HAS_IDLE_WAIT | 488 .tmio_flags = TMIO_MMC_HAS_IDLE_WAIT |
438 TMIO_MMC_USE_GPIO_CD | 489 TMIO_MMC_USE_GPIO_CD |
439 TMIO_MMC_WRPROTECT_DISABLE, 490 TMIO_MMC_WRPROTECT_DISABLE,
440 .tmio_caps = MMC_CAP_SD_HIGHSPEED, 491 .tmio_caps = MMC_CAP_SD_HIGHSPEED | MMC_CAP_POWER_OFF_CARD,
441 .tmio_ocr_mask = MMC_VDD_27_28 | MMC_VDD_28_29,
442 .cd_gpio = 13, 492 .cd_gpio = 13,
443}; 493};
444 494
@@ -598,6 +648,8 @@ static struct platform_device *kzm_devices[] __initdata = {
598 &usbhs_device, 648 &usbhs_device,
599 &lcdc_device, 649 &lcdc_device,
600 &mmc_device, 650 &mmc_device,
651 &vcc_sdhi0,
652 &vcc_sdhi2,
601 &sdhi0_device, 653 &sdhi0_device,
602 &sdhi2_device, 654 &sdhi2_device,
603 &gpio_keys_device, 655 &gpio_keys_device,
@@ -718,11 +770,9 @@ device_initcall(as3711_enable_lcdc_backlight);
718 770
719static void __init kzm_init(void) 771static void __init kzm_init(void)
720{ 772{
721 regulator_register_always_on(0, "fixed-1.8V", fixed1v8_power_consumers, 773 regulator_register_always_on(2, "fixed-1.8V", fixed1v8_power_consumers,
722 ARRAY_SIZE(fixed1v8_power_consumers), 1800000); 774 ARRAY_SIZE(fixed1v8_power_consumers), 1800000);
723 regulator_register_always_on(1, "fixed-2.8V", fixed2v8_power_consumers, 775 regulator_register_fixed(3, dummy_supplies, ARRAY_SIZE(dummy_supplies));
724 ARRAY_SIZE(fixed2v8_power_consumers), 2800000);
725 regulator_register_fixed(2, dummy_supplies, ARRAY_SIZE(dummy_supplies));
726 776
727 pinctrl_register_mappings(kzm_pinctrl_map, ARRAY_SIZE(kzm_pinctrl_map)); 777 pinctrl_register_mappings(kzm_pinctrl_map, ARRAY_SIZE(kzm_pinctrl_map));
728 778
@@ -740,10 +790,6 @@ static void __init kzm_init(void)
740 790
741 /* enable SD */ 791 /* enable SD */
742 gpio_request(GPIO_FN_SDHI0_VCCQ_MC0_ON, NULL); 792 gpio_request(GPIO_FN_SDHI0_VCCQ_MC0_ON, NULL);
743 gpio_request_one(15, GPIOF_OUT_INIT_HIGH, NULL); /* power */
744
745 /* enable Micro SD */
746 gpio_request_one(14, GPIOF_OUT_INIT_HIGH, NULL); /* power */
747 793
748#ifdef CONFIG_CACHE_L2X0 794#ifdef CONFIG_CACHE_L2X0
749 /* Early BRESP enable, Shared attribute override enable, 64K*8way */ 795 /* Early BRESP enable, Shared attribute override enable, 64K*8way */
diff --git a/arch/arm/mach-shmobile/board-mackerel.c b/arch/arm/mach-shmobile/board-mackerel.c
index 5bc1a7add2f5..2b60f2bf1fbb 100644
--- a/arch/arm/mach-shmobile/board-mackerel.c
+++ b/arch/arm/mach-shmobile/board-mackerel.c
@@ -1149,7 +1149,7 @@ static struct sh_mmcif_plat_data sh_mmcif_plat = {
1149 .slave_id_rx = SHDMA_SLAVE_MMCIF_RX, 1149 .slave_id_rx = SHDMA_SLAVE_MMCIF_RX,
1150}; 1150};
1151 1151
1152static struct platform_device sh_mmcif_device = { 1152static struct platform_device sh_mmcif_device __maybe_unused = {
1153 .name = "sh_mmcif", 1153 .name = "sh_mmcif",
1154 .id = 0, 1154 .id = 0,
1155 .dev = { 1155 .dev = {
diff --git a/arch/arm/mach-shmobile/board-marzen-reference.c b/arch/arm/mach-shmobile/board-marzen-reference.c
new file mode 100644
index 000000000000..480d882e42c7
--- /dev/null
+++ b/arch/arm/mach-shmobile/board-marzen-reference.c
@@ -0,0 +1,75 @@
1/*
2 * marzen board support - Reference DT implementation
3 *
4 * Copyright (C) 2011 Renesas Solutions Corp.
5 * Copyright (C) 2011 Magnus Damm
6 * Copyright (C) 2013 Simon Horman
7 *
8 * This program is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License as published by
10 * the Free Software Foundation; version 2 of the License.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program; if not, write to the Free Software
19 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
20 */
21
22#include <linux/pinctrl/machine.h>
23#include <mach/r8a7779.h>
24#include <mach/common.h>
25#include <mach/irqs.h>
26#include <asm/irq.h>
27#include <asm/mach/arch.h>
28
29static const struct pinctrl_map marzen_pinctrl_map[] = {
30 /* SCIF2 (CN18: DEBUG0) */
31 PIN_MAP_MUX_GROUP_DEFAULT("sh-sci.2", "pfc-r8a7779",
32 "scif2_data_c", "scif2"),
33 /* SCIF4 (CN19: DEBUG1) */
34 PIN_MAP_MUX_GROUP_DEFAULT("sh-sci.4", "pfc-r8a7779",
35 "scif4_data", "scif4"),
36 /* SDHI0 */
37 PIN_MAP_MUX_GROUP_DEFAULT("sh_mobile_sdhi.0", "pfc-r8a7779",
38 "sdhi0_data4", "sdhi0"),
39 PIN_MAP_MUX_GROUP_DEFAULT("sh_mobile_sdhi.0", "pfc-r8a7779",
40 "sdhi0_ctrl", "sdhi0"),
41 PIN_MAP_MUX_GROUP_DEFAULT("sh_mobile_sdhi.0", "pfc-r8a7779",
42 "sdhi0_cd", "sdhi0"),
43 PIN_MAP_MUX_GROUP_DEFAULT("sh_mobile_sdhi.0", "pfc-r8a7779",
44 "sdhi0_wp", "sdhi0"),
45 /* SMSC */
46 PIN_MAP_MUX_GROUP_DEFAULT("smsc911x", "pfc-r8a7779",
47 "intc_irq1_b", "intc"),
48 PIN_MAP_MUX_GROUP_DEFAULT("smsc911x", "pfc-r8a7779",
49 "lbsc_ex_cs0", "lbsc"),
50};
51
52static void __init marzen_init(void)
53{
54 pinctrl_register_mappings(marzen_pinctrl_map,
55 ARRAY_SIZE(marzen_pinctrl_map));
56 r8a7779_pinmux_init();
57
58 r8a7779_add_standard_devices_dt();
59}
60
61static const char *marzen_boards_compat_dt[] __initdata = {
62 "renesas,marzen-reference",
63 NULL,
64};
65
66DT_MACHINE_START(MARZEN, "marzen")
67 .smp = smp_ops(r8a7779_smp_ops),
68 .map_io = r8a7779_map_io,
69 .init_early = r8a7779_init_delay,
70 .nr_irqs = NR_IRQS_LEGACY,
71 .init_irq = r8a7779_init_irq_dt,
72 .init_machine = marzen_init,
73 .init_time = shmobile_timer_init,
74 .dt_compat = marzen_boards_compat_dt,
75MACHINE_END
diff --git a/arch/arm/mach-shmobile/board-marzen.c b/arch/arm/mach-shmobile/board-marzen.c
index 5852331743e7..2333a2d7c937 100644
--- a/arch/arm/mach-shmobile/board-marzen.c
+++ b/arch/arm/mach-shmobile/board-marzen.c
@@ -67,7 +67,7 @@ static struct resource smsc911x_resources[] = {
67 .flags = IORESOURCE_MEM, 67 .flags = IORESOURCE_MEM,
68 }, 68 },
69 [1] = { 69 [1] = {
70 .start = gic_spi(28), /* IRQ 1 */ 70 .start = gic_iid(0x3c), /* IRQ 1 */
71 .flags = IORESOURCE_IRQ, 71 .flags = IORESOURCE_IRQ,
72 }, 72 },
73}; 73};
@@ -97,7 +97,7 @@ static struct resource sdhi0_resources[] = {
97 .flags = IORESOURCE_MEM, 97 .flags = IORESOURCE_MEM,
98 }, 98 },
99 [1] = { 99 [1] = {
100 .start = gic_spi(104), 100 .start = gic_iid(0x88),
101 .flags = IORESOURCE_IRQ, 101 .flags = IORESOURCE_IRQ,
102 }, 102 },
103}; 103};
@@ -215,7 +215,7 @@ static struct resource ehci0_resources[] = {
215 .flags = IORESOURCE_MEM, 215 .flags = IORESOURCE_MEM,
216 }, 216 },
217 [1] = { 217 [1] = {
218 .start = gic_spi(44), 218 .start = gic_iid(0x4c),
219 .flags = IORESOURCE_IRQ, 219 .flags = IORESOURCE_IRQ,
220 }, 220 },
221}; 221};
@@ -239,7 +239,7 @@ static struct resource ehci1_resources[] = {
239 .flags = IORESOURCE_MEM, 239 .flags = IORESOURCE_MEM,
240 }, 240 },
241 [1] = { 241 [1] = {
242 .start = gic_spi(45), 242 .start = gic_iid(0x4d),
243 .flags = IORESOURCE_IRQ, 243 .flags = IORESOURCE_IRQ,
244 }, 244 },
245}; 245};
@@ -269,7 +269,7 @@ static struct resource ohci0_resources[] = {
269 .flags = IORESOURCE_MEM, 269 .flags = IORESOURCE_MEM,
270 }, 270 },
271 [1] = { 271 [1] = {
272 .start = gic_spi(44), 272 .start = gic_iid(0x4c),
273 .flags = IORESOURCE_IRQ, 273 .flags = IORESOURCE_IRQ,
274 }, 274 },
275}; 275};
@@ -293,7 +293,7 @@ static struct resource ohci1_resources[] = {
293 .flags = IORESOURCE_MEM, 293 .flags = IORESOURCE_MEM,
294 }, 294 },
295 [1] = { 295 [1] = {
296 .start = gic_spi(45), 296 .start = gic_iid(0x4d),
297 .flags = IORESOURCE_IRQ, 297 .flags = IORESOURCE_IRQ,
298 }, 298 },
299}; 299};