brcm2708: switch to linux 4.4 and update patches
[openwrt.git] / target / linux / brcm2708 / patches-4.4 / 0150-BCM270X_DT-Add-dtparams-for-the-SD-interface.patch
1 From 21e15ef5922cdfeb205a633f8720fde9d01fa074 Mon Sep 17 00:00:00 2001
2 From: Phil Elwell <phil@raspberrypi.org>
3 Date: Fri, 12 Feb 2016 15:38:00 +0000
4 Subject: [PATCH 150/156] BCM270X_DT: Add dtparams for the SD interface
5
6 Add new base dtparams sd_overclock, sd_force_pio, sd_pio_limit
7 and sd_debug.
8 ---
9  arch/arm/boot/dts/bcm2708-rpi-b-plus.dts       |  4 ++++
10  arch/arm/boot/dts/bcm2708-rpi-b.dts            |  4 ++++
11  arch/arm/boot/dts/bcm2708-rpi-cm.dts           |  1 -
12  arch/arm/boot/dts/bcm2708-rpi-cm.dtsi          | 13 +++++++++++++
13  arch/arm/boot/dts/bcm2708_common.dtsi          |  2 ++
14  arch/arm/boot/dts/bcm2709-rpi-2-b.dts          |  4 ++++
15  arch/arm/boot/dts/overlays/README              | 11 ++++++++++-
16  arch/arm/boot/dts/overlays/mmc-overlay.dts     |  1 -
17  arch/arm/boot/dts/overlays/sdhost-overlay.dts  | 27 +++++++++++++-------------
18  arch/arm/boot/dts/overlays/sdtweak-overlay.dts | 14 ++++++-------
19  10 files changed, 58 insertions(+), 23 deletions(-)
20
21 --- a/arch/arm/boot/dts/bcm2708-rpi-b-plus.dts
22 +++ b/arch/arm/boot/dts/bcm2708-rpi-b-plus.dts
23 @@ -141,5 +141,9 @@
24                 audio = <&audio>,"status";
25                 watchdog = <&watchdog>,"status";
26                 random = <&random>,"status";
27 +               sd_overclock = <&sdhost>,"brcm,overclock-50:0";
28 +               sd_force_pio = <&sdhost>,"brcm,force-pio?";
29 +               sd_pio_limit = <&sdhost>,"brcm,pio-limit:0";
30 +               sd_debug     = <&sdhost>,"brcm,debug";
31         };
32  };
33 --- a/arch/arm/boot/dts/bcm2708-rpi-b.dts
34 +++ b/arch/arm/boot/dts/bcm2708-rpi-b.dts
35 @@ -131,5 +131,9 @@
36                 audio = <&audio>,"status";
37                 watchdog = <&watchdog>,"status";
38                 random = <&random>,"status";
39 +               sd_overclock = <&sdhost>,"brcm,overclock-50:0";
40 +               sd_force_pio = <&sdhost>,"brcm,force-pio?";
41 +               sd_pio_limit = <&sdhost>,"brcm,pio-limit:0";
42 +               sd_debug     = <&sdhost>,"brcm,debug";
43         };
44  };
45 --- a/arch/arm/boot/dts/bcm2708-rpi-cm.dts
46 +++ b/arch/arm/boot/dts/bcm2708-rpi-cm.dts
47 @@ -97,6 +97,5 @@
48                 i2c0_baudrate = <&i2c0>,"clock-frequency:0";
49                 i2c1_baudrate = <&i2c1>,"clock-frequency:0";
50                 i2c2_baudrate = <&i2c2>,"clock-frequency:0";
51 -               core_freq = <&clk_core>,"clock-frequency:0";
52         };
53  };
54 --- a/arch/arm/boot/dts/bcm2708-rpi-cm.dtsi
55 +++ b/arch/arm/boot/dts/bcm2708-rpi-cm.dtsi
56 @@ -7,6 +7,13 @@
57         };
58  };
59  
60 +&gpio {
61 +       sdhost_pins: sdhost_pins {
62 +               brcm,pins = <48 49 50 51 52 53>;
63 +               brcm,function = <4>; /* alt0 */
64 +       };
65 +};
66 +
67  &leds {
68         act_led: act {
69                 label = "led0";
70 @@ -29,6 +36,8 @@
71  
72  / {
73         __overrides__ {
74 +               core_freq = <&clk_core>,"clock-frequency:0";
75 +
76                 act_led_gpio = <&act_led>,"gpios:4";
77                 act_led_activelow = <&act_led>,"gpios:8";
78                 act_led_trigger = <&act_led>,"linux,default-trigger";
79 @@ -36,5 +45,9 @@
80                 audio = <&audio>,"status";
81                 watchdog = <&watchdog>,"status";
82                 random = <&random>,"status";
83 +               sd_overclock = <&sdhost>,"brcm,overclock-50:0";
84 +               sd_force_pio = <&sdhost>,"brcm,force-pio?";
85 +               sd_pio_limit = <&sdhost>,"brcm,pio-limit:0";
86 +               sd_debug     = <&sdhost>,"brcm,debug";
87         };
88  };
89 --- a/arch/arm/boot/dts/bcm2708_common.dtsi
90 +++ b/arch/arm/boot/dts/bcm2708_common.dtsi
91 @@ -135,6 +135,7 @@
92                         dmas = <&dma 13>,
93                                <&dma 13>;
94                         dma-names = "tx", "rx";
95 +                       brcm,overclock-50 = <0>;
96                         brcm,pio-limit = <1>;
97                         status = "disabled";
98                 };
99 @@ -203,6 +204,7 @@
100                         dmas = <&dma 11>,
101                                <&dma 11>;
102                         dma-names = "tx", "rx";
103 +                       brcm,overclock-50 = <0>;
104                         status = "disabled";
105                 };
106  
107 --- a/arch/arm/boot/dts/bcm2709-rpi-2-b.dts
108 +++ b/arch/arm/boot/dts/bcm2709-rpi-2-b.dts
109 @@ -141,5 +141,9 @@
110                 audio = <&audio>,"status";
111                 watchdog = <&watchdog>,"status";
112                 random = <&random>,"status";
113 +               sd_overclock = <&sdhost>,"brcm,overclock-50:0";
114 +               sd_force_pio = <&sdhost>,"brcm,force-pio?";
115 +               sd_pio_limit = <&sdhost>,"brcm,pio-limit:0";
116 +               sd_debug     = <&sdhost>,"brcm,debug";
117         };
118  };
119 --- a/arch/arm/boot/dts/overlays/README
120 +++ b/arch/arm/boot/dts/overlays/README
121 @@ -112,6 +112,16 @@ Params:
122          random                  Set to "on" to enable the hardware random
123                                  number generator (default "on")
124  
125 +        sd_overclock            Clock (in MHz) to use when the MMC framework
126 +                                requests 50MHz
127 +
128 +        sd_force_pio            Disable DMA support for SD driver (default off)
129 +
130 +        sd_pio_limit            Number of blocks above which to use DMA for
131 +                                SD card (default 1)
132 +
133 +        sd_debug                Enable debug output from SD driver (default off)
134 +
135          uart0                   Set to "off" to disable uart0 (default "on")
136  
137          watchdog                Set to "on" to enable the hardware watchdog
138 @@ -443,7 +453,6 @@ Info:   Selects the bcm2835-mmc SD/MMC d
139  Load:   dtoverlay=mmc,<param>=<val>
140  Params: overclock_50            Clock (in MHz) to use when the MMC framework
141                                  requests 50MHz
142 -        force_pio               Disable DMA support
143  
144  
145  Name:   mz61581
146 --- a/arch/arm/boot/dts/overlays/mmc-overlay.dts
147 +++ b/arch/arm/boot/dts/overlays/mmc-overlay.dts
148 @@ -34,6 +34,5 @@
149  
150         __overrides__ {
151                 overclock_50     = <&frag0>,"brcm,overclock-50:0";
152 -               force_pio        = <&frag0>,"brcm,force-pio?";
153         };
154  };
155 --- a/arch/arm/boot/dts/overlays/sdhost-overlay.dts
156 +++ b/arch/arm/boot/dts/overlays/sdhost-overlay.dts
157 @@ -1,19 +1,14 @@
158  /dts-v1/;
159  /plugin/;
160  
161 +/* Provide backwards compatible aliases for the old sdhost dtparams. */
162 +
163  /{
164         compatible = "brcm,bcm2708";
165  
166         fragment@0 {
167 -               target = <&mmc>;
168 -               __overlay__ {
169 -                       status = "disabled";
170 -               };
171 -       };
172 -
173 -       fragment@1 {
174                 target = <&sdhost>;
175 -               frag1: __overlay__ {
176 +               frag0: __overlay__ {
177                         brcm,overclock-50 = <0>;
178                         brcm,pio-limit = <1>;
179                         brcm,debug-flags = <0>;
180 @@ -21,11 +16,17 @@
181                 };
182         };
183  
184 +       fragment@1 {
185 +               target = <&mmc>;
186 +               __overlay__ {
187 +                       status = "disabled";
188 +               };
189 +       };
190 +
191         __overrides__ {
192 -               overclock_50     = <&frag1>,"brcm,overclock-50:0";
193 -               force_pio        = <&frag1>,"brcm,force-pio?";
194 -               pio_limit        = <&frag1>,"brcm,pio-limit:0";
195 -               debug            = <&frag1>,"brcm,debug?";
196 -               debug_flags      = <&frag1>,"brcm,debug-flags:0";
197 +               overclock_50     = <&frag0>,"brcm,overclock-50:0";
198 +               force_pio        = <&frag0>,"brcm,force-pio?";
199 +               pio_limit        = <&frag0>,"brcm,pio-limit:0";
200 +               debug            = <&frag0>,"brcm,debug?";
201         };
202  };
203 --- a/arch/arm/boot/dts/overlays/sdtweak-overlay.dts
204 +++ b/arch/arm/boot/dts/overlays/sdtweak-overlay.dts
205 @@ -1,23 +1,23 @@
206  /dts-v1/;
207  /plugin/;
208  
209 +/* Provide backwards compatible aliases for the old sdhost dtparams. */
210 +
211  /{
212         compatible = "brcm,bcm2708";
213  
214         fragment@0 {
215                 target = <&sdhost>;
216 -               frag1: __overlay__ {
217 +               frag0: __overlay__ {
218                         brcm,overclock-50 = <0>;
219                         brcm,pio-limit = <1>;
220 -                       brcm,debug-flags = <0>;
221                 };
222         };
223  
224         __overrides__ {
225 -               overclock_50     = <&frag1>,"brcm,overclock-50:0";
226 -               force_pio        = <&frag1>,"brcm,force-pio?";
227 -               pio_limit        = <&frag1>,"brcm,pio-limit:0";
228 -               debug            = <&frag1>,"brcm,debug?";
229 -               debug_flags      = <&frag1>,"brcm,debug-flags:0";
230 +               overclock_50     = <&frag0>,"brcm,overclock-50:0";
231 +               force_pio        = <&frag0>,"brcm,force-pio?";
232 +               pio_limit        = <&frag0>,"brcm,pio-limit:0";
233 +               debug            = <&frag0>,"brcm,debug?";
234         };
235  };