mm: fix exec activate_mm vs TLB shootdown and lazy tlb switching race
[linux/fpc-iii.git] / arch / arm / boot / dts / rk3288-evb.dtsi
blob39b61dce97ad344e0884a02f87ff66c6155eb51d
1 /*
2  * This file is dual-licensed: you can use it either under the terms
3  * of the GPL or the X11 license, at your option. Note that this dual
4  * licensing only applies to this file, and not this project as a
5  * whole.
6  *
7  *  a) This file is free software; you can redistribute it and/or
8  *     modify it under the terms of the GNU General Public License as
9  *     published by the Free Software Foundation; either version 2 of the
10  *     License, or (at your option) any later version.
11  *
12  *     This file is distributed in the hope that it will be useful,
13  *     but WITHOUT ANY WARRANTY; without even the implied warranty of
14  *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15  *     GNU General Public License for more details.
16  *
17  * Or, alternatively,
18  *
19  *  b) Permission is hereby granted, free of charge, to any person
20  *     obtaining a copy of this software and associated documentation
21  *     files (the "Software"), to deal in the Software without
22  *     restriction, including without limitation the rights to use,
23  *     copy, modify, merge, publish, distribute, sublicense, and/or
24  *     sell copies of the Software, and to permit persons to whom the
25  *     Software is furnished to do so, subject to the following
26  *     conditions:
27  *
28  *     The above copyright notice and this permission notice shall be
29  *     included in all copies or substantial portions of the Software.
30  *
31  *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
32  *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
33  *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
34  *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
35  *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
36  *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
37  *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
38  *     OTHER DEALINGS IN THE SOFTWARE.
39  */
41 #include <dt-bindings/input/input.h>
42 #include <dt-bindings/pwm/pwm.h>
43 #include "rk3288.dtsi"
45 / {
46         memory@0 {
47                 device_type = "memory";
48                 reg = <0x0 0x0 0x0 0x80000000>;
49         };
51         adc-keys {
52                 compatible = "adc-keys";
53                 io-channels = <&saradc 1>;
54                 io-channel-names = "buttons";
55                 keyup-threshold-microvolt = <1800000>;
57                 button-up {
58                         label = "Volume Up";
59                         linux,code = <KEY_VOLUMEUP>;
60                         press-threshold-microvolt = <100000>;
61                 };
63                 button-down {
64                         label = "Volume Down";
65                         linux,code = <KEY_VOLUMEDOWN>;
66                         press-threshold-microvolt = <300000>;
67                 };
69                 menu {
70                         label = "Menu";
71                         linux,code = <KEY_MENU>;
72                         press-threshold-microvolt = <640000>;
73                 };
75                 esc {
76                         label = "Esc";
77                         linux,code = <KEY_ESC>;
78                         press-threshold-microvolt = <1000000>;
79                 };
81                 home  {
82                         label = "Home";
83                         linux,code = <KEY_HOME>;
84                         press-threshold-microvolt = <1300000>;
85                 };
86         };
88         backlight: backlight {
89                 compatible = "pwm-backlight";
90                 brightness-levels = <
91                           0   1   2   3   4   5   6   7
92                           8   9  10  11  12  13  14  15
93                          16  17  18  19  20  21  22  23
94                          24  25  26  27  28  29  30  31
95                          32  33  34  35  36  37  38  39
96                          40  41  42  43  44  45  46  47
97                          48  49  50  51  52  53  54  55
98                          56  57  58  59  60  61  62  63
99                          64  65  66  67  68  69  70  71
100                          72  73  74  75  76  77  78  79
101                          80  81  82  83  84  85  86  87
102                          88  89  90  91  92  93  94  95
103                          96  97  98  99 100 101 102 103
104                         104 105 106 107 108 109 110 111
105                         112 113 114 115 116 117 118 119
106                         120 121 122 123 124 125 126 127
107                         128 129 130 131 132 133 134 135
108                         136 137 138 139 140 141 142 143
109                         144 145 146 147 148 149 150 151
110                         152 153 154 155 156 157 158 159
111                         160 161 162 163 164 165 166 167
112                         168 169 170 171 172 173 174 175
113                         176 177 178 179 180 181 182 183
114                         184 185 186 187 188 189 190 191
115                         192 193 194 195 196 197 198 199
116                         200 201 202 203 204 205 206 207
117                         208 209 210 211 212 213 214 215
118                         216 217 218 219 220 221 222 223
119                         224 225 226 227 228 229 230 231
120                         232 233 234 235 236 237 238 239
121                         240 241 242 243 244 245 246 247
122                         248 249 250 251 252 253 254 255>;
123                 default-brightness-level = <128>;
124                 enable-gpios = <&gpio7 RK_PA2 GPIO_ACTIVE_HIGH>;
125                 pinctrl-names = "default";
126                 pinctrl-0 = <&bl_en>;
127                 pwms = <&pwm0 0 1000000 PWM_POLARITY_INVERTED>;
128         };
130         ext_gmac: external-gmac-clock {
131                 compatible = "fixed-clock";
132                 clock-frequency = <125000000>;
133                 clock-output-names = "ext_gmac";
134                 #clock-cells = <0>;
135         };
137         panel: panel {
138                 compatible ="lg,lp079qx1-sp0v", "simple-panel";
139                 backlight = <&backlight>;
140                 enable-gpios = <&gpio7 RK_PA4 GPIO_ACTIVE_HIGH>;
141                 pinctrl-0 = <&lcd_cs>;
143                 ports {
144                         panel_in: port {
145                                 panel_in_edp: endpoint {
146                                         remote-endpoint = <&edp_out_panel>;
147                                 };
148                         };
149                 };
150         };
152         gpio-keys {
153                 compatible = "gpio-keys";
154                 autorepeat;
156                 pinctrl-names = "default";
157                 pinctrl-0 = <&pwrbtn>;
159                 power {
160                         gpios = <&gpio0 RK_PA5 GPIO_ACTIVE_LOW>;
161                         linux,code = <KEY_POWER>;
162                         label = "GPIO Key Power";
163                         linux,input-type = <1>;
164                         wakeup-source;
165                         debounce-interval = <100>;
166                 };
167         };
169         /* This turns on USB vbus for both host0 (ehci) and host1 (dwc2) */
170         vcc_host: vcc-host-regulator {
171                 compatible = "regulator-fixed";
172                 enable-active-high;
173                 gpio = <&gpio0 RK_PB6 GPIO_ACTIVE_HIGH>;
174                 pinctrl-names = "default";
175                 pinctrl-0 = <&host_vbus_drv>;
176                 regulator-name = "vcc_host";
177                 regulator-always-on;
178                 regulator-boot-on;
179         };
181         vcc_phy: vcc-phy-regulator {
182                 compatible = "regulator-fixed";
183                 enable-active-high;
184                 gpio = <&gpio0 RK_PA6 GPIO_ACTIVE_HIGH>;
185                 pinctrl-names = "default";
186                 pinctrl-0 = <&eth_phy_pwr>;
187                 regulator-name = "vcc_phy";
188                 regulator-min-microvolt = <3300000>;
189                 regulator-max-microvolt = <3300000>;
190                 regulator-always-on;
191                 regulator-boot-on;
192         };
194         vcc_sys: vsys-regulator {
195                 compatible = "regulator-fixed";
196                 regulator-name = "vcc_sys";
197                 regulator-min-microvolt = <5000000>;
198                 regulator-max-microvolt = <5000000>;
199                 regulator-always-on;
200                 regulator-boot-on;
201         };
203         /*
204          * NOTE: vcc_sd isn't hooked up on v1.0 boards where power comes from
205          * vcc_io directly.  Those boards won't be able to power cycle SD cards
206          * but it shouldn't hurt to toggle this pin there anyway.
207          */
208         vcc_sd: sdmmc-regulator {
209                 compatible = "regulator-fixed";
210                 gpio = <&gpio7 RK_PB3 GPIO_ACTIVE_LOW>;
211                 pinctrl-names = "default";
212                 pinctrl-0 = <&sdmmc_pwr>;
213                 regulator-name = "vcc_sd";
214                 regulator-min-microvolt = <3300000>;
215                 regulator-max-microvolt = <3300000>;
216                 startup-delay-us = <100000>;
217                 vin-supply = <&vcc_io>;
218         };
221 &cpu0 {
222         cpu0-supply = <&vdd_cpu>;
225 &edp {
226         force-hpd;
227         status = "okay";
229         ports {
230                 edp_out: port@1 {
231                         reg = <1>;
232                         #address-cells = <1>;
233                         #size-cells = <0>;
235                         edp_out_panel: endpoint {
236                                 reg = <0>;
237                                 remote-endpoint = <&panel_in_edp>;
238                         };
239                 };
240         };
243 &edp_phy {
244         status = "okay";
247 &emmc {
248         bus-width = <8>;
249         cap-mmc-highspeed;
250         disable-wp;
251         non-removable;
252         pinctrl-names = "default";
253         pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_pwr &emmc_bus8>;
254         status = "okay";
257 &saradc {
258         vref-supply = <&vcc_18>;
259         status = "okay";
262 &sdmmc {
263         bus-width = <4>;
264         cap-mmc-highspeed;
265         cap-sd-highspeed;
266         card-detect-delay = <200>;
267         disable-wp;                     /* wp not hooked up */
268         pinctrl-names = "default";
269         pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd &sdmmc_bus4>;
270         status = "okay";
271         vmmc-supply = <&vcc_sd>;
272         vqmmc-supply = <&vccio_sd>;
275 &gmac {
276         phy-supply = <&vcc_phy>;
277         phy-mode = "rgmii";
278         clock_in_out = "input";
279         snps,reset-gpio = <&gpio4 RK_PA7 GPIO_ACTIVE_HIGH>;
280         snps,reset-active-low;
281         snps,reset-delays-us = <0 10000 1000000>;
282         assigned-clocks = <&cru SCLK_MAC>;
283         assigned-clock-parents = <&ext_gmac>;
284         pinctrl-names = "default";
285         pinctrl-0 = <&rgmii_pins>;
286         tx_delay = <0x30>;
287         rx_delay = <0x10>;
288         status = "ok";
291 &gpu {
292         mali-supply = <&vdd_gpu>;
293         status = "okay";
296 &hdmi {
297         ddc-i2c-bus = <&i2c5>;
298         status = "okay";
301 &i2c0 {
302         status = "okay";
305 &i2c5 {
306         status = "okay";
309 &wdt {
310         status = "okay";
313 &pwm0 {
314         status = "okay";
317 &uart0 {
318         status = "okay";
321 &uart1 {
322         status = "okay";
325 &uart2 {
326         status = "okay";
329 &uart3 {
330         status = "okay";
333 &uart4 {
334         status = "okay";
337 &tsadc {
338         rockchip,hw-tshut-mode = <0>; /* tshut mode 0:CRU 1:GPIO */
339         rockchip,hw-tshut-polarity = <0>; /* tshut polarity 0:LOW 1:HIGH */
340         status = "okay";
343 &pinctrl {
344         pcfg_pull_none_drv_8ma: pcfg-pull-none-drv-8ma {
345                 drive-strength = <8>;
346         };
348         pcfg_pull_up_drv_8ma: pcfg-pull-up-drv-8ma {
349                 bias-pull-up;
350                 drive-strength = <8>;
351         };
353         backlight {
354                 bl_en: bl-en {
355                         rockchip,pins = <7 2 RK_FUNC_GPIO &pcfg_pull_none>;
356                 };
357         };
359         buttons {
360                 pwrbtn: pwrbtn {
361                         rockchip,pins = <0 5 RK_FUNC_GPIO &pcfg_pull_up>;
362                 };
363         };
365         lcd {
366                 lcd_cs: lcd-cs {
367                         rockchip,pins = <7 4 RK_FUNC_GPIO &pcfg_pull_none>;
368                 };
369         };
371         pmic {
372                 pmic_int: pmic-int {
373                         rockchip,pins = <RK_GPIO0 4 RK_FUNC_GPIO &pcfg_pull_up>;
374                 };
375         };
377         sdmmc {
378                 /*
379                  * Default drive strength isn't enough to achieve even
380                  * high-speed mode on EVB board so bump up to 8ma.
381                  */
382                 sdmmc_bus4: sdmmc-bus4 {
383                         rockchip,pins = <6 16 RK_FUNC_1 &pcfg_pull_up_drv_8ma>,
384                                         <6 17 RK_FUNC_1 &pcfg_pull_up_drv_8ma>,
385                                         <6 18 RK_FUNC_1 &pcfg_pull_up_drv_8ma>,
386                                         <6 19 RK_FUNC_1 &pcfg_pull_up_drv_8ma>;
387                 };
389                 sdmmc_clk: sdmmc-clk {
390                         rockchip,pins = <6 20 RK_FUNC_1 &pcfg_pull_none_drv_8ma>;
391                 };
393                 sdmmc_cmd: sdmmc-cmd {
394                         rockchip,pins = <6 21 RK_FUNC_1 &pcfg_pull_up_drv_8ma>;
395                 };
397                 sdmmc_pwr: sdmmc-pwr {
398                         rockchip,pins = <7 11 RK_FUNC_GPIO &pcfg_pull_none>;
399                 };
400         };
402         usb {
403                 host_vbus_drv: host-vbus-drv {
404                         rockchip,pins = <0 14 RK_FUNC_GPIO &pcfg_pull_none>;
405                 };
406         };
408         eth_phy {
409                 eth_phy_pwr: eth-phy-pwr {
410                         rockchip,pins = <0 6 RK_FUNC_GPIO &pcfg_pull_none>;
411                 };
412         };
415 &usbphy {
416         status = "okay";
419 &usb_host0_ehci {
420         status = "okay";
423 &usb_host1 {
424         status = "okay";
427 &vopb {
428         status = "okay";
431 &vopb_mmu {
432         status = "okay";
435 &vopl {
436         status = "okay";
439 &vopl_mmu {
440         status = "okay";