sunxi: initial 3.13 support
[openwrt.git] / target / linux / sunxi / patches-3.13 / 162-2-dt-sun7i-add-ahci-nodes.patch
1 From 4ce1f4c3ab04a697e9861b77582077b905b3f8a0 Mon Sep 17 00:00:00 2001
2 From: Hans de Goede <hdegoede@redhat.com>
3 Date: Fri, 3 Jan 2014 10:27:51 +0100
4 Subject: [PATCH] ARM: sun7i: dts: Add ahci / sata support
5
6 This patch adds sunxi sata support to A20 boards that have such a connector.
7 Some boards also feature a regulator via a GPIO and support for this is also
8 added.
9
10 Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
11 Signed-off-by: Hans de Goede <hdegoede@redhat.com>
12 ---
13  arch/arm/boot/dts/sun7i-a20-cubieboard2.dts     | 27 +++++++++++++++++++++++++
14  arch/arm/boot/dts/sun7i-a20-cubietruck.dts      | 27 +++++++++++++++++++++++++
15  arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts | 26 ++++++++++++++++++++++++
16  arch/arm/boot/dts/sun7i-a20.dtsi                |  9 +++++++++
17  4 files changed, 89 insertions(+)
18
19 diff --git a/arch/arm/boot/dts/sun7i-a20-cubieboard2.dts b/arch/arm/boot/dts/sun7i-a20-cubieboard2.dts
20 index 48777cd..a26711c 100644
21 --- a/arch/arm/boot/dts/sun7i-a20-cubieboard2.dts
22 +++ b/arch/arm/boot/dts/sun7i-a20-cubieboard2.dts
23 @@ -28,7 +28,19 @@
24                         status = "okay";
25                 };
26  
27 +               sata: ahci@01c18000 {
28 +                       pwr-supply = <&reg_ahci_5v>;
29 +                       status = "okay";
30 +               };
31 +
32                 pinctrl@01c20800 {
33 +                       ahci_pwr_pin_cubieboard2: ahci_pwr_pin@0 {
34 +                               allwinner,pins = "PB8";
35 +                               allwinner,function = "gpio_out";
36 +                               allwinner,drive = <0>;
37 +                               allwinner,pull = <0>;
38 +                       };
39 +
40                         mmc0_cd_pin_cubieboard2: mmc0_cd_pin@0 {
41                                 allwinner,pins = "PH1";
42                                 allwinner,function = "gpio_in";
43 @@ -86,4 +98,19 @@
44                         gpios = <&pio 7 20 0>;
45                 };
46         };
47 +
48 +       regulators {
49 +               compatible = "simple-bus";
50 +               pinctrl-names = "default";
51 +
52 +               reg_ahci_5v: ahci-5v {
53 +                       compatible = "regulator-fixed";
54 +                       regulator-name = "ahci-5v";
55 +                       regulator-min-microvolt = <5000000>;
56 +                       regulator-max-microvolt = <5000000>;
57 +                       pinctrl-0 = <&ahci_pwr_pin_cubieboard2>;
58 +                       gpio = <&pio 1 8 0>;
59 +                       enable-active-high;
60 +               };
61 +       };
62  };
63 diff --git a/arch/arm/boot/dts/sun7i-a20-cubietruck.dts b/arch/arm/boot/dts/sun7i-a20-cubietruck.dts
64 index 2684f27..a5f3418 100644
65 --- a/arch/arm/boot/dts/sun7i-a20-cubietruck.dts
66 +++ b/arch/arm/boot/dts/sun7i-a20-cubietruck.dts
67 @@ -28,6 +28,11 @@
68                         status = "okay";
69                 };
70  
71 +               sata: ahci@01c18000 {
72 +                       pwr-supply = <&reg_ahci_5v>;
73 +                       status = "okay";
74 +               };
75 +
76                 pinctrl@01c20800 {
77                         mmc0_cd_pin_cubietruck: mmc0_cd_pin@0 {
78                                 allwinner,pins = "PH1";
79 @@ -36,6 +41,13 @@
80                                 allwinner,pull = <0>;
81                         };
82  
83 +                       ahci_pwr_pin_cubietruck: ahci_pwr_pin@0 {
84 +                               allwinner,pins = "PH12";
85 +                               allwinner,function = "gpio_out";
86 +                               allwinner,drive = <0>;
87 +                               allwinner,pull = <0>;
88 +                       };
89 +
90                         led_pins_cubietruck: led_pins@0 {
91                                 allwinner,pins = "PH7", "PH11", "PH20", "PH21";
92                                 allwinner,function = "gpio_out";
93 @@ -84,4 +96,19 @@
94                         gpios = <&pio 7 7 0>;
95                 };
96         };
97 +
98 +       regulators {
99 +               compatible = "simple-bus";
100 +               pinctrl-names = "default";
101 +
102 +               reg_ahci_5v: ahci-5v {
103 +                       compatible = "regulator-fixed";
104 +                       regulator-name = "ahci-5v";
105 +                       regulator-min-microvolt = <5000000>;
106 +                       regulator-max-microvolt = <5000000>;
107 +                       pinctrl-0 = <&ahci_pwr_pin_cubietruck>;
108 +                       gpio = <&pio 7 12 0>;
109 +                       enable-active-high;
110 +               };
111 +       };
112  };
113 diff --git a/arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts b/arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts
114 index bf6f6c8..20b1000 100644
115 --- a/arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts
116 +++ b/arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts
117 @@ -37,7 +37,19 @@
118                         status = "okay";
119                 };
120  
121 +               sata: ahci@01c18000 {
122 +                       pwr-supply = <&reg_ahci_5v>;
123 +                       status = "okay";
124 +               };
125 +
126                 pinctrl@01c20800 {
127 +                       ahci_pwr_pin_olinuxinom: ahci_pwr_pin@0 {
128 +                               allwinner,pins = "PB8";
129 +                               allwinner,function = "gpio_out";
130 +                               allwinner,drive = <0>;
131 +                               allwinner,pull = <0>;
132 +                       };
133 +
134                         mmc0_cd_pin_olinuxinom: mmc0_cd_pin@0 {
135                                 allwinner,pins = "PH1";
136                                 allwinner,function = "gpio_in";
137 @@ -116,4 +128,18 @@
138                         default-state = "on";
139                 };
140         };
141 +
142 +       regulators {
143 +               compatible = "simple-bus";
144 +
145 +               reg_ahci_5v: ahci-5v {
146 +                       compatible = "regulator-fixed";
147 +                       regulator-name = "ahci-5v";
148 +                       regulator-min-microvolt = <5000000>;
149 +                       regulator-max-microvolt = <5000000>;
150 +                       pinctrl-0 = <&ahci_pwr_pin_olinuxinom>;
151 +                       gpio = <&pio 1 8 0>;
152 +                       enable-active-high;
153 +               };
154 +       };
155  };
156 diff --git a/arch/arm/boot/dts/sun7i-a20.dtsi b/arch/arm/boot/dts/sun7i-a20.dtsi
157 index c9c123a..3242a29 100644
158 --- a/arch/arm/boot/dts/sun7i-a20.dtsi
159 +++ b/arch/arm/boot/dts/sun7i-a20.dtsi
160 @@ -448,6 +448,15 @@
161                         };
162                 };
163  
164 +               sata: ahci@01c18000 {
165 +                       compatible = "allwinner,sun4i-a10-ahci";
166 +                       reg = <0x01c18000 0x1000>;
167 +                       interrupts = <0 56 1>;
168 +                       clocks = <&ahb_gates 25>, <&pll6 0>;
169 +                       clock-names = "ahb_sata", "pll6_sata";
170 +                       status = "disabled";
171 +               };
172 +
173                 timer@01c20c00 {
174                         compatible = "allwinner,sun4i-timer";
175                         reg = <0x01c20c00 0x90>;
176 -- 
177 1.8.5.1
178