sunxi: driver refresh for 3.13
[openwrt.git] / target / linux / sunxi / patches-3.13 / 173-2-dt-sun5i-add-mmc.patch
1 From 5bfbb46a8685de4c67f084aea983fc9a50c882ad Mon Sep 17 00:00:00 2001
2 From: =?UTF-8?q?David=20Lanzend=C3=B6rfer?= <david.lanzendoerfer@o2s.ch>
3 Date: Sat, 15 Feb 2014 14:02:29 +0100
4 Subject: [PATCH] ARM: dts: sun5i: Add support for mmc
5 MIME-Version: 1.0
6 Content-Type: text/plain; charset=UTF-8
7 Content-Transfer-Encoding: 8bit
8
9 Signed-off-by: David Lanzendörfer <david.lanzendoerfer@o2s.ch>
10 Signed-off-by: Hans de Goede <hdegoede@redhat.com>
11 ---
12  arch/arm/boot/dts/sun5i-a10s-olinuxino-micro.dts | 30 ++++++++++++++++
13  arch/arm/boot/dts/sun5i-a10s.dtsi                | 44 ++++++++++++++++++++++++
14  arch/arm/boot/dts/sun5i-a13-olinuxino-micro.dts  | 15 ++++++++
15  arch/arm/boot/dts/sun5i-a13-olinuxino.dts        | 15 ++++++++
16  arch/arm/boot/dts/sun5i-a13.dtsi                 | 37 ++++++++++++++++++++
17  5 files changed, 141 insertions(+)
18
19 diff --git a/arch/arm/boot/dts/sun5i-a10s-olinuxino-micro.dts b/arch/arm/boot/dts/sun5i-a10s-olinuxino-micro.dts
20 index 3c9f8b3..5c7b454 100644
21 --- a/arch/arm/boot/dts/sun5i-a10s-olinuxino-micro.dts
22 +++ b/arch/arm/boot/dts/sun5i-a10s-olinuxino-micro.dts
23 @@ -34,7 +34,37 @@
24                         };
25                 };
26  
27 +               mmc0: mmc@01c0f000 {
28 +                       pinctrl-names = "default", "default";
29 +                       pinctrl-0 = <&mmc0_pins_a>;
30 +                       pinctrl-1 = <&mmc0_cd_pin_olinuxino_micro>;
31 +                       cd-gpios = <&pio 6 1 0>; /* PG1 */
32 +                       status = "okay";
33 +               };
34 +
35 +               mmc1: mmc@01c10000 {
36 +                       pinctrl-names = "default", "default";
37 +                       pinctrl-0 = <&mmc1_pins_a>;
38 +                       pinctrl-1 = <&mmc1_cd_pin_olinuxino_micro>;
39 +                       cd-gpios = <&pio 6 13 0>; /* PG13 */
40 +                       status = "okay";
41 +               };
42 +
43                 pinctrl@01c20800 {
44 +                       mmc0_cd_pin_olinuxino_micro: mmc0_cd_pin@0 {
45 +                               allwinner,pins = "PG1";
46 +                               allwinner,function = "gpio_in";
47 +                               allwinner,drive = <0>;
48 +                               allwinner,pull = <1>;
49 +                       };
50 +
51 +                       mmc1_cd_pin_olinuxino_micro: mmc1_cd_pin@0 {
52 +                               allwinner,pins = "PG13";
53 +                               allwinner,function = "gpio_in";
54 +                               allwinner,drive = <0>;
55 +                               allwinner,pull = <1>;
56 +                       };
57 +
58                         led_pins_olinuxino: led_pins@0 {
59                                 allwinner,pins = "PE3";
60                                 allwinner,function = "gpio_out";
61 diff --git a/arch/arm/boot/dts/sun5i-a10s.dtsi b/arch/arm/boot/dts/sun5i-a10s.dtsi
62 index 3a9b33d..3a7039e 100644
63 --- a/arch/arm/boot/dts/sun5i-a10s.dtsi
64 +++ b/arch/arm/boot/dts/sun5i-a10s.dtsi
65 @@ -299,6 +299,36 @@
66                         #size-cells = <0>;
67                 };
68  
69 +               mmc0: mmc@01c0f000 {
70 +                       compatible = "allwinner,sun5i-a13-mmc";
71 +                       reg = <0x01c0f000 0x1000>;
72 +                       clocks = <&ahb_gates 8>, <&mmc0_clk>;
73 +                       clock-names = "ahb", "mod";
74 +                       interrupts = <32>;
75 +                       bus-width = <4>;
76 +                       status = "disabled";
77 +               };
78 +
79 +               mmc1: mmc@01c10000 {
80 +                       compatible = "allwinner,sun5i-a13-mmc";
81 +                       reg = <0x01c10000 0x1000>;
82 +                       clocks = <&ahb_gates 9>, <&mmc1_clk>;
83 +                       clock-names = "ahb", "mod";
84 +                       interrupts = <33>;
85 +                       bus-width = <4>;
86 +                       status = "disabled";
87 +               };
88 +
89 +               mmc2: mmc@01c11000 {
90 +                       compatible = "allwinner,sun5i-a13-mmc";
91 +                       reg = <0x01c11000 0x1000>;
92 +                       clocks = <&ahb_gates 10>, <&mmc2_clk>;
93 +                       clock-names = "ahb", "mod";
94 +                       interrupts = <34>;
95 +                       bus-width = <4>;
96 +                       status = "disabled";
97 +               };
98 +
99                 intc: interrupt-controller@01c20400 {
100                         compatible = "allwinner,sun4i-ic";
101                         reg = <0x01c20400 0x400>;
102 @@ -369,6 +399,20 @@
103                                 allwinner,drive = <0>;
104                                 allwinner,pull = <0>;
105                         };
106 +
107 +                       mmc0_pins_a: mmc0@0 {
108 +                               allwinner,pins = "PF0","PF1","PF2","PF3","PF4","PF5";
109 +                               allwinner,function = "mmc0";
110 +                               allwinner,drive = <3>;
111 +                               allwinner,pull = <0>;
112 +                       };
113 +
114 +                       mmc1_pins_a: mmc1@0 {
115 +                               allwinner,pins = "PG3","PG4","PG5","PG6","PG7","PG8";
116 +                               allwinner,function = "mmc1";
117 +                               allwinner,drive = <3>;
118 +                               allwinner,pull = <0>;
119 +                       };
120                 };
121  
122                 timer@01c20c00 {
123 diff --git a/arch/arm/boot/dts/sun5i-a13-olinuxino-micro.dts b/arch/arm/boot/dts/sun5i-a13-olinuxino-micro.dts
124 index fe2ce0a..2f08bb2 100644
125 --- a/arch/arm/boot/dts/sun5i-a13-olinuxino-micro.dts
126 +++ b/arch/arm/boot/dts/sun5i-a13-olinuxino-micro.dts
127 @@ -20,7 +20,22 @@
128         compatible = "olimex,a13-olinuxino-micro", "allwinner,sun5i-a13";
129  
130         soc@01c00000 {
131 +               mmc0: mmc@01c0f000 {
132 +                       pinctrl-names = "default", "default";
133 +                       pinctrl-0 = <&mmc0_pins_a>;
134 +                       pinctrl-1 = <&mmc0_cd_pin_olinuxinom>;
135 +                       cd-gpios = <&pio 6 0 0>; /* PG0 */
136 +                       status = "okay";
137 +               };
138 +
139                 pinctrl@01c20800 {
140 +                       mmc0_cd_pin_olinuxinom: mmc0_cd_pin@0 {
141 +                               allwinner,pins = "PG0";
142 +                               allwinner,function = "gpio_in";
143 +                               allwinner,drive = <0>;
144 +                               allwinner,pull = <1>;
145 +                       };
146 +
147                         led_pins_olinuxinom: led_pins@0 {
148                                 allwinner,pins = "PG9";
149                                 allwinner,function = "gpio_out";
150 diff --git a/arch/arm/boot/dts/sun5i-a13-olinuxino.dts b/arch/arm/boot/dts/sun5i-a13-olinuxino.dts
151 index a4ba5ff..a7280f5 100644
152 --- a/arch/arm/boot/dts/sun5i-a13-olinuxino.dts
153 +++ b/arch/arm/boot/dts/sun5i-a13-olinuxino.dts
154 @@ -19,7 +19,22 @@
155         compatible = "olimex,a13-olinuxino", "allwinner,sun5i-a13";
156  
157         soc@01c00000 {
158 +               mmc0: mmc@01c0f000 {
159 +                       pinctrl-names = "default", "default";
160 +                       pinctrl-0 = <&mmc0_pins_a>;
161 +                       pinctrl-1 = <&mmc0_cd_pin_olinuxino>;
162 +                       cd-gpios = <&pio 6 0 0>; /* PG0 */
163 +                       status = "okay";
164 +               };
165 +
166                 pinctrl@01c20800 {
167 +                       mmc0_cd_pin_olinuxino: mmc0_cd_pin@0 {
168 +                               allwinner,pins = "PG0";
169 +                               allwinner,function = "gpio_in";
170 +                               allwinner,drive = <0>;
171 +                               allwinner,pull = <1>;
172 +                       };
173 +
174                         led_pins_olinuxino: led_pins@0 {
175                                 allwinner,pins = "PG9";
176                                 allwinner,function = "gpio_out";
177 diff --git a/arch/arm/boot/dts/sun5i-a13.dtsi b/arch/arm/boot/dts/sun5i-a13.dtsi
178 index 9612c52..63a35b8 100644
179 --- a/arch/arm/boot/dts/sun5i-a13.dtsi
180 +++ b/arch/arm/boot/dts/sun5i-a13.dtsi
181 @@ -281,6 +281,36 @@
182                 #size-cells = <1>;
183                 ranges;
184  
185 +               mmc0: mmc@01c0f000 {
186 +                       compatible = "allwinner,sun5i-a13-mmc";
187 +                       reg = <0x01c0f000 0x1000>;
188 +                       clocks = <&ahb_gates 8>, <&mmc0_clk>;
189 +                       clock-names = "ahb", "mod";
190 +                       interrupts = <32>;
191 +                       bus-width = <4>;
192 +                       status = "disabled";
193 +               };
194 +
195 +               mmc1: mmc@01c10000 {
196 +                       compatible = "allwinner,sun5i-a13-mmc";
197 +                       reg = <0x01c10000 0x1000>;
198 +                       clocks = <&ahb_gates 9>, <&mmc1_clk>;
199 +                       clock-names = "ahb", "mod";
200 +                       interrupts = <33>;
201 +                       bus-width = <4>;
202 +                       status = "disabled";
203 +               };
204 +
205 +               mmc2: mmc@01c11000 {
206 +                       compatible = "allwinner,sun5i-a13-mmc";
207 +                       reg = <0x01c11000 0x1000>;
208 +                       clocks = <&ahb_gates 10>, <&mmc2_clk>;
209 +                       clock-names = "ahb", "mod";
210 +                       interrupts = <34>;
211 +                       bus-width = <4>;
212 +                       status = "disabled";
213 +               };
214 +
215                 intc: interrupt-controller@01c20400 {
216                         compatible = "allwinner,sun4i-ic";
217                         reg = <0x01c20400 0x400>;
218 @@ -333,6 +363,13 @@
219                                 allwinner,drive = <0>;
220                                 allwinner,pull = <0>;
221                         };
222 +
223 +                       mmc0_pins_a: mmc0@0 {
224 +                               allwinner,pins = "PF0","PF1","PF2","PF3","PF4","PF5";
225 +                               allwinner,function = "mmc0";
226 +                               allwinner,drive = <3>;
227 +                               allwinner,pull = <0>;
228 +                       };
229                 };
230  
231                 timer@01c20c00 {
232 -- 
233 1.8.5.5
234