diff options
79 files changed, 1630 insertions, 589 deletions
diff --git a/Documentation/devicetree/bindings/gpio/mrvl-gpio.txt b/Documentation/devicetree/bindings/gpio/mrvl-gpio.txt index e13787498bcf..9b3f1d4a88d6 100644 --- a/Documentation/devicetree/bindings/gpio/mrvl-gpio.txt +++ b/Documentation/devicetree/bindings/gpio/mrvl-gpio.txt | |||
@@ -1,7 +1,10 @@ | |||
1 | * Marvell PXA GPIO controller | 1 | * Marvell PXA GPIO controller |
2 | 2 | ||
3 | Required properties: | 3 | Required properties: |
4 | - compatible : Should be "mrvl,pxa-gpio" or "mrvl,mmp-gpio" | 4 | - compatible : Should be "intel,pxa25x-gpio", "intel,pxa26x-gpio", |
5 | "intel,pxa27x-gpio", "intel,pxa3xx-gpio", | ||
6 | "marvell,pxa93x-gpio", "marvell,mmp-gpio" or | ||
7 | "marvell,mmp2-gpio". | ||
5 | - reg : Address and length of the register set for the device | 8 | - reg : Address and length of the register set for the device |
6 | - interrupts : Should be the port interrupt shared by all gpio pins. | 9 | - interrupts : Should be the port interrupt shared by all gpio pins. |
7 | There're three gpio interrupts in arch-pxa, and they're gpio0, | 10 | There're three gpio interrupts in arch-pxa, and they're gpio0, |
@@ -18,7 +21,7 @@ Required properties: | |||
18 | Example: | 21 | Example: |
19 | 22 | ||
20 | gpio: gpio@d4019000 { | 23 | gpio: gpio@d4019000 { |
21 | compatible = "mrvl,mmp-gpio"; | 24 | compatible = "marvell,mmp-gpio"; |
22 | reg = <0xd4019000 0x1000>; | 25 | reg = <0xd4019000 0x1000>; |
23 | interrupts = <49>; | 26 | interrupts = <49>; |
24 | interrupt-name = "gpio_mux"; | 27 | interrupt-name = "gpio_mux"; |
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 \ | |||
61 | dtb-$(CONFIG_ARCH_INTEGRATOR) += integratorap.dtb \ | 61 | dtb-$(CONFIG_ARCH_INTEGRATOR) += integratorap.dtb \ |
62 | integratorcp.dtb | 62 | integratorcp.dtb |
63 | dtb-$(CONFIG_ARCH_LPC32XX) += ea3250.dtb phy3250.dtb | 63 | dtb-$(CONFIG_ARCH_LPC32XX) += ea3250.dtb phy3250.dtb |
64 | dtb-$(CONFIG_ARCH_KIRKWOOD) += kirkwood-dns320.dtb \ | 64 | dtb-$(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 |
154 | dtb-$(CONFIG_ARCH_SHMOBILE) += emev2-kzm9d.dtb \ | 156 | dtb-$(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 |
158 | dtb-$(CONFIG_ARCH_SOCFPGA) += socfpga_cyclone5.dtb \ | 162 | dtb-$(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 = <®_1p8v>; | ||
52 | status = "okay"; | ||
53 | }; | ||
54 | |||
55 | &sdhi0 { | ||
56 | vmmc-supply = <®_3p3v>; | ||
57 | bus-width = <4>; | ||
58 | status = "okay"; | ||
59 | }; | ||
60 | |||
61 | &sdhi2 { | ||
62 | vmmc-supply = <®_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 | |||
5 | CONFIG_IKCONFIG=y | 5 | CONFIG_IKCONFIG=y |
6 | CONFIG_IKCONFIG_PROC=y | 6 | CONFIG_IKCONFIG_PROC=y |
7 | CONFIG_LOG_BUF_SHIFT=14 | 7 | CONFIG_LOG_BUF_SHIFT=14 |
8 | CONFIG_CGROUPS=y | ||
8 | CONFIG_BLK_DEV_INITRD=y | 9 | CONFIG_BLK_DEV_INITRD=y |
9 | CONFIG_EXPERT=y | 10 | CONFIG_EXPERT=y |
10 | CONFIG_MODULES=y | 11 | CONFIG_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 | |||
5 | CONFIG_IKCONFIG=y | 5 | CONFIG_IKCONFIG=y |
6 | CONFIG_IKCONFIG_PROC=y | 6 | CONFIG_IKCONFIG_PROC=y |
7 | CONFIG_LOG_BUF_SHIFT=14 | 7 | CONFIG_LOG_BUF_SHIFT=14 |
8 | CONFIG_CGROUPS=y | ||
8 | CONFIG_BLK_DEV_INITRD=y | 9 | CONFIG_BLK_DEV_INITRD=y |
9 | CONFIG_EXPERT=y | 10 | CONFIG_EXPERT=y |
10 | CONFIG_MODULES=y | 11 | CONFIG_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 | |||
10 | CONFIG_MODULE_UNLOAD=y | 10 | CONFIG_MODULE_UNLOAD=y |
11 | # CONFIG_BLK_DEV_BSG is not set | 11 | # CONFIG_BLK_DEV_BSG is not set |
12 | CONFIG_ARCH_KIRKWOOD=y | 12 | CONFIG_ARCH_KIRKWOOD=y |
13 | CONFIG_MACH_D2NET_V2=y | ||
13 | CONFIG_MACH_DB88F6281_BP=y | 14 | CONFIG_MACH_DB88F6281_BP=y |
15 | CONFIG_MACH_DOCKSTAR=y | ||
16 | CONFIG_MACH_ESATA_SHEEVAPLUG=y | ||
17 | CONFIG_MACH_GURUPLUG=y | ||
18 | CONFIG_MACH_INETSPACE_V2=y | ||
19 | CONFIG_MACH_MV88F6281GTW_GE=y | ||
20 | CONFIG_MACH_NET2BIG_V2=y | ||
21 | CONFIG_MACH_NET5BIG_V2=y | ||
22 | CONFIG_MACH_NETSPACE_MAX_V2=y | ||
23 | CONFIG_MACH_NETSPACE_V2=y | ||
24 | CONFIG_MACH_OPENRD_BASE=y | ||
25 | CONFIG_MACH_OPENRD_CLIENT=y | ||
26 | CONFIG_MACH_OPENRD_ULTIMATE=y | ||
14 | CONFIG_MACH_RD88F6192_NAS=y | 27 | CONFIG_MACH_RD88F6192_NAS=y |
15 | CONFIG_MACH_RD88F6281=y | 28 | CONFIG_MACH_RD88F6281=y |
16 | CONFIG_MACH_MV88F6281GTW_GE=y | ||
17 | CONFIG_MACH_SHEEVAPLUG=y | 29 | CONFIG_MACH_SHEEVAPLUG=y |
18 | CONFIG_MACH_ESATA_SHEEVAPLUG=y | 30 | CONFIG_MACH_T5325=y |
19 | CONFIG_MACH_GURUPLUG=y | 31 | CONFIG_MACH_TS219=y |
20 | CONFIG_MACH_DREAMPLUG_DT=y | 32 | CONFIG_MACH_TS41X=y |
21 | CONFIG_MACH_ICONNECT_DT=y | 33 | CONFIG_MACH_CLOUDBOX_DT=y |
22 | CONFIG_MACH_DLINK_KIRKWOOD_DT=y | 34 | CONFIG_MACH_DLINK_KIRKWOOD_DT=y |
23 | CONFIG_MACH_IB62X0_DT=y | ||
24 | CONFIG_MACH_TS219_DT=y | ||
25 | CONFIG_MACH_DOCKSTAR_DT=y | 35 | CONFIG_MACH_DOCKSTAR_DT=y |
36 | CONFIG_MACH_DREAMPLUG_DT=y | ||
26 | CONFIG_MACH_GOFLEXNET_DT=y | 37 | CONFIG_MACH_GOFLEXNET_DT=y |
27 | CONFIG_MACH_LSXL_DT=y | 38 | CONFIG_MACH_GURUPLUG_DT=y |
39 | CONFIG_MACH_IB62X0_DT=y | ||
40 | CONFIG_MACH_ICONNECT_DT=y | ||
41 | CONFIG_MACH_INETSPACE_V2_DT=y | ||
28 | CONFIG_MACH_IOMEGA_IX2_200_DT=y | 42 | CONFIG_MACH_IOMEGA_IX2_200_DT=y |
29 | CONFIG_MACH_KM_KIRKWOOD_DT=y | 43 | CONFIG_MACH_KM_KIRKWOOD_DT=y |
30 | CONFIG_MACH_INETSPACE_V2_DT=y | 44 | CONFIG_MACH_LSXL_DT=y |
31 | CONFIG_MACH_MPLCEC4_DT=y | 45 | CONFIG_MACH_MPLCEC4_DT=y |
32 | CONFIG_MACH_NETSPACE_V2_DT=y | ||
33 | CONFIG_MACH_NETSPACE_MAX_V2_DT=y | ||
34 | CONFIG_MACH_NETSPACE_LITE_V2_DT=y | 46 | CONFIG_MACH_NETSPACE_LITE_V2_DT=y |
47 | CONFIG_MACH_NETSPACE_MAX_V2_DT=y | ||
35 | CONFIG_MACH_NETSPACE_MINI_V2_DT=y | 48 | CONFIG_MACH_NETSPACE_MINI_V2_DT=y |
49 | CONFIG_MACH_NETSPACE_V2_DT=y | ||
50 | CONFIG_MACH_NSA310_DT=y | ||
36 | CONFIG_MACH_OPENBLOCKS_A6_DT=y | 51 | CONFIG_MACH_OPENBLOCKS_A6_DT=y |
52 | CONFIG_MACH_READYNAS_DT=y | ||
37 | CONFIG_MACH_TOPKICK_DT=y | 53 | CONFIG_MACH_TOPKICK_DT=y |
38 | CONFIG_MACH_TS219=y | 54 | CONFIG_MACH_TS219_DT=y |
39 | CONFIG_MACH_TS41X=y | ||
40 | CONFIG_MACH_DOCKSTAR=y | ||
41 | CONFIG_MACH_OPENRD_BASE=y | ||
42 | CONFIG_MACH_OPENRD_CLIENT=y | ||
43 | CONFIG_MACH_OPENRD_ULTIMATE=y | ||
44 | CONFIG_MACH_NETSPACE_V2=y | ||
45 | CONFIG_MACH_INETSPACE_V2=y | ||
46 | CONFIG_MACH_NETSPACE_MAX_V2=y | ||
47 | CONFIG_MACH_D2NET_V2=y | ||
48 | CONFIG_MACH_NET2BIG_V2=y | ||
49 | CONFIG_MACH_NET5BIG_V2=y | ||
50 | CONFIG_MACH_T5325=y | ||
51 | CONFIG_MACH_NSA310_DT=y | ||
52 | # CONFIG_CPU_FEROCEON_OLD_ID is not set | 55 | # CONFIG_CPU_FEROCEON_OLD_ID is not set |
53 | CONFIG_PREEMPT=y | 56 | CONFIG_PREEMPT=y |
54 | CONFIG_AEABI=y | 57 | CONFIG_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 @@ | |||
1 | CONFIG_EXPERIMENTAL=y | 1 | CONFIG_SYSVIPC=y |
2 | CONFIG_NO_HZ=y | ||
3 | CONFIG_HIGH_RES_TIMERS=y | ||
2 | CONFIG_IKCONFIG=y | 4 | CONFIG_IKCONFIG=y |
3 | CONFIG_IKCONFIG_PROC=y | 5 | CONFIG_IKCONFIG_PROC=y |
4 | CONFIG_BLK_DEV_INITRD=y | 6 | CONFIG_BLK_DEV_INITRD=y |
5 | CONFIG_SLAB=y | 7 | CONFIG_SYSCTL_SYSCALL=y |
6 | # CONFIG_BLK_DEV_BSG is not set | 8 | CONFIG_KALLSYMS_ALL=y |
7 | # CONFIG_IOSCHED_DEADLINE is not set | 9 | CONFIG_EMBEDDED=y |
8 | # CONFIG_IOSCHED_CFQ is not set | 10 | # CONFIG_SLUB_DEBUG is not set |
11 | # CONFIG_COMPAT_BRK is not set | ||
12 | CONFIG_PROFILING=y | ||
13 | CONFIG_OPROFILE=y | ||
14 | CONFIG_KPROBES=y | ||
15 | CONFIG_MODULES=y | ||
16 | CONFIG_MODULE_UNLOAD=y | ||
17 | CONFIG_MODULE_FORCE_UNLOAD=y | ||
18 | CONFIG_MODVERSIONS=y | ||
19 | CONFIG_PARTITION_ADVANCED=y | ||
9 | CONFIG_ARCH_MSM=y | 20 | CONFIG_ARCH_MSM=y |
10 | CONFIG_MACH_HALIBUT=y | 21 | CONFIG_ARCH_MSM8X60=y |
11 | CONFIG_NO_HZ=y | 22 | CONFIG_ARCH_MSM8960=y |
12 | CONFIG_HIGH_RES_TIMERS=y | 23 | CONFIG_SMP=y |
13 | CONFIG_PREEMPT=y | 24 | CONFIG_PREEMPT=y |
14 | CONFIG_AEABI=y | 25 | CONFIG_AEABI=y |
15 | # CONFIG_OABI_COMPAT is not set | 26 | CONFIG_HIGHMEM=y |
16 | CONFIG_ZBOOT_ROM_TEXT=0x0 | 27 | CONFIG_HIGHPTE=y |
17 | CONFIG_ZBOOT_ROM_BSS=0x0 | 28 | CONFIG_CLEANCACHE=y |
18 | CONFIG_CMDLINE="mem=64M console=ttyMSM,115200n8" | 29 | CONFIG_CC_STACKPROTECTOR=y |
19 | CONFIG_PM=y | 30 | CONFIG_ARM_APPENDED_DTB=y |
31 | CONFIG_ARM_ATAG_DTB_COMPAT=y | ||
32 | CONFIG_AUTO_ZRELADDR=y | ||
33 | CONFIG_VFP=y | ||
34 | CONFIG_NEON=y | ||
35 | # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set | ||
20 | CONFIG_NET=y | 36 | CONFIG_NET=y |
37 | CONFIG_PACKET=y | ||
21 | CONFIG_UNIX=y | 38 | CONFIG_UNIX=y |
22 | CONFIG_INET=y | 39 | CONFIG_INET=y |
40 | CONFIG_IP_ADVANCED_ROUTER=y | ||
41 | CONFIG_IP_MULTIPLE_TABLES=y | ||
42 | CONFIG_IP_ROUTE_VERBOSE=y | ||
43 | CONFIG_IP_PNP=y | ||
44 | CONFIG_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 |
28 | CONFIG_MTD=y | 50 | CONFIG_CFG80211=y |
29 | CONFIG_MTD_PARTITIONS=y | 51 | CONFIG_RFKILL=y |
30 | CONFIG_MTD_CMDLINE_PARTS=y | 52 | CONFIG_BLK_DEV_LOOP=y |
31 | CONFIG_MTD_CHAR=y | 53 | CONFIG_BLK_DEV_RAM=y |
32 | CONFIG_MTD_BLOCK=y | 54 | CONFIG_SCSI=y |
55 | CONFIG_SCSI_TGT=y | ||
56 | CONFIG_BLK_DEV_SD=y | ||
57 | CONFIG_CHR_DEV_SG=y | ||
58 | CONFIG_CHR_DEV_SCH=y | ||
59 | CONFIG_SCSI_MULTI_LUN=y | ||
60 | CONFIG_SCSI_CONSTANTS=y | ||
61 | CONFIG_SCSI_LOGGING=y | ||
62 | CONFIG_SCSI_SCAN_ASYNC=y | ||
33 | CONFIG_NETDEVICES=y | 63 | CONFIG_NETDEVICES=y |
34 | CONFIG_DUMMY=y | 64 | CONFIG_DUMMY=y |
35 | CONFIG_NET_ETHERNET=y | 65 | CONFIG_PHYLIB=y |
36 | CONFIG_SMC91X=y | 66 | CONFIG_SLIP=y |
37 | CONFIG_PPP=y | 67 | CONFIG_SLIP_COMPRESSED=y |
38 | CONFIG_PPP_ASYNC=y | 68 | CONFIG_SLIP_MODE_SLIP6=y |
39 | CONFIG_PPP_DEFLATE=y | 69 | CONFIG_USB_USBNET=y |
40 | CONFIG_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 |
42 | CONFIG_INPUT_EVDEV=y | 72 | CONFIG_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 |
75 | CONFIG_INPUT_JOYSTICK=y | ||
45 | CONFIG_INPUT_TOUCHSCREEN=y | 76 | CONFIG_INPUT_TOUCHSCREEN=y |
46 | CONFIG_INPUT_MISC=y | 77 | CONFIG_INPUT_MISC=y |
47 | # CONFIG_SERIO is not set | 78 | CONFIG_INPUT_UINPUT=y |
48 | CONFIG_VT_HW_CONSOLE_BINDING=y | 79 | CONFIG_SERIO_LIBPS2=y |
80 | # CONFIG_LEGACY_PTYS is not set | ||
49 | CONFIG_SERIAL_MSM=y | 81 | CONFIG_SERIAL_MSM=y |
50 | CONFIG_SERIAL_MSM_CONSOLE=y | 82 | CONFIG_SERIAL_MSM_CONSOLE=y |
51 | # CONFIG_LEGACY_PTYS is not set | 83 | CONFIG_HW_RANDOM=y |
52 | # CONFIG_HW_RANDOM is not set | ||
53 | CONFIG_I2C=y | 84 | CONFIG_I2C=y |
54 | # CONFIG_HWMON is not set | 85 | CONFIG_I2C_CHARDEV=y |
55 | CONFIG_VIDEO_OUTPUT_CONTROL=y | 86 | CONFIG_SPI=y |
87 | CONFIG_SSBI=y | ||
88 | CONFIG_DEBUG_GPIO=y | ||
89 | CONFIG_GPIO_SYSFS=y | ||
90 | CONFIG_POWER_SUPPLY=y | ||
91 | CONFIG_THERMAL=y | ||
92 | CONFIG_REGULATOR=y | ||
93 | CONFIG_MEDIA_SUPPORT=y | ||
56 | CONFIG_FB=y | 94 | CONFIG_FB=y |
57 | CONFIG_FB_MODE_HELPERS=y | 95 | CONFIG_SOUND=y |
58 | CONFIG_FB_TILEBLITTING=y | 96 | CONFIG_SND=y |
59 | CONFIG_FB_MSM=y | 97 | CONFIG_SND_DYNAMIC_MINORS=y |
60 | # CONFIG_VGA_CONSOLE is not set | 98 | # CONFIG_SND_ARM is not set |
61 | CONFIG_FRAMEBUFFER_CONSOLE=y | 99 | # CONFIG_SND_SPI is not set |
100 | # CONFIG_SND_USB is not set | ||
101 | CONFIG_SND_SOC=y | ||
102 | CONFIG_HID_BATTERY_STRENGTH=y | ||
103 | CONFIG_USB=y | ||
104 | CONFIG_USB_PHY=y | ||
105 | CONFIG_USB_ANNOUNCE_NEW_DEVICES=y | ||
106 | CONFIG_USB_MON=y | ||
107 | CONFIG_USB_EHCI_HCD=y | ||
108 | CONFIG_USB_EHCI_MSM=y | ||
109 | CONFIG_USB_ACM=y | ||
110 | CONFIG_USB_SERIAL=y | ||
111 | CONFIG_USB_GADGET=y | ||
112 | CONFIG_USB_GADGET_DEBUG_FILES=y | ||
113 | CONFIG_USB_GADGET_VBUS_DRAW=500 | ||
62 | CONFIG_NEW_LEDS=y | 114 | CONFIG_NEW_LEDS=y |
63 | CONFIG_LEDS_CLASS=y | 115 | CONFIG_RTC_CLASS=y |
64 | CONFIG_INOTIFY=y | 116 | CONFIG_STAGING=y |
117 | CONFIG_MSM_IOMMU=y | ||
118 | CONFIG_EXT2_FS=y | ||
119 | CONFIG_EXT2_FS_XATTR=y | ||
120 | CONFIG_EXT3_FS=y | ||
121 | # CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set | ||
122 | CONFIG_EXT4_FS=y | ||
123 | CONFIG_FUSE_FS=y | ||
124 | CONFIG_VFAT_FS=y | ||
65 | CONFIG_TMPFS=y | 125 | CONFIG_TMPFS=y |
126 | CONFIG_NFS_FS=y | ||
127 | CONFIG_NFS_V3_ACL=y | ||
128 | CONFIG_NFS_V4=y | ||
129 | CONFIG_CIFS=y | ||
130 | CONFIG_PRINTK_TIME=y | ||
66 | CONFIG_MAGIC_SYSRQ=y | 131 | CONFIG_MAGIC_SYSRQ=y |
67 | CONFIG_DEBUG_KERNEL=y | 132 | CONFIG_LOCKUP_DETECTOR=y |
68 | CONFIG_SCHEDSTATS=y | 133 | # CONFIG_DETECT_HUNG_TASK is not set |
69 | CONFIG_DEBUG_MUTEXES=y | 134 | # CONFIG_SCHED_DEBUG is not set |
70 | CONFIG_DEBUG_SPINLOCK_SLEEP=y | 135 | CONFIG_TIMER_STATS=y |
71 | CONFIG_DEBUG_INFO=y | 136 | CONFIG_DEBUG_INFO=y |
72 | CONFIG_DEBUG_LL=y | 137 | CONFIG_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 | |||
93 | CONFIG_SENSORS_LIS3LV02D=m | 93 | CONFIG_SENSORS_LIS3LV02D=m |
94 | CONFIG_SENSORS_TSL2550=m | 94 | CONFIG_SENSORS_TSL2550=m |
95 | CONFIG_SENSORS_LIS3_I2C=m | 95 | CONFIG_SENSORS_LIS3_I2C=m |
96 | CONFIG_BMP085_I2C=m | ||
96 | CONFIG_SCSI=y | 97 | CONFIG_SCSI=y |
97 | CONFIG_BLK_DEV_SD=y | 98 | CONFIG_BLK_DEV_SD=y |
98 | CONFIG_SCSI_MULTI_LUN=y | 99 | CONFIG_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 |
307 | static struct mtd_partition da830_evm_nand_partitions[] = { | 303 | static 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 | ||
345 | static inline void da850_evm_setup_nor_nand(void) | 340 | static 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 | ||
404 | static const char const *da850_evm_ui_exp[] = { | 399 | static 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 | ||
568 | static const char const *da850_evm_bb_exp[] = { | 563 | static 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, | ||
1607 | MACHINE_END | 1608 | MACHINE_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 | ||
773 | static __init void davinci_evm_init(void) | 758 | static __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 | ||
184 | static __init void davinci_ntosd2_init(void) | 173 | static __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, | ||
340 | MACHINE_END | 346 | MACHINE_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 | ||
124 | static u64 mmcsd0_dma_mask = DMA_BIT_MASK(32); | 124 | static 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) |
22 | static struct musb_hdrc_eps_bits musb_eps[] = { | 22 | static 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 | ||
3 | menu "Marvell Kirkwood Implementations" | 3 | menu "Marvell Kirkwood Implementations" |
4 | 4 | ||
5 | config 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 | |||
5 | config MACH_DB88F6281_BP | 11 | config 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 | ||
11 | config MACH_RD88F6192_NAS | 17 | config 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 | ||
17 | config MACH_RD88F6281 | 23 | config 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 | |||
29 | config 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 | |||
35 | config 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 | ||
23 | config MACH_MV88F6281GTW_GE | 41 | config 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 | ||
47 | config 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 | |||
53 | config 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 | |||
59 | config 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 | |||
65 | config 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 | |||
71 | config MACH_OPENRD | ||
72 | bool | ||
73 | |||
74 | config 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 | |||
81 | config 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 | |||
88 | config 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 | |||
95 | config 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 | |||
101 | config 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 | |||
29 | config MACH_SHEEVAPLUG | 107 | config 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 | ||
35 | config MACH_ESATA_SHEEVAPLUG | 113 | config 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 | ||
41 | config MACH_GURUPLUG | 119 | config 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 | |||
126 | config 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 | |||
133 | comment "Device tree entries" | ||
46 | 134 | ||
47 | config ARCH_KIRKWOOD_DT | 135 | config 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 | ||
61 | config MACH_GURUPLUG_DT | 149 | config 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 | |||
156 | config 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 | |||
164 | config 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 | ||
68 | config MACH_DREAMPLUG_DT | 171 | config 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 | ||
75 | config MACH_ICONNECT_DT | 178 | config 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 | ||
81 | config MACH_DLINK_KIRKWOOD_DT | 185 | config 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 | ||
89 | config MACH_IB62X0_DT | 192 | config 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 | ||
97 | config MACH_TS219_DT | 200 | config 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 | |||
111 | config 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 | |||
118 | config 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 | ||
125 | config MACH_LSXL_DT | 206 | config 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 | ||
133 | config MACH_IOMEGA_IX2_200_DT | 213 | config 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 | ||
147 | config MACH_INETSPACE_V2_DT | 227 | config 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 | ||
154 | config MACH_MPLCEC4_DT | 235 | config 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 | ||
161 | config MACH_NETSPACE_V2_DT | 242 | config 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 | ||
168 | config MACH_NETSPACE_MAX_V2_DT | 249 | config 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 | ||
175 | config 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 | |||
182 | config MACH_NETSPACE_MINI_V2_DT | 256 | config 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 | ||
190 | config 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 | ||
197 | config MACH_TOPKICK_DT | 268 | config 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 | |||
204 | config 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 | |||
211 | config 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 | |||
218 | config 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 | |||
224 | config MACH_OPENRD | ||
225 | bool | ||
226 | |||
227 | config 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 | |||
234 | config 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 | |||
241 | config 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 | |||
248 | config 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 | |||
254 | config 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 | |||
260 | config 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 | ||
266 | config MACH_D2NET_V2 | 275 | config 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 | ||
272 | config MACH_NET2BIG_V2 | 283 | config 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 | ||
278 | config MACH_NET5BIG_V2 | 290 | config 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 | ||
284 | config MACH_T5325 | 299 | config 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 | ||
290 | config MACH_NSA310_DT | 306 | config 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 | ||
298 | endmenu | 320 | endmenu |
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 @@ | |||
1 | obj-y += common.o addr-map.o irq.o pcie.o mpp.o | 1 | obj-y += common.o addr-map.o irq.o pcie.o mpp.o |
2 | 2 | ||
3 | obj-$(CONFIG_MACH_D2NET_V2) += d2net_v2-setup.o lacie_v2-common.o | ||
3 | obj-$(CONFIG_MACH_DB88F6281_BP) += db88f6281-bp-setup.o | 4 | obj-$(CONFIG_MACH_DB88F6281_BP) += db88f6281-bp-setup.o |
4 | obj-$(CONFIG_MACH_RD88F6192_NAS) += rd88f6192-nas-setup.o | 5 | obj-$(CONFIG_MACH_DOCKSTAR) += dockstar-setup.o |
5 | obj-$(CONFIG_MACH_RD88F6281) += rd88f6281-setup.o | ||
6 | obj-$(CONFIG_MACH_MV88F6281GTW_GE) += mv88f6281gtw_ge-setup.o | ||
7 | obj-$(CONFIG_MACH_SHEEVAPLUG) += sheevaplug-setup.o | ||
8 | obj-$(CONFIG_MACH_ESATA_SHEEVAPLUG) += sheevaplug-setup.o | 6 | obj-$(CONFIG_MACH_ESATA_SHEEVAPLUG) += sheevaplug-setup.o |
9 | obj-$(CONFIG_MACH_GURUPLUG) += guruplug-setup.o | 7 | obj-$(CONFIG_MACH_GURUPLUG) += guruplug-setup.o |
10 | obj-$(CONFIG_MACH_DOCKSTAR) += dockstar-setup.o | ||
11 | obj-$(CONFIG_MACH_TS219) += ts219-setup.o tsx1x-common.o | ||
12 | obj-$(CONFIG_MACH_TS41X) += ts41x-setup.o tsx1x-common.o | ||
13 | obj-$(CONFIG_MACH_OPENRD) += openrd-setup.o | ||
14 | obj-$(CONFIG_MACH_NETSPACE_V2) += netspace_v2-setup.o lacie_v2-common.o | ||
15 | obj-$(CONFIG_MACH_INETSPACE_V2) += netspace_v2-setup.o lacie_v2-common.o | 8 | obj-$(CONFIG_MACH_INETSPACE_V2) += netspace_v2-setup.o lacie_v2-common.o |
16 | obj-$(CONFIG_MACH_NETSPACE_MAX_V2) += netspace_v2-setup.o lacie_v2-common.o | 9 | obj-$(CONFIG_MACH_MV88F6281GTW_GE) += mv88f6281gtw_ge-setup.o |
17 | obj-$(CONFIG_MACH_D2NET_V2) += d2net_v2-setup.o lacie_v2-common.o | ||
18 | obj-$(CONFIG_MACH_NET2BIG_V2) += netxbig_v2-setup.o lacie_v2-common.o | 10 | obj-$(CONFIG_MACH_NET2BIG_V2) += netxbig_v2-setup.o lacie_v2-common.o |
19 | obj-$(CONFIG_MACH_NET5BIG_V2) += netxbig_v2-setup.o lacie_v2-common.o | 11 | obj-$(CONFIG_MACH_NET5BIG_V2) += netxbig_v2-setup.o lacie_v2-common.o |
12 | obj-$(CONFIG_MACH_NETSPACE_MAX_V2) += netspace_v2-setup.o lacie_v2-common.o | ||
13 | obj-$(CONFIG_MACH_NETSPACE_V2) += netspace_v2-setup.o lacie_v2-common.o | ||
14 | obj-$(CONFIG_MACH_OPENRD) += openrd-setup.o | ||
15 | obj-$(CONFIG_MACH_RD88F6192_NAS) += rd88f6192-nas-setup.o | ||
16 | obj-$(CONFIG_MACH_RD88F6281) += rd88f6281-setup.o | ||
17 | obj-$(CONFIG_MACH_SHEEVAPLUG) += sheevaplug-setup.o | ||
20 | obj-$(CONFIG_MACH_T5325) += t5325-setup.o | 18 | obj-$(CONFIG_MACH_T5325) += t5325-setup.o |
19 | obj-$(CONFIG_MACH_TS219) += ts219-setup.o tsx1x-common.o | ||
20 | obj-$(CONFIG_MACH_TS41X) += ts41x-setup.o tsx1x-common.o | ||
21 | 21 | ||
22 | obj-$(CONFIG_ARCH_KIRKWOOD_DT) += board-dt.o | 22 | obj-$(CONFIG_ARCH_KIRKWOOD_DT) += board-dt.o |
23 | obj-$(CONFIG_MACH_DREAMPLUG_DT) += board-dreamplug.o | 23 | obj-$(CONFIG_MACH_CLOUDBOX_DT) += board-ns2.o |
24 | obj-$(CONFIG_MACH_GURUPLUG_DT) += board-guruplug.o | ||
25 | obj-$(CONFIG_MACH_ICONNECT_DT) += board-iconnect.o | ||
26 | obj-$(CONFIG_MACH_DLINK_KIRKWOOD_DT) += board-dnskw.o | 24 | obj-$(CONFIG_MACH_DLINK_KIRKWOOD_DT) += board-dnskw.o |
27 | obj-$(CONFIG_MACH_IB62X0_DT) += board-ib62x0.o | ||
28 | obj-$(CONFIG_MACH_TS219_DT) += board-ts219.o tsx1x-common.o | ||
29 | obj-$(CONFIG_MACH_DOCKSTAR_DT) += board-dockstar.o | 25 | obj-$(CONFIG_MACH_DOCKSTAR_DT) += board-dockstar.o |
26 | obj-$(CONFIG_MACH_DREAMPLUG_DT) += board-dreamplug.o | ||
30 | obj-$(CONFIG_MACH_GOFLEXNET_DT) += board-goflexnet.o | 27 | obj-$(CONFIG_MACH_GOFLEXNET_DT) += board-goflexnet.o |
31 | obj-$(CONFIG_MACH_LSXL_DT) += board-lsxl.o | 28 | obj-$(CONFIG_MACH_GURUPLUG_DT) += board-guruplug.o |
29 | obj-$(CONFIG_MACH_IB62X0_DT) += board-ib62x0.o | ||
30 | obj-$(CONFIG_MACH_ICONNECT_DT) += board-iconnect.o | ||
31 | obj-$(CONFIG_MACH_INETSPACE_V2_DT) += board-ns2.o | ||
32 | obj-$(CONFIG_MACH_IOMEGA_IX2_200_DT) += board-iomega_ix2_200.o | 32 | obj-$(CONFIG_MACH_IOMEGA_IX2_200_DT) += board-iomega_ix2_200.o |
33 | obj-$(CONFIG_MACH_KM_KIRKWOOD_DT) += board-km_kirkwood.o | 33 | obj-$(CONFIG_MACH_KM_KIRKWOOD_DT) += board-km_kirkwood.o |
34 | obj-$(CONFIG_MACH_INETSPACE_V2_DT) += board-ns2.o | 34 | obj-$(CONFIG_MACH_LSXL_DT) += board-lsxl.o |
35 | obj-$(CONFIG_MACH_MPLCEC4_DT) += board-mplcec4.o | 35 | obj-$(CONFIG_MACH_MPLCEC4_DT) += board-mplcec4.o |
36 | obj-$(CONFIG_MACH_NETSPACE_V2_DT) += board-ns2.o | ||
37 | obj-$(CONFIG_MACH_NETSPACE_MAX_V2_DT) += board-ns2.o | ||
38 | obj-$(CONFIG_MACH_NETSPACE_LITE_V2_DT) += board-ns2.o | 36 | obj-$(CONFIG_MACH_NETSPACE_LITE_V2_DT) += board-ns2.o |
37 | obj-$(CONFIG_MACH_NETSPACE_MAX_V2_DT) += board-ns2.o | ||
39 | obj-$(CONFIG_MACH_NETSPACE_MINI_V2_DT) += board-ns2.o | 38 | obj-$(CONFIG_MACH_NETSPACE_MINI_V2_DT) += board-ns2.o |
39 | obj-$(CONFIG_MACH_NETSPACE_V2_DT) += board-ns2.o | ||
40 | obj-$(CONFIG_MACH_NSA310_DT) += board-nsa310.o | 40 | obj-$(CONFIG_MACH_NSA310_DT) += board-nsa310.o |
41 | obj-$(CONFIG_MACH_OPENBLOCKS_A6_DT) += board-openblocks_a6.o | 41 | obj-$(CONFIG_MACH_OPENBLOCKS_A6_DT) += board-openblocks_a6.o |
42 | obj-$(CONFIG_MACH_READYNAS_DT) += board-readynas.o | ||
42 | obj-$(CONFIG_MACH_TOPKICK_DT) += board-usi_topkick.o | 43 | obj-$(CONFIG_MACH_TOPKICK_DT) += board-usi_topkick.o |
44 | obj-$(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 | |||
20 | static struct mv643xx_eth_platform_data netgear_readynas_ge00_data = { | ||
21 | .phy_addr = MV643XX_ETH_PHY_ADDR(0), | ||
22 | }; | ||
23 | |||
24 | void __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); | |||
141 | static inline void openblocks_a6_init(void) {}; | 141 | static inline void openblocks_a6_init(void) {}; |
142 | #endif | 142 | #endif |
143 | 143 | ||
144 | #ifdef CONFIG_MACH_READYNAS_DT | ||
145 | void netgear_readynas_init(void); | ||
146 | #else | ||
147 | static inline void netgear_readynas_init(void) {}; | ||
148 | #endif | ||
149 | |||
144 | #ifdef CONFIG_MACH_TOPKICK_DT | 150 | #ifdef CONFIG_MACH_TOPKICK_DT |
145 | void usi_topkick_init(void); | 151 | void usi_topkick_init(void); |
146 | #else | 152 | #else |
147 | static inline void usi_topkick_init(void) {}; | 153 | static inline void usi_topkick_init(void) {}; |
148 | #endif | 154 | #endif |
149 | 155 | ||
156 | #ifdef CONFIG_MACH_CLOUDBOX_DT | ||
157 | void cloudbox_init(void); | ||
158 | #else | ||
159 | static 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 */ |
151 | char *kirkwood_id(void); | 163 | char *kirkwood_id(void); |
152 | void kirkwood_l2_init(void); | 164 | void 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 | ||
114 | static struct pxa_gpio_platform_data pxa168_gpio_pdata = { | ||
115 | .irq_base = MMP_GPIO_TO_IRQ(0), | ||
116 | }; | ||
117 | |||
113 | static struct smc91x_platdata smc91x_info = { | 118 | static 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 | ||
36 | static struct pxa_gpio_platform_data pxa168_gpio_pdata = { | ||
37 | .irq_base = MMP_GPIO_TO_IRQ(0), | ||
38 | }; | ||
39 | |||
35 | static void __init avengers_lite_init(void) | 40 | static 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 | ||
108 | static struct pxa_gpio_platform_data mmp2_gpio_pdata = { | ||
109 | .irq_base = MMP_GPIO_TO_IRQ(0), | ||
110 | }; | ||
111 | |||
107 | static struct regulator_consumer_supply max8649_supply[] = { | 112 | static 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 | ||
81 | static struct pxa_gpio_platform_data mmp2_gpio_pdata = { | ||
82 | .irq_base = MMP_GPIO_TO_IRQ(0), | ||
83 | }; | ||
84 | |||
80 | static struct smc91x_platdata flint_smc91x_info = { | 85 | static 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 | ||
132 | static struct pxa_gpio_platform_data pxa168_gpio_pdata = { | ||
133 | .irq_base = MMP_GPIO_TO_IRQ(0), | ||
134 | }; | ||
135 | |||
131 | static struct i2c_board_info gplugd_i2c_board_info[] = { | 136 | static 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 | ||
103 | static struct pxa_gpio_platform_data mmp2_gpio_pdata = { | ||
104 | .irq_base = MMP_GPIO_TO_IRQ(0), | ||
105 | }; | ||
106 | |||
102 | static struct regulator_consumer_supply max8649_supply[] = { | 107 | static 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 | ||
166 | struct platform_device mmp2_device_gpio = { | 166 | struct 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 | ||
127 | struct platform_device pxa168_device_gpio = { | 127 | struct 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 | ||
154 | struct platform_device pxa910_device_gpio = { | 154 | struct 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 | ||
64 | static struct pxa_gpio_platform_data pxa910_gpio_pdata = { | ||
65 | .irq_base = MMP_GPIO_TO_IRQ(0), | ||
66 | }; | ||
67 | |||
63 | static struct smc91x_platdata tavorevb_smc91x_info = { | 68 | static 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 | ||
53 | static struct pxa_gpio_platform_data pxa168_gpio_pdata = { | ||
54 | .irq_base = MMP_GPIO_TO_IRQ(0), | ||
55 | }; | ||
56 | |||
52 | static unsigned int teton_bga_matrix_key_map[] = { | 57 | static 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 | ||
79 | static struct pxa_gpio_platform_data pxa910_gpio_pdata = { | ||
80 | .irq_base = MMP_GPIO_TO_IRQ(0), | ||
81 | }; | ||
82 | |||
78 | static struct mtd_partition ttc_dkb_onenand_partitions[] = { | 83 | static 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) | |||
169 | void omap_otg_init(struct omap_usb_config *config) {} | 169 | void 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 | ||
174 | static struct resource udc_resources[] = { | 174 | static 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 | |||
229 | obj-$(CONFIG_MACH_OMAP_LDP) += board-ldp.o | 229 | obj-$(CONFIG_MACH_OMAP_LDP) += board-ldp.o |
230 | obj-$(CONFIG_MACH_OMAP3530_LV_SOM) += board-omap3logic.o | 230 | obj-$(CONFIG_MACH_OMAP3530_LV_SOM) += board-omap3logic.o |
231 | obj-$(CONFIG_MACH_OMAP3_TORPEDO) += board-omap3logic.o | 231 | obj-$(CONFIG_MACH_OMAP3_TORPEDO) += board-omap3logic.o |
232 | obj-$(CONFIG_MACH_ENCORE) += board-omap3encore.o | ||
233 | obj-$(CONFIG_MACH_OVERO) += board-overo.o | 232 | obj-$(CONFIG_MACH_OVERO) += board-overo.o |
234 | obj-$(CONFIG_MACH_OMAP3EVM) += board-omap3evm.o | 233 | obj-$(CONFIG_MACH_OMAP3EVM) += board-omap3evm.o |
235 | obj-$(CONFIG_MACH_OMAP3_PANDORA) += board-omap3pandora.o | 234 | obj-$(CONFIG_MACH_OMAP3_PANDORA) += board-omap3pandora.o |
@@ -255,8 +254,6 @@ obj-$(CONFIG_MACH_TOUCHBOOK) += board-omap3touchbook.o | |||
255 | obj-$(CONFIG_MACH_OMAP_4430SDP) += board-4430sdp.o | 254 | obj-$(CONFIG_MACH_OMAP_4430SDP) += board-4430sdp.o |
256 | obj-$(CONFIG_MACH_OMAP4_PANDA) += board-omap4panda.o | 255 | obj-$(CONFIG_MACH_OMAP4_PANDA) += board-omap4panda.o |
257 | 256 | ||
258 | obj-$(CONFIG_MACH_PCM049) += board-omap4pcm049.o | ||
259 | |||
260 | obj-$(CONFIG_MACH_OMAP3517EVM) += board-am3517evm.o | 257 | obj-$(CONFIG_MACH_OMAP3517EVM) += board-am3517evm.o |
261 | 258 | ||
262 | obj-$(CONFIG_MACH_CRANEBOARD) += board-am3517crane.o | 259 | obj-$(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 */ | ||
295 | static struct regulator_consumer_supply backlight_supply = | ||
296 | REGULATOR_SUPPLY("enable", "pwm-backlight"); | ||
297 | |||
294 | static struct platform_pwm_backlight_data sdp4430_backlight_data = { | 298 | static 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 | ||
552 | static struct regulator_consumer_supply rx51_vaux1_consumers[] = { | 554 | static 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 | ||
558 | static struct regulator_init_data rx51_vaux1 = { | 562 | static 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 | |||
60 | static 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 | |||
105 | static struct omap_dss_device zoom_lcd_device = { | 51 | static 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 | ||
116 | static struct omap_dss_device *zoom_dss_devices[] = { | 60 | static 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 | ||
199 | static 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 | |||
204 | static struct led_pwm zoom_pwm_leds[] = { | ||
205 | { | ||
206 | .name = "zoom::keypad", | ||
207 | .max_brightness = 127, | ||
208 | .pwm_period_ns = 7812500, | ||
209 | }, | ||
210 | }; | ||
211 | |||
212 | static struct led_pwm_platform_data zoom_pwm_data = { | ||
213 | .num_leds = ARRAY_SIZE(zoom_pwm_leds), | ||
214 | .leds = zoom_pwm_leds, | ||
215 | }; | ||
216 | |||
217 | static struct platform_device zoom_leds_pwm = { | ||
218 | .name = "leds_pwm", | ||
219 | .id = -1, | ||
220 | .dev = { | ||
221 | .platform_data = &zoom_pwm_data, | ||
222 | }, | ||
223 | }; | ||
224 | |||
225 | static 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 | |||
232 | static struct platform_device zoom_backlight_pwm = { | ||
233 | .name = "pwm-backlight", | ||
234 | .id = -1, | ||
235 | .dev = { | ||
236 | .platform_data = &zoom_backlight_data, | ||
237 | }, | ||
238 | }; | ||
239 | |||
240 | static struct platform_device *zoom_devices[] __initdata = { | ||
241 | &omap_vwlan_device, | ||
242 | &zoom_leds_pwm, | ||
243 | &zoom_backlight_pwm, | ||
244 | }; | ||
245 | |||
196 | static struct wl12xx_platform_data omap_zoom_wlan_data __initdata = { | 246 | static 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 | |||
51 | config MACH_TAVOREVB | 51 | config 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 | ||
56 | config MACH_SAAR | 57 | config 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 | ||
61 | comment "Third Party Dev Platforms (sorted by vendor name)" | 63 | comment "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 | ||
1110 | struct platform_device pxa_device_gpio = { | 1110 | struct 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 | |||
1121 | struct 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 | |||
1128 | struct 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 | |||
1135 | struct 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; | |||
16 | extern struct platform_device sa1100_device_rtc; | 16 | extern struct platform_device sa1100_device_rtc; |
17 | extern struct platform_device pxa_device_rtc; | 17 | extern struct platform_device pxa_device_rtc; |
18 | extern struct platform_device pxa_device_ac97; | 18 | extern struct platform_device pxa_device_ac97; |
19 | extern struct platform_device pxa_device_gpio; | ||
20 | 19 | ||
21 | extern struct platform_device pxa27x_device_i2c_power; | 20 | extern struct platform_device pxa27x_device_i2c_power; |
22 | extern struct platform_device pxa27x_device_ohci; | 21 | extern struct platform_device pxa27x_device_ohci; |
@@ -46,4 +45,9 @@ extern struct platform_device pxa_device_asoc_ssp2; | |||
46 | extern struct platform_device pxa_device_asoc_ssp3; | 45 | extern struct platform_device pxa_device_asoc_ssp3; |
47 | extern struct platform_device pxa_device_asoc_ssp4; | 46 | extern struct platform_device pxa_device_asoc_ssp4; |
48 | 47 | ||
48 | extern struct platform_device pxa25x_device_gpio; | ||
49 | extern struct platform_device pxa27x_device_gpio; | ||
50 | extern struct platform_device pxa3xx_device_gpio; | ||
51 | extern struct platform_device pxa93x_device_gpio; | ||
52 | |||
49 | void __init pxa_register_device(struct platform_device *dev, void *data); | 53 | void __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 | ||
342 | static struct pxa_gpio_platform_data pxa25x_gpio_info __initdata = { | 346 | static 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 | ||
346 | static struct platform_device *pxa25x_devices[] __initdata = { | 351 | static 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 | ||
433 | static struct pxa_gpio_platform_data pxa27x_gpio_info __initdata = { | 433 | static 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 | ||
437 | static struct platform_device *devices[] __initdata = { | 438 | static 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 | ||
440 | static struct pxa_gpio_platform_data pxa3xx_gpio_pdata = { | ||
441 | .irq_base = PXA_GPIO_TO_IRQ(0), | ||
442 | }; | ||
443 | |||
438 | static struct platform_device *devices[] __initdata = { | 444 | static 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 | |||
21 | static struct mfp_addr_map pxa930_mfp_addr_map[] __initdata = { | 24 | static 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 | ||
196 | static struct pxa_gpio_platform_data pxa93x_gpio_pdata = { | ||
197 | .irq_base = PXA_GPIO_TO_IRQ(0), | ||
198 | }; | ||
199 | |||
193 | static int __init pxa930_init(void) | 200 | static 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 | ||
107 | config 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 | |||
107 | config MACH_KZM9D | 120 | config 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 | ||
134 | config 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 | |||
121 | comment "SH-Mobile System Configuration" | 148 | comment "SH-Mobile System Configuration" |
122 | 149 | ||
123 | config CPU_HAS_INTEVT | 150 | config 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 | |||
38 | obj-$(CONFIG_MACH_KOTA2) += board-kota2.o | 38 | obj-$(CONFIG_MACH_KOTA2) += board-kota2.o |
39 | obj-$(CONFIG_MACH_BONITO) += board-bonito.o | 39 | obj-$(CONFIG_MACH_BONITO) += board-bonito.o |
40 | obj-$(CONFIG_MACH_MARZEN) += board-marzen.o | 40 | obj-$(CONFIG_MACH_MARZEN) += board-marzen.o |
41 | obj-$(CONFIG_MACH_MARZEN_REFERENCE) += board-marzen-reference.o | ||
41 | obj-$(CONFIG_MACH_ARMADILLO800EVA) += board-armadillo800eva.o | 42 | obj-$(CONFIG_MACH_ARMADILLO800EVA) += board-armadillo800eva.o |
42 | obj-$(CONFIG_MACH_KZM9D) += board-kzm9d.o | 43 | obj-$(CONFIG_MACH_KZM9D) += board-kzm9d.o |
43 | obj-$(CONFIG_MACH_KZM9G) += board-kzm9g.o | 44 | obj-$(CONFIG_MACH_KZM9G) += board-kzm9g.o |
45 | obj-$(CONFIG_MACH_KZM9G_REFERENCE) += board-kzm9g-reference.o | ||
44 | 46 | ||
45 | # Framework support | 47 | # Framework support |
46 | obj-$(CONFIG_SMP) += $(smp-y) | 48 | obj-$(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 */ |
564 | static struct regulator_consumer_supply fixed3v3_power_consumers[] = | 566 | static 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 */ | ||
572 | static 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 | |||
576 | static 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 | |||
584 | static 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 | |||
592 | static 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 */ | ||
601 | static 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 | |||
605 | static 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 | |||
617 | static struct gpio vccq_sdhi0_gpios[] = { | ||
618 | {GPIO_PORT17, GPIOF_OUT_INIT_LOW, "vccq-sdhi0" }, | ||
619 | }; | ||
620 | |||
621 | static struct gpio_regulator_state vccq_sdhi0_states[] = { | ||
622 | { .value = 3300000, .gpios = (0 << 0) }, | ||
623 | { .value = 1800000, .gpios = (1 << 0) }, | ||
624 | }; | ||
625 | |||
626 | static 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 | |||
643 | static 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 */ | ||
652 | static 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"), | 656 | static 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 | |||
664 | static 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 | |||
672 | static 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[] = | |||
584 | static struct sh_mobile_sdhi_info sdhi0_info = { | 690 | static 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 | ||
593 | static struct resource sdhi0_resources[] = { | 699 | static struct resource sdhi0_resources[] = { |
@@ -626,9 +732,11 @@ static struct platform_device sdhi0_device = { | |||
626 | static struct sh_mobile_sdhi_info sdhi1_info = { | 732 | static 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 | ||
634 | static struct resource sdhi1_resources[] = { | 742 | static struct resource sdhi1_resources[] = { |
@@ -676,7 +784,6 @@ static const struct pinctrl_map eva_sdhi1_pinctrl_map[] = { | |||
676 | /* MMCIF */ | 784 | /* MMCIF */ |
677 | static struct sh_mmcif_plat_data sh_mmcif_plat = { | 785 | static 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 | |||
38 | static unsigned long pin_pullup_conf[] = { | ||
39 | PIN_CONF_PACKED(PIN_CONFIG_BIAS_PULL_UP, 0), | ||
40 | }; | ||
41 | |||
42 | static 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 | |||
75 | static 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 | |||
93 | static const char *kzm9g_boards_compat_dt[] __initdata = { | ||
94 | "renesas,kzm9g-reference", | ||
95 | NULL, | ||
96 | }; | ||
97 | |||
98 | DT_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, | ||
107 | MACHINE_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 */ |
65 | static struct regulator_consumer_supply dummy_supplies[] = { | 65 | static 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 */ |
383 | static struct regulator_consumer_supply fixed2v8_power_consumers[] = | 383 | static 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 | |||
388 | static 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 | |||
396 | static 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 | |||
404 | static 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 */ | ||
413 | static 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 | |||
418 | static 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 | |||
426 | static 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 | |||
434 | static 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 | ||
400 | static struct resource sdhi0_resources[] = { | 451 | static 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 | ||
719 | static void __init kzm_init(void) | 771 | static 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 | ||
1152 | static struct platform_device sh_mmcif_device = { | 1152 | static 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 | |||
29 | static 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 | |||
52 | static 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 | |||
61 | static const char *marzen_boards_compat_dt[] __initdata = { | ||
62 | "renesas,marzen-reference", | ||
63 | NULL, | ||
64 | }; | ||
65 | |||
66 | DT_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, | ||
75 | MACHINE_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 | }; |
diff --git a/drivers/clk/mmp/clk-mmp2.c b/drivers/clk/mmp/clk-mmp2.c index ade435820c7e..d1f1a19d4351 100644 --- a/drivers/clk/mmp/clk-mmp2.c +++ b/drivers/clk/mmp/clk-mmp2.c | |||
@@ -221,7 +221,7 @@ void __init mmp2_clk_init(void) | |||
221 | 221 | ||
222 | clk = mmp_clk_register_apbc("gpio", "vctcxo", | 222 | clk = mmp_clk_register_apbc("gpio", "vctcxo", |
223 | apbc_base + APBC_GPIO, 10, 0, &clk_lock); | 223 | apbc_base + APBC_GPIO, 10, 0, &clk_lock); |
224 | clk_register_clkdev(clk, NULL, "pxa-gpio"); | 224 | clk_register_clkdev(clk, NULL, "mmp2-gpio"); |
225 | 225 | ||
226 | clk = mmp_clk_register_apbc("kpc", "clk32", | 226 | clk = mmp_clk_register_apbc("kpc", "clk32", |
227 | apbc_base + APBC_KPC, 10, 0, &clk_lock); | 227 | apbc_base + APBC_KPC, 10, 0, &clk_lock); |
diff --git a/drivers/clk/mmp/clk-pxa168.c b/drivers/clk/mmp/clk-pxa168.c index e8d036c12cbf..28b3b51c794b 100644 --- a/drivers/clk/mmp/clk-pxa168.c +++ b/drivers/clk/mmp/clk-pxa168.c | |||
@@ -172,7 +172,7 @@ void __init pxa168_clk_init(void) | |||
172 | 172 | ||
173 | clk = mmp_clk_register_apbc("gpio", "vctcxo", | 173 | clk = mmp_clk_register_apbc("gpio", "vctcxo", |
174 | apbc_base + APBC_GPIO, 10, 0, &clk_lock); | 174 | apbc_base + APBC_GPIO, 10, 0, &clk_lock); |
175 | clk_register_clkdev(clk, NULL, "pxa-gpio"); | 175 | clk_register_clkdev(clk, NULL, "mmp-gpio"); |
176 | 176 | ||
177 | clk = mmp_clk_register_apbc("kpc", "clk32", | 177 | clk = mmp_clk_register_apbc("kpc", "clk32", |
178 | apbc_base + APBC_KPC, 10, 0, &clk_lock); | 178 | apbc_base + APBC_KPC, 10, 0, &clk_lock); |
diff --git a/drivers/clk/mmp/clk-pxa910.c b/drivers/clk/mmp/clk-pxa910.c index 7048c31d6e7e..6ec05698ed38 100644 --- a/drivers/clk/mmp/clk-pxa910.c +++ b/drivers/clk/mmp/clk-pxa910.c | |||
@@ -177,7 +177,7 @@ void __init pxa910_clk_init(void) | |||
177 | 177 | ||
178 | clk = mmp_clk_register_apbc("gpio", "vctcxo", | 178 | clk = mmp_clk_register_apbc("gpio", "vctcxo", |
179 | apbc_base + APBC_GPIO, 10, 0, &clk_lock); | 179 | apbc_base + APBC_GPIO, 10, 0, &clk_lock); |
180 | clk_register_clkdev(clk, NULL, "pxa-gpio"); | 180 | clk_register_clkdev(clk, NULL, "mmp-gpio"); |
181 | 181 | ||
182 | clk = mmp_clk_register_apbc("kpc", "clk32", | 182 | clk = mmp_clk_register_apbc("kpc", "clk32", |
183 | apbc_base + APBC_KPC, 10, 0, &clk_lock); | 183 | apbc_base + APBC_KPC, 10, 0, &clk_lock); |
diff --git a/drivers/gpio/gpio-pxa.c b/drivers/gpio/gpio-pxa.c index 2d3af981641e..d7a5c9d75525 100644 --- a/drivers/gpio/gpio-pxa.c +++ b/drivers/gpio/gpio-pxa.c | |||
@@ -85,20 +85,61 @@ struct pxa_gpio_chip { | |||
85 | #endif | 85 | #endif |
86 | }; | 86 | }; |
87 | 87 | ||
88 | enum { | 88 | enum pxa_gpio_type { |
89 | PXA25X_GPIO = 0, | 89 | PXA25X_GPIO = 0, |
90 | PXA26X_GPIO, | 90 | PXA26X_GPIO, |
91 | PXA27X_GPIO, | 91 | PXA27X_GPIO, |
92 | PXA3XX_GPIO, | 92 | PXA3XX_GPIO, |
93 | PXA93X_GPIO, | 93 | PXA93X_GPIO, |
94 | MMP_GPIO = 0x10, | 94 | MMP_GPIO = 0x10, |
95 | MMP2_GPIO, | ||
96 | }; | ||
97 | |||
98 | struct pxa_gpio_id { | ||
99 | enum pxa_gpio_type type; | ||
100 | int gpio_nums; | ||
95 | }; | 101 | }; |
96 | 102 | ||
97 | static DEFINE_SPINLOCK(gpio_lock); | 103 | static DEFINE_SPINLOCK(gpio_lock); |
98 | static struct pxa_gpio_chip *pxa_gpio_chips; | 104 | static struct pxa_gpio_chip *pxa_gpio_chips; |
99 | static int gpio_type; | 105 | static enum pxa_gpio_type gpio_type; |
100 | static void __iomem *gpio_reg_base; | 106 | static void __iomem *gpio_reg_base; |
101 | 107 | ||
108 | static struct pxa_gpio_id pxa25x_id = { | ||
109 | .type = PXA25X_GPIO, | ||
110 | .gpio_nums = 85, | ||
111 | }; | ||
112 | |||
113 | static struct pxa_gpio_id pxa26x_id = { | ||
114 | .type = PXA26X_GPIO, | ||
115 | .gpio_nums = 90, | ||
116 | }; | ||
117 | |||
118 | static struct pxa_gpio_id pxa27x_id = { | ||
119 | .type = PXA27X_GPIO, | ||
120 | .gpio_nums = 121, | ||
121 | }; | ||
122 | |||
123 | static struct pxa_gpio_id pxa3xx_id = { | ||
124 | .type = PXA3XX_GPIO, | ||
125 | .gpio_nums = 128, | ||
126 | }; | ||
127 | |||
128 | static struct pxa_gpio_id pxa93x_id = { | ||
129 | .type = PXA93X_GPIO, | ||
130 | .gpio_nums = 192, | ||
131 | }; | ||
132 | |||
133 | static struct pxa_gpio_id mmp_id = { | ||
134 | .type = MMP_GPIO, | ||
135 | .gpio_nums = 128, | ||
136 | }; | ||
137 | |||
138 | static struct pxa_gpio_id mmp2_id = { | ||
139 | .type = MMP2_GPIO, | ||
140 | .gpio_nums = 192, | ||
141 | }; | ||
142 | |||
102 | #define for_each_gpio_chip(i, c) \ | 143 | #define for_each_gpio_chip(i, c) \ |
103 | for (i = 0, c = &pxa_gpio_chips[0]; i <= pxa_last_gpio; i += 32, c++) | 144 | for (i = 0, c = &pxa_gpio_chips[0]; i <= pxa_last_gpio; i += 32, c++) |
104 | 145 | ||
@@ -431,47 +472,39 @@ static struct irq_chip pxa_muxed_gpio_chip = { | |||
431 | .irq_set_wake = pxa_gpio_set_wake, | 472 | .irq_set_wake = pxa_gpio_set_wake, |
432 | }; | 473 | }; |
433 | 474 | ||
434 | static int pxa_gpio_nums(void) | 475 | static int pxa_gpio_nums(struct platform_device *pdev) |
435 | { | 476 | { |
477 | const struct platform_device_id *id = platform_get_device_id(pdev); | ||
478 | struct pxa_gpio_id *pxa_id = (struct pxa_gpio_id *)id->driver_data; | ||
436 | int count = 0; | 479 | int count = 0; |
437 | 480 | ||
438 | #ifdef CONFIG_ARCH_PXA | 481 | switch (pxa_id->type) { |
439 | if (cpu_is_pxa25x()) { | 482 | case PXA25X_GPIO: |
440 | #ifdef CONFIG_CPU_PXA26x | 483 | case PXA26X_GPIO: |
441 | count = 89; | 484 | case PXA27X_GPIO: |
442 | gpio_type = PXA26X_GPIO; | 485 | case PXA3XX_GPIO: |
443 | #elif defined(CONFIG_PXA25x) | 486 | case PXA93X_GPIO: |
444 | count = 84; | 487 | case MMP_GPIO: |
445 | gpio_type = PXA26X_GPIO; | 488 | case MMP2_GPIO: |
446 | #endif /* CONFIG_CPU_PXA26x */ | 489 | gpio_type = pxa_id->type; |
447 | } else if (cpu_is_pxa27x()) { | 490 | count = pxa_id->gpio_nums - 1; |
448 | count = 120; | 491 | break; |
449 | gpio_type = PXA27X_GPIO; | 492 | default: |
450 | } else if (cpu_is_pxa93x()) { | 493 | count = -EINVAL; |
451 | count = 191; | 494 | break; |
452 | gpio_type = PXA93X_GPIO; | ||
453 | } else if (cpu_is_pxa3xx()) { | ||
454 | count = 127; | ||
455 | gpio_type = PXA3XX_GPIO; | ||
456 | } | ||
457 | #endif /* CONFIG_ARCH_PXA */ | ||
458 | |||
459 | #ifdef CONFIG_ARCH_MMP | ||
460 | if (cpu_is_pxa168() || cpu_is_pxa910()) { | ||
461 | count = 127; | ||
462 | gpio_type = MMP_GPIO; | ||
463 | } else if (cpu_is_mmp2()) { | ||
464 | count = 191; | ||
465 | gpio_type = MMP_GPIO; | ||
466 | } | 495 | } |
467 | #endif /* CONFIG_ARCH_MMP */ | ||
468 | return count; | 496 | return count; |
469 | } | 497 | } |
470 | 498 | ||
471 | #ifdef CONFIG_OF | 499 | #ifdef CONFIG_OF |
472 | static struct of_device_id pxa_gpio_dt_ids[] = { | 500 | static struct of_device_id pxa_gpio_dt_ids[] = { |
473 | { .compatible = "mrvl,pxa-gpio" }, | 501 | { .compatible = "intel,pxa25x-gpio", .data = &pxa25x_id, }, |
474 | { .compatible = "mrvl,mmp-gpio", .data = (void *)MMP_GPIO }, | 502 | { .compatible = "intel,pxa26x-gpio", .data = &pxa26x_id, }, |
503 | { .compatible = "intel,pxa27x-gpio", .data = &pxa27x_id, }, | ||
504 | { .compatible = "intel,pxa3xx-gpio", .data = &pxa3xx_id, }, | ||
505 | { .compatible = "marvell,pxa93x-gpio", .data = &pxa93x_id, }, | ||
506 | { .compatible = "marvell,mmp-gpio", .data = &mmp_id, }, | ||
507 | { .compatible = "marvell,mmp2-gpio", .data = &mmp2_id, }, | ||
475 | {} | 508 | {} |
476 | }; | 509 | }; |
477 | 510 | ||
@@ -491,16 +524,18 @@ const struct irq_domain_ops pxa_irq_domain_ops = { | |||
491 | 524 | ||
492 | static int pxa_gpio_probe_dt(struct platform_device *pdev) | 525 | static int pxa_gpio_probe_dt(struct platform_device *pdev) |
493 | { | 526 | { |
494 | int ret, nr_banks, nr_gpios; | 527 | int ret, nr_gpios; |
495 | struct device_node *prev, *next, *np = pdev->dev.of_node; | 528 | struct device_node *prev, *next, *np = pdev->dev.of_node; |
496 | const struct of_device_id *of_id = | 529 | const struct of_device_id *of_id = |
497 | of_match_device(pxa_gpio_dt_ids, &pdev->dev); | 530 | of_match_device(pxa_gpio_dt_ids, &pdev->dev); |
531 | const struct pxa_gpio_id *gpio_id; | ||
498 | 532 | ||
499 | if (!of_id) { | 533 | if (!of_id || !of_id->data) { |
500 | dev_err(&pdev->dev, "Failed to find gpio controller\n"); | 534 | dev_err(&pdev->dev, "Failed to find gpio controller\n"); |
501 | return -EFAULT; | 535 | return -EFAULT; |
502 | } | 536 | } |
503 | gpio_type = (int)of_id->data; | 537 | gpio_id = of_id->data; |
538 | gpio_type = gpio_id->type; | ||
504 | 539 | ||
505 | next = of_get_next_child(np, NULL); | 540 | next = of_get_next_child(np, NULL); |
506 | prev = next; | 541 | prev = next; |
@@ -509,14 +544,8 @@ static int pxa_gpio_probe_dt(struct platform_device *pdev) | |||
509 | ret = -EINVAL; | 544 | ret = -EINVAL; |
510 | goto err; | 545 | goto err; |
511 | } | 546 | } |
512 | for (nr_banks = 1; ; nr_banks++) { | ||
513 | next = of_get_next_child(np, prev); | ||
514 | if (!next) | ||
515 | break; | ||
516 | prev = next; | ||
517 | } | ||
518 | of_node_put(prev); | 547 | of_node_put(prev); |
519 | nr_gpios = nr_banks << 5; | 548 | nr_gpios = gpio_id->gpio_nums; |
520 | pxa_last_gpio = nr_gpios - 1; | 549 | pxa_last_gpio = nr_gpios - 1; |
521 | 550 | ||
522 | irq_base = irq_alloc_descs(-1, 0, nr_gpios, 0); | 551 | irq_base = irq_alloc_descs(-1, 0, nr_gpios, 0); |
@@ -545,19 +574,18 @@ static int pxa_gpio_probe(struct platform_device *pdev) | |||
545 | int gpio, irq, ret, use_of = 0; | 574 | int gpio, irq, ret, use_of = 0; |
546 | int irq0 = 0, irq1 = 0, irq_mux, gpio_offset = 0; | 575 | int irq0 = 0, irq1 = 0, irq_mux, gpio_offset = 0; |
547 | 576 | ||
548 | ret = pxa_gpio_probe_dt(pdev); | 577 | info = dev_get_platdata(&pdev->dev); |
549 | if (ret < 0) { | 578 | if (info) { |
550 | pxa_last_gpio = pxa_gpio_nums(); | 579 | irq_base = info->irq_base; |
551 | #ifdef CONFIG_ARCH_PXA | 580 | if (irq_base <= 0) |
552 | if (gpio_is_pxa_type(gpio_type)) | 581 | return -EINVAL; |
553 | irq_base = PXA_GPIO_TO_IRQ(0); | 582 | pxa_last_gpio = pxa_gpio_nums(pdev); |
554 | #endif | ||
555 | #ifdef CONFIG_ARCH_MMP | ||
556 | if (gpio_is_mmp_type(gpio_type)) | ||
557 | irq_base = MMP_GPIO_TO_IRQ(0); | ||
558 | #endif | ||
559 | } else { | 583 | } else { |
584 | irq_base = 0; | ||
560 | use_of = 1; | 585 | use_of = 1; |
586 | ret = pxa_gpio_probe_dt(pdev); | ||
587 | if (ret < 0) | ||
588 | return -EINVAL; | ||
561 | } | 589 | } |
562 | 590 | ||
563 | if (!pxa_last_gpio) | 591 | if (!pxa_last_gpio) |
@@ -594,7 +622,6 @@ static int pxa_gpio_probe(struct platform_device *pdev) | |||
594 | } | 622 | } |
595 | 623 | ||
596 | /* Initialize GPIO chips */ | 624 | /* Initialize GPIO chips */ |
597 | info = dev_get_platdata(&pdev->dev); | ||
598 | pxa_init_gpio_chip(pxa_last_gpio, info ? info->gpio_set_wake : NULL); | 625 | pxa_init_gpio_chip(pxa_last_gpio, info ? info->gpio_set_wake : NULL); |
599 | 626 | ||
600 | /* clear all GPIO edge detects */ | 627 | /* clear all GPIO edge detects */ |
@@ -634,12 +661,24 @@ static int pxa_gpio_probe(struct platform_device *pdev) | |||
634 | return 0; | 661 | return 0; |
635 | } | 662 | } |
636 | 663 | ||
664 | static const struct platform_device_id gpio_id_table[] = { | ||
665 | { "pxa25x-gpio", (unsigned long)&pxa25x_id }, | ||
666 | { "pxa26x-gpio", (unsigned long)&pxa26x_id }, | ||
667 | { "pxa27x-gpio", (unsigned long)&pxa27x_id }, | ||
668 | { "pxa3xx-gpio", (unsigned long)&pxa3xx_id }, | ||
669 | { "pxa93x-gpio", (unsigned long)&pxa93x_id }, | ||
670 | { "mmp-gpio", (unsigned long)&mmp_id }, | ||
671 | { "mmp2-gpio", (unsigned long)&mmp2_id }, | ||
672 | { }, | ||
673 | }; | ||
674 | |||
637 | static struct platform_driver pxa_gpio_driver = { | 675 | static struct platform_driver pxa_gpio_driver = { |
638 | .probe = pxa_gpio_probe, | 676 | .probe = pxa_gpio_probe, |
639 | .driver = { | 677 | .driver = { |
640 | .name = "pxa-gpio", | 678 | .name = "pxa-gpio", |
641 | .of_match_table = of_match_ptr(pxa_gpio_dt_ids), | 679 | .of_match_table = of_match_ptr(pxa_gpio_dt_ids), |
642 | }, | 680 | }, |
681 | .id_table = gpio_id_table, | ||
643 | }; | 682 | }; |
644 | 683 | ||
645 | static int __init pxa_gpio_init(void) | 684 | static int __init pxa_gpio_init(void) |
diff --git a/include/linux/gpio-pxa.h b/include/linux/gpio-pxa.h index d755b28ba635..d90ebbe02ca4 100644 --- a/include/linux/gpio-pxa.h +++ b/include/linux/gpio-pxa.h | |||
@@ -14,6 +14,7 @@ extern int pxa_last_gpio; | |||
14 | extern int pxa_irq_to_gpio(int irq); | 14 | extern int pxa_irq_to_gpio(int irq); |
15 | 15 | ||
16 | struct pxa_gpio_platform_data { | 16 | struct pxa_gpio_platform_data { |
17 | int irq_base; | ||
17 | int (*gpio_set_wake)(unsigned int gpio, unsigned int on); | 18 | int (*gpio_set_wake)(unsigned int gpio, unsigned int on); |
18 | }; | 19 | }; |
19 | 20 | ||