aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorOlof Johansson <olof@lixom.net>2014-01-23 11:51:18 -0500
committerOlof Johansson <olof@lixom.net>2014-01-23 11:51:37 -0500
commite41006c22eab8eb7763995e8a0be089b900b620b (patch)
tree3816176311b392a1674238fd61af1f30a30a6acb /arch
parent5cea04bab5bcc8a5f34b890a09b2398df8b1e432 (diff)
parente37e1cb0ee231ffdc9b5ef1da63a0c7e1077c603 (diff)
Merge tag 'omap-for-v3.14/dt-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into next/boards
Split omap3 core padconf area into two as some of the registers in the padconf area are not accessible and used for other devices. Also fix the interrupt number for omap2 RNG, and add basic support for sbc-3xxx with cm-t3730. Note that the minor merge conflicts for omap_hwmod_2xxx_ipblock_data.c can be solved by just dropping the legacy hwmod data for interrupts for v3.14. * tag 'omap-for-v3.14/dt-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap: ARM: dts: OMAP2: fix interrupt number for rng ARM: dts: Split omap3 pinmux core device ARM: dts: Add omap specific pinctrl defines to use padconf addresses ARM: dts: Add support for sbc-3xxx with cm-t3730 Signed-off-by: Olof Johansson <olof@lixom.net>
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/boot/dts/Makefile2
-rw-r--r--arch/arm/boot/dts/omap2.dtsi2
-rw-r--r--arch/arm/boot/dts/omap3-beagle-xm.dts40
-rw-r--r--arch/arm/boot/dts/omap3-beagle.dts40
-rw-r--r--arch/arm/boot/dts/omap3-cm-t3730.dts104
-rw-r--r--arch/arm/boot/dts/omap3-cm-t3x30.dtsi95
-rw-r--r--arch/arm/boot/dts/omap3-igep.dtsi2
-rw-r--r--arch/arm/boot/dts/omap3-igep0020.dts52
-rw-r--r--arch/arm/boot/dts/omap3-igep0030.dts10
-rw-r--r--arch/arm/boot/dts/omap3-sb-t35.dtsi40
-rw-r--r--arch/arm/boot/dts/omap3-sbc-t3730.dts30
-rw-r--r--arch/arm/boot/dts/omap3-zoom3.dts23
-rw-r--r--arch/arm/boot/dts/omap3.dtsi2
-rw-r--r--arch/arm/boot/dts/omap34xx.dtsi13
-rw-r--r--arch/arm/boot/dts/omap36xx.dtsi11
-rw-r--r--arch/arm/mach-omap2/pdata-quirks.c31
16 files changed, 430 insertions, 67 deletions
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index 6f527e1faeb6..8cafefa44a7e 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -180,6 +180,8 @@ dtb-$(CONFIG_ARCH_OMAP2PLUS) += omap2420-h4.dtb \
180 omap2420-n810-wimax.dtb \ 180 omap2420-n810-wimax.dtb \
181 omap3430-sdp.dtb \ 181 omap3430-sdp.dtb \
182 omap3-beagle.dtb \ 182 omap3-beagle.dtb \
183 omap3-cm-t3730.dtb \
184 omap3-sbc-t3730.dtb \
183 omap3-devkit8000.dtb \ 185 omap3-devkit8000.dtb \
184 omap3-beagle-xm.dtb \ 186 omap3-beagle-xm.dtb \
185 omap3-evm.dtb \ 187 omap3-evm.dtb \
diff --git a/arch/arm/boot/dts/omap2.dtsi b/arch/arm/boot/dts/omap2.dtsi
index d0c5b37e248c..5377ddf83bf8 100644
--- a/arch/arm/boot/dts/omap2.dtsi
+++ b/arch/arm/boot/dts/omap2.dtsi
@@ -145,7 +145,7 @@
145 compatible = "ti,omap2-rng"; 145 compatible = "ti,omap2-rng";
146 ti,hwmods = "rng"; 146 ti,hwmods = "rng";
147 reg = <0x480a0000 0x50>; 147 reg = <0x480a0000 0x50>;
148 interrupts = <36>; 148 interrupts = <52>;
149 }; 149 };
150 150
151 sham: sham@480a4000 { 151 sham: sham@480a4000 {
diff --git a/arch/arm/boot/dts/omap3-beagle-xm.dts b/arch/arm/boot/dts/omap3-beagle-xm.dts
index df33a50bc070..447e714d435b 100644
--- a/arch/arm/boot/dts/omap3-beagle-xm.dts
+++ b/arch/arm/boot/dts/omap3-beagle-xm.dts
@@ -99,7 +99,7 @@
99&omap3_pmx_core { 99&omap3_pmx_core {
100 pinctrl-names = "default"; 100 pinctrl-names = "default";
101 pinctrl-0 = < 101 pinctrl-0 = <
102 &hsusbb2_pins 102 &hsusb2_pins
103 >; 103 >;
104 104
105 uart3_pins: pinmux_uart3_pins { 105 uart3_pins: pinmux_uart3_pins {
@@ -109,20 +109,32 @@
109 >; 109 >;
110 }; 110 };
111 111
112 hsusbb2_pins: pinmux_hsusbb2_pins { 112 hsusb2_pins: pinmux_hsusb2_pins {
113 pinctrl-single,pins = < 113 pinctrl-single,pins = <
114 0x5c0 (PIN_OUTPUT | MUX_MODE3) /* etk_d10.hsusb2_clk */ 114 OMAP3_CORE1_IOPAD(0x21d4, PIN_INPUT_PULLDOWN | MUX_MODE3) /* mcspi1_cs3.hsusb2_data2 */
115 0x5c2 (PIN_OUTPUT | MUX_MODE3) /* etk_d11.hsusb2_stp */ 115 OMAP3_CORE1_IOPAD(0x21d6, PIN_INPUT_PULLDOWN | MUX_MODE3) /* mcspi2_clk.hsusb2_data7 */
116 0x5c4 (PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d12.hsusb2_dir */ 116 OMAP3_CORE1_IOPAD(0x21d8, PIN_INPUT_PULLDOWN | MUX_MODE3) /* mcspi2_simo.hsusb2_data4 */
117 0x5c6 (PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d13.hsusb2_nxt */ 117 OMAP3_CORE1_IOPAD(0x21da, PIN_INPUT_PULLDOWN | MUX_MODE3) /* mcspi2_somi.hsusb2_data5 */
118 0x5c8 (PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d14.hsusb2_data0 */ 118 OMAP3_CORE1_IOPAD(0x21dc, PIN_INPUT_PULLDOWN | MUX_MODE3) /* mcspi2_cs0.hsusb2_data6 */
119 0x5cA (PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d15.hsusb2_data1 */ 119 OMAP3_CORE1_IOPAD(0x21de, PIN_INPUT_PULLDOWN | MUX_MODE3) /* mcspi2_cs1.hsusb2_data3 */
120 0x1a4 (PIN_INPUT_PULLDOWN | MUX_MODE3) /* mcspi1_cs3.hsusb2_data2 */ 120 >;
121 0x1a6 (PIN_INPUT_PULLDOWN | MUX_MODE3) /* mcspi2_clk.hsusb2_data7 */ 121 };
122 0x1a8 (PIN_INPUT_PULLDOWN | MUX_MODE3) /* mcspi2_simo.hsusb2_data4 */ 122};
123 0x1aa (PIN_INPUT_PULLDOWN | MUX_MODE3) /* mcspi2_somi.hsusb2_data5 */ 123
124 0x1ac (PIN_INPUT_PULLDOWN | MUX_MODE3) /* mcspi2_cs0.hsusb2_data6 */ 124&omap3_pmx_core2 {
125 0x1ae (PIN_INPUT_PULLDOWN | MUX_MODE3) /* mcspi2_cs1.hsusb2_data3 */ 125 pinctrl-names = "default";
126 pinctrl-0 = <
127 &hsusb2_2_pins
128 >;
129
130 hsusb2_2_pins: pinmux_hsusb2_2_pins {
131 pinctrl-single,pins = <
132 OMAP3630_CORE2_IOPAD(0x25f0, PIN_OUTPUT | MUX_MODE3) /* etk_d10.hsusb2_clk */
133 OMAP3630_CORE2_IOPAD(0x25f2, PIN_OUTPUT | MUX_MODE3) /* etk_d11.hsusb2_stp */
134 OMAP3630_CORE2_IOPAD(0x25f4, PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d12.hsusb2_dir */
135 OMAP3630_CORE2_IOPAD(0x25f6, PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d13.hsusb2_nxt */
136 OMAP3630_CORE2_IOPAD(0x25f8, PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d14.hsusb2_data0 */
137 OMAP3630_CORE2_IOPAD(0x25fa, PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d15.hsusb2_data1 */
126 >; 138 >;
127 }; 139 };
128}; 140};
diff --git a/arch/arm/boot/dts/omap3-beagle.dts b/arch/arm/boot/dts/omap3-beagle.dts
index 3ba4a625ea5b..5053766d369b 100644
--- a/arch/arm/boot/dts/omap3-beagle.dts
+++ b/arch/arm/boot/dts/omap3-beagle.dts
@@ -93,23 +93,17 @@
93&omap3_pmx_core { 93&omap3_pmx_core {
94 pinctrl-names = "default"; 94 pinctrl-names = "default";
95 pinctrl-0 = < 95 pinctrl-0 = <
96 &hsusbb2_pins 96 &hsusb2_pins
97 >; 97 >;
98 98
99 hsusbb2_pins: pinmux_hsusbb2_pins { 99 hsusb2_pins: pinmux_hsusb2_pins {
100 pinctrl-single,pins = < 100 pinctrl-single,pins = <
101 0x5c0 (PIN_OUTPUT | MUX_MODE3) /* etk_d10.hsusb2_clk */ 101 OMAP3_CORE1_IOPAD(0x21d4, PIN_INPUT_PULLDOWN | MUX_MODE3) /* mcspi1_cs3.hsusb2_data2 */
102 0x5c2 (PIN_OUTPUT | MUX_MODE3) /* etk_d11.hsusb2_stp */ 102 OMAP3_CORE1_IOPAD(0x21d6, PIN_INPUT_PULLDOWN | MUX_MODE3) /* mcspi2_clk.hsusb2_data7 */
103 0x5c4 (PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d12.hsusb2_dir */ 103 OMAP3_CORE1_IOPAD(0x21d8, PIN_INPUT_PULLDOWN | MUX_MODE3) /* mcspi2_simo.hsusb2_data4 */
104 0x5c6 (PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d13.hsusb2_nxt */ 104 OMAP3_CORE1_IOPAD(0x21da, PIN_INPUT_PULLDOWN | MUX_MODE3) /* mcspi2_somi.hsusb2_data5 */
105 0x5c8 (PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d14.hsusb2_data0 */ 105 OMAP3_CORE1_IOPAD(0x21dc, PIN_INPUT_PULLDOWN | MUX_MODE3) /* mcspi2_cs0.hsusb2_data6 */
106 0x5cA (PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d15.hsusb2_data1 */ 106 OMAP3_CORE1_IOPAD(0x21de, PIN_INPUT_PULLDOWN | MUX_MODE3) /* mcspi2_cs1.hsusb2_data3 */
107 0x1a4 (PIN_INPUT_PULLDOWN | MUX_MODE3) /* mcspi1_cs3.hsusb2_data2 */
108 0x1a6 (PIN_INPUT_PULLDOWN | MUX_MODE3) /* mcspi2_clk.hsusb2_data7 */
109 0x1a8 (PIN_INPUT_PULLDOWN | MUX_MODE3) /* mcspi2_simo.hsusb2_data4 */
110 0x1aa (PIN_INPUT_PULLDOWN | MUX_MODE3) /* mcspi2_somi.hsusb2_data5 */
111 0x1ac (PIN_INPUT_PULLDOWN | MUX_MODE3) /* mcspi2_cs0.hsusb2_data6 */
112 0x1ae (PIN_INPUT_PULLDOWN | MUX_MODE3) /* mcspi2_cs1.hsusb2_data3 */
113 >; 107 >;
114 }; 108 };
115 109
@@ -121,6 +115,24 @@
121 }; 115 };
122}; 116};
123 117
118&omap3_pmx_core2 {
119 pinctrl-names = "default";
120 pinctrl-0 = <
121 &hsusb2_2_pins
122 >;
123
124 hsusb2_2_pins: pinmux_hsusb2_2_pins {
125 pinctrl-single,pins = <
126 OMAP3430_CORE2_IOPAD(0x25f0, PIN_OUTPUT | MUX_MODE3) /* etk_d10.hsusb2_clk */
127 OMAP3430_CORE2_IOPAD(0x25f2, PIN_OUTPUT | MUX_MODE3) /* etk_d11.hsusb2_stp */
128 OMAP3430_CORE2_IOPAD(0x25f4, PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d12.hsusb2_dir */
129 OMAP3430_CORE2_IOPAD(0x25f6, PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d13.hsusb2_nxt */
130 OMAP3430_CORE2_IOPAD(0x25f8, PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d14.hsusb2_data0 */
131 OMAP3430_CORE2_IOPAD(0x25fa, PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d15.hsusb2_data1 */
132 >;
133 };
134};
135
124&i2c1 { 136&i2c1 {
125 clock-frequency = <2600000>; 137 clock-frequency = <2600000>;
126 138
diff --git a/arch/arm/boot/dts/omap3-cm-t3730.dts b/arch/arm/boot/dts/omap3-cm-t3730.dts
new file mode 100644
index 000000000000..486f4d6c4219
--- /dev/null
+++ b/arch/arm/boot/dts/omap3-cm-t3730.dts
@@ -0,0 +1,104 @@
1/*
2 * Support for CompuLab CM-T3730
3 */
4/dts-v1/;
5
6#include "omap36xx.dtsi"
7#include "omap3-cm-t3x30.dtsi"
8
9/ {
10 model = "CompuLab CM-T3730";
11 compatible = "compulab,omap3-cm-t3730", "ti,omap36xx", "ti,omap3";
12
13 wl12xx_vmmc2: wl12xx_vmmc2 {
14 compatible = "regulator-fixed";
15 regulator-name = "vw1271";
16 pinctrl-names = "default";
17 pinctrl-0 = <&wl12xx_gpio>;
18 regulator-min-microvolt = <1800000>;
19 regulator-max-microvolt = <1800000>;
20 gpio = <&gpio3 9 GPIO_ACTIVE_HIGH>; /* gpio73 */
21 startup-delay-us = <20000>;
22 enable-active-high;
23 };
24
25 wl12xx_vaux2: wl12xx_vaux2 {
26 compatible = "regulator-fixed";
27 regulator-name = "vwl1271_vaux2";
28 regulator-min-microvolt = <1800000>;
29 regulator-max-microvolt = <1800000>;
30 vin-supply = <&vaux2>;
31 };
32};
33
34&omap3_pmx_core {
35 mmc1_pins: pinmux_mmc1_pins {
36 pinctrl-single,pins = <
37 0x114 (PIN_OUTPUT_PULLUP | MUX_MODE0) /* sdmmc1_clk.sdmmc1_clk */
38 0x116 (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_cmd.sdmmc1_cmd */
39 0x118 (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat0.sdmmc1_dat0 */
40 0x11a (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat1.sdmmc1_dat1 */
41 0x11c (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat2.sdmmc1_dat2 */
42 0x11e (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat3.sdmmc1_dat3 */
43 >;
44 };
45
46 mmc2_pins: pinmux_mmc2_pins {
47 pinctrl-single,pins = <
48 0x128 (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_clk.sdmmc2_clk */
49 0x12a (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_cmd.sdmmc2_cmd */
50 0x12c (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat0.sdmmc2_dat0 */
51 0x12e (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat1.sdmmc2_dat1 */
52 0x130 (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat2.sdmmc2_dat2 */
53 0x132 (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat3.sdmmc2_dat3 */
54 >;
55 };
56
57 smsc1_pins: pinmux_smsc1_pins {
58 pinctrl-single,pins = <
59 0x88 (PIN_OUTPUT | MUX_MODE0) /* gpmc_ncs5.gpmc_ncs5 */
60 0x16a (PIN_INPUT_PULLUP | MUX_MODE4) /* uart3_cts_rctx.gpio_163 */
61 >;
62 };
63
64 uart3_pins: pinmux_uart3_pins {
65 pinctrl-single,pins = <
66 0x16e (PIN_INPUT | MUX_MODE0) /* uart3_rx_irrx.uart3_rx_irrx */
67 0x170 (PIN_OUTPUT | MUX_MODE0) /* uart3_tx_irtx.uart3_tx_irtx */
68 >;
69 };
70
71 wl12xx_gpio: pinmux_wl12xx_gpio {
72 pinctrl-single,pins = <
73 0xb2 (PIN_OUTPUT | MUX_MODE4) /* dss_data3.gpio_73 */
74 0x134 (PIN_INPUT | MUX_MODE4) /* sdmmc2_dat4.gpio_136 */
75 >;
76 };
77};
78
79&mmc1 {
80 vmmc-supply = <&vmmc1>;
81 bus-width = <4>;
82 pinctrl-names = "default";
83 pinctrl-0 = <&mmc1_pins>;
84};
85
86&mmc2 {
87 pinctrl-names = "default";
88 pinctrl-0 = <&mmc2_pins>;
89 vmmc-supply = <&wl12xx_vmmc2>;
90 vmmc_aux-supply = <&wl12xx_vaux2>;
91 non-removable;
92 bus-width = <4>;
93 cap-power-off-card;
94};
95
96&smsc1 {
97 pinctrl-names = "default";
98 pinctrl-0 = <&smsc1_pins>;
99};
100
101&uart3 {
102 pinctrl-names = "default";
103 pinctrl-0 = <&uart3_pins>;
104};
diff --git a/arch/arm/boot/dts/omap3-cm-t3x30.dtsi b/arch/arm/boot/dts/omap3-cm-t3x30.dtsi
new file mode 100644
index 000000000000..3a9f004d8924
--- /dev/null
+++ b/arch/arm/boot/dts/omap3-cm-t3x30.dtsi
@@ -0,0 +1,95 @@
1/*
2 * Common support for CompuLab CM-T3530 and CM-T3730
3 */
4
5/ {
6 memory {
7 device_type = "memory";
8 reg = <0x80000000 0x10000000>; /* 256 MB */
9 };
10
11 cpus {
12 cpu@0 {
13 cpu0-supply = <&vcc>;
14 };
15 };
16
17 leds {
18 compatible = "gpio-leds";
19 ledb {
20 label = "cm-t35:green";
21 gpios = <&gpio6 26 GPIO_ACTIVE_HIGH>; /* gpio186 */
22 linux,default-trigger = "heartbeat";
23 };
24 };
25
26 vddvario: regulator-vddvario {
27 compatible = "regulator-fixed";
28 regulator-name = "vddvario";
29 regulator-always-on;
30 };
31
32 vdd33a: regulator-vdd33a {
33 compatible = "regulator-fixed";
34 regulator-name = "vdd33a";
35 regulator-always-on;
36 };
37};
38
39&gpmc {
40 ranges = <5 0 0x2c000000 0x01000000>;
41
42 smsc1: ethernet@5,0 {
43 compatible = "smsc,lan9221", "smsc,lan9115";
44 interrupt-parent = <&gpio6>;
45 interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
46 reg = <5 0 0xff>;
47 bank-width = <2>;
48 gpmc,mux-add-data;
49 gpmc,cs-on-ns = <0>;
50 gpmc,cs-rd-off-ns = <186>;
51 gpmc,cs-wr-off-ns = <186>;
52 gpmc,adv-on-ns = <12>;
53 gpmc,adv-rd-off-ns = <48>;
54 gpmc,adv-wr-off-ns = <48>;
55 gpmc,oe-on-ns = <54>;
56 gpmc,oe-off-ns = <168>;
57 gpmc,we-on-ns = <54>;
58 gpmc,we-off-ns = <168>;
59 gpmc,rd-cycle-ns = <186>;
60 gpmc,wr-cycle-ns = <186>;
61 gpmc,access-ns = <114>;
62 gpmc,page-burst-access-ns = <6>;
63 gpmc,bus-turnaround-ns = <12>;
64 gpmc,cycle2cycle-delay-ns = <18>;
65 gpmc,wr-data-mux-bus-ns = <90>;
66 gpmc,wr-access-ns = <186>;
67 gpmc,cycle2cycle-samecsen;
68 gpmc,cycle2cycle-diffcsen;
69 vddvario-supply = <&vddvario>;
70 vdd33a-supply = <&vdd33a>;
71 reg-io-width = <4>;
72 smsc,save-mac-address;
73 };
74};
75
76&i2c1 {
77 clock-frequency = <400000>;
78
79 twl: twl@48 {
80 reg = <0x48>;
81 interrupts = <7>; /* SYS_NIRQ cascaded to intc */
82 interrupt-parent = <&intc>;
83 };
84};
85
86#include "twl4030.dtsi"
87#include "twl4030_omap3.dtsi"
88
89&i2c3 {
90 clock-frequency = <400000>;
91};
92
93&twl_gpio {
94 ti,use-leds;
95};
diff --git a/arch/arm/boot/dts/omap3-igep.dtsi b/arch/arm/boot/dts/omap3-igep.dtsi
index 165aaf7591ba..c17009323520 100644
--- a/arch/arm/boot/dts/omap3-igep.dtsi
+++ b/arch/arm/boot/dts/omap3-igep.dtsi
@@ -133,8 +133,6 @@
133 0x194 (PIN_INPUT | MUX_MODE0) /* i2c3_sda.i2c3_sda */ 133 0x194 (PIN_INPUT | MUX_MODE0) /* i2c3_sda.i2c3_sda */
134 >; 134 >;
135 }; 135 };
136
137 leds_pins: pinmux_leds_pins { };
138}; 136};
139 137
140&i2c1 { 138&i2c1 {
diff --git a/arch/arm/boot/dts/omap3-igep0020.dts b/arch/arm/boot/dts/omap3-igep0020.dts
index 1c7e74d2d2bc..25a2b5f652fd 100644
--- a/arch/arm/boot/dts/omap3-igep0020.dts
+++ b/arch/arm/boot/dts/omap3-igep0020.dts
@@ -66,28 +66,10 @@
66&omap3_pmx_core { 66&omap3_pmx_core {
67 pinctrl-names = "default"; 67 pinctrl-names = "default";
68 pinctrl-0 = < 68 pinctrl-0 = <
69 &hsusbb1_pins
70 &tfp410_pins 69 &tfp410_pins
71 &dss_pins 70 &dss_pins
72 >; 71 >;
73 72
74 hsusbb1_pins: pinmux_hsusbb1_pins {
75 pinctrl-single,pins = <
76 0x5aa (PIN_OUTPUT | MUX_MODE3) /* etk_ctl.hsusb1_clk */
77 0x5a8 (PIN_OUTPUT | MUX_MODE3) /* etk_clk.hsusb1_stp */
78 0x5bc (PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d8.hsusb1_dir */
79 0x5be (PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d9.hsusb1_nxt */
80 0x5ac (PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d0.hsusb1_data0 */
81 0x5ae (PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d1.hsusb1_data1 */
82 0x5b0 (PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d2.hsusb1_data2 */
83 0x5b2 (PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d3.hsusb1_data7 */
84 0x5b4 (PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d4.hsusb1_data4 */
85 0x5b6 (PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d5.hsusb1_data5 */
86 0x5b8 (PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d6.hsusb1_data6 */
87 0x5ba (PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d7.hsusb1_data3 */
88 >;
89 };
90
91 tfp410_pins: tfp410_dvi_pins { 73 tfp410_pins: tfp410_dvi_pins {
92 pinctrl-single,pins = < 74 pinctrl-single,pins = <
93 0x196 (PIN_OUTPUT | MUX_MODE4) /* hdq_sio.gpio_170 */ 75 0x196 (PIN_OUTPUT | MUX_MODE4) /* hdq_sio.gpio_170 */
@@ -128,12 +110,36 @@
128 }; 110 };
129}; 111};
130 112
131&leds_pins { 113&omap3_pmx_core2 {
132 pinctrl-single,pins = < 114 pinctrl-names = "default";
133 0x5c4 (PIN_OUTPUT | MUX_MODE4) /* etk_d12.gpio_26 */ 115 pinctrl-0 = <
134 0x5c6 (PIN_OUTPUT | MUX_MODE4) /* etk_d13.gpio_27 */ 116 &hsusbb1_pins
135 0x5c8 (PIN_OUTPUT | MUX_MODE4) /* etk_d14.gpio_28 */
136 >; 117 >;
118
119 hsusbb1_pins: pinmux_hsusbb1_pins {
120 pinctrl-single,pins = <
121 OMAP3630_CORE2_IOPAD(0x25da, PIN_OUTPUT | MUX_MODE3) /* etk_ctl.hsusb1_clk */
122 OMAP3630_CORE2_IOPAD(0x25d8, PIN_OUTPUT | MUX_MODE3) /* etk_clk.hsusb1_stp */
123 OMAP3630_CORE2_IOPAD(0x25ec, PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d8.hsusb1_dir */
124 OMAP3630_CORE2_IOPAD(0x25ee, PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d9.hsusb1_nxt */
125 OMAP3630_CORE2_IOPAD(0x25dc, PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d0.hsusb1_data0 */
126 OMAP3630_CORE2_IOPAD(0x25de, PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d1.hsusb1_data1 */
127 OMAP3630_CORE2_IOPAD(0x25e0, PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d2.hsusb1_data2 */
128 OMAP3630_CORE2_IOPAD(0x25e2, PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d3.hsusb1_data7 */
129 OMAP3630_CORE2_IOPAD(0x25e4, PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d4.hsusb1_data4 */
130 OMAP3630_CORE2_IOPAD(0x25e6, PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d5.hsusb1_data5 */
131 OMAP3630_CORE2_IOPAD(0x25e8, PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d6.hsusb1_data6 */
132 OMAP3630_CORE2_IOPAD(0x25ea, PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d7.hsusb1_data3 */
133 >;
134 };
135
136 leds_pins: pinmux_leds_pins {
137 pinctrl-single,pins = <
138 OMAP3630_CORE2_IOPAD(0x25f4, PIN_OUTPUT | MUX_MODE4) /* etk_d12.gpio_26 */
139 OMAP3630_CORE2_IOPAD(0x25f6, PIN_OUTPUT | MUX_MODE4) /* etk_d13.gpio_27 */
140 OMAP3630_CORE2_IOPAD(0x25f8, PIN_OUTPUT | MUX_MODE4) /* etk_d14.gpio_28 */
141 >;
142 };
137}; 143};
138 144
139&i2c3 { 145&i2c3 {
diff --git a/arch/arm/boot/dts/omap3-igep0030.dts b/arch/arm/boot/dts/omap3-igep0030.dts
index 02a23f8a3384..145c58cfc8ac 100644
--- a/arch/arm/boot/dts/omap3-igep0030.dts
+++ b/arch/arm/boot/dts/omap3-igep0030.dts
@@ -46,10 +46,12 @@
46 }; 46 };
47}; 47};
48 48
49&leds_pins { 49&omap3_pmx_core2 {
50 pinctrl-single,pins = < 50 leds_pins: pinmux_leds_pins {
51 0x5b0 (PIN_OUTPUT | MUX_MODE4) /* etk_d2.gpio_16 */ 51 pinctrl-single,pins = <
52 >; 52 OMAP3630_CORE2_IOPAD(0x25e0, PIN_OUTPUT | MUX_MODE4) /* etk_d2.gpio_16 */
53 >;
54 };
53}; 55};
54 56
55&gpmc { 57&gpmc {
diff --git a/arch/arm/boot/dts/omap3-sb-t35.dtsi b/arch/arm/boot/dts/omap3-sb-t35.dtsi
new file mode 100644
index 000000000000..b9a2fedce7ee
--- /dev/null
+++ b/arch/arm/boot/dts/omap3-sb-t35.dtsi
@@ -0,0 +1,40 @@
1/*
2 * Common support for CompuLab SB-T35 used on SBC-T3530, SBC-T3517 and SBC-T3730
3 */
4
5&gpmc {
6 ranges = <4 0 0x2d000000 0x01000000>;
7
8 smsc2: ethernet@4,0 {
9 compatible = "smsc,lan9221", "smsc,lan9115";
10 interrupt-parent = <&gpio3>;
11 interrupts = <1 IRQ_TYPE_LEVEL_LOW>;
12 reg = <4 0 0xff>;
13 bank-width = <2>;
14 gpmc,mux-add-data;
15 gpmc,cs-on-ns = <0>;
16 gpmc,cs-rd-off-ns = <186>;
17 gpmc,cs-wr-off-ns = <186>;
18 gpmc,adv-on-ns = <12>;
19 gpmc,adv-rd-off-ns = <48>;
20 gpmc,adv-wr-off-ns = <48>;
21 gpmc,oe-on-ns = <54>;
22 gpmc,oe-off-ns = <168>;
23 gpmc,we-on-ns = <54>;
24 gpmc,we-off-ns = <168>;
25 gpmc,rd-cycle-ns = <186>;
26 gpmc,wr-cycle-ns = <186>;
27 gpmc,access-ns = <114>;
28 gpmc,page-burst-access-ns = <6>;
29 gpmc,bus-turnaround-ns = <12>;
30 gpmc,cycle2cycle-delay-ns = <18>;
31 gpmc,wr-data-mux-bus-ns = <90>;
32 gpmc,wr-access-ns = <186>;
33 gpmc,cycle2cycle-samecsen;
34 gpmc,cycle2cycle-diffcsen;
35 vddvario-supply = <&vddvario>;
36 vdd33a-supply = <&vdd33a>;
37 reg-io-width = <4>;
38 smsc,save-mac-address;
39 };
40};
diff --git a/arch/arm/boot/dts/omap3-sbc-t3730.dts b/arch/arm/boot/dts/omap3-sbc-t3730.dts
new file mode 100644
index 000000000000..c119bd545053
--- /dev/null
+++ b/arch/arm/boot/dts/omap3-sbc-t3730.dts
@@ -0,0 +1,30 @@
1/*
2 * Suppport for CompuLab SBC-T3730 with CM-T3730
3 */
4
5#include "omap3-cm-t3730.dts"
6#include "omap3-sb-t35.dtsi"
7
8/ {
9 model = "CompuLab SBC-T3730 with CM-T3730";
10 compatible = "compulab,omap3-sbc-t3730", "compulab,omap3-cm-t3730", "ti,omap36xx", "ti,omap3";
11};
12
13&gpmc {
14 ranges = <5 0 0x2c000000 0x01000000>,
15 <4 0 0x2d000000 0x01000000>;
16};
17
18&smsc2 {
19 pinctrl-names = "default";
20 pinctrl-0 = <&smsc2_pins>;
21};
22
23&omap3_pmx_core {
24 smsc2_pins: pinmux_smsc2_pins {
25 pinctrl-single,pins = <
26 0x86 (PIN_OUTPUT | MUX_MODE0) /* gpmc_ncs4.gpmc_ncs4 */
27 0xa2 (PIN_INPUT_PULLUP | MUX_MODE4) /* gpmc_wait3.gpio_65 */
28 >;
29 };
30}; \ No newline at end of file
diff --git a/arch/arm/boot/dts/omap3-zoom3.dts b/arch/arm/boot/dts/omap3-zoom3.dts
index 15eb9fe5169c..6644f516a42b 100644
--- a/arch/arm/boot/dts/omap3-zoom3.dts
+++ b/arch/arm/boot/dts/omap3-zoom3.dts
@@ -80,13 +80,8 @@
80 80
81 mmc3_pins: pinmux_mmc3_pins { 81 mmc3_pins: pinmux_mmc3_pins {
82 pinctrl-single,pins = < 82 pinctrl-single,pins = <
83 0x168 (PIN_INPUT | MUX_MODE4) /* mcbsp1_clkx.gpio_162 WLAN IRQ */ 83 OMAP3_CORE1_IOPAD(0x2198, PIN_INPUT | MUX_MODE4) /* mcbsp1_clkx.gpio_162 WLAN IRQ */
84 0x1a0 (PIN_INPUT_PULLUP | MUX_MODE3) /* mcspi1_cs1.sdmmc3_cmd */ 84 OMAP3_CORE1_IOPAD(0x21d0, PIN_INPUT_PULLUP | MUX_MODE3) /* mcspi1_cs1.sdmmc3_cmd */
85 0x5a8 (PIN_INPUT_PULLUP | MUX_MODE2) /* etk_clk.sdmmc3_clk */
86 0x5b4 (PIN_INPUT_PULLUP | MUX_MODE2) /* etk_d4.sdmmc3_dat0 */
87 0x5b6 (WAKEUP_EN | PIN_INPUT_PULLUP | MUX_MODE2) /* etk_d5.sdmmc3_dat1 */
88 0x5b8 (PIN_INPUT_PULLUP | MUX_MODE2) /* etk_d6.sdmmc3_dat2 */
89 0x5b2 (PIN_INPUT_PULLUP | MUX_MODE2) /* etk_d3.sdmmc3_dat3 */
90 >; 85 >;
91 }; 86 };
92 87
@@ -125,6 +120,18 @@
125 }; 120 };
126}; 121};
127 122
123&omap3_pmx_core2 {
124 mmc3_2_pins: pinmux_mmc3_2_pins {
125 pinctrl-single,pins = <
126 OMAP3630_CORE2_IOPAD(0x25d8, PIN_INPUT_PULLUP | MUX_MODE2) /* etk_clk.sdmmc3_clk */
127 OMAP3630_CORE2_IOPAD(0x25e4, PIN_INPUT_PULLUP | MUX_MODE2) /* etk_d4.sdmmc3_dat0 */
128 OMAP3630_CORE2_IOPAD(0x25e6, WAKEUP_EN | PIN_INPUT_PULLUP | MUX_MODE2) /* etk_d5.sdmmc3_dat1 */
129 OMAP3630_CORE2_IOPAD(0x25e8, PIN_INPUT_PULLUP | MUX_MODE2) /* etk_d6.sdmmc3_dat2 */
130 OMAP3630_CORE2_IOPAD(0x25e2, PIN_INPUT_PULLUP | MUX_MODE2) /* etk_d3.sdmmc3_dat3 */
131 >;
132 };
133};
134
128&omap3_pmx_wkup { 135&omap3_pmx_wkup {
129 wlan_host_wkup: pinmux_wlan_host_wkup_pins { 136 wlan_host_wkup: pinmux_wlan_host_wkup_pins {
130 pinctrl-single,pins = < 137 pinctrl-single,pins = <
@@ -187,7 +194,7 @@
187 bus-width = <4>; 194 bus-width = <4>;
188 cap-power-off-card; 195 cap-power-off-card;
189 pinctrl-names = "default"; 196 pinctrl-names = "default";
190 pinctrl-0 = <&mmc3_pins>; 197 pinctrl-0 = <&mmc3_pins &mmc3_2_pins>;
191}; 198};
192 199
193&uart1 { 200&uart1 {
diff --git a/arch/arm/boot/dts/omap3.dtsi b/arch/arm/boot/dts/omap3.dtsi
index daabf99d402a..427395c083f5 100644
--- a/arch/arm/boot/dts/omap3.dtsi
+++ b/arch/arm/boot/dts/omap3.dtsi
@@ -117,7 +117,7 @@
117 117
118 omap3_pmx_core: pinmux@48002030 { 118 omap3_pmx_core: pinmux@48002030 {
119 compatible = "ti,omap3-padconf", "pinctrl-single"; 119 compatible = "ti,omap3-padconf", "pinctrl-single";
120 reg = <0x48002030 0x05cc>; 120 reg = <0x48002030 0x0238>;
121 #address-cells = <1>; 121 #address-cells = <1>;
122 #size-cells = <0>; 122 #size-cells = <0>;
123 #interrupt-cells = <1>; 123 #interrupt-cells = <1>;
diff --git a/arch/arm/boot/dts/omap34xx.dtsi b/arch/arm/boot/dts/omap34xx.dtsi
index 5355d6173748..77d124678c95 100644
--- a/arch/arm/boot/dts/omap34xx.dtsi
+++ b/arch/arm/boot/dts/omap34xx.dtsi
@@ -25,4 +25,17 @@
25 clock-latency = <300000>; /* From legacy driver */ 25 clock-latency = <300000>; /* From legacy driver */
26 }; 26 };
27 }; 27 };
28
29 ocp {
30 omap3_pmx_core2: pinmux@480025d8 {
31 compatible = "ti,omap3-padconf", "pinctrl-single";
32 reg = <0x480025d8 0x24>;
33 #address-cells = <1>;
34 #size-cells = <0>;
35 #interrupt-cells = <1>;
36 interrupt-controller;
37 pinctrl-single,register-width = <16>;
38 pinctrl-single,function-mask = <0xff1f>;
39 };
40 };
28}; 41};
diff --git a/arch/arm/boot/dts/omap36xx.dtsi b/arch/arm/boot/dts/omap36xx.dtsi
index 380c22eb468e..b7c7bd96c404 100644
--- a/arch/arm/boot/dts/omap36xx.dtsi
+++ b/arch/arm/boot/dts/omap36xx.dtsi
@@ -38,5 +38,16 @@
38 ti,hwmods = "uart4"; 38 ti,hwmods = "uart4";
39 clock-frequency = <48000000>; 39 clock-frequency = <48000000>;
40 }; 40 };
41
42 omap3_pmx_core2: pinmux@480025a0 {
43 compatible = "ti,omap3-padconf", "pinctrl-single";
44 reg = <0x480025a0 0x5c>;
45 #address-cells = <1>;
46 #size-cells = <0>;
47 #interrupt-cells = <1>;
48 interrupt-controller;
49 pinctrl-single,register-width = <16>;
50 pinctrl-single,function-mask = <0xff1f>;
51 };
41 }; 52 };
42}; 53};
diff --git a/arch/arm/mach-omap2/pdata-quirks.c b/arch/arm/mach-omap2/pdata-quirks.c
index 5aaf720211f4..3d5b24dcd9a4 100644
--- a/arch/arm/mach-omap2/pdata-quirks.c
+++ b/arch/arm/mach-omap2/pdata-quirks.c
@@ -92,6 +92,33 @@ static void __init hsmmc2_internal_input_clk(void)
92 omap_ctrl_writel(reg, OMAP343X_CONTROL_DEVCONF1); 92 omap_ctrl_writel(reg, OMAP343X_CONTROL_DEVCONF1);
93} 93}
94 94
95static int omap3_sbc_t3730_twl_callback(struct device *dev,
96 unsigned gpio,
97 unsigned ngpio)
98{
99 int res;
100
101 res = gpio_request_one(gpio + 2, GPIOF_OUT_INIT_HIGH,
102 "wlan rst");
103 if (res)
104 return res;
105
106 gpio_export(gpio, 0);
107
108 return 0;
109}
110
111static void __init omap3_sbc_t3730_twl_init(void)
112{
113 twl_gpio_auxdata.setup = omap3_sbc_t3730_twl_callback;
114}
115
116static void __init omap3_sbc_t3730_legacy_init(void)
117{
118 legacy_init_wl12xx(WL12XX_REFCLOCK_38, 0, 136);
119 omap_ads7846_init(1, 57, 0, NULL);
120}
121
95static void __init omap3_igep0020_legacy_init(void) 122static void __init omap3_igep0020_legacy_init(void)
96{ 123{
97 omap3_igep2_display_init_of(); 124 omap3_igep2_display_init_of();
@@ -200,6 +227,9 @@ static struct pdata_init auxdata_quirks[] __initdata = {
200 { "nokia,n810", omap2420_n8x0_legacy_init, }, 227 { "nokia,n810", omap2420_n8x0_legacy_init, },
201 { "nokia,n810-wimax", omap2420_n8x0_legacy_init, }, 228 { "nokia,n810-wimax", omap2420_n8x0_legacy_init, },
202#endif 229#endif
230#ifdef CONFIG_ARCH_OMAP3
231 { "compulab,omap3-sbc-t3730", omap3_sbc_t3730_twl_init, },
232#endif
203 { /* sentinel */ }, 233 { /* sentinel */ },
204}; 234};
205 235
@@ -228,6 +258,7 @@ struct of_dev_auxdata omap_auxdata_lookup[] __initdata = {
228 */ 258 */
229static struct pdata_init pdata_quirks[] __initdata = { 259static struct pdata_init pdata_quirks[] __initdata = {
230#ifdef CONFIG_ARCH_OMAP3 260#ifdef CONFIG_ARCH_OMAP3
261 { "compulab,omap3-sbc-t3730", omap3_sbc_t3730_legacy_init, },
231 { "nokia,omap3-n900", hsmmc2_internal_input_clk, }, 262 { "nokia,omap3-n900", hsmmc2_internal_input_clk, },
232 { "nokia,omap3-n9", hsmmc2_internal_input_clk, }, 263 { "nokia,omap3-n9", hsmmc2_internal_input_clk, },
233 { "nokia,omap3-n950", hsmmc2_internal_input_clk, }, 264 { "nokia,omap3-n950", hsmmc2_internal_input_clk, },