aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArnd Bergmann <arnd@arndb.de>2014-03-17 10:08:59 -0400
committerArnd Bergmann <arnd@arndb.de>2014-03-17 10:08:59 -0400
commita38f8913da6bf30e7ef46f8d07b6344860bc4604 (patch)
tree7d0032e035845e9f96e612716521176d5f84e148
parent542798cdd500614feba234ed602777eae33edbb8 (diff)
parentca5d04d90825a3f3f2fc1aaba09953a55564e0e8 (diff)
Merge tag 'sunxi-dt-for-3.15-2' of https://github.com/mripard/linux into next/dt
Pull "Allwinner DT additions for 3.15, take 2" from Maxime Ripard: - Two new boards: INet 97F Rev 02 and A10-OLinuXino-LIME - Addition of the I2C for the A31 - Addition USB Host mode for the A10, A10s, A13 and A20 - Addition of SATA support for the A10 and A20 - Change of compatible for the watchdog * tag 'sunxi-dt-for-3.15-2' of https://github.com/mripard/linux: (23 commits) ARM: sunxi: dt: Update the watchdog compatibles ARM: sun6i: colombus: Enable the I2C controllers ARM: sun6i: Enable the I2C muxing options ARM: sun6i: Enable the I2C controllers ARM: sun4i: dt: Add support for the INet-97F_Rev_02 board ARM: sun4i: dt: Add support for the A10-OLinuXino-LIME board ARM: sun7i: dt: Add USB host nodes to a20-olinuxino-micro dts ARM: sun7i: dt: Add USB host nodes to cubieboard2 dts ARM: sun7i: dt: Add USB host nodes to cubietruck dts ARM: sun5i: dt: Add USB host nodes to a13-olinuxino-micro ARM: sun5i: dt: Add USB host nodes to a10s-olinuxino-micro ARM: sun5i: dt: Add USB host nodes to A13-Olinuxino ARM: sun4i: dt: Add USB host nodes to pcduino.dts ARM: sun4i: dt: Add USB host nodes to mini-xplus dts ARM: sun4i: dt: Add USB host nodes to hackberry dts ARM: sun4i: dt: Add USB host nodes to cubieboard dts ARM: sun4i: dt: Add USB host nodes to Mele A1000 dts ARM: sun7i: dt: Add USB host bindings ARM: sun5i: dt: Add USB host bindings ARM: sun4i: dt: Add USB host bindings ... Signed-off-by: Arnd Bergmann <arnd@arndb.de>
-rw-r--r--arch/arm/boot/dts/Makefile2
-rw-r--r--arch/arm/boot/dts/sun4i-a10-a1000.dts35
-rw-r--r--arch/arm/boot/dts/sun4i-a10-cubieboard.dts40
-rw-r--r--arch/arm/boot/dts/sun4i-a10-hackberry.dts40
-rw-r--r--arch/arm/boot/dts/sun4i-a10-inet97fv2.dts69
-rw-r--r--arch/arm/boot/dts/sun4i-a10-mini-xplus.dts31
-rw-r--r--arch/arm/boot/dts/sun4i-a10-olinuxino-lime.dts111
-rw-r--r--arch/arm/boot/dts/sun4i-a10-pcduino.dts31
-rw-r--r--arch/arm/boot/dts/sun4i-a10.dtsi62
-rw-r--r--arch/arm/boot/dts/sun5i-a10s-olinuxino-micro.dts27
-rw-r--r--arch/arm/boot/dts/sun5i-a10s.dtsi34
-rw-r--r--arch/arm/boot/dts/sun5i-a13-olinuxino-micro.dts27
-rw-r--r--arch/arm/boot/dts/sun5i-a13-olinuxino.dts27
-rw-r--r--arch/arm/boot/dts/sun5i-a13.dtsi34
-rw-r--r--arch/arm/boot/dts/sun6i-a31-colombus.dts18
-rw-r--r--arch/arm/boot/dts/sun6i-a31.dtsi63
-rw-r--r--arch/arm/boot/dts/sun7i-a20-cubieboard2.dts40
-rw-r--r--arch/arm/boot/dts/sun7i-a20-cubietruck.dts49
-rw-r--r--arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts40
-rw-r--r--arch/arm/boot/dts/sun7i-a20.dtsi62
-rw-r--r--arch/arm/boot/dts/sunxi-common-regulators.dtsi75
21 files changed, 912 insertions, 5 deletions
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index 9dfc2d44baaf..102bdc694286 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -325,6 +325,8 @@ dtb-$(CONFIG_ARCH_SUNXI) += \
325 sun4i-a10-cubieboard.dtb \ 325 sun4i-a10-cubieboard.dtb \
326 sun4i-a10-mini-xplus.dtb \ 326 sun4i-a10-mini-xplus.dtb \
327 sun4i-a10-hackberry.dtb \ 327 sun4i-a10-hackberry.dtb \
328 sun4i-a10-inet97fv2.dtb \
329 sun4i-a10-olinuxino-lime.dtb \
328 sun4i-a10-pcduino.dtb \ 330 sun4i-a10-pcduino.dtb \
329 sun5i-a10s-olinuxino-micro.dtb \ 331 sun5i-a10s-olinuxino-micro.dtb \
330 sun5i-a13-olinuxino.dtb \ 332 sun5i-a13-olinuxino.dtb \
diff --git a/arch/arm/boot/dts/sun4i-a10-a1000.dts b/arch/arm/boot/dts/sun4i-a10-a1000.dts
index cbd2e135bc09..fa746aea5e66 100644
--- a/arch/arm/boot/dts/sun4i-a10-a1000.dts
+++ b/arch/arm/boot/dts/sun4i-a10-a1000.dts
@@ -13,6 +13,7 @@
13 13
14/dts-v1/; 14/dts-v1/;
15/include/ "sun4i-a10.dtsi" 15/include/ "sun4i-a10.dtsi"
16/include/ "sunxi-common-regulators.dtsi"
16 17
17/ { 18/ {
18 model = "Mele A1000"; 19 model = "Mele A1000";
@@ -35,6 +36,32 @@
35 }; 36 };
36 }; 37 };
37 38
39 usbphy: phy@01c13400 {
40 usb1_vbus-supply = <&reg_usb1_vbus>;
41 usb2_vbus-supply = <&reg_usb2_vbus>;
42 status = "okay";
43 };
44
45 ehci0: usb@01c14000 {
46 status = "okay";
47 };
48
49 ohci0: usb@01c14400 {
50 status = "okay";
51 };
52
53 ahci: sata@01c18000 {
54 status = "okay";
55 };
56
57 ehci1: usb@01c1c000 {
58 status = "okay";
59 };
60
61 ohci1: usb@01c1c400 {
62 status = "okay";
63 };
64
38 pinctrl@01c20800 { 65 pinctrl@01c20800 {
39 emac_power_pin_a1000: emac_power_pin@0 { 66 emac_power_pin_a1000: emac_power_pin@0 {
40 allwinner,pins = "PH15"; 67 allwinner,pins = "PH15";
@@ -90,4 +117,12 @@
90 enable-active-high; 117 enable-active-high;
91 gpio = <&pio 7 15 0>; 118 gpio = <&pio 7 15 0>;
92 }; 119 };
120
121 reg_usb1_vbus: usb1-vbus {
122 status = "okay";
123 };
124
125 reg_usb2_vbus: usb2-vbus {
126 status = "okay";
127 };
93}; 128};
diff --git a/arch/arm/boot/dts/sun4i-a10-cubieboard.dts b/arch/arm/boot/dts/sun4i-a10-cubieboard.dts
index b139ee6bcf99..4684cbe6843b 100644
--- a/arch/arm/boot/dts/sun4i-a10-cubieboard.dts
+++ b/arch/arm/boot/dts/sun4i-a10-cubieboard.dts
@@ -12,6 +12,7 @@
12 12
13/dts-v1/; 13/dts-v1/;
14/include/ "sun4i-a10.dtsi" 14/include/ "sun4i-a10.dtsi"
15/include/ "sunxi-common-regulators.dtsi"
15 16
16/ { 17/ {
17 model = "Cubietech Cubieboard"; 18 model = "Cubietech Cubieboard";
@@ -33,6 +34,33 @@
33 }; 34 };
34 }; 35 };
35 36
37 usbphy: phy@01c13400 {
38 usb1_vbus-supply = <&reg_usb1_vbus>;
39 usb2_vbus-supply = <&reg_usb2_vbus>;
40 status = "okay";
41 };
42
43 ehci0: usb@01c14000 {
44 status = "okay";
45 };
46
47 ohci0: usb@01c14400 {
48 status = "okay";
49 };
50
51 ahci: sata@01c18000 {
52 target-supply = <&reg_ahci_5v>;
53 status = "okay";
54 };
55
56 ehci1: usb@01c1c000 {
57 status = "okay";
58 };
59
60 ohci1: usb@01c1c400 {
61 status = "okay";
62 };
63
36 pinctrl@01c20800 { 64 pinctrl@01c20800 {
37 led_pins_cubieboard: led_pins@0 { 65 led_pins_cubieboard: led_pins@0 {
38 allwinner,pins = "PH20", "PH21"; 66 allwinner,pins = "PH20", "PH21";
@@ -77,4 +105,16 @@
77 linux,default-trigger = "heartbeat"; 105 linux,default-trigger = "heartbeat";
78 }; 106 };
79 }; 107 };
108
109 reg_ahci_5v: ahci-5v {
110 status = "okay";
111 };
112
113 reg_usb1_vbus: usb1-vbus {
114 status = "okay";
115 };
116
117 reg_usb2_vbus: usb2-vbus {
118 status = "okay";
119 };
80}; 120};
diff --git a/arch/arm/boot/dts/sun4i-a10-hackberry.dts b/arch/arm/boot/dts/sun4i-a10-hackberry.dts
index 6692d336335d..d7c17e46ce23 100644
--- a/arch/arm/boot/dts/sun4i-a10-hackberry.dts
+++ b/arch/arm/boot/dts/sun4i-a10-hackberry.dts
@@ -13,6 +13,7 @@
13 13
14/dts-v1/; 14/dts-v1/;
15/include/ "sun4i-a10.dtsi" 15/include/ "sun4i-a10.dtsi"
16/include/ "sunxi-common-regulators.dtsi"
16 17
17/ { 18/ {
18 model = "Miniand Hackberry"; 19 model = "Miniand Hackberry";
@@ -35,6 +36,28 @@
35 }; 36 };
36 }; 37 };
37 38
39 usbphy: phy@01c13400 {
40 usb1_vbus-supply = <&reg_usb1_vbus>;
41 usb2_vbus-supply = <&reg_usb2_vbus>;
42 status = "okay";
43 };
44
45 ehci0: usb@01c14000 {
46 status = "okay";
47 };
48
49 ohci0: usb@01c14400 {
50 status = "okay";
51 };
52
53 ehci1: usb@01c1c000 {
54 status = "okay";
55 };
56
57 ohci1: usb@01c1c400 {
58 status = "okay";
59 };
60
38 pio: pinctrl@01c20800 { 61 pio: pinctrl@01c20800 {
39 pinctrl-names = "default"; 62 pinctrl-names = "default";
40 pinctrl-0 = <&hackberry_hogs>; 63 pinctrl-0 = <&hackberry_hogs>;
@@ -45,6 +68,13 @@
45 allwinner,drive = <0>; 68 allwinner,drive = <0>;
46 allwinner,pull = <0>; 69 allwinner,pull = <0>;
47 }; 70 };
71
72 usb2_vbus_pin_hackberry: usb2_vbus_pin@0 {
73 allwinner,pins = "PH12";
74 allwinner,function = "gpio_out";
75 allwinner,drive = <0>;
76 allwinner,pull = <0>;
77 };
48 }; 78 };
49 79
50 uart0: serial@01c28000 { 80 uart0: serial@01c28000 {
@@ -62,4 +92,14 @@
62 enable-active-high; 92 enable-active-high;
63 gpio = <&pio 7 19 0>; 93 gpio = <&pio 7 19 0>;
64 }; 94 };
95
96 reg_usb1_vbus: usb1-vbus {
97 status = "okay";
98 };
99
100 reg_usb2_vbus: usb2-vbus {
101 pinctrl-0 = <&usb2_vbus_pin_hackberry>;
102 gpio = <&pio 7 12 0>;
103 status = "okay";
104 };
65}; 105};
diff --git a/arch/arm/boot/dts/sun4i-a10-inet97fv2.dts b/arch/arm/boot/dts/sun4i-a10-inet97fv2.dts
new file mode 100644
index 000000000000..fe9272ee55c3
--- /dev/null
+++ b/arch/arm/boot/dts/sun4i-a10-inet97fv2.dts
@@ -0,0 +1,69 @@
1/*
2 * Copyright 2014 Open Source Support GmbH
3 *
4 * David Lanzendörfer <david.lanzendoerfer@o2s.ch>
5 *
6 * The code contained herein is licensed under the GNU General Public
7 * License. You may obtain a copy of the GNU General Public License
8 * Version 2 or later at the following locations:
9 *
10 * http://www.opensource.org/licenses/gpl-license.html
11 * http://www.gnu.org/copyleft/gpl.html
12 */
13
14/dts-v1/;
15/include/ "sun4i-a10.dtsi"
16/include/ "sunxi-common-regulators.dtsi"
17
18/ {
19 model = "INet-97F Rev 02";
20 compatible = "primux,inet97fv2", "allwinner,sun4i-a10";
21
22 aliases {
23 serial0 = &uart0;
24 };
25
26 soc@01c00000 {
27 uart0: serial@01c28000 {
28 pinctrl-names = "default";
29 pinctrl-0 = <&uart0_pins_a>;
30 status = "okay";
31 };
32
33 i2c0: i2c@01c2ac00 {
34 pinctrl-names = "default";
35 pinctrl-0 = <&i2c0_pins_a>;
36 status = "okay";
37 };
38
39 usbphy: phy@01c13400 {
40 usb1_vbus-supply = <&reg_usb1_vbus>;
41 usb2_vbus-supply = <&reg_usb2_vbus>;
42 status = "okay";
43 };
44
45 ehci0: usb@01c14000 {
46 status = "okay";
47 };
48
49 ohci0: usb@01c14400 {
50 status = "okay";
51 };
52
53 ehci1: usb@01c1c000 {
54 status = "okay";
55 };
56
57 ohci1: usb@01c1c400 {
58 status = "okay";
59 };
60 };
61
62 reg_usb1_vbus: usb1-vbus {
63 status = "okay";
64 };
65
66 reg_usb2_vbus: usb2-vbus {
67 status = "okay";
68 };
69};
diff --git a/arch/arm/boot/dts/sun4i-a10-mini-xplus.dts b/arch/arm/boot/dts/sun4i-a10-mini-xplus.dts
index 70b3323caf1a..dd84a9e313b3 100644
--- a/arch/arm/boot/dts/sun4i-a10-mini-xplus.dts
+++ b/arch/arm/boot/dts/sun4i-a10-mini-xplus.dts
@@ -13,16 +13,47 @@
13 13
14/dts-v1/; 14/dts-v1/;
15/include/ "sun4i-a10.dtsi" 15/include/ "sun4i-a10.dtsi"
16/include/ "sunxi-common-regulators.dtsi"
16 17
17/ { 18/ {
18 model = "PineRiver Mini X-Plus"; 19 model = "PineRiver Mini X-Plus";
19 compatible = "pineriver,mini-xplus", "allwinner,sun4i-a10"; 20 compatible = "pineriver,mini-xplus", "allwinner,sun4i-a10";
20 21
21 soc@01c00000 { 22 soc@01c00000 {
23 usbphy: phy@01c13400 {
24 usb1_vbus-supply = <&reg_usb1_vbus>;
25 usb2_vbus-supply = <&reg_usb2_vbus>;
26 status = "okay";
27 };
28
29 ehci0: usb@01c14000 {
30 status = "okay";
31 };
32
33 ohci0: usb@01c14400 {
34 status = "okay";
35 };
36
37 ehci1: usb@01c1c000 {
38 status = "okay";
39 };
40
41 ohci1: usb@01c1c400 {
42 status = "okay";
43 };
44
22 uart0: serial@01c28000 { 45 uart0: serial@01c28000 {
23 pinctrl-names = "default"; 46 pinctrl-names = "default";
24 pinctrl-0 = <&uart0_pins_a>; 47 pinctrl-0 = <&uart0_pins_a>;
25 status = "okay"; 48 status = "okay";
26 }; 49 };
27 }; 50 };
51
52 reg_usb1_vbus: usb1-vbus {
53 status = "okay";
54 };
55
56 reg_usb2_vbus: usb2-vbus {
57 status = "okay";
58 };
28}; 59};
diff --git a/arch/arm/boot/dts/sun4i-a10-olinuxino-lime.dts b/arch/arm/boot/dts/sun4i-a10-olinuxino-lime.dts
new file mode 100644
index 000000000000..66cf0c7cf5b7
--- /dev/null
+++ b/arch/arm/boot/dts/sun4i-a10-olinuxino-lime.dts
@@ -0,0 +1,111 @@
1/*
2 * Copyright 2014 - Hans de Goede <hdegoede@redhat.com>
3 *
4 * The code contained herein is licensed under the GNU General Public
5 * License. You may obtain a copy of the GNU General Public License
6 * Version 2 or later at the following locations:
7 *
8 * http://www.opensource.org/licenses/gpl-license.html
9 * http://www.gnu.org/copyleft/gpl.html
10 */
11
12/dts-v1/;
13/include/ "sun4i-a10.dtsi"
14/include/ "sunxi-common-regulators.dtsi"
15
16/ {
17 model = "Olimex A10-OLinuXino-LIME";
18 compatible = "olimex,a10-olinuxino-lime", "allwinner,sun4i-a10";
19
20 soc@01c00000 {
21 emac: ethernet@01c0b000 {
22 pinctrl-names = "default";
23 pinctrl-0 = <&emac_pins_a>;
24 phy = <&phy1>;
25 status = "okay";
26 };
27
28 mdio@01c0b080 {
29 status = "okay";
30
31 phy1: ethernet-phy@1 {
32 reg = <1>;
33 };
34 };
35
36 usbphy: phy@01c13400 {
37 usb1_vbus-supply = <&reg_usb1_vbus>;
38 usb2_vbus-supply = <&reg_usb2_vbus>;
39 status = "okay";
40 };
41
42 ehci0: usb@01c14000 {
43 status = "okay";
44 };
45
46 ohci0: usb@01c14400 {
47 status = "okay";
48 };
49
50 ahci: sata@01c18000 {
51 target-supply = <&reg_ahci_5v>;
52 status = "okay";
53 };
54
55 ehci1: usb@01c1c000 {
56 status = "okay";
57 };
58
59 ohci1: usb@01c1c400 {
60 status = "okay";
61 };
62
63 pinctrl@01c20800 {
64 ahci_pwr_pin_olinuxinolime: ahci_pwr_pin@1 {
65 allwinner,pins = "PC3";
66 allwinner,function = "gpio_out";
67 allwinner,drive = <0>;
68 allwinner,pull = <0>;
69 };
70
71 led_pins_olinuxinolime: led_pins@0 {
72 allwinner,pins = "PH2";
73 allwinner,function = "gpio_out";
74 allwinner,drive = <1>;
75 allwinner,pull = <0>;
76 };
77 };
78
79 uart0: serial@01c28000 {
80 pinctrl-names = "default";
81 pinctrl-0 = <&uart0_pins_a>;
82 status = "okay";
83 };
84 };
85
86 leds {
87 compatible = "gpio-leds";
88 pinctrl-names = "default";
89 pinctrl-0 = <&led_pins_olinuxinolime>;
90
91 green {
92 label = "a10-olinuxino-lime:green:usr";
93 gpios = <&pio 7 2 0>;
94 default-state = "on";
95 };
96 };
97
98 reg_ahci_5v: ahci-5v {
99 pinctrl-0 = <&ahci_pwr_pin_olinuxinolime>;
100 gpio = <&pio 2 3 0>;
101 status = "okay";
102 };
103
104 reg_usb1_vbus: usb1-vbus {
105 status = "okay";
106 };
107
108 reg_usb2_vbus: usb2-vbus {
109 status = "okay";
110 };
111};
diff --git a/arch/arm/boot/dts/sun4i-a10-pcduino.dts b/arch/arm/boot/dts/sun4i-a10-pcduino.dts
index f5692a3b80db..255b47e7019c 100644
--- a/arch/arm/boot/dts/sun4i-a10-pcduino.dts
+++ b/arch/arm/boot/dts/sun4i-a10-pcduino.dts
@@ -12,6 +12,7 @@
12 12
13/dts-v1/; 13/dts-v1/;
14/include/ "sun4i-a10.dtsi" 14/include/ "sun4i-a10.dtsi"
15/include/ "sunxi-common-regulators.dtsi"
15 16
16/ { 17/ {
17 model = "LinkSprite pcDuino"; 18 model = "LinkSprite pcDuino";
@@ -33,6 +34,28 @@
33 }; 34 };
34 }; 35 };
35 36
37 usbphy: phy@01c13400 {
38 usb1_vbus-supply = <&reg_usb1_vbus>;
39 usb2_vbus-supply = <&reg_usb2_vbus>;
40 status = "okay";
41 };
42
43 ehci0: usb@01c14000 {
44 status = "okay";
45 };
46
47 ohci0: usb@01c14400 {
48 status = "okay";
49 };
50
51 ehci1: usb@01c1c000 {
52 status = "okay";
53 };
54
55 ohci1: usb@01c1c400 {
56 status = "okay";
57 };
58
36 uart0: serial@01c28000 { 59 uart0: serial@01c28000 {
37 pinctrl-names = "default"; 60 pinctrl-names = "default";
38 pinctrl-0 = <&uart0_pins_a>; 61 pinctrl-0 = <&uart0_pins_a>;
@@ -45,4 +68,12 @@
45 status = "okay"; 68 status = "okay";
46 }; 69 };
47 }; 70 };
71
72 reg_usb1_vbus: usb1-vbus {
73 status = "okay";
74 };
75
76 reg_usb2_vbus: usb2-vbus {
77 status = "okay";
78 };
48}; 79};
diff --git a/arch/arm/boot/dts/sun4i-a10.dtsi b/arch/arm/boot/dts/sun4i-a10.dtsi
index a850482c69f1..6af23323e18c 100644
--- a/arch/arm/boot/dts/sun4i-a10.dtsi
+++ b/arch/arm/boot/dts/sun4i-a10.dtsi
@@ -377,6 +377,38 @@
377 #size-cells = <0>; 377 #size-cells = <0>;
378 }; 378 };
379 379
380 usbphy: phy@01c13400 {
381 #phy-cells = <1>;
382 compatible = "allwinner,sun4i-a10-usb-phy";
383 reg = <0x01c13400 0x10 0x01c14800 0x4 0x01c1c800 0x4>;
384 reg-names = "phy_ctrl", "pmu1", "pmu2";
385 clocks = <&usb_clk 8>;
386 clock-names = "usb_phy";
387 resets = <&usb_clk 1>, <&usb_clk 2>;
388 reset-names = "usb1_reset", "usb2_reset";
389 status = "disabled";
390 };
391
392 ehci0: usb@01c14000 {
393 compatible = "allwinner,sun4i-a10-ehci", "generic-ehci";
394 reg = <0x01c14000 0x100>;
395 interrupts = <39>;
396 clocks = <&ahb_gates 1>;
397 phys = <&usbphy 1>;
398 phy-names = "usb";
399 status = "disabled";
400 };
401
402 ohci0: usb@01c14400 {
403 compatible = "allwinner,sun4i-a10-ohci", "generic-ohci";
404 reg = <0x01c14400 0x100>;
405 interrupts = <64>;
406 clocks = <&usb_clk 6>, <&ahb_gates 2>;
407 phys = <&usbphy 1>;
408 phy-names = "usb";
409 status = "disabled";
410 };
411
380 spi2: spi@01c17000 { 412 spi2: spi@01c17000 {
381 compatible = "allwinner,sun4i-a10-spi"; 413 compatible = "allwinner,sun4i-a10-spi";
382 reg = <0x01c17000 0x1000>; 414 reg = <0x01c17000 0x1000>;
@@ -388,6 +420,34 @@
388 #size-cells = <0>; 420 #size-cells = <0>;
389 }; 421 };
390 422
423 ahci: sata@01c18000 {
424 compatible = "allwinner,sun4i-a10-ahci";
425 reg = <0x01c18000 0x1000>;
426 interrupts = <56>;
427 clocks = <&pll6 0>, <&ahb_gates 25>;
428 status = "disabled";
429 };
430
431 ehci1: usb@01c1c000 {
432 compatible = "allwinner,sun4i-a10-ehci", "generic-ehci";
433 reg = <0x01c1c000 0x100>;
434 interrupts = <40>;
435 clocks = <&ahb_gates 3>;
436 phys = <&usbphy 2>;
437 phy-names = "usb";
438 status = "disabled";
439 };
440
441 ohci1: usb@01c1c400 {
442 compatible = "allwinner,sun4i-a10-ohci", "generic-ohci";
443 reg = <0x01c1c400 0x100>;
444 interrupts = <65>;
445 clocks = <&usb_clk 7>, <&ahb_gates 4>;
446 phys = <&usbphy 2>;
447 phy-names = "usb";
448 status = "disabled";
449 };
450
391 spi3: spi@01c1f000 { 451 spi3: spi@01c1f000 {
392 compatible = "allwinner,sun4i-a10-spi"; 452 compatible = "allwinner,sun4i-a10-spi";
393 reg = <0x01c1f000 0x1000>; 453 reg = <0x01c1f000 0x1000>;
@@ -479,7 +539,7 @@
479 }; 539 };
480 540
481 wdt: watchdog@01c20c90 { 541 wdt: watchdog@01c20c90 {
482 compatible = "allwinner,sun4i-wdt"; 542 compatible = "allwinner,sun4i-a10-wdt";
483 reg = <0x01c20c90 0x10>; 543 reg = <0x01c20c90 0x10>;
484 }; 544 };
485 545
diff --git a/arch/arm/boot/dts/sun5i-a10s-olinuxino-micro.dts b/arch/arm/boot/dts/sun5i-a10s-olinuxino-micro.dts
index 3c9f8b3cd3e3..23611b71d3aa 100644
--- a/arch/arm/boot/dts/sun5i-a10s-olinuxino-micro.dts
+++ b/arch/arm/boot/dts/sun5i-a10s-olinuxino-micro.dts
@@ -13,6 +13,7 @@
13 13
14/dts-v1/; 14/dts-v1/;
15/include/ "sun5i-a10s.dtsi" 15/include/ "sun5i-a10s.dtsi"
16/include/ "sunxi-common-regulators.dtsi"
16 17
17/ { 18/ {
18 model = "Olimex A10s-Olinuxino Micro"; 19 model = "Olimex A10s-Olinuxino Micro";
@@ -34,6 +35,19 @@
34 }; 35 };
35 }; 36 };
36 37
38 usbphy: phy@01c13400 {
39 usb1_vbus-supply = <&reg_usb1_vbus>;
40 status = "okay";
41 };
42
43 ehci0: usb@01c14000 {
44 status = "okay";
45 };
46
47 ohci0: usb@01c14400 {
48 status = "okay";
49 };
50
37 pinctrl@01c20800 { 51 pinctrl@01c20800 {
38 led_pins_olinuxino: led_pins@0 { 52 led_pins_olinuxino: led_pins@0 {
39 allwinner,pins = "PE3"; 53 allwinner,pins = "PE3";
@@ -41,6 +55,13 @@
41 allwinner,drive = <1>; 55 allwinner,drive = <1>;
42 allwinner,pull = <0>; 56 allwinner,pull = <0>;
43 }; 57 };
58
59 usb1_vbus_pin_olinuxino_m: usb1_vbus_pin@0 {
60 allwinner,pins = "PB10";
61 allwinner,function = "gpio_out";
62 allwinner,drive = <0>;
63 allwinner,pull = <0>;
64 };
44 }; 65 };
45 66
46 uart0: serial@01c28000 { 67 uart0: serial@01c28000 {
@@ -98,4 +119,10 @@
98 default-state = "on"; 119 default-state = "on";
99 }; 120 };
100 }; 121 };
122
123 reg_usb1_vbus: usb1-vbus {
124 pinctrl-0 = <&usb1_vbus_pin_olinuxino_m>;
125 gpio = <&pio 1 10 0>;
126 status = "okay";
127 };
101}; 128};
diff --git a/arch/arm/boot/dts/sun5i-a10s.dtsi b/arch/arm/boot/dts/sun5i-a10s.dtsi
index a7198b615afd..8681f6c18fdc 100644
--- a/arch/arm/boot/dts/sun5i-a10s.dtsi
+++ b/arch/arm/boot/dts/sun5i-a10s.dtsi
@@ -338,6 +338,38 @@
338 #size-cells = <0>; 338 #size-cells = <0>;
339 }; 339 };
340 340
341 usbphy: phy@01c13400 {
342 #phy-cells = <1>;
343 compatible = "allwinner,sun5i-a13-usb-phy";
344 reg = <0x01c13400 0x10 0x01c14800 0x4>;
345 reg-names = "phy_ctrl", "pmu1";
346 clocks = <&usb_clk 8>;
347 clock-names = "usb_phy";
348 resets = <&usb_clk 1>;
349 reset-names = "usb1_reset";
350 status = "disabled";
351 };
352
353 ehci0: usb@01c14000 {
354 compatible = "allwinner,sun5i-a10s-ehci", "generic-ehci";
355 reg = <0x01c14000 0x100>;
356 interrupts = <39>;
357 clocks = <&ahb_gates 1>;
358 phys = <&usbphy 1>;
359 phy-names = "usb";
360 status = "disabled";
361 };
362
363 ohci0: usb@01c14400 {
364 compatible = "allwinner,sun5i-a10s-ohci", "generic-ohci";
365 reg = <0x01c14400 0x100>;
366 interrupts = <40>;
367 clocks = <&usb_clk 6>, <&ahb_gates 2>;
368 phys = <&usbphy 1>;
369 phy-names = "usb";
370 status = "disabled";
371 };
372
341 spi2: spi@01c17000 { 373 spi2: spi@01c17000 {
342 compatible = "allwinner,sun4i-a10-spi"; 374 compatible = "allwinner,sun4i-a10-spi";
343 reg = <0x01c17000 0x1000>; 375 reg = <0x01c17000 0x1000>;
@@ -429,7 +461,7 @@
429 }; 461 };
430 462
431 wdt: watchdog@01c20c90 { 463 wdt: watchdog@01c20c90 {
432 compatible = "allwinner,sun4i-wdt"; 464 compatible = "allwinner,sun4i-a10-wdt";
433 reg = <0x01c20c90 0x10>; 465 reg = <0x01c20c90 0x10>;
434 }; 466 };
435 467
diff --git a/arch/arm/boot/dts/sun5i-a13-olinuxino-micro.dts b/arch/arm/boot/dts/sun5i-a13-olinuxino-micro.dts
index fe2ce0acdb06..11169d5b5b86 100644
--- a/arch/arm/boot/dts/sun5i-a13-olinuxino-micro.dts
+++ b/arch/arm/boot/dts/sun5i-a13-olinuxino-micro.dts
@@ -14,12 +14,26 @@
14 14
15/dts-v1/; 15/dts-v1/;
16/include/ "sun5i-a13.dtsi" 16/include/ "sun5i-a13.dtsi"
17/include/ "sunxi-common-regulators.dtsi"
17 18
18/ { 19/ {
19 model = "Olimex A13-Olinuxino Micro"; 20 model = "Olimex A13-Olinuxino Micro";
20 compatible = "olimex,a13-olinuxino-micro", "allwinner,sun5i-a13"; 21 compatible = "olimex,a13-olinuxino-micro", "allwinner,sun5i-a13";
21 22
22 soc@01c00000 { 23 soc@01c00000 {
24 usbphy: phy@01c13400 {
25 usb1_vbus-supply = <&reg_usb1_vbus>;
26 status = "okay";
27 };
28
29 ehci0: usb@01c14000 {
30 status = "okay";
31 };
32
33 ohci0: usb@01c14400 {
34 status = "okay";
35 };
36
23 pinctrl@01c20800 { 37 pinctrl@01c20800 {
24 led_pins_olinuxinom: led_pins@0 { 38 led_pins_olinuxinom: led_pins@0 {
25 allwinner,pins = "PG9"; 39 allwinner,pins = "PG9";
@@ -27,6 +41,13 @@
27 allwinner,drive = <1>; 41 allwinner,drive = <1>;
28 allwinner,pull = <0>; 42 allwinner,pull = <0>;
29 }; 43 };
44
45 usb1_vbus_pin_olinuxinom: usb1_vbus_pin@0 {
46 allwinner,pins = "PG11";
47 allwinner,function = "gpio_out";
48 allwinner,drive = <0>;
49 allwinner,pull = <0>;
50 };
30 }; 51 };
31 52
32 uart1: serial@01c28400 { 53 uart1: serial@01c28400 {
@@ -65,4 +86,10 @@
65 default-state = "on"; 86 default-state = "on";
66 }; 87 };
67 }; 88 };
89
90 reg_usb1_vbus: usb1-vbus {
91 pinctrl-0 = <&usb1_vbus_pin_olinuxinom>;
92 gpio = <&pio 6 11 0>;
93 status = "okay";
94 };
68}; 95};
diff --git a/arch/arm/boot/dts/sun5i-a13-olinuxino.dts b/arch/arm/boot/dts/sun5i-a13-olinuxino.dts
index a4ba5ff010cf..7a9187bbeb28 100644
--- a/arch/arm/boot/dts/sun5i-a13-olinuxino.dts
+++ b/arch/arm/boot/dts/sun5i-a13-olinuxino.dts
@@ -13,12 +13,26 @@
13 13
14/dts-v1/; 14/dts-v1/;
15/include/ "sun5i-a13.dtsi" 15/include/ "sun5i-a13.dtsi"
16/include/ "sunxi-common-regulators.dtsi"
16 17
17/ { 18/ {
18 model = "Olimex A13-Olinuxino"; 19 model = "Olimex A13-Olinuxino";
19 compatible = "olimex,a13-olinuxino", "allwinner,sun5i-a13"; 20 compatible = "olimex,a13-olinuxino", "allwinner,sun5i-a13";
20 21
21 soc@01c00000 { 22 soc@01c00000 {
23 usbphy: phy@01c13400 {
24 usb1_vbus-supply = <&reg_usb1_vbus>;
25 status = "okay";
26 };
27
28 ehci0: usb@01c14000 {
29 status = "okay";
30 };
31
32 ohci0: usb@01c14400 {
33 status = "okay";
34 };
35
22 pinctrl@01c20800 { 36 pinctrl@01c20800 {
23 led_pins_olinuxino: led_pins@0 { 37 led_pins_olinuxino: led_pins@0 {
24 allwinner,pins = "PG9"; 38 allwinner,pins = "PG9";
@@ -26,6 +40,13 @@
26 allwinner,drive = <1>; 40 allwinner,drive = <1>;
27 allwinner,pull = <0>; 41 allwinner,pull = <0>;
28 }; 42 };
43
44 usb1_vbus_pin_olinuxino: usb1_vbus_pin@0 {
45 allwinner,pins = "PG11";
46 allwinner,function = "gpio_out";
47 allwinner,drive = <0>;
48 allwinner,pull = <0>;
49 };
29 }; 50 };
30 51
31 uart1: serial@01c28400 { 52 uart1: serial@01c28400 {
@@ -63,4 +84,10 @@
63 default-state = "on"; 84 default-state = "on";
64 }; 85 };
65 }; 86 };
87
88 reg_usb1_vbus: usb1-vbus {
89 pinctrl-0 = <&usb1_vbus_pin_olinuxino>;
90 gpio = <&pio 6 11 0>;
91 status = "okay";
92 };
66}; 93};
diff --git a/arch/arm/boot/dts/sun5i-a13.dtsi b/arch/arm/boot/dts/sun5i-a13.dtsi
index cda1d4bbe2e2..7c6bb1bde9dd 100644
--- a/arch/arm/boot/dts/sun5i-a13.dtsi
+++ b/arch/arm/boot/dts/sun5i-a13.dtsi
@@ -320,6 +320,38 @@
320 #size-cells = <0>; 320 #size-cells = <0>;
321 }; 321 };
322 322
323 usbphy: phy@01c13400 {
324 #phy-cells = <1>;
325 compatible = "allwinner,sun5i-a13-usb-phy";
326 reg = <0x01c13400 0x10 0x01c14800 0x4>;
327 reg-names = "phy_ctrl", "pmu1";
328 clocks = <&usb_clk 8>;
329 clock-names = "usb_phy";
330 resets = <&usb_clk 1>;
331 reset-names = "usb1_reset";
332 status = "disabled";
333 };
334
335 ehci0: usb@01c14000 {
336 compatible = "allwinner,sun5i-a13-ehci", "generic-ehci";
337 reg = <0x01c14000 0x100>;
338 interrupts = <39>;
339 clocks = <&ahb_gates 1>;
340 phys = <&usbphy 1>;
341 phy-names = "usb";
342 status = "disabled";
343 };
344
345 ohci0: usb@01c14400 {
346 compatible = "allwinner,sun5i-a13-ohci", "generic-ohci";
347 reg = <0x01c14400 0x100>;
348 interrupts = <40>;
349 clocks = <&usb_clk 6>, <&ahb_gates 2>;
350 phys = <&usbphy 1>;
351 phy-names = "usb";
352 status = "disabled";
353 };
354
323 spi2: spi@01c17000 { 355 spi2: spi@01c17000 {
324 compatible = "allwinner,sun4i-a10-spi"; 356 compatible = "allwinner,sun4i-a10-spi";
325 reg = <0x01c17000 0x1000>; 357 reg = <0x01c17000 0x1000>;
@@ -393,7 +425,7 @@
393 }; 425 };
394 426
395 wdt: watchdog@01c20c90 { 427 wdt: watchdog@01c20c90 {
396 compatible = "allwinner,sun4i-wdt"; 428 compatible = "allwinner,sun4i-a10-wdt";
397 reg = <0x01c20c90 0x10>; 429 reg = <0x01c20c90 0x10>;
398 }; 430 };
399 431
diff --git a/arch/arm/boot/dts/sun6i-a31-colombus.dts b/arch/arm/boot/dts/sun6i-a31-colombus.dts
index e5adae30899b..3898a7bce831 100644
--- a/arch/arm/boot/dts/sun6i-a31-colombus.dts
+++ b/arch/arm/boot/dts/sun6i-a31-colombus.dts
@@ -28,5 +28,23 @@
28 pinctrl-0 = <&uart0_pins_a>; 28 pinctrl-0 = <&uart0_pins_a>;
29 status = "okay"; 29 status = "okay";
30 }; 30 };
31
32 i2c0: i2c@01c2ac00 {
33 pinctrl-names = "default";
34 pinctrl-0 = <&i2c0_pins_a>;
35 status = "fail";
36 };
37
38 i2c1: i2c@01c2b000 {
39 pinctrl-names = "default";
40 pinctrl-0 = <&i2c1_pins_a>;
41 status = "okay";
42 };
43
44 i2c2: i2c@01c2b400 {
45 pinctrl-names = "default";
46 pinctrl-0 = <&i2c2_pins_a>;
47 status = "okay";
48 };
31 }; 49 };
32}; 50};
diff --git a/arch/arm/boot/dts/sun6i-a31.dtsi b/arch/arm/boot/dts/sun6i-a31.dtsi
index 42f310a925c4..922864c2e1a1 100644
--- a/arch/arm/boot/dts/sun6i-a31.dtsi
+++ b/arch/arm/boot/dts/sun6i-a31.dtsi
@@ -257,6 +257,27 @@
257 allwinner,drive = <0>; 257 allwinner,drive = <0>;
258 allwinner,pull = <0>; 258 allwinner,pull = <0>;
259 }; 259 };
260
261 i2c0_pins_a: i2c0@0 {
262 allwinner,pins = "PH14", "PH15";
263 allwinner,function = "i2c0";
264 allwinner,drive = <0>;
265 allwinner,pull = <0>;
266 };
267
268 i2c1_pins_a: i2c1@0 {
269 allwinner,pins = "PH16", "PH17";
270 allwinner,function = "i2c1";
271 allwinner,drive = <0>;
272 allwinner,pull = <0>;
273 };
274
275 i2c2_pins_a: i2c2@0 {
276 allwinner,pins = "PH18", "PH19";
277 allwinner,function = "i2c2";
278 allwinner,drive = <0>;
279 allwinner,pull = <0>;
280 };
260 }; 281 };
261 282
262 ahb1_rst: reset@01c202c0 { 283 ahb1_rst: reset@01c202c0 {
@@ -289,7 +310,7 @@
289 }; 310 };
290 311
291 wdt1: watchdog@01c20ca0 { 312 wdt1: watchdog@01c20ca0 {
292 compatible = "allwinner,sun6i-wdt"; 313 compatible = "allwinner,sun6i-a31-wdt";
293 reg = <0x01c20ca0 0x20>; 314 reg = <0x01c20ca0 0x20>;
294 }; 315 };
295 316
@@ -359,6 +380,46 @@
359 status = "disabled"; 380 status = "disabled";
360 }; 381 };
361 382
383 i2c0: i2c@01c2ac00 {
384 compatible = "allwinner,sun6i-a31-i2c";
385 reg = <0x01c2ac00 0x400>;
386 interrupts = <0 6 4>;
387 clocks = <&apb2_gates 0>;
388 clock-frequency = <100000>;
389 resets = <&apb2_rst 0>;
390 status = "disabled";
391 };
392
393 i2c1: i2c@01c2b000 {
394 compatible = "allwinner,sun6i-a31-i2c";
395 reg = <0x01c2b000 0x400>;
396 interrupts = <0 7 4>;
397 clocks = <&apb2_gates 1>;
398 clock-frequency = <100000>;
399 resets = <&apb2_rst 1>;
400 status = "disabled";
401 };
402
403 i2c2: i2c@01c2b400 {
404 compatible = "allwinner,sun6i-a31-i2c";
405 reg = <0x01c2b400 0x400>;
406 interrupts = <0 8 4>;
407 clocks = <&apb2_gates 2>;
408 clock-frequency = <100000>;
409 resets = <&apb2_rst 2>;
410 status = "disabled";
411 };
412
413 i2c3: i2c@01c2b800 {
414 compatible = "allwinner,sun6i-a31-i2c";
415 reg = <0x01c2b800 0x400>;
416 interrupts = <0 9 4>;
417 clocks = <&apb2_gates 3>;
418 clock-frequency = <100000>;
419 resets = <&apb2_rst 3>;
420 status = "disabled";
421 };
422
362 spi0: spi@01c68000 { 423 spi0: spi@01c68000 {
363 compatible = "allwinner,sun6i-a31-spi"; 424 compatible = "allwinner,sun6i-a31-spi";
364 reg = <0x01c68000 0x1000>; 425 reg = <0x01c68000 0x1000>;
diff --git a/arch/arm/boot/dts/sun7i-a20-cubieboard2.dts b/arch/arm/boot/dts/sun7i-a20-cubieboard2.dts
index 7bf4935a58a9..68de89ffbdfa 100644
--- a/arch/arm/boot/dts/sun7i-a20-cubieboard2.dts
+++ b/arch/arm/boot/dts/sun7i-a20-cubieboard2.dts
@@ -13,12 +13,40 @@
13 13
14/dts-v1/; 14/dts-v1/;
15/include/ "sun7i-a20.dtsi" 15/include/ "sun7i-a20.dtsi"
16/include/ "sunxi-common-regulators.dtsi"
16 17
17/ { 18/ {
18 model = "Cubietech Cubieboard2"; 19 model = "Cubietech Cubieboard2";
19 compatible = "cubietech,cubieboard2", "allwinner,sun7i-a20"; 20 compatible = "cubietech,cubieboard2", "allwinner,sun7i-a20";
20 21
21 soc@01c00000 { 22 soc@01c00000 {
23 usbphy: phy@01c13400 {
24 usb1_vbus-supply = <&reg_usb1_vbus>;
25 usb2_vbus-supply = <&reg_usb2_vbus>;
26 status = "okay";
27 };
28
29 ehci0: usb@01c14000 {
30 status = "okay";
31 };
32
33 ohci0: usb@01c14400 {
34 status = "okay";
35 };
36
37 ahci: sata@01c18000 {
38 target-supply = <&reg_ahci_5v>;
39 status = "okay";
40 };
41
42 ehci1: usb@01c1c000 {
43 status = "okay";
44 };
45
46 ohci1: usb@01c1c400 {
47 status = "okay";
48 };
49
22 pinctrl@01c20800 { 50 pinctrl@01c20800 {
23 led_pins_cubieboard2: led_pins@0 { 51 led_pins_cubieboard2: led_pins@0 {
24 allwinner,pins = "PH20", "PH21"; 52 allwinner,pins = "PH20", "PH21";
@@ -74,4 +102,16 @@
74 gpios = <&pio 7 20 0>; 102 gpios = <&pio 7 20 0>;
75 }; 103 };
76 }; 104 };
105
106 reg_ahci_5v: ahci-5v {
107 status = "okay";
108 };
109
110 reg_usb1_vbus: usb1-vbus {
111 status = "okay";
112 };
113
114 reg_usb2_vbus: usb2-vbus {
115 status = "okay";
116 };
77}; 117};
diff --git a/arch/arm/boot/dts/sun7i-a20-cubietruck.dts b/arch/arm/boot/dts/sun7i-a20-cubietruck.dts
index 025ce5234692..cb25d3c8da58 100644
--- a/arch/arm/boot/dts/sun7i-a20-cubietruck.dts
+++ b/arch/arm/boot/dts/sun7i-a20-cubietruck.dts
@@ -13,13 +13,48 @@
13 13
14/dts-v1/; 14/dts-v1/;
15/include/ "sun7i-a20.dtsi" 15/include/ "sun7i-a20.dtsi"
16/include/ "sunxi-common-regulators.dtsi"
16 17
17/ { 18/ {
18 model = "Cubietech Cubietruck"; 19 model = "Cubietech Cubietruck";
19 compatible = "cubietech,cubietruck", "allwinner,sun7i-a20"; 20 compatible = "cubietech,cubietruck", "allwinner,sun7i-a20";
20 21
21 soc@01c00000 { 22 soc@01c00000 {
23 usbphy: phy@01c13400 {
24 usb1_vbus-supply = <&reg_usb1_vbus>;
25 usb2_vbus-supply = <&reg_usb2_vbus>;
26 status = "okay";
27 };
28
29 ehci0: usb@01c14000 {
30 status = "okay";
31 };
32
33 ohci0: usb@01c14400 {
34 status = "okay";
35 };
36
37 ahci: sata@01c18000 {
38 target-supply = <&reg_ahci_5v>;
39 status = "okay";
40 };
41
42 ehci1: usb@01c1c000 {
43 status = "okay";
44 };
45
46 ohci1: usb@01c1c400 {
47 status = "okay";
48 };
49
22 pinctrl@01c20800 { 50 pinctrl@01c20800 {
51 ahci_pwr_pin_cubietruck: ahci_pwr_pin@1 {
52 allwinner,pins = "PH12";
53 allwinner,function = "gpio_out";
54 allwinner,drive = <0>;
55 allwinner,pull = <0>;
56 };
57
23 led_pins_cubietruck: led_pins@0 { 58 led_pins_cubietruck: led_pins@0 {
24 allwinner,pins = "PH7", "PH11", "PH20", "PH21"; 59 allwinner,pins = "PH7", "PH11", "PH20", "PH21";
25 allwinner,function = "gpio_out"; 60 allwinner,function = "gpio_out";
@@ -90,4 +125,18 @@
90 gpios = <&pio 7 7 0>; 125 gpios = <&pio 7 7 0>;
91 }; 126 };
92 }; 127 };
128
129 reg_ahci_5v: ahci-5v {
130 pinctrl-0 = <&ahci_pwr_pin_cubietruck>;
131 gpio = <&pio 7 12 0>;
132 status = "okay";
133 };
134
135 reg_usb1_vbus: usb1-vbus {
136 status = "okay";
137 };
138
139 reg_usb2_vbus: usb2-vbus {
140 status = "okay";
141 };
93}; 142};
diff --git a/arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts b/arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts
index 9d98316c9928..eeadf76362fa 100644
--- a/arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts
+++ b/arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts
@@ -13,6 +13,7 @@
13 13
14/dts-v1/; 14/dts-v1/;
15/include/ "sun7i-a20.dtsi" 15/include/ "sun7i-a20.dtsi"
16/include/ "sunxi-common-regulators.dtsi"
16 17
17/ { 18/ {
18 model = "Olimex A20-Olinuxino Micro"; 19 model = "Olimex A20-Olinuxino Micro";
@@ -30,12 +31,39 @@
30 status = "okay"; 31 status = "okay";
31 }; 32 };
32 33
34 usbphy: phy@01c13400 {
35 usb1_vbus-supply = <&reg_usb1_vbus>;
36 usb2_vbus-supply = <&reg_usb2_vbus>;
37 status = "okay";
38 };
39
40 ehci0: usb@01c14000 {
41 status = "okay";
42 };
43
44 ohci0: usb@01c14400 {
45 status = "okay";
46 };
47
33 spi2: spi@01c17000 { 48 spi2: spi@01c17000 {
34 pinctrl-names = "default"; 49 pinctrl-names = "default";
35 pinctrl-0 = <&spi2_pins_a>; 50 pinctrl-0 = <&spi2_pins_a>;
36 status = "okay"; 51 status = "okay";
37 }; 52 };
38 53
54 ahci: sata@01c18000 {
55 target-supply = <&reg_ahci_5v>;
56 status = "okay";
57 };
58
59 ehci1: usb@01c1c000 {
60 status = "okay";
61 };
62
63 ohci1: usb@01c1c400 {
64 status = "okay";
65 };
66
39 pinctrl@01c20800 { 67 pinctrl@01c20800 {
40 led_pins_olinuxino: led_pins@0 { 68 led_pins_olinuxino: led_pins@0 {
41 allwinner,pins = "PH2"; 69 allwinner,pins = "PH2";
@@ -105,4 +133,16 @@
105 default-state = "on"; 133 default-state = "on";
106 }; 134 };
107 }; 135 };
136
137 reg_ahci_5v: ahci-5v {
138 status = "okay";
139 };
140
141 reg_usb1_vbus: usb1-vbus {
142 status = "okay";
143 };
144
145 reg_usb2_vbus: usb2-vbus {
146 status = "okay";
147 };
108}; 148};
diff --git a/arch/arm/boot/dts/sun7i-a20.dtsi b/arch/arm/boot/dts/sun7i-a20.dtsi
index 52507e4e3a91..dadb3812342f 100644
--- a/arch/arm/boot/dts/sun7i-a20.dtsi
+++ b/arch/arm/boot/dts/sun7i-a20.dtsi
@@ -439,6 +439,38 @@
439 #size-cells = <0>; 439 #size-cells = <0>;
440 }; 440 };
441 441
442 usbphy: phy@01c13400 {
443 #phy-cells = <1>;
444 compatible = "allwinner,sun7i-a20-usb-phy";
445 reg = <0x01c13400 0x10 0x01c14800 0x4 0x01c1c800 0x4>;
446 reg-names = "phy_ctrl", "pmu1", "pmu2";
447 clocks = <&usb_clk 8>;
448 clock-names = "usb_phy";
449 resets = <&usb_clk 1>, <&usb_clk 2>;
450 reset-names = "usb1_reset", "usb2_reset";
451 status = "disabled";
452 };
453
454 ehci0: usb@01c14000 {
455 compatible = "allwinner,sun7i-a20-ehci", "generic-ehci";
456 reg = <0x01c14000 0x100>;
457 interrupts = <0 39 4>;
458 clocks = <&ahb_gates 1>;
459 phys = <&usbphy 1>;
460 phy-names = "usb";
461 status = "disabled";
462 };
463
464 ohci0: usb@01c14400 {
465 compatible = "allwinner,sun7i-a20-ohci", "generic-ohci";
466 reg = <0x01c14400 0x100>;
467 interrupts = <0 64 4>;
468 clocks = <&usb_clk 6>, <&ahb_gates 2>;
469 phys = <&usbphy 1>;
470 phy-names = "usb";
471 status = "disabled";
472 };
473
442 spi2: spi@01c17000 { 474 spi2: spi@01c17000 {
443 compatible = "allwinner,sun4i-a10-spi"; 475 compatible = "allwinner,sun4i-a10-spi";
444 reg = <0x01c17000 0x1000>; 476 reg = <0x01c17000 0x1000>;
@@ -450,6 +482,34 @@
450 #size-cells = <0>; 482 #size-cells = <0>;
451 }; 483 };
452 484
485 ahci: sata@01c18000 {
486 compatible = "allwinner,sun4i-a10-ahci";
487 reg = <0x01c18000 0x1000>;
488 interrupts = <0 56 4>;
489 clocks = <&pll6 0>, <&ahb_gates 25>;
490 status = "disabled";
491 };
492
493 ehci1: usb@01c1c000 {
494 compatible = "allwinner,sun7i-a20-ehci", "generic-ehci";
495 reg = <0x01c1c000 0x100>;
496 interrupts = <0 40 4>;
497 clocks = <&ahb_gates 3>;
498 phys = <&usbphy 2>;
499 phy-names = "usb";
500 status = "disabled";
501 };
502
503 ohci1: usb@01c1c400 {
504 compatible = "allwinner,sun7i-a20-ohci", "generic-ohci";
505 reg = <0x01c1c400 0x100>;
506 interrupts = <0 65 4>;
507 clocks = <&usb_clk 7>, <&ahb_gates 4>;
508 phys = <&usbphy 2>;
509 phy-names = "usb";
510 status = "disabled";
511 };
512
453 spi3: spi@01c1f000 { 513 spi3: spi@01c1f000 {
454 compatible = "allwinner,sun4i-a10-spi"; 514 compatible = "allwinner,sun4i-a10-spi";
455 reg = <0x01c1f000 0x1000>; 515 reg = <0x01c1f000 0x1000>;
@@ -600,7 +660,7 @@
600 }; 660 };
601 661
602 wdt: watchdog@01c20c90 { 662 wdt: watchdog@01c20c90 {
603 compatible = "allwinner,sun4i-wdt"; 663 compatible = "allwinner,sun4i-a10-wdt";
604 reg = <0x01c20c90 0x10>; 664 reg = <0x01c20c90 0x10>;
605 }; 665 };
606 666
diff --git a/arch/arm/boot/dts/sunxi-common-regulators.dtsi b/arch/arm/boot/dts/sunxi-common-regulators.dtsi
new file mode 100644
index 000000000000..18eeac0670b9
--- /dev/null
+++ b/arch/arm/boot/dts/sunxi-common-regulators.dtsi
@@ -0,0 +1,75 @@
1/*
2 * sunxi boards common regulator (ahci target power supply, usb-vbus) code
3 *
4 * Copyright 2014 - Hans de Goede <hdegoede@redhat.com>
5 *
6 * The code contained herein is licensed under the GNU General Public
7 * License. You may obtain a copy of the GNU General Public License
8 * Version 2 or later at the following locations:
9 *
10 * http://www.opensource.org/licenses/gpl-license.html
11 * http://www.gnu.org/copyleft/gpl.html
12 */
13
14/ {
15 soc@01c00000 {
16 pio: pinctrl@01c20800 {
17 ahci_pwr_pin_a: ahci_pwr_pin@0 {
18 allwinner,pins = "PB8";
19 allwinner,function = "gpio_out";
20 allwinner,drive = <0>;
21 allwinner,pull = <0>;
22 };
23
24 usb1_vbus_pin_a: usb1_vbus_pin@0 {
25 allwinner,pins = "PH6";
26 allwinner,function = "gpio_out";
27 allwinner,drive = <0>;
28 allwinner,pull = <0>;
29 };
30
31 usb2_vbus_pin_a: usb2_vbus_pin@0 {
32 allwinner,pins = "PH3";
33 allwinner,function = "gpio_out";
34 allwinner,drive = <0>;
35 allwinner,pull = <0>;
36 };
37 };
38 };
39
40 reg_ahci_5v: ahci-5v {
41 compatible = "regulator-fixed";
42 pinctrl-names = "default";
43 pinctrl-0 = <&ahci_pwr_pin_a>;
44 regulator-name = "ahci-5v";
45 regulator-min-microvolt = <5000000>;
46 regulator-max-microvolt = <5000000>;
47 enable-active-high;
48 gpio = <&pio 1 8 0>;
49 status = "disabled";
50 };
51
52 reg_usb1_vbus: usb1-vbus {
53 compatible = "regulator-fixed";
54 pinctrl-names = "default";
55 pinctrl-0 = <&usb1_vbus_pin_a>;
56 regulator-name = "usb1-vbus";
57 regulator-min-microvolt = <5000000>;
58 regulator-max-microvolt = <5000000>;
59 enable-active-high;
60 gpio = <&pio 7 6 0>;
61 status = "disabled";
62 };
63
64 reg_usb2_vbus: usb2-vbus {
65 compatible = "regulator-fixed";
66 pinctrl-names = "default";
67 pinctrl-0 = <&usb2_vbus_pin_a>;
68 regulator-name = "usb2-vbus";
69 regulator-min-microvolt = <5000000>;
70 regulator-max-microvolt = <5000000>;
71 enable-active-high;
72 gpio = <&pio 7 3 0>;
73 status = "disabled";
74 };
75};