Merge tag 'usb-5.11-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb
[linux/fpc-iii.git] / arch / arm / boot / dts / rk3188-bqedison2qc.dts
blob66a0ff196eb1f47f8f56ae9e2522a2e80f126cd6
1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2 /*
3  * Copyright (c) 2018 MundoReader S.L.
4  * Author:  Heiko Stuebner <heiko.stuebner@bq.com>
5  */
7 /dts-v1/;
8 #include <dt-bindings/i2c/i2c.h>
9 #include <dt-bindings/input/input.h>
10 #include "rk3188.dtsi"
12 / {
13         model = "BQ Edison2 Quad-Core";
14         compatible = "mundoreader,bq-edison2qc", "rockchip,rk3188";
16         memory@60000000 {
17                 device_type = "memory";
18                 reg = <0x60000000 0x80000000>;
19         };
21         backlight: backlight {
22                 compatible = "pwm-backlight";
23                 power-supply = <&vsys>;
24                 pwms = <&pwm1 0 25000>;
25         };
27         gpio-keys {
28                 compatible = "gpio-keys";
29                 autorepeat;
30                 pinctrl-names = "default";
31                 pinctrl-0 = <&pwr_key &usb_int>;
33                 power {
34                         gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_LOW>;
35                         linux,code = <KEY_POWER>;
36                         label = "GPIO Key Power";
37                         linux,input-type = <1>;
38                         debounce-interval = <100>;
39                         wakeup-source;
40                 };
42                 wake_on_usb: wake-on-usb {
43                         label = "Wake-on-USB";
44                         gpios = <&gpio0 RK_PA7 GPIO_ACTIVE_LOW>;
45                         linux,code = <KEY_WAKEUP>;
46                         wakeup-source;
47                 };
48         };
50         gpio-poweroff {
51                 compatible = "gpio-poweroff";
52                 gpios = <&gpio0 RK_PA0 GPIO_ACTIVE_LOW>;
53                 pinctrl-names = "default";
54                 pinctrl-0 = <&pwr_hold>;
55                 /* only drive the pin low until device is off */
56                 active-delay-ms = <3000>;
57         };
59         lvds-encoder {
60                 compatible = "ti,sn75lvds83", "lvds-encoder";
62                 ports {
63                         #address-cells = <1>;
64                         #size-cells = <0>;
66                         port@0 {
67                                 reg = <0>;
69                                 lvds_in_vop0: endpoint {
70                                         remote-endpoint = <&vop0_out_lvds>;
71                                 };
72                         };
74                         port@1 {
75                                 reg = <1>;
77                                 lvds_out_panel: endpoint {
78                                         remote-endpoint = <&panel_in_lvds>;
79                                 };
80                         };
81                 };
82         };
84         panel {
85                 compatible = "innolux,ee101ia-01d", "panel-lvds";
86                 backlight = <&backlight>;
88                 /* pin LCD_CS, Nshtdn input of lvds-encoder */
89                 enable-gpios = <&gpio3 RK_PD6 GPIO_ACTIVE_HIGH>;
90                 pinctrl-names = "default";
91                 pinctrl-0 = <&lcd_cs>;
92                 power-supply = <&vcc_lcd>;
94                 data-mapping = "vesa-24";
95                 height-mm = <163>;
96                 width-mm = <261>;
98                 panel-timing {
99                         clock-frequency = <72000000>;
100                         hactive = <1280>;
101                         vactive = <800>;
102                         hback-porch = <160>;
103                         hfront-porch = <16>;
104                         hsync-len = <10>;
105                         vback-porch = <23>;
106                         vfront-porch = <12>;
107                         vsync-len = <3>;
108                 };
110                 port {
111                         panel_in_lvds: endpoint {
112                                 remote-endpoint = <&lvds_out_panel>;
113                         };
114                 };
115         };
117         sdio_pwrseq: sdio-pwrseq {
118                 compatible = "mmc-pwrseq-simple";
119                 clocks = <&hym8563>;
120                 clock-names = "ext_clock";
121                 pinctrl-names = "default";
122                 pinctrl-0 = <&wifi_reg_on>;
123                 reset-gpios = <&gpio3 RK_PD0 GPIO_ACTIVE_LOW>;
124         };
126         avdd_cif: cif-avdd-regulator {
127                 compatible = "regulator-fixed";
128                 regulator-name = "avdd-cif";
129                 regulator-min-microvolt = <2800000>;
130                 regulator-max-microvolt = <2800000>;
131                 gpio = <&gpio1 RK_PA6 GPIO_ACTIVE_LOW>;
132                 pinctrl-names = "default";
133                 pinctrl-0 = <&cif_avdd_en>;
134                 startup-delay-us = <100000>;
135                 vin-supply = <&vcc28_cif>;
136         };
138         vcc_5v: vcc-5v-regulator {
139                 compatible = "regulator-fixed";
140                 regulator-name = "vcc-5v";
141                 regulator-min-microvolt = <5000000>;
142                 regulator-max-microvolt = <5000000>;
143                 enable-active-high;
144                 gpio = <&gpio0 RK_PA3 GPIO_ACTIVE_HIGH>;
145                 pinctrl-names = "default";
146                 pinctrl-0 = <&v5_drv>;
147                 vin-supply = <&vsys>;
148         };
150         vcc_lcd: lcd-regulator {
151                 compatible = "regulator-fixed";
152                 regulator-name = "vcc-lcd";
153                 gpio = <&gpio0 RK_PB0 GPIO_ACTIVE_LOW>;
154                 pinctrl-names = "default";
155                 pinctrl-0 = <&lcd_en>;
156                 startup-delay-us = <50000>;
157                 vin-supply = <&vcc_io>;
158         };
160         vcc_otg: usb-otg-regulator {
161                 compatible = "regulator-fixed";
162                 regulator-name = "vcc-otg";
163                 regulator-min-microvolt = <5000000>;
164                 regulator-max-microvolt = <5000000>;
165                 enable-active-high;
166                 gpio = <&gpio3 RK_PB1 GPIO_ACTIVE_HIGH>;
167                 pinctrl-names = "default";
168                 pinctrl-0 = <&otg_drv>;
169                 startup-delay-us = <100000>;
170                 vin-supply = <&vcc_5v>;
171         };
173         vcc_sd: sdmmc-regulator {
174                 compatible = "regulator-fixed";
175                 regulator-name = "vcc-sd";
176                 regulator-min-microvolt = <3300000>;
177                 regulator-max-microvolt = <3300000>;
178                 gpio = <&gpio3 RK_PA1 GPIO_ACTIVE_LOW>;
179                 pinctrl-names = "default";
180                 pinctrl-0 = <&sdmmc_pwr>;
181                 startup-delay-us = <100000>;
182                 vin-supply = <&vcc_io>;
183         };
185         vccq_emmc: emmc-vccq-regulator {
186                 compatible = "regulator-fixed";
187                 regulator-name = "vccq-emmc";
188                 regulator-min-microvolt = <2800000>;
189                 regulator-max-microvolt = <2800000>;
190                 vin-supply = <&vcc_io>;
191         };
193         /* supplied from the bq24196 */
194         vsys: vsys-regulator {
195                 compatible = "regulator-fixed";
196                 regulator-name = "vsys";
197                 regulator-min-microvolt = <5000000>;
198                 regulator-max-microvolt = <5000000>;
199                 regulator-boot-on;
200         };
203 &cpu0 {
204         cpu-supply = <&vdd_arm>;
207 &cpu1 {
208         cpu-supply = <&vdd_arm>;
211 &cpu2 {
212         cpu-supply = <&vdd_arm>;
215 &cpu3 {
216         cpu-supply = <&vdd_arm>;
219 &cru {
220         assigned-clocks = <&cru PLL_GPLL>, <&cru PLL_CPLL>,
221                           <&cru ACLK_CPU>,
222                           <&cru HCLK_CPU>, <&cru PCLK_CPU>,
223                           <&cru ACLK_PERI>, <&cru HCLK_PERI>,
224                           <&cru PCLK_PERI>;
225         assigned-clock-rates = <594000000>, <504000000>,
226                                <300000000>,
227                                <150000000>, <75000000>,
228                                <300000000>, <150000000>,
229                                <75000000>;
232 &emmc {
233         bus-width = <8>;
234         cap-mmc-highspeed;
235         non-removable;
236         pinctrl-names = "default";
237         pinctrl-0 = <&emmc_clk &emmc_cmd>;
238         vmmc-supply = <&vcc_io>;
239         vqmmc-supply = <&vccq_emmc>;
240         status = "okay";
243 &gpu {
244         status = "okay";
247 &i2c0 {
248         clock-frequency = <400000>;
249         status = "okay";
251         lis3de: accelerometer@29 {
252                 compatible = "st,lis3de";
253                 reg = <0x29>;
254                 interrupt-parent = <&gpio0>;
255                 interrupts = <RK_PB7 IRQ_TYPE_EDGE_RISING>;
256                 pinctrl-names = "default";
257                 pinctrl-0 = <&gsensor_int>;
258                 rotation-matrix = "1", "0", "0",
259                                   "0", "-1", "0",
260                                   "0", "0", "1";
261                 vdd-supply = <&vcc_io>;
262         };
265 &i2c1 {
266         clock-frequency = <400000>;
267         status = "okay";
269         tmp108@48 {
270                 compatible = "ti,tmp108";
271                 reg = <0x48>;
272                 interrupt-parent = <&gpio1>;
273                 interrupts = <RK_PA7 IRQ_TYPE_LEVEL_LOW>;
274                 pinctrl-names = "default";
275                 pinctrl-0 = <&tmp_alrt>;
276                 #thermal-sensor-cells = <0>;
277         };
279         hym8563: rtc@51 {
280                 compatible = "haoyu,hym8563";
281                 reg = <0x51>;
282                 interrupt-parent = <&gpio0>;
283                 interrupts = <RK_PB5 IRQ_TYPE_EDGE_FALLING>;
284                 pinctrl-names = "default";
285                 pinctrl-0 = <&rtc_int>;
286                 #clock-cells = <0>;
287                 clock-output-names = "xin32k";
288         };
290         bat: battery@55 {
291                 compatible = "ti,bq27541";
292                 reg = <0x55>;
293                 power-supplies = <&bq24196>;
294         };
296         act8846: pmic@5a {
297                 compatible = "active-semi,act8846";
298                 reg = <0x5a>;
299                 pinctrl-names = "default";
300                 pinctrl-0 = <&dvs0_ctl &pmic_int>;
302                 vp1-supply = <&vsys>;
303                 vp2-supply = <&vsys>;
304                 vp3-supply = <&vsys>;
305                 vp4-supply = <&vsys>;
306                 inl1-supply = <&vcc_io>;
307                 inl2-supply = <&vsys>;
308                 inl3-supply = <&vsys>;
310                 regulators {
311                         vcc_ddr: REG1 {
312                                 regulator-name = "VCC_DDR";
313                                 regulator-min-microvolt = <1200000>;
314                                 regulator-max-microvolt = <1200000>;
315                                 regulator-always-on;
316                         };
318                         vdd_log: REG2 {
319                                 regulator-name = "VDD_LOG";
320                                 regulator-min-microvolt = <1000000>;
321                                 regulator-max-microvolt = <1200000>;
322                                 regulator-always-on;
323                         };
325                         vdd_arm: REG3 {
326                                 regulator-name = "VDD_ARM";
327                                 regulator-min-microvolt = <875000>;
328                                 regulator-max-microvolt = <1350000>;
329                                 regulator-always-on;
330                         };
332                         vcc_io: vcc_hdmi: REG4 {
333                                 regulator-name = "VCC_IO";
334                                 regulator-min-microvolt = <3000000>;
335                                 regulator-max-microvolt = <3000000>;
336                                 regulator-always-on;
337                         };
339                         vdd_10: REG5 {
340                                 regulator-name = "VDD_10";
341                                 regulator-min-microvolt = <1000000>;
342                                 regulator-max-microvolt = <1000000>;
343                                 regulator-always-on;
344                         };
346                         vdd_12: REG6 {
347                                 regulator-name = "VDD_12";
348                                 regulator-min-microvolt = <1200000>;
349                                 regulator-max-microvolt = <1200000>;
350                                 regulator-always-on;
351                         };
353                         vcc18_cif: REG7 {
354                                 regulator-name = "VCC18_CIF";
355                                 regulator-min-microvolt = <1800000>;
356                                 regulator-max-microvolt = <1800000>;
357                                 regulator-always-on;
358                         };
360                         vcca_33: REG8 {
361                                 regulator-name = "VCCA_33";
362                                 regulator-min-microvolt = <3300000>;
363                                 regulator-max-microvolt = <3300000>;
364                                 regulator-always-on;
365                         };
367                         vcc_tp: REG9 {
368                                 regulator-name = "VCC_TP";
369                                 regulator-min-microvolt = <3300000>;
370                                 regulator-max-microvolt = <3300000>;
371                                 regulator-always-on;
372                         };
374                         vccio_wl: REG10 {
375                                 regulator-name = "VCCIO_WL";
376                                 regulator-min-microvolt = <2800000>;
377                                 regulator-max-microvolt = <2800000>;
378                                 regulator-always-on;
379                         };
381                         vcc_18: REG11 {
382                                 regulator-name = "VCC_18";
383                                 regulator-min-microvolt = <1800000>;
384                                 regulator-max-microvolt = <1800000>;
385                                 regulator-always-on;
386                         };
388                         vcc28_cif: REG12 {
389                                 regulator-name = "VCC28_CIF";
390                                 regulator-min-microvolt = <2800000>;
391                                 regulator-max-microvolt = <2800000>;
392                                 regulator-always-on;
393                         };
394                 };
395         };
397         bq24196: charger@6b {
398                 compatible = "ti,bq24196";
399                 reg = <0x6b>;
400                 interrupt-parent = <&gpio0>;
401                 interrupts = <RK_PD7 IRQ_TYPE_EDGE_FALLING>;
402                 pinctrl-names = "default";
403                 pinctrl-0 = <&charger_int &chg_ctl &otg_en>;
404                 ti,system-minimum-microvolt = <3200000>;
405                 monitored-battery = <&bat>;
406                 omit-battery-class;
408                 usb_otg_vbus: usb-otg-vbus { };
409         };
412 &i2c2 {
413         clock-frequency = <400000>;
414         status = "okay";
416         ft5606: touchscreen@3e {
417                 compatible = "edt,edt-ft5506";
418                 reg = <0x3e>;
419                 interrupt-parent = <&gpio1>;
420                 interrupts = <RK_PB7 IRQ_TYPE_EDGE_FALLING>;
421                 pinctrl-names = "default";
422                 pinctrl-0 = <&tp_int &tp_rst>;
423                 reset-gpios = <&gpio0 RK_PB6 GPIO_ACTIVE_LOW>;
424                 touchscreen-inverted-y;
425                 /* hw ts resolution does not match display */
426                 touchscreen-size-y = <1024>;
427                 touchscreen-size-x = <768>;
428                 touchscreen-swapped-x-y;
429         };
432 &i2c3 {
433         clock-frequency = <400000>;
434         status = "okay";
437 &i2c4 {
438         clock-frequency = <400000>;
439         status = "okay";
441         rt5616: codec@1b {
442                 compatible = "realtek,rt5616";
443                 reg = <0x1b>;
444                 clocks = <&cru SCLK_I2S0>;
445                 clock-names = "mclk";
446                 #sound-dai-cells = <0>;
447         };
450 &i2s0 {
451         status = "okay";
454 &mmc0 {
455         bus-width = <4>;
456         cap-mmc-highspeed;
457         cap-sd-highspeed;
458         disable-wp;
459         pinctrl-names = "default";
460         pinctrl-0 = <&sd0_clk>, <&sd0_cmd>, <&sd0_cd>, <&sd0_bus4>;
461         vmmc-supply = <&vcc_sd>;
462         status = "okay";
465 &mmc1 {
466         bus-width = <4>;
467         cap-sd-highspeed;
468         keep-power-in-suspend;
469         mmc-pwrseq = <&sdio_pwrseq>;
470         non-removable;
471         pinctrl-names = "default";
472         pinctrl-0 = <&sd1_clk>, <&sd1_cmd>, <&sd1_bus4>;
473         vqmmc-supply = <&vccio_wl>;
474         #address-cells = <1>;
475         #size-cells = <0>;
476         status = "okay";
478         brcmf: wifi@1 {
479                 reg = <1>;
480                 compatible = "brcm,bcm4329-fmac";
481                 interrupt-parent = <&gpio3>;
482                 interrupts = <RK_PD2 GPIO_ACTIVE_HIGH>;
483                 interrupt-names = "host-wake";
484                 brcm,drive-strength = <5>;
485                 pinctrl-names = "default";
486                 pinctrl-0 = <&wifi_host_wake>;
487         };
490 &pwm1 {
491         status = "okay";
494 &pinctrl {
495         pcfg_output_high: pcfg-output-high {
496                 output-high;
497         };
499         pcfg_output_low: pcfg-output-low {
500                 output-low;
501         };
503         act8846 {
504                 dvs0_ctl: dvs0-ctl {
505                         rockchip,pins = <3 RK_PD3 RK_FUNC_GPIO &pcfg_output_low>;
506                 };
508                 pmic_int: pmic-int {
509                         rockchip,pins = <0 RK_PB3 RK_FUNC_GPIO &pcfg_pull_up>;
510                 };
511         };
513         bq24196 {
514                 charger_int: charger-int {
515                         rockchip,pins = <0 RK_PD7 RK_FUNC_GPIO &pcfg_pull_up>;
516                 };
518                 /* pin hog to make it select usb profile */
519                 chg_ctl: chg-ctl {
520                         rockchip,pins = <0 RK_PA1 RK_FUNC_GPIO &pcfg_output_high>;
521                 };
523                 /* low: charging, high: complete, fault: blinking */
524                 chg_det: chg-det {
525                         rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>;
526                 };
528                 /* charging enabled when pin low and register set */
529                 chg_en: chg-en {
530                         rockchip,pins = <0 RK_PC1 RK_FUNC_GPIO &pcfg_output_low>;
531                 };
533                 /* bq29196 powergood (when low) signal */
534                 dc_det: dc-det {
535                         rockchip,pins = <0 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>;
536                 };
538                 /* wire bq24196 otg pin to high, to enable 500mA charging */
539                 otg_en: otg-en {
540                         rockchip,pins = <0 RK_PB1 RK_FUNC_GPIO &pcfg_output_high>;
541                 };
542         };
544         camera {
545                 cif0_pdn: cif0-pdn {
546                         rockchip,pins = <3 RK_PB4 RK_FUNC_GPIO &pcfg_pull_none>;
547                 };
549                 cif1_pdn: cif1-pdn {
550                         rockchip,pins = <3 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>;
551                 };
553                 cif_avdd_en: cif-avdd-en {
554                         rockchip,pins = <1 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>;
555                 };
556         };
558         display {
559                 lcd_cs: lcd-cs {
560                         rockchip,pins = <3 RK_PD6 RK_FUNC_GPIO &pcfg_pull_none>;
561                 };
563                 lcd_en: lcd-en {
564                         rockchip,pins = <0 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>;
565                 };
566         };
568         ft5606 {
569                 tp_int: tp-int {
570                         rockchip,pins = <1 RK_PB7 RK_FUNC_GPIO &pcfg_pull_up>;
571                 };
573                 tp_rst: tp-rst {
574                         rockchip,pins = <0 RK_PB6 RK_FUNC_GPIO &pcfg_pull_none>;
575                 };
576         };
578         hdmi {
579                 hdmi_int: hdmi-int {
580                         rockchip,pins = <2 RK_PD6 RK_FUNC_GPIO &pcfg_pull_up>;
581                 };
583                 hdmi_rst: hdmi-rst {
584                         rockchip,pins = <3 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>;
585                 };
586         };
588         hym8563 {
589                 rtc_int: rtc-int {
590                         rockchip,pins = <0 RK_PB5 RK_FUNC_GPIO &pcfg_pull_up>;
591                 };
592         };
594         keys {
595                 pwr_hold: pwr-hold {
596                         rockchip,pins = <0 RK_PA0 RK_FUNC_GPIO &pcfg_pull_up>;
597                 };
599                 pwr_key: pwr-key {
600                         rockchip,pins = <0 RK_PA4 RK_FUNC_GPIO &pcfg_pull_up>;
601                 };
602         };
604         lis3de {
605                 gsensor_int: gsensor-int {
606                         rockchip,pins = <0 RK_PB7 RK_FUNC_GPIO &pcfg_pull_none>;
607                 };
608         };
610         mmc {
611                 sdmmc_pwr: sdmmc-pwr {
612                         rockchip,pins = <3 RK_PA1 RK_FUNC_GPIO &pcfg_pull_none>;
613                 };
614         };
616         tmp108 {
617                 tmp_alrt: tmp-alrt {
618                         rockchip,pins = <1 RK_PA7 RK_FUNC_GPIO &pcfg_pull_none>;
619                 };
620         };
622         usb {
623                 v5_drv: v5-drv {
624                         rockchip,pins = <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_none>;
625                 };
627                 otg_drv: otg-drv {
628                         rockchip,pins = <3 RK_PB1 RK_FUNC_GPIO &pcfg_pull_none>;
629                 };
631                 usb_int: usb-int {
632                         rockchip,pins = <0 RK_PA7 RK_FUNC_GPIO &pcfg_pull_up>;
633                 };
634         };
636         rk903 {
637                 bt_host_wake: bt-host-wake {
638                         rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>;
639                 };
641                 bt_reg_on: bt-reg-on {
642                         rockchip,pins = <3 RK_PC7 RK_FUNC_GPIO &pcfg_pull_none>;
643                 };
645                 /* pin hog to pull the reset high */
646                 bt_rst: bt-rst {
647                         rockchip,pins = <3 RK_PD1 RK_FUNC_GPIO &pcfg_output_high>;
648                 };
650                 bt_wake: bt-wake {
651                         rockchip,pins = <3 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>;
652                 };
654                 wifi_host_wake: wifi-host-wake {
655                         rockchip,pins = <3 RK_PD2 RK_FUNC_GPIO &pcfg_pull_up>;
656                 };
658                 wifi_reg_on: wifi-reg-on {
659                         rockchip,pins = <3 RK_PD0 RK_FUNC_GPIO &pcfg_pull_none>;
660                 };
661         };
664 &saradc {
665         vref-supply = <&vcc_18>;
666         status = "okay";
669 &spdif {
670         status = "okay";
673 &uart0 {
674         pinctrl-0 = <&uart0_xfer &uart0_cts &uart0_rts>;
675         status = "okay";
677         bluetooth {
678                 compatible = "brcm,bcm43438-bt";
679                 max-speed = <2000000>;
680                 device-wakeup-gpios = <&gpio3 RK_PC6 GPIO_ACTIVE_HIGH>;
681                 host-wakeup-gpios = <&gpio0 RK_PA5 GPIO_ACTIVE_HIGH>;
682                 shutdown-gpios = <&gpio3 RK_PC7 GPIO_ACTIVE_HIGH>;
683                 pinctrl-names = "default";
684                 pinctrl-0 = <&bt_host_wake &bt_reg_on &bt_rst &bt_wake>;
685         };
688 &uart1 {
689         status = "okay";
692 &uart2 {
693         status = "okay";
696 &uart3 {
697         pinctrl-0 = <&uart3_xfer &uart3_cts &uart3_rts>;
698         status = "okay";
701 &usbphy {
702         status = "okay";
705 &usb_host {
706         status = "okay";
709 &usb_otg {
710         status = "okay";
713 &vop0 {
714         status = "okay";
717 &vop0_out {
718         vop0_out_lvds: endpoint {
719                 remote-endpoint = <&lvds_in_vop0>;
720         };
723 &vop1 {
724         pinctrl-names = "default";
725         pinctrl-0 = <&lcdc1_dclk &lcdc1_den &lcdc1_hsync
726                      &lcdc1_vsync &lcdc1_rgb24>;
727         status = "okay";
730 &wdt {
731         status = "okay";