Merge tag 'integrity-v6.4' of git://git.kernel.org/pub/scm/linux/kernel/git/zohar...
[linux-2.6-microblaze.git] / arch / arm64 / boot / dts / rockchip / rk3326-odroid-go.dtsi
1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2 /*
3  * Copyright (c) 2019 Hardkernel Co., Ltd
4  * Copyright (c) 2020 Theobroma Systems Design und Consulting GmbH
5  * Copyright (c) 2022 Maya Matuszczyk <maccraft123mc@gmail.com>
6  */
7
8 /dts-v1/;
9 #include <dt-bindings/gpio/gpio.h>
10 #include <dt-bindings/input/input.h>
11 #include <dt-bindings/leds/common.h>
12 #include <dt-bindings/pinctrl/rockchip.h>
13 #include "rk3326.dtsi"
14
15 / {
16         aliases {
17                 mmc0 = &sdmmc;
18         };
19
20         chosen {
21                 stdout-path = "serial2:115200n8";
22         };
23
24         backlight: backlight {
25                 compatible = "pwm-backlight";
26                 power-supply = <&vcc_bl>;
27                 pwms = <&pwm1 0 25000 0>;
28         };
29
30         builtin_gamepad: gpio-keys {
31                 compatible = "gpio-keys";
32                 pinctrl-names = "default";
33                 pinctrl-0 = <&btn_pins>;
34
35                 button-sw1 {
36                         gpios = <&gpio1 RK_PB4 GPIO_ACTIVE_LOW>;
37                         label = "DPAD-UP";
38                         linux,code = <BTN_DPAD_UP>;
39                 };
40                 button-sw2 {
41                         gpios = <&gpio1 RK_PB5 GPIO_ACTIVE_LOW>;
42                         label = "DPAD-DOWN";
43                         linux,code = <BTN_DPAD_DOWN>;
44                 };
45                 button-sw3 {
46                         gpios = <&gpio1 RK_PB6 GPIO_ACTIVE_LOW>;
47                         label = "DPAD-LEFT";
48                         linux,code = <BTN_DPAD_LEFT>;
49                 };
50                 button-sw4 {
51                         gpios = <&gpio1 RK_PB7 GPIO_ACTIVE_LOW>;
52                         label = "DPAD-RIGHT";
53                         linux,code = <BTN_DPAD_RIGHT>;
54                 };
55                 button-sw5 {
56                         gpios = <&gpio1 RK_PA2 GPIO_ACTIVE_LOW>;
57                         label = "BTN-A";
58                         linux,code = <BTN_EAST>;
59                 };
60                 button-sw6 {
61                         gpios = <&gpio1 RK_PA5 GPIO_ACTIVE_LOW>;
62                         label = "BTN-B";
63                         linux,code = <BTN_SOUTH>;
64                 };
65                 button-sw7 {
66                         gpios = <&gpio1 RK_PA6 GPIO_ACTIVE_LOW>;
67                         label = "BTN-Y";
68                         linux,code = <BTN_WEST>;
69                 };
70                 button-sw8 {
71                         gpios = <&gpio1 RK_PA7 GPIO_ACTIVE_LOW>;
72                         label = "BTN-X";
73                         linux,code = <BTN_NORTH>;
74                 };
75                 btn_f1: button-sw9 {
76                         gpios = <&gpio2 RK_PA0 GPIO_ACTIVE_LOW>;
77                         label = "F1";
78                         linux,code = <BTN_TRIGGER_HAPPY1>;
79                 };
80                 btn_f2: button-sw10 {
81                         gpios = <&gpio2 RK_PA1 GPIO_ACTIVE_LOW>;
82                         label = "F2";
83                         linux,code = <BTN_TRIGGER_HAPPY2>;
84                 };
85                 btn_f3: button-sw11 {
86                         gpios = <&gpio2 RK_PA2 GPIO_ACTIVE_LOW>;
87                         label = "F3";
88                         linux,code = <BTN_TRIGGER_HAPPY3>;
89                 };
90                 btn_f4: button-sw12 {
91                         gpios = <&gpio2 RK_PA3 GPIO_ACTIVE_LOW>;
92                         label = "F4";
93                         linux,code = <BTN_TRIGGER_HAPPY4>;
94                 };
95                 btn_f5: button-sw13 {
96                         gpios = <&gpio2 RK_PA4 GPIO_ACTIVE_LOW>;
97                         label = "F5";
98                         linux,code = <BTN_TRIGGER_HAPPY5>;
99                 };
100                 btn_f6: button-sw14 {
101                         gpios = <&gpio2 RK_PA5 GPIO_ACTIVE_LOW>;
102                         label = "F6";
103                         linux,code = <BTN_TRIGGER_HAPPY6>;
104                 };
105                 button-sw15 {
106                         gpios = <&gpio2 RK_PA6 GPIO_ACTIVE_LOW>;
107                         label = "TOP-LEFT";
108                         linux,code = <BTN_TL>;
109                 };
110                 button-sw16 {
111                         gpios = <&gpio2 RK_PA7 GPIO_ACTIVE_LOW>;
112                         label = "TOP-RIGHT";
113                         linux,code = <BTN_TR>;
114                 };
115         };
116
117         /* led-1 is wired directly to output of always-on regulator */
118
119         gpio_led: gpio-leds {
120                 compatible = "gpio-leds";
121                 pinctrl-names = "default";
122                 pinctrl-0 = <&red_led_pin>;
123
124                 red_led: led-3 {
125                         color = <LED_COLOR_ID_RED>;
126                         gpios = <&gpio0 RK_PB5 GPIO_ACTIVE_HIGH>;
127                         function = LED_FUNCTION_CHARGING;
128                 };
129         };
130
131         pwm_led: led-controller {
132                 compatible = "pwm-leds";
133
134                 blue_led: led-2 {
135                         color = <LED_COLOR_ID_BLUE>;
136                         function = LED_FUNCTION_STATUS;
137                         linux,default-trigger = "heartbeat";
138                         max-brightness = <255>;
139                         pwms = <&pwm3 0 25000 0>;
140                 };
141         };
142
143         rk817-sound {
144                 compatible = "simple-audio-card";
145                 simple-audio-card,name = "rk817_int";
146                 simple-audio-card,format = "i2s";
147                 simple-audio-card,hp-det-gpio = <&gpio2 RK_PC6 GPIO_ACTIVE_HIGH>;
148                 simple-audio-card,mclk-fs = <256>;
149                 simple-audio-card,widgets =
150                         "Microphone", "Mic Jack",
151                         "Headphone", "Headphones",
152                         "Speaker", "Speaker";
153                 simple-audio-card,routing =
154                         "MICL", "Mic Jack",
155                         "Headphones", "HPOL",
156                         "Headphones", "HPOR",
157                         "Speaker", "SPKO";
158
159                 simple-audio-card,codec {
160                         sound-dai = <&rk817>;
161                 };
162
163                 simple-audio-card,cpu {
164                         sound-dai = <&i2s1_2ch>;
165                 };
166         };
167
168         vccsys: vccsys {
169                 compatible = "regulator-fixed";
170                 regulator-name = "vcc3v8_sys";
171                 regulator-always-on;
172                 regulator-min-microvolt = <3800000>;
173                 regulator-max-microvolt = <3800000>;
174         };
175
176         vcc_host: vcc_host {
177                 compatible = "regulator-fixed";
178                 regulator-name = "vcc_host";
179                 regulator-min-microvolt = <5000000>;
180                 regulator-max-microvolt = <5000000>;
181
182                 gpio = <&gpio0 RK_PB7 GPIO_ACTIVE_HIGH>;
183                 enable-active-high;
184                 regulator-always-on;
185                 regulator-boot-on;
186                 vin-supply = <&usb_midu>;
187         };
188 };
189
190 &cpu0 {
191         cpu-supply = <&vdd_arm>;
192 };
193
194 &cpu1 {
195         cpu-supply = <&vdd_arm>;
196 };
197
198 &cpu2 {
199         cpu-supply = <&vdd_arm>;
200 };
201
202 &cpu3 {
203         cpu-supply = <&vdd_arm>;
204 };
205
206 &cru {
207         assigned-clocks = <&cru PLL_NPLL>,
208                 <&cru ACLK_BUS_PRE>, <&cru ACLK_PERI_PRE>,
209                 <&cru HCLK_BUS_PRE>, <&cru HCLK_PERI_PRE>,
210                 <&cru PCLK_BUS_PRE>, <&cru SCLK_GPU>;
211
212         assigned-clock-rates = <1188000000>,
213                 <200000000>, <200000000>,
214                 <150000000>, <150000000>,
215                 <100000000>, <200000000>;
216 };
217
218 &display_subsystem {
219         status = "okay";
220 };
221
222 &dsi {
223         status = "okay";
224
225         ports {
226                 mipi_out: port@1 {
227                         reg = <1>;
228
229                         mipi_out_panel: endpoint {
230                                 remote-endpoint = <&mipi_in_panel>;
231                         };
232                 };
233         };
234
235         internal_display: panel@0 {
236                 reg = <0>;
237                 backlight = <&backlight>;
238                 reset-gpios = <&gpio3 RK_PC0 GPIO_ACTIVE_LOW>;
239                 rotation = <270>;
240
241                 port {
242                         mipi_in_panel: endpoint {
243                                 remote-endpoint = <&mipi_out_panel>;
244                         };
245                 };
246         };
247 };
248
249 &dsi_dphy {
250         status = "okay";
251 };
252
253 &gpu {
254         mali-supply = <&vdd_logic>;
255         status = "okay";
256 };
257
258 &i2c0 {
259         clock-frequency = <400000>;
260         i2c-scl-falling-time-ns = <16>;
261         i2c-scl-rising-time-ns = <280>;
262         status = "okay";
263
264         rk817: pmic@20 {
265                 compatible = "rockchip,rk817";
266                 reg = <0x20>;
267                 interrupt-parent = <&gpio0>;
268                 interrupts = <RK_PB2 IRQ_TYPE_LEVEL_LOW>;
269                 clock-output-names = "rk808-clkout1", "xin32k";
270                 clock-names = "mclk";
271                 clocks = <&cru SCLK_I2S1_OUT>;
272                 pinctrl-names = "default";
273                 pinctrl-0 = <&pmic_int>, <&i2s1_2ch_mclk>;
274                 wakeup-source;
275                 #clock-cells = <1>;
276                 #sound-dai-cells = <0>;
277
278                 vcc1-supply = <&vccsys>;
279                 vcc2-supply = <&vccsys>;
280                 vcc3-supply = <&vccsys>;
281                 vcc4-supply = <&vccsys>;
282                 vcc5-supply = <&vccsys>;
283                 vcc6-supply = <&vccsys>;
284                 vcc7-supply = <&vccsys>;
285                 vcc8-supply = <&vccsys>;
286
287                 regulators {
288                         vdd_logic: DCDC_REG1 {
289                                 regulator-name = "vdd_logic";
290                                 regulator-min-microvolt = <950000>;
291                                 regulator-max-microvolt = <1150000>;
292                                 regulator-ramp-delay = <6001>;
293                                 regulator-always-on;
294                                 regulator-boot-on;
295
296                                 regulator-state-mem {
297                                         regulator-on-in-suspend;
298                                         regulator-suspend-microvolt = <950000>;
299                                 };
300                         };
301
302                         vdd_arm: DCDC_REG2 {
303                                 regulator-name = "vdd_arm";
304                                 regulator-min-microvolt = <950000>;
305                                 regulator-max-microvolt = <1350000>;
306                                 regulator-ramp-delay = <6001>;
307                                 regulator-always-on;
308                                 regulator-boot-on;
309
310                                 regulator-state-mem {
311                                         regulator-off-in-suspend;
312                                         regulator-suspend-microvolt = <950000>;
313                                 };
314                         };
315
316                         vcc_ddr: DCDC_REG3 {
317                                 regulator-name = "vcc_ddr";
318                                 regulator-always-on;
319                                 regulator-boot-on;
320
321                                 regulator-state-mem {
322                                         regulator-on-in-suspend;
323                                 };
324                         };
325
326                         vcc_3v3: DCDC_REG4 {
327                                 regulator-name = "vcc_3v3";
328                                 regulator-min-microvolt = <3300000>;
329                                 regulator-max-microvolt = <3300000>;
330                                 regulator-always-on;
331                                 regulator-boot-on;
332
333                                 regulator-state-mem {
334                                         regulator-off-in-suspend;
335                                         regulator-suspend-microvolt = <3300000>;
336                                 };
337                         };
338
339                         vcc_1v8: LDO_REG2 {
340                                 regulator-name = "vcc_1v8";
341                                 regulator-min-microvolt = <1800000>;
342                                 regulator-max-microvolt = <1800000>;
343                                 regulator-always-on;
344                                 regulator-boot-on;
345
346                                 regulator-state-mem {
347                                         regulator-on-in-suspend;
348                                         regulator-suspend-microvolt = <1800000>;
349                                 };
350                         };
351
352                         vdd_1v0: LDO_REG3 {
353                                 regulator-name = "vdd_1v0";
354                                 regulator-min-microvolt = <1000000>;
355                                 regulator-max-microvolt = <1000000>;
356                                 regulator-always-on;
357                                 regulator-boot-on;
358
359                                 regulator-state-mem {
360                                         regulator-on-in-suspend;
361                                         regulator-suspend-microvolt = <1000000>;
362                                 };
363                         };
364
365                         vcc3v3_pmu: LDO_REG4 {
366                                 regulator-name = "vcc3v3_pmu";
367                                 regulator-min-microvolt = <3300000>;
368                                 regulator-max-microvolt = <3300000>;
369                                 regulator-always-on;
370                                 regulator-boot-on;
371
372                                 regulator-state-mem {
373                                         regulator-on-in-suspend;
374                                         regulator-suspend-microvolt = <3300000>;
375                                 };
376                         };
377
378                         vccio_sd: LDO_REG5 {
379                                 regulator-name = "vccio_sd";
380                                 regulator-min-microvolt = <1800000>;
381                                 regulator-max-microvolt = <3300000>;
382                                 regulator-always-on;
383                                 regulator-boot-on;
384
385                                 regulator-state-mem {
386                                         regulator-on-in-suspend;
387                                         regulator-suspend-microvolt = <3300000>;
388                                 };
389                         };
390
391                         vcc_sd: LDO_REG6 {
392                                 regulator-name = "vcc_sd";
393                                 regulator-min-microvolt = <3300000>;
394                                 regulator-max-microvolt = <3300000>;
395                                 regulator-boot-on;
396
397                                 regulator-state-mem {
398                                         regulator-on-in-suspend;
399                                         regulator-suspend-microvolt = <3300000>;
400                                 };
401                         };
402
403                         vcc_bl: LDO_REG7 {
404                                 regulator-name = "vcc_bl";
405                                 regulator-min-microvolt = <3300000>;
406                                 regulator-max-microvolt = <3300000>;
407
408                                 regulator-state-mem {
409                                         regulator-off-in-suspend;
410                                         regulator-suspend-microvolt = <3300000>;
411                                 };
412                         };
413
414                         vcc_lcd: LDO_REG8 {
415                                 regulator-name = "vcc_lcd";
416                                 regulator-min-microvolt = <2800000>;
417                                 regulator-max-microvolt = <2800000>;
418
419                                 regulator-state-mem {
420                                         regulator-off-in-suspend;
421                                         regulator-suspend-microvolt = <2800000>;
422                                 };
423                         };
424
425                         LDO_REG9 {
426                                 /* unused */
427                         };
428
429                         usb_midu: BOOST {
430                                 regulator-name = "usb_midu";
431                                 regulator-min-microvolt = <5000000>;
432                                 regulator-max-microvolt = <5400000>;
433                                 regulator-always-on;
434                                 regulator-boot-on;
435                         };
436                 };
437
438                 rk817_charger: charger {
439                         rockchip,resistor-sense-micro-ohms = <10000>;
440                         rockchip,sleep-enter-current-microamp = <300000>;
441                         rockchip,sleep-filter-current-microamp = <100000>;
442                 };
443
444                 rk817_codec: codec {
445                         rockchip,mic-in-differential;
446                 };
447         };
448 };
449
450 /* EXT Header(P2): 7(SCL:GPIO0.C2), 8(SDA:GPIO0.C3) */
451 &i2c1 {
452         clock-frequency = <400000>;
453         status = "okay";
454 };
455
456 /* I2S 1 Channel Used */
457 &i2s1_2ch {
458         status = "okay";
459 };
460
461 &io_domains {
462         vccio1-supply = <&vcc_3v3>;
463         vccio2-supply = <&vccio_sd>;
464         vccio3-supply = <&vcc_3v3>;
465         vccio4-supply = <&vcc_3v3>;
466         vccio5-supply = <&vcc_3v3>;
467         vccio6-supply = <&vcc_3v3>;
468         status = "okay";
469 };
470
471 &pmu_io_domains {
472         pmuio1-supply = <&vcc3v3_pmu>;
473         pmuio2-supply = <&vcc3v3_pmu>;
474         status = "okay";
475 };
476
477 &pwm1 {
478         status = "okay";
479 };
480
481 &pwm3 {
482         status = "okay";
483 };
484
485 &saradc {
486         vref-supply = <&vcc_1v8>;
487         status = "okay";
488 };
489
490 &sdmmc {
491         cap-sd-highspeed;
492         card-detect-delay = <200>;
493         cd-gpios = <&gpio0 RK_PA3 GPIO_ACTIVE_LOW>; /*[> CD GPIO <]*/
494         sd-uhs-sdr12;
495         sd-uhs-sdr25;
496         sd-uhs-sdr50;
497         sd-uhs-sdr104;
498         vmmc-supply = <&vcc_sd>;
499         vqmmc-supply = <&vccio_sd>;
500         status = "okay";
501 };
502
503 &sfc {
504         pinctrl-0 = <&sfc_clk &sfc_cs0 &sfc_bus2>;
505         pinctrl-names = "default";
506         #address-cells = <1>;
507         #size-cells = <0>;
508         status = "okay";
509
510         flash@0 {
511                 compatible = "jedec,spi-nor";
512                 reg = <0>;
513                 spi-max-frequency = <108000000>;
514                 spi-rx-bus-width = <2>;
515                 spi-tx-bus-width = <1>;
516         };
517 };
518
519 &tsadc {
520         status = "okay";
521 };
522
523 &u2phy {
524         status = "okay";
525
526         u2phy_host: host-port {
527                 status = "okay";
528         };
529
530         u2phy_otg: otg-port {
531                 status = "disabled";
532         };
533 };
534
535 &usb20_otg {
536         status = "okay";
537 };
538
539 /* EXT Header(P2): 2(RXD:GPIO1.C0),3(TXD:.C1),4(CTS:.C2),5(RTS:.C3) */
540 &uart1 {
541         pinctrl-names = "default";
542         pinctrl-0 = <&uart1_xfer &uart1_cts>;
543         status = "okay";
544 };
545
546 &uart2 {
547         pinctrl-names = "default";
548         pinctrl-0 = <&uart2m1_xfer>;
549         status = "okay";
550 };
551
552 &vopb {
553         status = "okay";
554 };
555
556 &vopb_mmu {
557         status = "okay";
558 };
559
560 &pinctrl {
561         btns {
562                 btn_pins: btn-pins {
563                         rockchip,pins = <1 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up>,
564                                         <1 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>,
565                                         <1 RK_PA6 RK_FUNC_GPIO &pcfg_pull_up>,
566                                         <1 RK_PA7 RK_FUNC_GPIO &pcfg_pull_up>,
567                                         <1 RK_PB4 RK_FUNC_GPIO &pcfg_pull_up>,
568                                         <1 RK_PB5 RK_FUNC_GPIO &pcfg_pull_up>,
569                                         <1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_up>,
570                                         <1 RK_PB7 RK_FUNC_GPIO &pcfg_pull_up>,
571                                         <2 RK_PA0 RK_FUNC_GPIO &pcfg_pull_up>,
572                                         <2 RK_PA1 RK_FUNC_GPIO &pcfg_pull_up>,
573                                         <2 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up>,
574                                         <2 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>,
575                                         <2 RK_PA4 RK_FUNC_GPIO &pcfg_pull_up>,
576                                         <2 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>,
577                                         <2 RK_PA6 RK_FUNC_GPIO &pcfg_pull_up>,
578                                         <2 RK_PA7 RK_FUNC_GPIO &pcfg_pull_up>;
579                 };
580         };
581
582         headphone {
583                 hp_det: hp-det {
584                         rockchip,pins = <2 RK_PC6 RK_FUNC_GPIO &pcfg_pull_down>;
585                 };
586         };
587
588         leds {
589                 red_led_pin: red-led-pin {
590                         rockchip,pins = <0 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>;
591                 };
592         };
593
594         pmic {
595                 dc_det: dc-det {
596                         rockchip,pins = <0 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>;
597                 };
598
599                 pmic_int: pmic-int {
600                         rockchip,pins = <0 RK_PB2 RK_FUNC_GPIO &pcfg_pull_up>;
601                 };
602
603                 soc_slppin_gpio: soc_slppin_gpio {
604                         rockchip,pins = <0 RK_PA4 RK_FUNC_GPIO &pcfg_output_low>;
605                 };
606
607                 soc_slppin_rst: soc_slppin_rst {
608                         rockchip,pins = <0 RK_PA4 2 &pcfg_pull_none>;
609                 };
610
611                 soc_slppin_slp: soc_slppin_slp {
612                         rockchip,pins = <0 RK_PA4 1 &pcfg_pull_none>;
613                 };
614         };
615 };