Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi
[linux-2.6-microblaze.git] / arch / arm / boot / dts / rk3288-firefly-reload.dts
1 /*
2  * Device tree file for Firefly Rockchip RK3288 Core board
3  * Copyright (c) 2016 Randy Li <ayaka@soulik.info>
4  *
5  * This file is dual-licensed: you can use it either under the terms
6  * of the GPL or the X11 license, at your option. Note that this dual
7  * licensing only applies to this file, and not this project as a
8  * whole.
9  *
10  *  a) This file is free software; you can redistribute it and/or
11  *     modify it under the terms of the GNU General Public License as
12  *     published by the Free Software Foundation; either version 2 of the
13  *     License, or (at your option) any later version.
14  *
15  *     This file is distributed in the hope that it will be useful,
16  *     but WITHOUT ANY WARRANTY; without even the implied warranty of
17  *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18  *     GNU General Public License for more details.
19  *
20  * Or, alternatively,
21  *
22  *  b) Permission is hereby granted, free of charge, to any person
23  *     obtaining a copy of this software and associated documentation
24  *     files (the "Software"), to deal in the Software without
25  *     restriction, including without limitation the rights to use,
26  *     copy, modify, merge, publish, distribute, sublicense, and/or
27  *     sell copies of the Software, and to permit persons to whom the
28  *     Software is furnished to do so, subject to the following
29  *     conditions:
30  *
31  *     The above copyright notice and this permission notice shall be
32  *     included in all copies or substantial portions of the Software.
33  *
34  *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
35  *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
36  *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
37  *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
38  *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
39  *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
40  *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
41  *     OTHER DEALINGS IN THE SOFTWARE.
42  */
43
44 /dts-v1/;
45 #include "rk3288-firefly-reload-core.dtsi"
46
47 / {
48         model = "Firefly-RK3288-reload";
49         compatible = "firefly,firefly-rk3288-reload", "rockchip,rk3288";
50
51         adc-keys {
52                 compatible = "adc-keys";
53                 io-channels = <&saradc 1>;
54                 io-channel-names = "buttons";
55                 keyup-threshold-microvolt = <1800000>;
56
57                 button-recovery {
58                         label = "Recovery";
59                         linux,code = <KEY_VENDOR>;
60                         press-threshold-microvolt = <0>;
61                 };
62         };
63
64         gpio-keys {
65                 compatible = "gpio-keys";
66
67                 power {
68                         wakeup-source;
69                         gpios = <&gpio0 RK_PA5 GPIO_ACTIVE_LOW>;
70                         label = "GPIO Power";
71                         linux,code = <KEY_POWER>;
72                         pinctrl-names = "default";
73                         pinctrl-0 = <&pwr_key>;
74                 };
75         };
76
77         ir-receiver {
78                 compatible = "gpio-ir-receiver";
79                 gpios = <&gpio7 RK_PA0 GPIO_ACTIVE_LOW>;
80         };
81
82         leds {
83                 compatible = "gpio-leds";
84
85                 power {
86                         gpios = <&gpio8 RK_PA2 GPIO_ACTIVE_LOW>;
87                         label = "firefly:blue:power";
88                         pinctrl-names = "default";
89                         pinctrl-0 = <&power_led>;
90                         panic-indicator;
91                 };
92
93                 work {
94                         gpios = <&gpio8 RK_PA1 GPIO_ACTIVE_LOW>;
95                         label = "firefly:blue:user";
96                         linux,default-trigger = "rc-feedback";
97                         pinctrl-names = "default";
98                         pinctrl-0 = <&work_led>;
99                 };
100         };
101
102         sdio_pwrseq: sdio-pwrseq {
103                 compatible = "mmc-pwrseq-simple";
104                 clocks = <&hym8563>;
105                 clock-names = "ext_clock";
106                 pinctrl-names = "default";
107                 pinctrl-0 = <&wifi_enable>;
108                 reset-gpios = <&gpio4 RK_PD4 GPIO_ACTIVE_LOW>;
109         };
110
111         sound {
112                 compatible = "simple-audio-card";
113                 simple-audio-card,name = "SPDIF";
114                 simple-audio-card,dai-link@1 {  /* S/PDIF - S/PDIF */
115                         cpu { sound-dai = <&spdif>; };
116                         codec { sound-dai = <&spdif_out>; };
117                 };
118         };
119
120         spdif_out: spdif-out {
121                 compatible = "linux,spdif-dit";
122                 #sound-dai-cells = <0>;
123         };
124
125         vcc_host_5v: usb-host-regulator {
126                 compatible = "regulator-fixed";
127                 enable-active-high;
128                 gpio = <&gpio0 RK_PB6 GPIO_ACTIVE_HIGH>;
129                 pinctrl-names = "default";
130                 pinctrl-0 = <&host_vbus_drv>;
131                 regulator-name = "vcc_host_5v";
132                 regulator-min-microvolt = <5000000>;
133                 regulator-max-microvolt = <5000000>;
134                 regulator-always-on;
135                 vin-supply = <&vcc_5v>;
136         };
137
138         vcc_5v: vcc_sys: vsys-regulator {
139                 compatible = "regulator-fixed";
140                 regulator-name = "vcc_5v";
141                 regulator-min-microvolt = <5000000>;
142                 regulator-max-microvolt = <5000000>;
143                 regulator-always-on;
144                 regulator-boot-on;
145         };
146
147         vcc_sd: sdmmc-regulator {
148                 compatible = "regulator-fixed";
149                 gpio = <&gpio7 RK_PB3 GPIO_ACTIVE_LOW>;
150                 pinctrl-names = "default";
151                 pinctrl-0 = <&sdmmc_pwr>;
152                 regulator-name = "vcc_sd";
153                 regulator-min-microvolt = <3300000>;
154                 regulator-max-microvolt = <3300000>;
155                 startup-delay-us = <100000>;
156                 vin-supply = <&vcc_io>;
157         };
158
159         vcc_otg_5v: usb-otg-regulator {
160                 compatible = "regulator-fixed";
161                 enable-active-high;
162                 gpio = <&gpio0 RK_PB4 GPIO_ACTIVE_HIGH>;
163                 pinctrl-names = "default";
164                 pinctrl-0 = <&otg_vbus_drv>;
165                 regulator-name = "vcc_otg_5v";
166                 regulator-min-microvolt = <5000000>;
167                 regulator-max-microvolt = <5000000>;
168                 regulator-always-on;
169                 vin-supply = <&vcc_5v>;
170         };
171
172         dovdd_1v8: dovdd-1v8-regulator {
173                 compatible = "regulator-fixed";
174                 enable-active-high;
175                 gpio = <&gpio0 RK_PB3 GPIO_ACTIVE_HIGH>;
176                 pinctrl-names = "default";
177                 pinctrl-0 = <&dvp_pwr>;
178                 regulator-name = "dovdd_1v8";
179                 regulator-min-microvolt = <1800000>;
180                 regulator-max-microvolt = <1800000>;
181                 vin-supply = <&vcc_io>;
182         };
183
184         vcc28_dvp: vcc28-dvp-regulator {
185                 compatible = "regulator-fixed";
186                 enable-active-high;
187                 gpio = <&gpio0 RK_PB3 GPIO_ACTIVE_HIGH>;
188                 pinctrl-names = "default";
189                 pinctrl-0 = <&dvp_pwr>;
190                 regulator-name = "vcc28_dvp";
191                 regulator-min-microvolt = <2800000>;
192                 regulator-max-microvolt = <2800000>;
193                 vin-supply = <&vcc_io>;
194         };
195
196         af_28: af_28-regulator {
197                 compatible = "regulator-fixed";
198                 enable-active-high;
199                 gpio = <&gpio0 RK_PB3 GPIO_ACTIVE_HIGH>;
200                 pinctrl-names = "default";
201                 pinctrl-0 = <&dvp_pwr>;
202                 regulator-name = "af_28";
203                 regulator-min-microvolt = <2800000>;
204                 regulator-max-microvolt = <2800000>;
205                 vin-supply = <&vcc_io>;
206         };
207
208         dvdd_1v2: af_28-regulator {
209                 compatible = "regulator-fixed";
210                 enable-active-high;
211                 gpio = <&gpio7 RK_PB4 GPIO_ACTIVE_HIGH>;
212                 pinctrl-names = "default";
213                 pinctrl-0 = <&cif_pwr>;
214                 regulator-name = "dvdd_1v2";
215                 regulator-min-microvolt = <1200000>;
216                 regulator-max-microvolt = <1200000>;
217                 vin-supply = <&vcc_io>;
218         };
219
220         vbat_wl: wifi-regulator {
221                 compatible = "regulator-fixed";
222                 regulator-name = "vbat_wl";
223                 regulator-min-microvolt = <3300000>;
224                 regulator-max-microvolt = <3300000>;
225                 vin-supply = <&vcc_io>;
226         };
227 };
228
229 &hdmi {
230         ddc-i2c-bus = <&i2c5>;
231         pinctrl-names = "default";
232         pinctrl-0 = <&hdmi_cec_c0>;
233         status = "okay";
234 };
235
236 &i2c0 {
237         hym8563: hym8563@51 {
238                 compatible = "haoyu,hym8563";
239                 reg = <0x51>;
240                 #clock-cells = <0>;
241                 clock-frequency = <32768>;
242                 clock-output-names = "xin32k";
243                 interrupt-parent = <&gpio7>;
244                 interrupts = <RK_PA4 IRQ_TYPE_EDGE_FALLING>;
245                 pinctrl-names = "default";
246                 pinctrl-0 = <&rtc_int>;
247         };
248 };
249
250 &i2c2 {
251         status = "okay";
252
253         codec: es8328@10 {
254                 compatible = "everest,es8328";
255                 DVDD-supply = <&vcca_33>;
256                 AVDD-supply = <&vcca_33>;
257                 PVDD-supply = <&vcca_33>;
258                 HPVDD-supply = <&vcca_33>;
259                 clocks = <&cru HCLK_I2S0>, <&cru SCLK_I2S0>;
260                 clock-names = "i2s_hclk", "i2s_clk";
261                 reg = <0x10>;
262         };
263 };
264
265 &i2c5 {
266         status = "okay";
267 };
268
269 &i2s {
270         status = "okay";
271 };
272
273 &saradc {
274         status = "okay";
275 };
276
277 &sdmmc {
278         bus-width = <4>;
279         cap-mmc-highspeed;
280         cap-sd-highspeed;
281         card-detect-delay = <200>;
282         disable-wp;
283         pinctrl-names = "default";
284         pinctrl-0 = <&sdmmc_clk>, <&sdmmc_cmd>, <&sdmmc_cd>, <&sdmmc_bus4>;
285         vmmc-supply = <&vcc_sd>;
286         vqmmc-supply = <&vccio_sd>;
287         status = "okay";
288 };
289
290 &sdio0 {
291         bus-width = <4>;
292         cap-sd-highspeed;
293         cap-sdio-irq;
294         disable-wp;
295         mmc-pwrseq = <&sdio_pwrseq>;
296         non-removable;
297         pinctrl-names = "default";
298         pinctrl-0 = <&sdio0_bus4>, <&sdio0_cmd>, <&sdio0_clk>, <&sdio0_int>;
299         sd-uhs-sdr12;
300         sd-uhs-sdr25;
301         sd-uhs-sdr50;
302         sd-uhs-ddr50;
303         vmmc-supply = <&vbat_wl>;
304         vqmmc-supply = <&vccio_wl>;
305         status = "okay";
306 };
307
308 &spdif {
309         status = "okay";
310 };
311
312 &uart0 {
313         pinctrl-names = "default";
314         pinctrl-0 = <&uart0_xfer>, <&uart0_cts>, <&uart0_rts>;
315         status = "okay";
316 };
317
318 &uart1 {
319         status = "okay";
320 };
321
322 &uart2 {
323         status = "okay";
324 };
325
326 &uart3 {
327         status = "okay";
328 };
329
330 &usbphy {
331         status = "okay";
332 };
333
334 &usb_host1 {
335         pinctrl-names = "default";
336         pinctrl-0 = <&usbhub_rst>;
337         status = "okay";
338 };
339
340 &usb_otg {
341         status = "okay";
342 };
343
344 &pinctrl {
345         ir {
346                 ir_int: ir-int {
347                         rockchip,pins = <7 0 RK_FUNC_GPIO &pcfg_pull_up>;
348                 };
349         };
350
351         dvp {
352                 dvp_pwr: dvp-pwr {
353                         rockchip,pins = <0 11 RK_FUNC_GPIO &pcfg_pull_none>;
354                 };
355
356                 cif_pwr: cif-pwr {
357                         rockchip,pins = <7 12 RK_FUNC_GPIO &pcfg_pull_none>;
358                 };
359         };
360
361         hym8563 {
362                 rtc_int: rtc-int {
363                         rockchip,pins = <7 4 RK_FUNC_GPIO &pcfg_pull_up>;
364                 };
365         };
366
367         keys {
368                 pwr_key: pwr-key {
369                         rockchip,pins = <0 5 RK_FUNC_GPIO &pcfg_pull_up>;
370                 };
371         };
372
373         leds {
374                 power_led: power-led {
375                         rockchip,pins = <8 2 RK_FUNC_GPIO &pcfg_pull_none>;
376                 };
377
378                 work_led: work-led {
379                         rockchip,pins = <8 1 RK_FUNC_GPIO &pcfg_pull_none>;
380                 };
381         };
382
383         sdmmc {
384                 /*
385                  * Default drive strength isn't enough to achieve even
386                  * high-speed mode on firefly board so bump up to 12ma.
387                  */
388                 sdmmc_bus4: sdmmc-bus4 {
389                         rockchip,pins = <6 16 RK_FUNC_1 &pcfg_pull_up_drv_12ma>,
390                                         <6 17 RK_FUNC_1 &pcfg_pull_up_drv_12ma>,
391                                         <6 18 RK_FUNC_1 &pcfg_pull_up_drv_12ma>,
392                                         <6 19 RK_FUNC_1 &pcfg_pull_up_drv_12ma>;
393                 };
394
395                 sdmmc_clk: sdmmc-clk {
396                         rockchip,pins = <6 20 RK_FUNC_1 &pcfg_pull_none_12ma>;
397                 };
398
399                 sdmmc_cmd: sdmmc-cmd {
400                         rockchip,pins = <6 21 RK_FUNC_1 &pcfg_pull_up_drv_12ma>;
401                 };
402
403                 sdmmc_pwr: sdmmc-pwr {
404                         rockchip,pins = <7 11 RK_FUNC_GPIO &pcfg_pull_none>;
405                 };
406         };
407
408         sdio {
409                 wifi_enable: wifi-enable {
410                         rockchip,pins = <4 28 RK_FUNC_GPIO &pcfg_pull_none>;
411                 };
412         };
413
414         usb_host {
415                 host_vbus_drv: host-vbus-drv {
416                         rockchip,pins = <0 14 RK_FUNC_GPIO &pcfg_pull_none>;
417                 };
418
419                 usbhub_rst: usbhub-rst {
420                         rockchip,pins = <8 3 RK_FUNC_GPIO &pcfg_output_high>;
421                 };
422         };
423
424         usb_otg {
425                 otg_vbus_drv: otg-vbus-drv {
426                         rockchip,pins = <0 12 RK_FUNC_GPIO &pcfg_pull_none>;
427                 };
428         };
429 };