summaryrefslogtreecommitdiff
path: root/arch/arm64/boot/dts/amlogic/g12a_s905x2_u212_1g.dts (plain)
blob: f1705dbb088fa2f0631bf3b9994f49c24ffa36a2
1/*
2 * arch/arm64/boot/dts/amlogic/g12a_s905x2_u212_1g.dts
3 *
4 * Copyright (C) 2017 Amlogic, Inc. All rights reserved.
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful, but WITHOUT
12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
14 * more details.
15 *
16 */
17
18/dts-v1/;
19
20#include "mesong12a.dtsi"
21#include "partition_mbox_normal_P_32.dtsi"
22#include "mesong12a_skt-panel.dtsi"
23
24/ {
25 model = "Amlogic";
26 amlogic-dt-id = "g12a_s905x2_u212_1g";
27 compatible = "amlogic, g12a";
28 interrupt-parent = <&gic>;
29 #address-cells = <2>;
30 #size-cells = <2>;
31
32 aliases {
33 serial0 = &uart_AO;
34 serial1 = &uart_A;
35 serial2 = &uart_B;
36 serial3 = &uart_C;
37 serial4 = &uart_AO_B;
38 tsensor0 = &p_tsensor;
39 tsensor1 = &d_tsensor;
40 i2c0 = &i2c0;
41 i2c1 = &i2c1;
42 i2c2 = &i2c2;
43 i2c3 = &i2c3;
44 i2c4 = &i2c_AO;
45 };
46
47 memory@00000000 {
48 device_type = "memory";
49 linux,usable-memory = <0x0 0x100000 0x0 0x3ff00000>;
50
51 };
52
53 reserved-memory {
54 #address-cells = <2>;
55 #size-cells = <2>;
56 ranges;
57 /* global autoconfigured region for contiguous allocations */
58 ramoops@0x07400000 {
59 compatible = "ramoops";
60 reg = <0x0 0x07400000 0x0 0x00100000>;
61 record-size = <0x8000>;
62 console-size = <0x8000>;
63 ftrace-size = <0x0>;
64 pmsg-size = <0x8000>;
65 };
66
67 secmon_reserved:linux,secmon {
68 compatible = "shared-dma-pool";
69 reusable;
70 size = <0x0 0x400000>;
71 alignment = <0x0 0x400000>;
72 alloc-ranges = <0x0 0x05000000 0x0 0x400000>;
73 };
74 secos_reserved:linux,secos {
75 status = "disable";
76 compatible = "amlogic, aml_secos_memory";
77 reg = <0x0 0x05300000 0x0 0x2000000>;
78 no-map;
79 };
80 logo_reserved:linux,meson-fb {
81 compatible = "shared-dma-pool";
82 reusable;
83 size = <0x0 0x800000>;
84 alignment = <0x0 0x400000>;
85 alloc-ranges = <0x0 0x3f800000 0x0 0x800000>;
86 };
87 ion_cma_reserved:linux,ion-dev {
88 compatible = "shared-dma-pool";
89 reusable;
90 size = <0x0 0x8000000>;
91 alignment = <0x0 0x400000>;
92 };
93 //di_reserved:linux,di {
94 //compatible = "amlogic, di-mem";
95 /* buffer_size = 3621952(yuv422 8bit) */
96 /* 4179008(yuv422 10bit full pack mode) */
97 /** 10x3621952=34.6M(0x23) support 8bit **/
98 /** 10x4736064=45.2M(0x2e) support 12bit **/
99 /** 10x4179008=40M(0x28) support 10bit **/
100 //size = <0x0 0x2800000>;
101 //no-map;
102 //};
103 /*di CMA pool */
104 di_cma_reserved:linux,di_cma {
105 compatible = "shared-dma-pool";
106 reusable;
107 /* buffer_size = 3621952(yuv422 8bit)
108 * | 4736064(yuv422 10bit)
109 * | 4074560(yuv422 10bit full pack mode)
110 * 10x3621952=34.6M(0x23) support 8bit
111 * 10x4736064=45.2M(0x2e) support 12bit
112 * 10x4074560=40M(0x28) support 10bit
113 */
114 size = <0x0 0x02800000>;
115 alignment = <0x0 0x400000>;
116 };
117 /* POST PROCESS MANAGER */
118 ppmgr_reserved:linux,ppmgr {
119 compatible = "shared-dma-pool";
120 size = <0x0 0x0>;
121 };
122
123 codec_mm_cma:linux,codec_mm_cma {
124 compatible = "shared-dma-pool";
125 reusable;
126 /* ion_codec_mm max can alloc size 80M*/
127 size = <0x0 0xC400000>;
128 alignment = <0x0 0x400000>;
129 linux,contiguous-region;
130 };
131 /* codec shared reserved */
132 codec_mm_reserved:linux,codec_mm_reserved {
133 compatible = "amlogic, codec-mm-reserved";
134 size = <0x0 0x0>;
135 alignment = <0x0 0x100000>;
136 //no-map;
137 };
138 /* vdin0 CMA pool */
139 vdin0_cma_reserved:linux,vdin0_cma {
140 compatible = "shared-dma-pool";
141 reusable;
142 /* 1920x1080x2x4 =16+4 M */
143 size = <0x0 0x04000000>;
144 alignment = <0x0 0x400000>;
145 };
146 /* vdin1 CMA pool */
147 vdin1_cma_reserved:linux,vdin1_cma {
148 compatible = "shared-dma-pool";
149 reusable;
150 /* 1920x1080x2x4 =16 M */
151 size = <0x0 0x04000000>;
152 alignment = <0x0 0x400000>;
153 };
154 };
155
156 gpioleds {
157 compatible = "gpio-leds";
158 status = "okay";
159
160 net_red {
161 label="net_red";
162 gpios=<&gpio GPIOA_14 GPIO_ACTIVE_LOW>;
163 default-state ="on";
164 };
165
166 net_green {
167 label="net_green";
168 gpios=<&gpio GPIOA_15 GPIO_ACTIVE_HIGH>;
169 default-state ="on";
170 };
171
172 remote_led {
173 label = "remote_led";
174 gpios = <&gpio_ao GPIOAO_10 GPIO_ACTIVE_LOW>;
175 default-state = "off";
176 linux,default-trigger = "rc_feedback";
177 };
178
179 sys_led {
180 label="sys_led";
181 gpios=<&gpio_ao GPIOAO_11 GPIO_ACTIVE_LOW>;
182 default-state ="on";
183 retain-state-suspended;
184 linux,default-trigger="cpu0";
185 };
186 };
187
188 cvbsout {
189 compatible = "amlogic, cvbsout-g12a";
190 dev_name = "cvbsout";
191 status = "okay";
192 clocks = <&clkc CLKID_VCLK2_ENCI
193 &clkc CLKID_VCLK2_VENCI0
194 &clkc CLKID_VCLK2_VENCI1
195 &clkc CLKID_DAC_CLK>;
196 clock-names = "venci_top_gate",
197 "venci_0_gate",
198 "venci_1_gate",
199 "vdac_clk_gate";
200
201 /* performance: reg_address, reg_value */
202 /* g12a */
203 performance = <0x1bf0 0x9
204 0x1b56 0x343
205 0x1b12 0x0
206 0x1b05 0x9
207 0x1c59 0xfc48
208 0xffff 0x0>; /* ending flag */
209 performance_telecom = <0x1bf0 0x9
210 0x1b56 0x333
211 0x1b12 0x8080
212 0x1b05 0xfd
213 0x1c59 0xf850
214 0xffff 0x0>; /* ending flag */
215 };
216
217 bt-dev{
218 compatible = "amlogic, bt-dev";
219 dev_name = "bt-dev";
220 status = "okay";
221 gpio_reset = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>;
222 gpio_hostwake = <&gpio GPIOX_19 GPIO_ACTIVE_HIGH>;
223 };
224
225 wifi{
226 compatible = "amlogic, aml_wifi";
227 dev_name = "aml_wifi";
228 status = "okay";
229 interrupt_pin = <&gpio GPIOX_7 GPIO_ACTIVE_HIGH>;
230 irq_trigger_type = "GPIO_IRQ_LOW";
231 power_on_pin = <&gpio GPIOX_6 GPIO_ACTIVE_HIGH>;
232 dhd_static_buf; //if use bcm wifi, config dhd_static_buf
233 pinctrl-names = "default";
234 pinctrl-0 = <&pwm_e_pins>;
235 pwm_config = <&wifi_pwm_conf>;
236 };
237
238 wifi_pwm_conf:wifi_pwm_conf{
239 pwm_channel1_conf {
240 pwms = <&pwm_ef MESON_PWM_0 30040 0>;
241 duty-cycle = <15020>;
242 times = <10>;
243 };
244 pwm_channel2_conf {
245 pwms = <&pwm_ef MESON_PWM_2 30030 0>;
246 duty-cycle = <15015>;
247 times = <12>;
248 };
249 };
250
251 codec_mm {
252 compatible = "amlogic, codec, mm";
253 memory-region = <&codec_mm_cma &codec_mm_reserved>;
254 dev_name = "codec_mm";
255 status = "okay";
256 };
257
258 ppmgr {
259 compatible = "amlogic, ppmgr";
260 memory-region = <&ppmgr_reserved>;
261 dev_name = "ppmgr";
262 status = "okay";
263 };
264
265 deinterlace {
266 compatible = "amlogic, deinterlace";
267 status = "okay";
268 /* 0:use reserved; 1:use cma; 2:use cma as reserved */
269 flag_cma = <1>;
270 //memory-region = <&di_reserved>;
271 memory-region = <&di_cma_reserved>;
272 interrupts = <0 46 1
273 0 40 1>;
274 interrupt-names = "pre_irq", "post_irq";
275 clocks = <&clkc CLKID_VPU_CLKB_TMP_COMP>,
276 <&clkc CLKID_VPU_CLKB_COMP>;
277 clock-names = "vpu_clkb_tmp_composite",
278 "vpu_clkb_composite";
279 clock-range = <334 667>;
280 /* buffer-size = <3621952>;(yuv422 8bit) */
281 buffer-size = <4074560>;/*yuv422 fullpack*/
282 /* reserve-iomap = "true"; */
283 /* if enable nr10bit, set nr10bit-support to 1 */
284 post-wr-support = <1>;
285 nr10bit-support = <1>;
286 nrds-enable = <1>;
287 pps-enable = <1>;
288 };
289 ionvideo {
290 compatible = "amlogic, ionvideo";
291 dev_name = "ionvideo";
292 status = "okay";
293 };
294 dvb{
295 compatible = "amlogic, dvb";
296 dev_name = "dvb";
297 status = "ok";
298 /*"parallel","serial","disable"*/
299 ts2 = "parallel";
300 ts2_control = <0>;
301 ts2_invert = <0>;
302 };
303 unifykey{
304 compatible = "amlogic, unifykey";
305 status = "ok";
306 unifykey-num = <15>;
307 unifykey-index-0 = <&keysn_0>;
308 unifykey-index-1 = <&keysn_1>;
309 unifykey-index-2 = <&keysn_2>;
310 unifykey-index-3 = <&keysn_3>;
311 unifykey-index-4 = <&keysn_4>;
312 unifykey-index-5 = <&keysn_5>;
313 unifykey-index-6 = <&keysn_6>;
314 unifykey-index-7 = <&keysn_7>;
315 unifykey-index-8 = <&keysn_8>;
316 unifykey-index-9 = <&keysn_9>;
317 unifykey-index-10= <&keysn_10>;
318 unifykey-index-11= <&keysn_11>;
319 unifykey-index-12= <&keysn_12>;
320 unifykey-index-13= <&keysn_13>;
321 unifykey-index-14= <&keysn_14>;
322
323 keysn_0: key_0{
324 key-name = "usid";
325 key-device = "normal";
326 key-permit = "read","write","del";
327 };
328 keysn_1:key_1{
329 key-name = "mac";
330 key-device = "normal";
331 key-permit = "read","write","del";
332 };
333 keysn_2:key_2{
334 key-name = "hdcp";
335 key-device = "secure";
336 key-type = "sha1";
337 key-permit = "read","write","del";
338 };
339 keysn_3:key_3{
340 key-name = "secure_boot_set";
341 key-device = "efuse";
342 key-permit = "write";
343 };
344 keysn_4:key_4{
345 key-name = "mac_bt";
346 key-device = "normal";
347 key-permit = "read","write","del";
348 key-type = "mac";
349 };
350 keysn_5:key_5{
351 key-name = "mac_wifi";
352 key-device = "normal";
353 key-permit = "read","write","del";
354 key-type = "mac";
355 };
356 keysn_6:key_6{
357 key-name = "hdcp2_tx";
358 key-device = "normal";
359 key-permit = "read","write","del";
360 };
361 keysn_7:key_7{
362 key-name = "hdcp2_rx";
363 key-device = "normal";
364 key-permit = "read","write","del";
365 };
366 keysn_8:key_8{
367 key-name = "widevinekeybox";
368 key-device = "secure";
369 key-permit = "read","write","del";
370 };
371 keysn_9:key_9{
372 key-name = "deviceid";
373 key-device = "normal";
374 key-permit = "read","write","del";
375 };
376 keysn_10:key_10{
377 key-name = "hdcp22_fw_private";
378 key-device = "secure";
379 key-permit = "read","write","del";
380 };
381 keysn_11:key_11{
382 key-name = "PlayReadykeybox25";
383 key-device = "secure";
384 key-permit = "read","write","del";
385 };
386 keysn_12:key_12{
387 key-name = "prpubkeybox";// PlayReady
388 key-device = "secure";
389 key-permit = "read","write","del";
390 };
391 keysn_13:key_13{
392 key-name = "prprivkeybox";// PlayReady
393 key-device = "secure";
394 key-permit = "read","write","del";
395 };
396 keysn_14:key_14{
397 key-name = "attestationkeybox";// attestation key
398 key-device = "secure";
399 key-permit = "read","write","del";
400 };
401 };//End unifykey
402
403 efusekey:efusekey{
404 keynum = <4>;
405 key0 = <&key_0>;
406 key1 = <&key_1>;
407 key2 = <&key_2>;
408 key3 = <&key_3>;
409 key_0:key_0{
410 keyname = "mac";
411 offset = <0>;
412 size = <6>;
413 };
414 key_1:key_1{
415 keyname = "mac_bt";
416 offset = <6>;
417 size = <6>;
418 };
419 key_2:key_2{
420 keyname = "mac_wifi";
421 offset = <12>;
422 size = <6>;
423 };
424 key_3:key_3{
425 keyname = "usid";
426 offset = <18>;
427 size = <16>;
428 };
429 };//End efusekey
430
431 amlvecm {
432 compatible = "amlogic, vecm";
433 dev_name = "aml_vecm";
434 status = "okay";
435 gamma_en = <0>;/*1:enabel ;0:disable*/
436 wb_en = <0>;/*1:enabel ;0:disable*/
437 cm_en = <0>;/*1:enabel ;0:disable*/
438 };
439
440 amdolby_vision {
441 compatible = "amlogic, dolby_vision_g12a";
442 dev_name = "aml_amdolby_vision_driver";
443 status = "okay";
444 tv_mode = <0>;/*1:enabel ;0:disable*/
445 };
446
447 /* Audio Related start */
448 pdm_codec:dummy{
449 #sound-dai-cells = <0>;
450 compatible = "amlogic, pdm_dummy_codec";
451 status = "okay";
452 };
453 dummy_codec:dummy{
454 #sound-dai-cells = <0>;
455 compatible = "amlogic, aml_dummy_codec";
456 status = "okay";
457 };
458 amlogic_codec:t9015{
459 #sound-dai-cells = <0>;
460 compatible = "amlogic, aml_codec_T9015";
461 reg = <0x0 0xFF632000 0x0 0x2000>;
462 is_auge_used = <1>; /* meson or auge chipset used */
463 tdmout_index = <1>;
464 status = "okay";
465 };
466 audio_effect:eqdrc{
467 /*eq_enable = <1>;*/
468 /*drc_enable = <1>;*/
469 /*
470 * 0:tdmout_a
471 * 1:tdmout_b
472 * 2:tdmout_c
473 * 3:spdifout
474 * 4:spdifout_b
475 */
476 eqdrc_module = <1>;
477 /* max 0xf, each bit for one lane, usually one lane */
478 lane_mask = <0x1>;
479 /* max 0xff, each bit for one channel */
480 channel_mask = <0x3>;
481 };
482 auge_sound {
483 compatible = "amlogic, g12a-sound-card";
484 aml-audio-card,name = "AML-AUGESOUND";
485
486 aml-audio-card,loopback = <&aml_loopback>;
487 aml-audio-card,aux-devs = <&amlogic_codec>;
488 /*avout mute gpio*/
489 avout_mute-gpios = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_HIGH>;
490 /*for audio effect ,eqdrc */
491 aml-audio-card,effect = <&audio_effect>;
492
493 aml-audio-card,dai-link@0 {
494 format = "dsp_a";
495 mclk-fs = <512>;
496 //continuous-clock;
497 //bitclock-inversion;
498 //frame-inversion;
499 //bitclock-master = <&tdmacodec>;
500 //frame-master = <&tdmacodec>;
501 /* suffix-name, sync with android audio hal
502 * what's the dai link used for
503 */
504 suffix-name = "alsaPORT-pcm";
505 tdmacpu: cpu {
506 sound-dai = <&aml_tdma>;
507 dai-tdm-slot-tx-mask =
508 <1 1 1 1 1 1 1 1>;
509 dai-tdm-slot-rx-mask =
510 <1 1 1 1 1 1 1 1>;
511 dai-tdm-slot-num = <8>;
512 dai-tdm-slot-width = <32>;
513 system-clock-frequency = <24576000>;
514 };
515 tdmacodec: codec {
516 sound-dai = <&dummy_codec &dummy_codec>;
517 };
518 };
519
520 aml-audio-card,dai-link@1 {
521 format = "i2s";// "dsp_a";
522 mclk-fs = <256>;
523 //continuous-clock;
524 //bitclock-inversion;
525 //frame-inversion;
526 bitclock-master = <&aml_tdmb>;
527 frame-master = <&aml_tdmb>;
528 //bitclock-master = <&tdmbcodec>;
529 //frame-master = <&tdmbcodec>;
530 /* suffix-name, sync with android audio hal
531 * what's the dai link used for
532 */
533 suffix-name = "alsaPORT-i2s";
534 cpu {
535 sound-dai = <&aml_tdmb>;
536 dai-tdm-slot-tx-mask = <1 1>;
537 dai-tdm-slot-rx-mask = <1 1>;
538 dai-tdm-slot-num = <2>;
539 /*
540 * dai-tdm-slot-tx-mask =
541 * <1 1 1 1 1 1 1 1>;
542 * dai-tdm-slot-rx-mask =
543 * <1 1 1 1 1 1 1 1>;
544 * dai-tdm-slot-num = <8>;
545 */
546 dai-tdm-slot-width = <32>;
547 system-clock-frequency = <12288000>;
548 };
549 tdmbcodec: codec {
550 sound-dai = <&dummy_codec &dummy_codec
551 &amlogic_codec>;
552 };
553 };
554
555 aml-audio-card,dai-link@2 {
556 format = "i2s";
557 mclk-fs = <256>;
558 //continuous-clock;
559 //bitclock-inversion;
560 //frame-inversion;
561 bitclock-master = <&aml_tdmc>;
562 frame-master = <&aml_tdmc>;
563 /* suffix-name, sync with android audio hal
564 * what's the dai link used for
565 */
566 //suffix-name = "alsaPORT-tdm";
567 cpu {
568 sound-dai = <&aml_tdmc>;
569 dai-tdm-slot-tx-mask = <1 1>;
570 dai-tdm-slot-rx-mask = <1 1>;
571 dai-tdm-slot-num = <2>;
572 dai-tdm-slot-width = <32>;
573 system-clock-frequency = <12288000>;
574 };
575 codec {
576 sound-dai = <&dummy_codec &dummy_codec>;
577 };
578 };
579
580 aml-audio-card,dai-link@3 {
581 mclk-fs = <64>;
582 /* suffix-name, sync with android audio hal
583 * what's the dai link used for
584 */
585 suffix-name = "alsaPORT-pdm";
586 cpu {
587 sound-dai = <&aml_pdm>;
588 };
589 codec {
590 sound-dai = <&pdm_codec>;
591 };
592 };
593
594 aml-audio-card,dai-link@4 {
595 mclk-fs = <128>;
596 continuous-clock;
597 /* suffix-name, sync with android audio hal
598 * what's the dai link used for
599 */
600 suffix-name = "alsaPORT-spdifb2hdmi";
601 cpu {
602 sound-dai = <&aml_spdif>;
603 system-clock-frequency = <6144000>;
604 };
605 codec {
606 sound-dai = <&dummy_codec>;
607 };
608 };
609 /* spdif_b to hdmi, only playback */
610 aml-audio-card,dai-link@5 {
611 mclk-fs = <128>;
612 continuous-clock;
613 /* suffix-name, sync with android audio hal
614 * what's the dai link used for
615 */
616 suffix-name = "alsaPORT-spdif";
617 cpu {
618 sound-dai = <&aml_spdif_b>;
619 system-clock-frequency = <6144000>;
620 };
621 codec {
622 sound-dai = <&dummy_codec>;
623 };
624 };
625 /*
626 * dai link for i2s to hdmix,
627 * Notice to select a tdm lane not used by hw
628 */
629 /*
630 * aml-audio-card,dai-link@6 {
631 * format = "i2s";
632 * mclk-fs = <256>;
633 * //continuous-clock;
634 * //bitclock-inversion;
635 * //frame-inversion;
636 * bitclock-master = <&aml_i2s2hdmi>;
637 * frame-master = <&aml_i2s2hdmi>;
638 * suffix-name = "alsaPORT-i2s2hdmi";
639 * cpu {
640 * sound-dai = <&aml_i2s2hdmi>;
641 * dai-tdm-slot-tx-mask = <1 1>;
642 * dai-tdm-slot-num = <2>;
643 * dai-tdm-slot-width = <32>;
644 * system-clock-frequency = <12288000>;
645 * };
646 * codec {
647 * sound-dai = <&dummy_codec>;
648 * };
649 * };
650 */
651 };
652 audiolocker: locker {
653 compatible = "amlogic, audiolocker";
654 clocks = <&clkaudio CLKID_AUDIO_LOCKER_OUT
655 &clkaudio CLKID_AUDIO_LOCKER_IN
656 &clkaudio CLKID_AUDIO_MCLK_D
657 &clkaudio CLKID_AUDIO_MCLK_E
658 &clkc CLKID_MPLL1
659 &clkc CLKID_MPLL2>;
660 clock-names = "lock_out", "lock_in", "out_src",
661 "in_src", "out_calc", "in_ref";
662 interrupts = <GIC_SPI 1 IRQ_TYPE_EDGE_RISING>;
663 interrupt-names = "irq";
664 frequency = <49000000>; /* pll */
665 dividor = <49>; /* locker's parent */
666 status = "okay";
667 };
668 /* Audio Related end */
669
670 cpu_opp_table0: cpu_opp_table0 {
671 compatible = "operating-points-v2";
672 opp-shared;
673
674 opp00 {
675 opp-hz = /bits/ 64 <100000000>;
676 opp-microvolt = <731000>;
677 };
678 opp01 {
679 opp-hz = /bits/ 64 <250000000>;
680 opp-microvolt = <731000>;
681 };
682 opp02 {
683 opp-hz = /bits/ 64 <500000000>;
684 opp-microvolt = <731000>;
685 };
686 opp03 {
687 opp-hz = /bits/ 64 <667000000>;
688 opp-microvolt = <731000>;
689 };
690 opp04 {
691 opp-hz = /bits/ 64 <1000000000>;
692 opp-microvolt = <731000>;
693 };
694 opp05 {
695 opp-hz = /bits/ 64 <1200000000>;
696 opp-microvolt = <761000>;
697 };
698 opp06 {
699 opp-hz = /bits/ 64 <1398000000>;
700 opp-microvolt = <791000>;
701 };
702 opp07 {
703 opp-hz = /bits/ 64 <1512000000>;
704 opp-microvolt = <831000>;
705 };
706 opp08 {
707 opp-hz = /bits/ 64 <1608000000>;
708 opp-microvolt = <871000>;
709 };
710 opp09 {
711 opp-hz = /bits/ 64 <1704000000>;
712 opp-microvolt = <921000>;
713 };
714 opp10 {
715 opp-hz = /bits/ 64 <1896000000>;
716 opp-microvolt = <1011000>;
717 };
718 };
719
720 cpufreq-meson {
721 compatible = "amlogic, cpufreq-meson";
722 pinctrl-names = "default";
723 pinctrl-0 = <&pwm_ao_d_pins3>;
724 status = "okay";
725 };
726
727}; /* end of / */
728
729&meson_fb {
730 status = "okay";
731 display_size_default = <1920 1080 1920 2160 32>;
732 mem_size = <0x00800000 0x1980000 0x100000 0x100000 0x800000>;
733 logo_addr = "0x3f800000";
734 mem_alloc = <0>;
735 pxp_mode = <0>; /** 0:normal mode 1:pxp mode */
736};
737
738&pwm_AO_cd {
739 status = "okay";
740};
741
742&i2c0 {
743 status = "okay";
744 pinctrl-names="default";
745 pinctrl-0=<&i2c0_master_pins2>;
746 clock-frequency = <400000>;
747
748 gt9xx@5d {
749 compatible = "goodix,gt9xx";
750 status = "disabled";
751 reg = <0x5d>;
752 reset-gpio = <&gpio GPIOZ_9 0x00>;
753 irq-gpio = <&gpio GPIOZ_3 0x00>;
754 };
755
756 ftxx@38 {
757 compatible = "focaltech,fts";
758 status = "disabled";
759 reg = <0x38>;
760 reset-gpio = <&gpio GPIOZ_9 0x00>;
761 irq-gpio = <&gpio GPIOZ_3 0x00>;
762 x_max = <600>;
763 y_max = <1024>;
764 max-touch-number = <10>;
765 };
766};
767
768&i2c3 {
769 status = "disabled";
770 pinctrl-names="default";
771 pinctrl-0=<&i2c3_master_pins2>;
772 clock-frequency = <100000>; /* default 100k */
773
774 /* for ref board */
775 ad82584f_62: ad82584f_62@62 {
776 compatible = "ESMT, ad82584f";
777 #sound-dai-cells = <0>;
778 reg = <0x31>;
779 status = "disabled";
780 reset_pin = <&gpio GPIOA_5 0>;
781 };
782
783 tas5707_36: tas5707_36@36 {
784 compatible = "ti,tas5707";
785 #sound-dai-cells = <0>;
786 reg = <0x1b>;
787 status = "disabled";
788 reset_pin = <&gpio GPIOA_5 0>;
789 };
790
791 bl_extern_i2c {
792 compatible = "amlogic, bl_extern_i2c";
793 status = "disabled";
794 reg = <0x2c>; /*reg_address for lp8556*/
795 dev_name = "lp8556";
796 };
797};
798
799&audiobus {
800 aml_tdma: tdma {
801 compatible = "amlogic, g12a-snd-tdma";
802 #sound-dai-cells = <0>;
803 dai-tdm-lane-slot-mask-in = <0 1>;
804 dai-tdm-oe-lane-slot-mask-out = <1 0>;
805 dai-tdm-clk-sel = <0>;
806 clocks = <&clkaudio CLKID_AUDIO_MCLK_A
807 &clkc CLKID_MPLL0>;
808 clock-names = "mclk", "clk_srcpll";
809 pinctrl-names = "tdm_pins";
810 pinctrl-0 = <&tdmout_a &tdmin_a>;
811 };
812
813 aml_tdmb: tdmb {
814 compatible = "amlogic, g12a-snd-tdmb";
815 #sound-dai-cells = <0>;
816 dai-tdm-lane-slot-mask-in = <0 1 0 0>;
817 dai-tdm-lane-slot-mask-out = <1 0 0 0>;
818 dai-tdm-clk-sel = <1>;
819 clocks = <&clkaudio CLKID_AUDIO_MCLK_B
820 &clkc CLKID_MPLL1
821 &clkc CLKID_MPLL0>;
822 clock-names = "mclk", "clk_srcpll", "samesource_sysclk";
823 pinctrl-names = "tdm_pins";
824 pinctrl-0 = <&tdmb_mclk &tdmout_b &tdmin_b>;
825 /*
826 * 0: tdmout_a;
827 * 1: tdmout_b;
828 * 2: tdmout_c;
829 * 3: spdifout;
830 * 4: spdifout_b;
831 */
832 samesource_sel = <3>;
833 };
834
835 aml_tdmc: tdmc {
836 compatible = "amlogic, g12a-snd-tdmc";
837 #sound-dai-cells = <0>;
838 dai-tdm-lane-slot-mask-in = <0 1 0 0>;
839 #dai-tdm-lane-slot-mask-out = <1 0 1 1>;
840 #dai-tdm-lane-oe-slot-mask-in = <0 0 0 0>;
841 dai-tdm-lane-oe-slot-mask-out = <1 0 0 0>;
842 dai-tdm-clk-sel = <2>;
843 clocks = <&clkaudio CLKID_AUDIO_MCLK_C
844 &clkc CLKID_MPLL2>;
845 clock-names = "mclk", "clk_srcpll";
846 pinctrl-names = "tdm_pins";
847 pinctrl-0 = <&tdmc_mclk &tdmout_c &tdmin_c>;
848 };
849
850 /* copy a useless tdm to output for hdmi, no pinmux */
851 aml_i2s2hdmi: i2s2hdmi {
852 compatible = "amlogic, g12a-snd-tdmc";
853 #sound-dai-cells = <0>;
854 dai-tdm-lane-slot-mask-out = <1 1 1 1>;
855 dai-tdm-clk-sel = <2>;
856 clocks = <&clkaudio CLKID_AUDIO_MCLK_C
857 &clkc CLKID_MPLL2>;
858 clock-names = "mclk", "clk_srcpll";
859
860 i2s2hdmi = <1>;
861
862 status = "disabled";
863 };
864
865 aml_spdif: spdif {
866 compatible = "amlogic, g12a-snd-spdif-a";
867 #sound-dai-cells = <0>;
868 clocks = <&clkc CLKID_MPLL0
869 &clkc CLKID_FCLK_DIV4
870 &clkaudio CLKID_AUDIO_SPDIFIN
871 &clkaudio CLKID_AUDIO_SPDIFOUT
872 &clkaudio CLKID_AUDIO_SPDIFIN_CTRL
873 &clkaudio CLKID_AUDIO_SPDIFOUT_CTRL>;
874 clock-names = "sysclk", "fixed_clk", "gate_spdifin",
875 "gate_spdifout", "clk_spdifin", "clk_spdifout";
876 interrupts =
877 <GIC_SPI 151 IRQ_TYPE_EDGE_RISING>;
878
879 interrupt-names = "irq_spdifin";
880 pinctrl-names = "spdif_pins";
881 pinctrl-0 = <&spdifout>;
882 status = "okay";
883 };
884 aml_spdif_b: spdif_b {
885 compatible = "amlogic, g12a-snd-spdif-b";
886 #sound-dai-cells = <0>;
887 clocks = <&clkc CLKID_MPLL0 /*CLKID_HIFI_PLL*/
888 &clkaudio CLKID_AUDIO_SPDIFOUTB
889 &clkaudio CLKID_AUDIO_SPDIFOUTB_CTRL>;
890 clock-names = "sysclk",
891 "gate_spdifout", "clk_spdifout";
892 status = "okay";
893 };
894 aml_pdm: pdm {
895 compatible = "amlogic, g12a-snd-pdm";
896 #sound-dai-cells = <0>;
897 clocks = <&clkaudio CLKID_AUDIO_PDM
898 &clkc CLKID_FCLK_DIV3
899 &clkc CLKID_MPLL3
900 &clkaudio CLKID_AUDIO_PDMIN0
901 &clkaudio CLKID_AUDIO_PDMIN1>;
902 clock-names = "gate",
903 "sysclk_srcpll",
904 "dclk_srcpll",
905 "pdm_dclk",
906 "pdm_sysclk";
907 pinctrl-names = "pdm_pins";
908 pinctrl-0 = <&pdmin>;
909 filter_mode = <1>; /* mode 0~4, defalut:1 */
910 status = "okay";
911 };
912 aml_loopback: loopback {
913 compatible = "amlogic, snd-loopback";
914 /*
915 * 0: out rate = in data rate;
916 * 1: out rate = loopback data rate;
917 */
918 lb_mode = <0>;
919
920 /* datain src
921 * 0: tdmin_a;
922 * 1: tdmin_b;
923 * 2: tdmin_c;
924 * 3: spdifin;
925 * 4: pdmin;
926 */
927 datain_src = <4>;
928 datain_chnum = <8>;
929 datain_chmask = <0x3f>;
930
931 /* tdmin_lb src
932 * 0: tdmoutA
933 * 1: tdmoutB
934 * 2: tdmoutC
935 * 3: PAD_tdminA
936 * 4: PAD_tdminB
937 * 5: PAD_tdminC
938 */
939 datalb_src = <2>;
940 datalb_chnum = <8>;
941 datalb_chmask = <0x3>;
942
943 status = "okay";
944 };
945
946 audioresample: resample {
947 compatible = "amlogic, g12a-resample";
948 clocks = <&clkc CLKID_MPLL3
949 &clkaudio CLKID_AUDIO_MCLK_F
950 &clkaudio CLKID_AUDIO_RESAMPLE_CTRL>;
951 clock-names = "resample_pll", "resample_src", "resample_clk";
952 /*same with toddr_src
953 * TDMIN_A, 0
954 * TDMIN_B, 1
955 * TDMIN_C, 2
956 * SPDIFIN, 3
957 * PDMIN, 4
958 * NONE,
959 * TDMIN_LB, 6
960 * LOOPBACK, 7
961 */
962 resample_module = <4>;
963 status = "okay";
964 };
965 aml_pwrdet: pwrdet {
966 compatible = "amlogic, g12a-power-detect";
967
968 interrupts = <GIC_SPI 155 IRQ_TYPE_EDGE_RISING>;
969 interrupt-names = "pwrdet_irq";
970
971 /* pwrdet source sel
972 * 7: loopback;
973 * 6: tdmin_lb;
974 * 5: reserved;
975 * 4: pdmin;
976 * 3: spdifin;
977 * 2: tdmin_c;
978 * 1: tdmin_b;
979 * 0: tdmin_a;
980 */
981 pwrdet_src = <4>;
982
983 hi_th = <0x70000>;
984 lo_th = <0x16000>;
985
986 status = "okay";
987 };
988}; /* end of audiobus */
989
990&pinctrl_periphs {
991 tdmout_a: tdmout_a {
992 mux { /* GPIOX_11, GPIOX_10, GPIOX_9 */
993 groups = "tdma_sclk",
994 "tdma_fs",
995 "tdma_dout0";
996 function = "tdma_out";
997 };
998 };
999
1000 tdmin_a: tdmin_a {
1001 mux { /* GPIOX_8 */
1002 groups = "tdma_din1";
1003 function = "tdma_in";
1004 };
1005 };
1006
1007 tdmb_mclk: tdmb_mclk {
1008 mux {
1009 groups = "mclk0_a";
1010 function = "mclk0";
1011 drive-strength = <2>;
1012 };
1013 };
1014 tdmout_b: tdmout_b {
1015 mux { /* GPIOA_1, GPIOA_2, GPIOA_3 */
1016 groups = "tdmb_sclk",
1017 "tdmb_fs",
1018 "tdmb_dout0";
1019 function = "tdmb_out";
1020 drive-strength = <2>;
1021 };
1022 };
1023
1024 tdmin_b:tdmin_b {
1025 mux { /* GPIOA_4 */
1026 groups = "tdmb_din1"
1027 /*,"tdmb_slv_sclk", "tdmb_slv_fs"*/;
1028 function = "tdmb_in";
1029 drive-strength = <2>;
1030 };
1031 };
1032
1033 tdmc_mclk: tdmc_mclk {
1034 mux { /* GPIOA_11 */
1035 groups = "mclk1_a";
1036 function = "mclk1";
1037 };
1038 };
1039
1040 tdmout_c:tdmout_c {
1041 mux { /* GPIOA_12, GPIOA_13, GPIOA_10, GPIOA_8, GPIOA_7*/
1042 groups = "tdmc_sclk_a",
1043 "tdmc_fs_a",
1044 "tdmc_dout0_a"
1045 /*, "tdmc_dout2",
1046 * "tdmc_dout3"
1047 */;
1048 function = "tdmc_out";
1049 };
1050 };
1051
1052 tdmin_c:tdmin_c {
1053 mux { /* GPIOA_9 */
1054 groups = "tdmc_din1_a";
1055 function = "tdmc_in";
1056 };
1057 };
1058
1059 spdifin: spdifin {
1060 mux {/* GPIOH_5 */
1061 groups = "spdif_in_h";
1062 function = "spdif_in";
1063 };
1064 };
1065
1066 /* GPIOH_4 */
1067 spdifout: spdifout {
1068 mux {
1069 groups = "spdif_out_h";
1070 function = "spdif_out";
1071 };
1072 };
1073
1074 pdmin: pdmin {
1075 mux { /* gpioa_5, gpioa_6, gpioa_7, gpioa_8, gpioa_9*/
1076 groups = "pdm_din0_a",
1077 /*"pdm_din1_a",*/
1078 "pdm_din2_a",
1079 /*"pdm_din3_a",*/
1080 "pdm_dclk_a";
1081 function = "pdm";
1082 };
1083 };
1084
1085
1086}; /* end of pinctrl_periphs */
1087&pinctrl_aobus {
1088 /*gpiao_10*/
1089 /*spdifout: spdifout { */
1090 /* mux { */
1091 /* groups = "spdif_out_ao"; */
1092 /* function = "spdif_out_ao";*/
1093 /* }; */
1094 /*}; */
1095}; /* end of pinctrl_aobus */
1096
1097&audio_data {
1098 status = "okay";
1099};
1100
1101/* Audio Related End */
1102
1103&pwm_ef {
1104 status = "okay";
1105};
1106
1107&dwc3 {
1108 status = "okay";
1109};
1110
1111&usb2_phy_v2 {
1112 status = "okay";
1113 portnum = <2>;
1114};
1115
1116&usb3_phy_v2 {
1117 status = "okay";
1118 portnum = <1>;
1119 otg = <0>;
1120};
1121
1122&dwc2_a {
1123 status = "okay";
1124 /** 0: normal, 1: otg+dwc3 host only, 2: otg+dwc3 device only*/
1125 controller-type = <1>;
1126};
1127&ethmac {
1128 status = "okay";
1129 pinctrl-names = "internal_eth_pins";
1130 pinctrl-0 = <&internal_eth_pins>;
1131 mc_val = <0x4be04>;
1132
1133 internal_phy=<1>;
1134};
1135
1136&uart_A {
1137 status = "okay";
1138};
1139
1140/*if you want to use vdin just modify status to "ok"*/
1141&vdin0 {
1142 memory-region = <&vdin0_cma_reserved>;
1143 status = "okay";
1144 /*vdin write mem color depth support:
1145 *bit0:support 8bit
1146 *bit1:support 9bit
1147 *bit2:support 10bit
1148 *bit3:support 12bit
1149 *bit4:support yuv422 10bit full pack mode (from txl new add)
1150 */
1151 tv_bit_mode = <0x15>;
1152};
1153&vdin1 {
1154 memory-region = <&vdin1_cma_reserved>;
1155 status = "okay";
1156 /*vdin write mem color depth support:
1157 *bit0:support 8bit
1158 *bit1:support 9bit
1159 *bit2:support 10bit
1160 *bit3:support 12bit
1161 */
1162 tv_bit_mode = <1>;
1163};
1164
1165
1166&sd_emmc_c {
1167 status = "okay";
1168 emmc {
1169 caps = "MMC_CAP_8_BIT_DATA",
1170 "MMC_CAP_MMC_HIGHSPEED",
1171 "MMC_CAP_SD_HIGHSPEED",
1172 "MMC_CAP_NONREMOVABLE",
1173 /* "MMC_CAP_1_8V_DDR", */
1174 "MMC_CAP_HW_RESET",
1175 "MMC_CAP_ERASE",
1176 "MMC_CAP_CMD23";
1177 caps2 = "MMC_CAP2_HS200";
1178 /* "MMC_CAP2_HS400";*/
1179 f_min = <400000>;
1180 f_max = <200000000>;
1181 };
1182};
1183
1184&sd_emmc_b1 {
1185 status = "disabled";
1186 sd {
1187 caps = "MMC_CAP_4_BIT_DATA",
1188 "MMC_CAP_MMC_HIGHSPEED",
1189 "MMC_CAP_SD_HIGHSPEED";
1190 f_min = <400000>;
1191 f_max = <50000000>;
1192 };
1193};
1194
1195&sd_emmc_b2 {
1196 status = "disabled";
1197 sd {
1198 caps = "MMC_CAP_4_BIT_DATA",
1199 "MMC_CAP_MMC_HIGHSPEED",
1200 "MMC_CAP_SD_HIGHSPEED";
1201 f_min = <400000>;
1202 f_max = <50000000>;
1203 };
1204
1205 sdio {
1206 caps = "MMC_CAP_4_BIT_DATA",
1207 "MMC_CAP_MMC_HIGHSPEED",
1208 "MMC_CAP_SD_HIGHSPEED",
1209 "MMC_CAP_NONREMOVABLE",
1210 "MMC_CAP_UHS_SDR12",
1211 "MMC_CAP_UHS_SDR25",
1212 "MMC_CAP_UHS_SDR50",
1213 "MMC_CAP_UHS_SDR104",
1214 "MMC_PM_KEEP_POWER",
1215 "MMC_CAP_SDIO_IRQ";
1216
1217 f_min = <400000>;
1218 f_max = <200000000>;
1219 };
1220};
1221
1222&sd_emmc_a {
1223 status = "disabled";
1224 sdio {
1225 caps = "MMC_CAP_4_BIT_DATA",
1226 "MMC_CAP_MMC_HIGHSPEED",
1227 "MMC_CAP_SD_HIGHSPEED",
1228 "MMC_CAP_NONREMOVABLE",
1229 "MMC_CAP_UHS_SDR12",
1230 "MMC_CAP_UHS_SDR25",
1231 "MMC_CAP_UHS_SDR50",
1232 "MMC_CAP_UHS_SDR104",
1233 "MMC_PM_KEEP_POWER",
1234 "MMC_CAP_SDIO_IRQ";
1235 f_min = <400000>;
1236 f_max = <200000000>;
1237 };
1238};
1239
1240&nand {
1241 status = "disabled";
1242 plat-names = "bootloader","nandnormal";
1243 plat-num = <2>;
1244 plat-part-0 = <&bootloader>;
1245 plat-part-1 = <&nandnormal>;
1246 bootloader: bootloader{
1247 enable_pad ="ce0";
1248 busy_pad = "rb0";
1249 timming_mode = "mode5";
1250 bch_mode = "bch8_1k";
1251 t_rea = <20>;
1252 t_rhoh = <15>;
1253 chip_num = <1>;
1254 part_num = <0>;
1255 rb_detect = <1>;
1256 };
1257 nandnormal: nandnormal{
1258 enable_pad ="ce0";
1259 busy_pad = "rb0";
1260 timming_mode = "mode5";
1261 bch_mode = "bch8_1k";
1262 plane_mode = "twoplane";
1263 t_rea = <20>;
1264 t_rhoh = <15>;
1265 chip_num = <2>;
1266 part_num = <3>;
1267 partition = <&nand_partitions>;
1268 rb_detect = <1>;
1269 };
1270 nand_partitions:nand_partition{
1271 /*
1272 * if bl_mode is 1, tpl size was generate by
1273 * fip_copies * fip_size which
1274 * will not skip bad when calculating
1275 * the partition size;
1276 *
1277 * if bl_mode is 0,
1278 * tpl partition must be comment out.
1279 */
1280 tpl{
1281 offset=<0x0 0x0>;
1282 size=<0x0 0x0>;
1283 };
1284 logo{
1285 offset=<0x0 0x0>;
1286 size=<0x0 0x200000>;
1287 };
1288 recovery{
1289 offset=<0x0 0x0>;
1290 size=<0x0 0x1000000>;
1291 };
1292 boot{
1293 offset=<0x0 0x0>;
1294 size=<0x0 0x1000000>;
1295 };
1296 system{
1297 offset=<0x0 0x0>;
1298 size=<0x0 0x4000000>;
1299 };
1300 data{
1301 offset=<0xffffffff 0xffffffff>;
1302 size=<0x0 0x0>;
1303 };
1304 };
1305};
1306
1307&pcie_A {
1308 reset-gpio = <&gpio GPIOX_7 GPIO_ACTIVE_HIGH>;
1309 status = "disable";
1310};
1311
1312&meson_cooldev {
1313 status = "okay";
1314};
1315
1316&saradc {
1317 status = "disabled";
1318};
1319