summaryrefslogtreecommitdiff
path: root/arch/arm64/boot/dts/amlogic/gxl_p212_1g.dts (plain)
blob: d11517a01c6da18f97e19ece484f4de81d4425c5
1/*
2 * arch/arm64/boot/dts/amlogic/gxl_p212_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 "mesongxl.dtsi"
21#include "partition_mbox_normal.dtsi"
22/ {
23 model = "Amlogic";
24 amlogic-dt-id = "gxl_p212_1g";
25 compatible = "amlogic, Gxl";
26 interrupt-parent = <&gic>;
27 #address-cells = <2>;
28 #size-cells = <2>;
29
30 aliases {
31 serial0 = &uart_AO;
32 serial1 = &uart_A;
33 serial2 = &uart_B;
34 serial3 = &uart_C;
35 serial4 = &uart_AO_B;
36 };
37
38 ion_dev {
39 compatible = "amlogic, ion_dev";
40 memory-region = <&ion_reserved>;
41 };
42
43 memory@00000000 {
44 device_type = "memory";
45 linux,usable-memory = <0x0 0x0100000 0x0 0x3ff00000>;
46 };
47
48 reserved-memory {
49 #address-cells = <2>;
50 #size-cells = <2>;
51 ranges;
52 /* global autoconfigured region for contiguous allocations */
53 secmon_reserved:linux,secmon {
54 compatible = "shared-dma-pool";
55 reusable;
56 size = <0x0 0x400000>;
57 alignment = <0x0 0x400000>;
58 alloc-ranges = <0x0 0x05000000 0x0 0x400000>;
59 };
60 secos_reserved:linux,secos {
61 status = "disable";
62 compatible = "amlogic, aml_secos_memory";
63 reg = <0x0 0x05300000 0x0 0x2000000>;
64 no-map;
65 };
66 logo_reserved:linux,meson-fb {
67 compatible = "shared-dma-pool";
68 reusable;
69 size = <0x0 0x800000>;
70 alignment = <0x0 0x400000>;
71 alloc-ranges = <0x0 0x3f800000 0x0 0x800000>;
72 };
73 //don't put other dts in front of logo_reserved
74
75 //di_reserved:linux,di {
76 // compatible = "amlogic, di-mem";
77 /** 10x3133440=30M(0x1e) support 8bit **/
78 // size = <0x0 0x1e00000>;
79 //no-map;
80 //};
81 di_cma_reserved:linux,di_cma {
82 compatible = "shared-dma-pool";
83 reusable;
84 /** 10x3133440=30M(0x1e) support 8bit **/
85 size = <0x0 0x2000000>;
86 alignment = <0x0 0x400000>;
87 };
88 ion_reserved:linux,ion-dev {
89 compatible = "shared-dma-pool";
90 reusable;
91 size = <0x0 0x7400000>;
92 alignment = <0x0 0x400000>;
93 };
94
95 /* vdin0 CMA pool */
96 //vdin0_cma_reserved:linux,vdin0_cma {
97 // compatible = "shared-dma-pool";
98 // linux,phandle = <4>;
99 // reusable;
100 /* 1920x1080x2x4 =16+4 M */
101 // size = <0x0 0x01400000>;
102 // alignment = <0x0 0x400000>;
103 //};
104 /* vdin1 CMA pool */
105 vdin1_cma_reserved:linux,vdin1_cma {
106 compatible = "shared-dma-pool";
107 reusable;
108 /* 1920x1080x2x4 =16 M */
109 size = <0x0 0x01000000>;
110 alignment = <0x0 0x400000>;
111 };
112 /* POST PROCESS MANAGER */
113 ppmgr_reserved:linux,ppmgr {
114 compatible = "shared-dma-pool";
115 size = <0x0 0x0>;
116 };
117
118 codec_mm_cma:linux,codec_mm_cma {
119 compatible = "shared-dma-pool";
120 reusable;
121 /* ion_codec_mm max can alloc size 80M*/
122 size = <0x0 0xd000000>;
123 alignment = <0x0 0x400000>;
124 linux,contiguous-region;
125 };
126 picdec_cma_reserved:linux,picdec {
127 compatible = "shared-dma-pool";
128 reusable;
129 size = <0x0 0x0>;
130 alignment = <0x0 0x0>;
131 linux,contiguous-region;
132 };
133 /* codec shared reserved */
134 codec_mm_reserved:linux,codec_mm_reserved {
135 compatible = "amlogic, codec-mm-reserved";
136 size = <0x0 0x0>;
137 alignment = <0x0 0x100000>;
138 //no-map;
139 };
140 };
141
142 dummy-battery {
143 compatible = "amlogic, dummy-battery";
144 status = "okay";
145 };
146
147 dummy-charger {
148 compatible = "amlogic, dummy-charger";
149 status = "okay";
150 };
151
152 bt-dev{
153 compatible = "amlogic, bt-dev";
154 dev_name = "bt-dev";
155 status = "okay";
156 gpio_reset = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>;
157 };
158
159 wifi{
160 compatible = "amlogic, aml_wifi";
161 dev_name = "aml_wifi";
162 status = "okay";
163 interrupt_pin = <&gpio GPIOX_7 GPIO_ACTIVE_HIGH>;
164 irq_trigger_type = "GPIO_IRQ_LOW";
165 dhd_static_buf; //dhd_static_buf support
166 power_on_pin = <&gpio GPIOX_6 GPIO_ACTIVE_HIGH>;
167 pinctrl-names = "default";
168 pinctrl-0 = <&wifi_32k_pins>;
169 pwm_config = <&wifi_pwm_conf>;
170 };
171
172 wifi_pwm_conf:wifi_pwm_conf{
173 pwm_channel1_conf {
174 pwms = <&pwm_ef MESON_PWM_0 30040 0>;
175 duty-cycle = <15020>;
176 times = <8>;
177 };
178 pwm_channel2_conf {
179 pwms = <&pwm_ef MESON_PWM_2 30030 0>;
180 duty-cycle = <15015>;
181 times = <12>;
182 };
183 };
184
185 sd_emmc_c: emmc@d0074000 {
186 status = "okay";
187 compatible = "amlogic, meson-mmc-gxl";
188 reg = <0x0 0xd0074000 0x0 0x2000>;
189 interrupts = <0 218 1>;
190 pinctrl-names = "emmc_clk_cmd_pins", "emmc_all_pins";
191 pinctrl-0 = <&emmc_clk_cmd_pins>;
192 pinctrl-1 = <&emmc_conf_pull_up &emmc_conf_pull_done>;
193 clocks = <&clkc CLKID_SD_EMMC_C>,
194 <&clkc CLKID_SD_EMMC_C_P0_COMP>,
195 <&clkc CLKID_FCLK_DIV2>;
196 clock-names = "core", "clkin0", "clkin1";
197
198 bus-width = <8>;
199 cap-sd-highspeed;
200 cap-mmc-highspeed;
201 mmc-ddr-1_8v;
202 mmc-hs200-1_8v;
203
204 max-frequency = <200000000>;
205 non-removable;
206 disable-wp;
207 emmc {
208 pinname = "emmc";
209 ocr_avail = <0x200080>; /**VDD voltage 3.3 ~ 3.4 */
210 caps = "MMC_CAP_8_BIT_DATA",
211 "MMC_CAP_MMC_HIGHSPEED",
212 "MMC_CAP_SD_HIGHSPEED",
213 "MMC_CAP_NONREMOVABLE",
214 "MMC_CAP_1_8V_DDR",
215 "MMC_CAP_HW_RESET",
216 "MMC_CAP_ERASE",
217 "MMC_CAP_CMD23";
218 caps2 = "MMC_CAP2_HS200", "MMC_CAP2_HS400";
219 f_min = <400000>;
220 f_max = <100000000>;
221 max_req_size = <0x20000>; /**128KB*/
222 gpio_dat3 = <&gpio BOOT_3 GPIO_ACTIVE_HIGH>;
223 hw_reset = <&gpio BOOT_9 GPIO_ACTIVE_HIGH>;
224 card_type = <1>;
225 /* 1:mmc card(include eMMC),
226 * 2:sd card(include tSD)
227 */
228 };
229 };
230
231 sd_emmc_b:sd@d0072000 {
232 status = "okay";
233 compatible = "amlogic, meson-mmc-gxl";
234 reg = <0x0 0xd0072000 0x0 0x2000>;
235 interrupts = <0 217 1>;
236 pinctrl-names = "sd_all_pins",
237 "sd_clk_cmd_pins",
238 "sd_1bit_pins",
239 "sd_clk_cmd_uart_pins",
240 "sd_1bit_uart_pins",
241 "sd_to_ao_uart_pins",
242 "ao_to_sd_uart_pins",
243 "ao_to_sd_jtag_pins",
244 "sd_to_ao_jtag_pins";
245 pinctrl-0 = <&sd_all_pins>;
246 pinctrl-1 = <&sd_clk_cmd_pins>;
247 pinctrl-2 = <&sd_1bit_pins>;
248 pinctrl-3 = <&sd_to_ao_uart_clr_pins
249 &sd_clk_cmd_pins &ao_to_sd_uart_pins>;
250 pinctrl-4 = <&sd_to_ao_uart_clr_pins
251 &sd_1bit_pins &ao_to_sd_uart_pins>;
252 pinctrl-5 = <&sd_all_pins &sd_to_ao_uart_pins>;
253 pinctrl-6 = <&sd_to_ao_uart_clr_pins &ao_to_sd_uart_pins>;
254 pinctrl-7 = <&sd_to_ao_uart_clr_pins &ao_to_sd_uart_pins>;
255 pinctrl-8 = <&sd_all_pins &sd_to_ao_uart_pins>;
256 clocks = <&clkc CLKID_SD_EMMC_B>,
257 <&clkc CLKID_SD_EMMC_B_P0_COMP>,
258 <&clkc CLKID_FCLK_DIV2>;
259 clock-names = "core", "clkin0", "clkin1";
260
261 bus-width = <4>;
262 cap-sd-highspeed;
263 max-frequency = <100000000>;
264 disable-wp;
265 sd {
266 pinname = "sd";
267 ocr_avail = <0x200080>; /**VDD voltage 3.3 ~ 3.4 */
268 caps = "MMC_CAP_4_BIT_DATA",
269 "MMC_CAP_MMC_HIGHSPEED",
270 "MMC_CAP_SD_HIGHSPEED";
271 /* "MMC_CAP_UHS_SDR12",
272 * "MMC_CAP_UHS_SDR25",
273 * "MMC_CAP_UHS_SDR50",
274 * "MMC_CAP_UHS_SDR104";
275 */
276 f_min = <400000>;
277 f_max = <100000000>;
278 max_req_size = <0x20000>; /**128KB*/
279 gpio_dat3 = <&gpio CARD_4 GPIO_ACTIVE_HIGH>;
280 jtag_pin = <&gpio CARD_0 GPIO_ACTIVE_HIGH>;
281 gpio_cd = <&gpio CARD_6 GPIO_ACTIVE_HIGH>;
282 card_type = <5>;
283 /* 0:unknown,
284 * 1:mmc card(include eMMC),
285 * 2:sd card(include tSD),
286 * 3:sdio device(ie:sdio-wifi),
287 * 4:SD combo (IO+mem) card,
288 * 5:NON sdio device(means sd/mmc card),
289 * other:reserved
290 */
291 };
292 };
293
294 sd_emmc_a:sdio@d0070000 {
295 status = "okay";
296 compatible = "amlogic, meson-mmc-gxl";
297 reg = <0x0 0xd0070000 0x0 0x2000>;
298 interrupts = <0 216 4>;
299 pinctrl-names = "sdio_clk_cmd_pins", "sdio_all_pins";
300 pinctrl-0 = <&sdio_clk_cmd_pins>;
301 pinctrl-1 = <&sdio_all_pins>;
302 clocks = <&clkc CLKID_SD_EMMC_A>,
303 <&clkc CLKID_SD_EMMC_A_P0_COMP>,
304 <&clkc CLKID_FCLK_DIV2>;
305 clock-names = "core", "clkin0", "clkin1";
306
307 bus-width = <4>;
308 cap-sd-highspeed;
309 cap-mmc-highspeed;
310 max-frequency = <100000000>;
311 non-removable;
312 disable-wp;
313 sdio {
314 pinname = "sdio";
315 ocr_avail = <0x200080>; /**VDD voltage 3.3 ~ 3.4 */
316 caps = "MMC_CAP_4_BIT_DATA",
317 "MMC_CAP_MMC_HIGHSPEED",
318 "MMC_CAP_SD_HIGHSPEED",
319 "MMC_CAP_NONREMOVABLE",
320 "MMC_CAP_UHS_SDR12",
321 "MMC_CAP_UHS_SDR25",
322 "MMC_CAP_UHS_SDR50",
323 "MMC_CAP_UHS_SDR104",
324 "MMC_PM_KEEP_POWER",
325 "MMC_CAP_SDIO_IRQ";
326 f_min = <400000>;
327 f_max = <200000000>;
328 max_req_size = <0x20000>; /**128KB*/
329 card_type = <3>;
330 /* 3:sdio device(ie:sdio-wifi),
331 * 4:SD combo (IO+mem) card
332 */
333 };
334 };
335 mtd_nand{
336 compatible = "amlogic, aml_mtd_nand";
337 dev_name = "mtdnand";
338 status = "disabled";
339 reg = <0x0 0xd0074800 0x0 0x200>;
340 interrupts = < 0 34 1 >;
341 pinctrl-names = "nand_rb_mod","nand_norb_mod", "nand_cs_only";
342 pinctrl-0 = <&all_nand_pins>;
343 pinctrl-1 = <&all_nand_pins>;
344 pinctrl-2 = <&nand_cs_pins>;
345 device_id = <0>;
346 plat-names = "bootloader","nandnormal";
347 plat-num = <2>;
348 plat-part-0 = <&bootloader>;
349 plat-part-1 = <&nandnormal>;
350 bootloader: bootloader{
351 enable_pad ="ce0";
352 busy_pad = "rb0";
353 timming_mode = "mode5";
354 bch_mode = "bch60_1k";
355 t_rea = <20>;
356 t_rhoh = <15>;
357 chip_num = <1>;
358 part_num = <0>;
359 rb_detect = <1>;
360 };
361 nandnormal: nandnormal{
362 enable_pad ="ce0","ce1";
363 busy_pad = "rb0","rb1";
364 timming_mode = "mode5";
365 bch_mode = "bch60_1k";
366 plane_mode = "twoplane";
367 t_rea = <20>;
368 t_rhoh = <15>;
369 chip_num = <2>;
370 part_num = <3>;
371 partition = <&nand_partitions>;
372 rb_detect = <1>;
373 };
374 nand_partitions:nand_partition{
375 logo{
376 offset=<0x0 0x0>;
377 size=<0x0 0x200000>;
378 };
379 recovery{
380 offset=<0x0 0x0>;
381 size=<0x0 0x1000000>;
382 };
383 boot{
384 offset=<0x0 0x0>;
385 size=<0x0 0xC00000>;
386 };
387 system{
388 offset=<0x0 0x0>;
389 size=<0x0 0xDC40000>;
390 };
391 data{
392 offset=<0xffffffff 0xffffffff>;
393 size=<0x0 0x0>;
394 };
395 };
396 };
397
398 ethmac: ethernet@0xc9410000 {
399 compatible = "amlogic, gxbb-eth-dwmac";
400 reg = <0x0 0xc9410000 0x0 0x10000
401 0x0 0xc8834540 0x0 0x8
402 0x0 0xc8834558 0x0 0xc>;
403 interrupts = <0 8 1>;
404 pinctrl-names = "external_eth_pins";
405 pinctrl-0 = <&external_eth_pins>;
406 rst_pin-gpios = <&gpio GPIOZ_14 0>;
407 GPIOZ4_pin-gpios = <&gpio GPIOZ_4 0>;
408 GPIOZ5_pin-gpios = <&gpio GPIOZ_5 0>;
409 mc_val_internal_phy = <0x1800>;
410 mc_val_external_phy = <0x1621>;
411 cali_val = <0x20000>;
412 interrupt-names = "macirq";
413 clocks = <&clkc CLKID_ETH>;
414 clock-names = "ethclk81";
415 internal_phy=<1>;
416 };
417
418 aml_sensor0: aml-sensor@0 {
419 compatible = "amlogic, aml-thermal";
420 device_name = "thermal";
421 #thermal-sensor-cells = <1>;
422 cooling_devices {
423 cpufreq_cool_cluster0 {
424 min_state = <1000000>;
425 dyn_coeff = <140>;
426 cluster_id = <0>;
427 node_name = "cpufreq_cool0";
428 device_type = "cpufreq";
429 };
430 cpucore_cool_cluster0 {
431 min_state = <1>;
432 dyn_coeff = <0>;
433 cluster_id = <0>;
434 node_name = "cpucore_cool0";
435 device_type = "cpucore";
436 };
437 gpufreq_cool {
438 min_state = <400>;
439 dyn_coeff = <437>;
440 cluster_id = <0>;
441 node_name = "gpufreq_cool0";
442 device_type = "gpufreq";
443 };
444 gpucore_cool {
445 min_state = <1>;
446 dyn_coeff = <0>;
447 cluster_id = <0>;
448 node_name = "gpucore_cool0";
449 device_type = "gpucore";
450 };
451 };
452 cpufreq_cool0:cpufreq_cool0 {
453 #cooling-cells = <2>; /* min followed by max */
454 };
455 cpucore_cool0:cpucore_cool0 {
456 #cooling-cells = <2>; /* min followed by max */
457 };
458 gpufreq_cool0:gpufreq_cool0 {
459 #cooling-cells = <2>; /* min followed by max */
460 };
461 gpucore_cool0:gpucore_cool0 {
462 #cooling-cells = <2>; /* min followed by max */
463 };
464 };
465 thermal-zones {
466 soc_thermal {
467 polling-delay = <1000>;
468 polling-delay-passive = <100>;
469 sustainable-power = <2150>;
470
471 thermal-sensors = <&aml_sensor0 3>;
472
473 trips {
474 switch_on: trip-point@0 {
475 temperature = <70000>;
476 hysteresis = <1000>;
477 type = "passive";
478 };
479 control: trip-point@1 {
480 temperature = <80000>;
481 hysteresis = <1000>;
482 type = "passive";
483 };
484 hot: trip-point@2 {
485 temperature = <85000>;
486 hysteresis = <5000>;
487 type = "hot";
488 };
489 critical: trip-point@3 {
490 temperature = <260000>;
491 hysteresis = <1000>;
492 type = "critical";
493 };
494 };
495
496 cooling-maps {
497 cpufreq_cooling_map {
498 trip = <&control>;
499 cooling-device = <&cpufreq_cool0 0 4>;
500 contribution = <1024>;
501 };
502 cpucore_cooling_map {
503 trip = <&control>;
504 cooling-device = <&cpucore_cool0 0 3>;
505 contribution = <1024>;
506 };
507 gpufreq_cooling_map {
508 trip = <&control>;
509 cooling-device = <&gpufreq_cool0 0 4>;
510 contribution = <1024>;
511 };
512 gpucore_cooling_map {
513 trip = <&control>;
514 cooling-device = <&gpucore_cool0 0 2>;
515 contribution = <1024>;
516 };
517 };
518 };
519 };
520
521 dwc3: dwc3@c9000000 {
522 compatible = "synopsys, dwc3";
523 reg = <0x0 0xc9000000 0x0 0x100000>;
524 interrupts = <0 30 4>;
525 usb-phy = <&usb2_phy>, <&usb3_phy>;
526 cpu-type = "gxl";
527 clock-src = "usb3.0";
528 };
529
530 usb2_phy: usb2phy@d0078000 {
531 compatible = "amlogic, amlogic-new-usb2";
532 portnum = <3>;
533 reg = <0x0 0xd0078000 0x0 0x80
534 0x0 0xc1104408 0x0 0x4>;
535 };
536
537 usb3_phy: usb3phy@d0078080 {
538 compatible = "amlogic, amlogic-new-usb3";
539 portnum = <0>;
540 reg = <0x0 0xd0078080 0x0 0x20>;
541 };
542
543 dwc2_a {
544 compatible = "amlogic, dwc2";
545 device_name = "dwc2_a";
546 reg = <0x0 0xc9100000 0x0 0x40000>;
547 status = "okay";
548 interrupts = <0 31 4>;
549 pl-periph-id = <0>; /** lm name */
550 clock-src = "usb0"; /** clock src */
551 port-id = <0>; /** ref to mach/usb.h */
552 port-type = <2>; /** 0: otg, 1: host, 2: slave */
553 port-speed = <0>; /** 0: default, high, 1: full */
554 port-config = <0>; /** 0: default */
555 port-dma = <0>; /** 0: default ... 6: disable*/
556 port-id-mode = <0>; /** 0: hardware, 1: sw_host, 2: sw_slave*/
557 usb-fifo = <728>;
558 cpu-type = "gxl";
559 controller-type = <1>; /** 0: normal, 1: host, 2: device*/
560 phy-reg = <0xd0078000>;
561 phy-reg-size = <0xa0>;
562 clocks = <&clkc CLKID_USB_GENERAL
563 &clkc CLKID_USB1_TO_DDR
564 &clkc CLKID_USB1>;
565 clock-names = "usb_general",
566 "usb1",
567 "usb1_to_ddr";
568 };
569
570 meson-amvideom {
571 compatible = "amlogic, amvideom";
572 dev_name = "amvideom";
573 status = "okay";
574 interrupts = <0 3 1>;
575 interrupt-names = "vsync";
576 };
577
578 vout {
579 compatible = "amlogic, vout";
580 dev_name = "vout";
581 status = "okay";
582 fr_auto_policy = <0>;
583 };
584
585 vdac {
586 compatible = "amlogic, vdac";
587 dev_name = "vdac";
588 status = "okay";
589 };
590
591 cvbsout {
592 compatible = "amlogic, cvbsout-gxl";
593 dev_name = "cvbsout";
594 status = "okay";
595 clocks = <&clkc CLKID_VCLK2_ENCI
596 &clkc CLKID_VCLK2_VENCI0
597 &clkc CLKID_VCLK2_VENCI1
598 &clkc CLKID_DAC_CLK>;
599 clock-names = "venci_top_gate",
600 "venci_0_gate",
601 "venci_1_gate",
602 "vdac_clk_gate";
603
604 /* performance: reg_address, reg_value */
605 /* s905x */
606 performance = <0x1bf0 0x9
607 0x1b56 0x343
608 0x1b12 0x8080
609 0x1b05 0xfd
610 0x1c59 0xf752
611 0xffff 0x0>; /* ending flag */
612 };
613
614 amhdmitx: amhdmitx{
615 compatible = "amlogic, amhdmitx";
616 dev_name = "amhdmitx";
617 status = "okay";
618 vend-data = <&vend_data>;
619 pinctrl-names="hdmitx_hpd", "hdmitx_ddc";
620 pinctrl-0=<&hdmitx_hpd>;
621 pinctrl-1=<&hdmitx_ddc>;
622 /* HPD, 57 + 32 = 89; CEC, 151 + 32 = 183*/
623 interrupts = <0 57 1>;
624 interrupt-names = "hdmitx_hpd";
625 /* 0:M8B 1:GXBB 2:GXTVBB 3:GXL 4:GXM
626 * 5:TXL 6:TXLX 7:AXG 8:GXLX 9:TXHD
627 */
628 ic_type = <3>;
629 vend_data: vend_data{ /* Should modified by Customer */
630 vendor_name = "Amlogic"; /* Max Chars: 8 */
631 /* standards.ieee.org/develop/regauth/oui/oui.txt */
632 vendor_id = <0x000000>;
633 product_desc = "MBox Meson Ref"; /* Max Chars: 16 */
634 };
635 };
636
637 aocec: aocec{
638 compatible = "amlogic, amlogic-aocec";
639 device_name = "aocec";
640 status = "okay";
641 vendor_id = <0x000000>;
642 cec_osd_string = "MBox"; /* Max Chars: 14 */
643 cec_version = <5>; /* 5: 1.4, 6: 2.0 */
644 port_num = <1>;
645 arc_port_mask = <0x0>;
646 interrupts = <0 199 1>;
647 interrupt-names = "hdmi_aocec";
648 pinctrl-names = "default";
649 pinctrl-0=<&hdmitx_aocec>;
650 reg = <0x0 0xc810023c 0x0 0x4
651 0x0 0xc8100000 0x0 0x200>;
652 reg-names = "ao_exit","ao";
653 };
654
655 sysled {
656 compatible = "amlogic, sysled";
657 dev_name = "sysled";
658 status = "disabled";
659 led_gpio = <&gpio GPIODV_24 GPIO_ACTIVE_HIGH>;
660 led_active_low = <1>;
661 };
662
663 codec_io {
664 compatible = "amlogic, codec_io";
665 #address-cells=<2>;
666 #size-cells=<2>;
667 ranges;
668 io_cbus_base{
669 reg = <0x0 0xC1100000 0x0 0x100000>;
670 };
671 io_dos_base{
672 reg = <0x0 0xc8820000 0x0 0x10000>;
673 };
674 io_hiubus_base{
675 reg = <0x0 0xc883c000 0x0 0x2000>;
676 };
677 io_aobus_base{
678 reg = <0x0 0xc8100000 0x0 0x100000>;
679 };
680 io_vcbus_base{
681 reg = <0x0 0xd0100000 0x0 0x40000>;
682 };
683 io_dmc_base{
684 reg = <0x0 0xc8838000 0x0 0x400>;
685 };
686 };
687
688 codec_mm {
689 compatible = "amlogic, codec, mm";
690 memory-region = <&codec_mm_cma &codec_mm_reserved>;
691 dev_name = "codec_mm";
692 status = "okay";
693 };
694
695 canvas{
696 compatible = "amlogic, meson, canvas";
697 dev_name = "amlogic-canvas";
698 status = "ok";
699 reg = <0x0 0xc8838000 0x0 0x400>;
700 };
701
702 mesonstream {
703 compatible = "amlogic, codec, streambuf";
704 dev_name = "mesonstream";
705 status = "okay";
706 clocks = <&clkc CLKID_DOS_PARSER
707 &clkc CLKID_DEMUX
708 &clkc CLKID_DOS
709 &clkc CLKID_CLK81
710 &clkc CLKID_VDEC_MUX
711 &clkc CLKID_HCODEC_MUX
712 &clkc CLKID_HEVC_MUX>;
713 clock-names = "parser_top",
714 "demux",
715 "vdec",
716 "clk_81",
717 "clk_vdec_mux",
718 "clk_hcodec_mux",
719 "clk_hevc_mux";
720 };
721
722 vdec {
723 compatible = "amlogic, vdec";
724 dev_name = "vdec.0";
725 status = "okay";
726 interrupts = <0 3 1
727 0 23 1
728 0 32 1
729 0 43 1
730 0 44 1
731 0 45 1>;
732 interrupt-names = "vsync",
733 "demux",
734 "parser",
735 "mailbox_0",
736 "mailbox_1",
737 "mailbox_2";
738 };
739
740 gpio_keypad{
741 compatible = "amlogic, gpio_keypad";
742 status = "okay";
743 scan_period = <20>;
744 key_num = <1>;
745 key_name = "power";
746 key_code = <116>;
747 key-gpios = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_HIGH>;
748 detect_mode = <0>;/*0:polling mode, 1:irq mode*/
749 };
750 meson-fb {
751 compatible = "amlogic, meson-gxl";
752 memory-region = <&logo_reserved>;
753 dev_name = "meson-fb";
754 status = "okay";
755 interrupts = <0 3 1
756 0 89 1>;
757 interrupt-names = "viu-vsync", "rdma";
758 mem_size = <0x00800000 0x01800000 0x00100000>;
759 /* uboot logo,fb0/fb1 memory size,if afbcd fb0=0x01851000*/
760 display_mode_default = "1080p60hz";
761 scale_mode = <1>;
762 /** 0:VPU free scale 1:OSD free scale 2:OSD super scale */
763 display_size_default = <1920 1080 1920 3240 32>;
764 /*1920*1080*4*3 = 0x17BB000*/
765 logo_addr = "0x3f800000";
766 };
767 ge2d {
768 compatible = "amlogic, ge2d-gxl";
769 dev_name = "ge2d";
770 status = "okay";
771 interrupts = <0 150 1>;
772 interrupt-names = "ge2d";
773 clocks = <&clkc CLKID_VAPB_MUX>,
774 <&clkc CLKID_G2D>,
775 <&clkc CLKID_GE2D_GATE>;
776 clock-names = "clk_vapb_0",
777 "clk_ge2d",
778 "clk_ge2d_gate";
779 };
780
781
782 /* AUDIO MESON DEVICES */
783 i2s_dai: I2S {
784 #sound-dai-cells = <0>;
785 compatible = "amlogic, aml-i2s-dai";
786 clocks =
787 <&clkc CLKID_MPLL2>,
788 <&clkc CLKID_AMCLK_COMP>,
789 <&clkc CLKID_AIU_GLUE>,
790 <&clkc CLKID_IEC958>,
791 <&clkc CLKID_I2S_OUT>,
792 <&clkc CLKID_AMCLK>,
793 <&clkc CLKID_AIFIFO2>,
794 <&clkc CLKID_MIXER>,
795 <&clkc CLKID_MIXER_IFACE>,
796 <&clkc CLKID_ADC>,
797 <&clkc CLKID_AIU_TOP>,
798 <&clkc CLKID_AOCLK_GATE>,
799 <&clkc CLKID_I2S_SPDIF>;
800 clock-names =
801 "mpll",
802 "mclk",
803 "top_glue",
804 "aud_buf",
805 "i2s_out",
806 "amclk_measure",
807 "aififo2",
808 "aud_mixer",
809 "mixer_reg",
810 "adc",
811 "top_level",
812 "aoclk",
813 "aud_in";
814 i2s_pos_sync = <0>;
815 /*DMIC;*/ /* I2s Mic or Dmic, default for I2S mic */
816 };
817 dmic:snd_dmic {
818 #sound-dai-cells = <0>;
819 compatible = "aml, aml_snd_dmic";
820 reg = <0x0 0xd0042000 0x0 0x2000>;
821 status = "disabled";
822 resets = <
823 &clkc CLKID_PDM_GATE
824 >;
825 reset-names = "pdm";
826 pinctrl-names = "audio_dmic";
827 pinctrl-0 = <&aml_dmic_pins>;
828 clocks = <&clkc CLKID_PDM_COMP>,
829 <&clkc CLKID_AMCLK_COMP>;
830 clock-names = "pdm", "mclk";
831 };
832 spdif_dai: SPDIF {
833 #sound-dai-cells = <0>;
834 compatible = "amlogic, aml-spdif-dai";
835 clocks =
836 <&clkc CLKID_MPLL1>,
837 <&clkc CLKID_I958_COMP>,
838 <&clkc CLKID_AMCLK_COMP>,
839 <&clkc CLKID_I958_COMP_SPDIF>,
840 <&clkc CLKID_CLK81>,
841 <&clkc CLKID_IEC958>,
842 <&clkc CLKID_IEC958_GATE>;
843 clock-names =
844 "mpll1",
845 "i958",
846 "mclk",
847 "spdif",
848 "clk_81",
849 "iec958",
850 "iec958_amclk";
851 };
852 pcm_dai: PCM {
853 #sound-dai-cells = <0>;
854 compatible = "amlogic, aml-pcm-dai";
855 pinctrl-names = "audio_pcm";
856 pinctrl-0 = <&audio_pcm_pins>;
857 clocks =
858 <&clkc CLKID_MPLL0>,
859 <&clkc CLKID_PCM_MCLK_COMP>,
860 <&clkc CLKID_PCM_SCLK_GATE>;
861 clock-names =
862 "mpll0",
863 "pcm_mclk",
864 "pcm_sclk";
865 pcm_mode = <1>; /* 0=slave mode, 1=master mode */
866 };
867 i2s_plat: i2s_platform {
868 compatible = "amlogic, aml-i2s";
869 interrupts = <0 29 1>;
870 };
871 pcm_plat: pcm_platform {
872 compatible = "amlogic, aml-pcm";
873 };
874 spdif_codec: spdif_codec{
875 #sound-dai-cells = <0>;
876 compatible = "amlogic, aml-spdif-codec";
877 pinctrl-names = "audio_spdif";
878 pinctrl-0 = <&audio_spdif_pins>;
879 };
880 pcm_codec: pcm_codec{
881 #sound-dai-cells = <0>;
882 compatible = "amlogic, pcm2BT-codec";
883 };
884 /* endof AUDIO MESON DEVICES */
885
886 /* AUDIO board specific */
887 dummy_codec:dummy{
888 #sound-dai-cells = <0>;
889 compatible = "amlogic, aml_dummy_codec";
890 status = "disable";
891 };
892 amlogic_codec:t9015{
893 #sound-dai-cells = <0>;
894 compatible = "amlogic, aml_codec_T9015";
895 reg = <0x0 0xc8832000 0x0 0x14>;
896 status = "okay";
897 };
898 aml_sound_meson {
899 compatible = "aml, meson-snd-card";
900 status = "okay";
901 aml-sound-card,format = "i2s";
902 aml_sound_card,name = "AML-MESONAUDIO";
903 aml,audio-routing =
904 "Ext Spk","LOUTL",
905 "Ext Spk","LOUTR";
906
907 mute_gpio-gpios = <&gpio GPIOH_5 0>;
908 mute_inv;
909 hp_disable;
910 hp_paraments = <800 300 0 5 1>;
911 pinctrl-names = "audio_i2s";
912 pinctrl-0 = <&audio_i2s_pins>;
913 cpu_list = <&cpudai0 &cpudai1 &cpudai2>;
914 codec_list = <&codec0 &codec1 &codec2>;
915 plat_list = <&i2s_plat &i2s_plat &pcm_plat>;
916 cpudai0: cpudai0 {
917 sound-dai = <&i2s_dai>;
918 };
919 cpudai1: cpudai1 {
920 sound-dai = <&spdif_dai>;
921 };
922 cpudai2: cpudai2 {
923 sound-dai = <&pcm_dai>;
924 };
925 codec0: codec0 {
926 sound-dai = <&amlogic_codec>;
927 };
928 codec1: codec1 {
929 sound-dai = <&spdif_codec>;
930 };
931 codec2: codec2 {
932 sound-dai = <&pcm_codec>;
933 };
934 };
935 /* END OF AUDIO board specific */
936 rdma{
937 compatible = "amlogic, meson, rdma";
938 dev_name = "amlogic-rdma";
939 status = "ok";
940 interrupts = <0 89 1>;
941 interrupt-names = "rdma";
942 };
943
944 amvenc_avc{
945 compatible = "amlogic, amvenc_avc";
946 dev_name = "amvenc_avc";
947 status = "okay";
948 interrupts = <0 45 1>;
949 interrupt-names = "mailbox_2";
950 };
951
952 hevc_enc{
953 compatible = "cnm, HevcEnc";
954 dev_name = "HevcEnc";
955 status = "okay";
956 interrupts = <0 187 1>;
957 interrupt-names = "wave420l_irq";
958 #address-cells=<2>;
959 #size-cells=<2>;
960 ranges;
961 io_reg_base{
962 reg = <0x0 0xc8810000 0x0 0x4000>;
963 };
964 };
965
966 picdec {
967 compatible = "amlogic, picdec";
968 memory-region = <&picdec_cma_reserved>;
969 dev_name = "picdec";
970 status = "okay";
971 };
972
973 ppmgr {
974 compatible = "amlogic, ppmgr";
975 memory-region = <&ppmgr_reserved>;
976 dev_name = "ppmgr";
977 status = "okay";
978 };
979
980 deinterlace {
981 compatible = "amlogic, deinterlace";
982 status = "okay";
983 flag_cma = <1>;/*0:use reserved;1:use cma*/
984 //memory-region = <&di_reserved>;
985 memory-region = <&di_cma_reserved>;
986 interrupts = <0 46 1 0 6 1>;
987 interrupt-names = "de_irq", "timerc";
988 /*
989 * nr_size(byte) = 1920*544*2(yuv422 8bit) |
990 * 1920*544*2*12/8(yuv422 10bit)
991 * | 1920*544*2*10/8(yuv422 10bit full pack mode)
992 */
993 /* mtn_size(byte) = 1920*544/2 */
994 /* count_size(byte) = 1920*544/2 */
995 buffer-size = <3133440>;
996 hw-version = <2>;
997 };
998
999 ionvideo {
1000 compatible = "amlogic, ionvideo";
1001 dev_name = "ionvideo";
1002 status = "okay";
1003 };
1004
1005 amlvideo {
1006 compatible = "amlogic, amlvideo";
1007 dev_name = "amlvideo";
1008 status = "okay";
1009 };
1010
1011 amlvideo2_0 {
1012 compatible = "amlogic, amlvideo2";
1013 dev_name = "amlvideo2";
1014 status = "okay";
1015 amlvideo2_id = <0>;
1016 cma_mode = <1>;
1017 };
1018
1019 amlvideo2_1 {
1020 compatible = "amlogic, amlvideo2";
1021 dev_name = "amlvideo2";
1022 status = "okay";
1023 amlvideo2_id = <1>;
1024 cma_mode = <1>;
1025 };
1026
1027 /*if you want to use vdin just modify status to "ok"*/
1028 vdin0 {
1029 compatible = "amlogic, vdin";
1030 /*memory-region = <&vdin0_cma_reserved>;*/
1031 dev_name = "vdin0";
1032 status = "ok";
1033 reserve-iomap = "true";
1034 flag_cma = <1>;/*1:share with codec_mm;2:cma alone*/
1035 /*MByte, if 10bit disable: 64M(YUV422),
1036 *if 10bit enable: 64*1.5 = 96M(YUV422)
1037 *if support 4K2K-YUV444-10bit-WR:3840*2160*4*4 ~= 128M
1038 *if support 4K2K-YUV422-10bit-wr:3840*2160*3*4 ~= 96M
1039 *if support 4K2K-YUV422-8BIT-WR:3840*2160*2*4 ~= 64M
1040 *if support 1080p-YUV422-8BIT-WR:1920*1080*2*4 ~= 16M
1041 */
1042 cma_size = <16>;
1043 interrupts = <0 83 1>;
1044 rdma-irq = <2>;
1045 /*clocks = <&clock CLK_FPLL_DIV5>,
1046 * <&clock CLK_VDIN_MEAS_CLK>;
1047 *clock-names = "fclk_div5", "cts_vdin_meas_clk";
1048 */
1049 vdin_id = <0>;
1050 /*vdin write mem color depth support:
1051 *bit0:support 8bit
1052 *bit1:support 9bit
1053 *bit2:support 10bit
1054 *bit3:support 12bit
1055 *bit4:support yuv422 10bit full pack mode (from txl new add)
1056 */
1057 tv_bit_mode = <1>;
1058 };
1059 vdin1 {
1060 compatible = "amlogic, vdin";
1061 memory-region = <&vdin1_cma_reserved>;
1062 dev_name = "vdin1";
1063 status = "ok";
1064 reserve-iomap = "true";
1065 flag_cma = <0>;/*1:share with codec_mm;0:cma alone*/
1066 interrupts = <0 85 1>;
1067 rdma-irq = <4>;
1068 /*clocks = <&clock CLK_FPLL_DIV5>,
1069 * <&clock CLK_VDIN_MEAS_CLK>;
1070 *clock-names = "fclk_div5", "cts_vdin_meas_clk";
1071 */
1072 vdin_id = <1>;
1073 /*vdin write mem color depth support:
1074 *bit0:support 8bit
1075 *bit1:support 9bit
1076 *bit2:support 10bit
1077 *bit3:support 12bit
1078 */
1079 tv_bit_mode = <1>;
1080 };
1081
1082 amlvecm {
1083 compatible = "amlogic, vecm";
1084 dev_name = "aml_vecm";
1085 status = "okay";
1086 gamma_en = <0>;/*1:enabel ;0:disable*/
1087 wb_en = <0>;/*1:enabel ;0:disable*/
1088 cm_en = <0>;/*1:enabel ;0:disable*/
1089 /*1:enabel osd lut 100 table;0:disable*/
1090 cfg_en_osd_100 = <1>;
1091 /*0: 709/601 1: bt2020*/
1092 tx_op_color_primary = <0>;
1093 };
1094
1095 unifykey{
1096 compatible = "amlogic, unifykey";
1097 status = "ok";
1098
1099 unifykey-num = <16>;
1100 unifykey-index-0 = <&keysn_0>;
1101 unifykey-index-1 = <&keysn_1>;
1102 unifykey-index-2 = <&keysn_2>;
1103 unifykey-index-3 = <&keysn_3>;
1104 unifykey-index-4 = <&keysn_4>;
1105 unifykey-index-5 = <&keysn_5>;
1106 unifykey-index-6 = <&keysn_6>;
1107 unifykey-index-7 = <&keysn_7>;
1108 unifykey-index-8 = <&keysn_8>;
1109 unifykey-index-9 = <&keysn_9>;
1110 unifykey-index-10= <&keysn_10>;
1111 unifykey-index-11= <&keysn_11>;
1112 unifykey-index-12= <&keysn_12>;
1113 unifykey-index-13= <&keysn_13>;
1114 unifykey-index-14= <&keysn_14>;
1115 unifykey-index-15= <&keysn_15>;
1116
1117 keysn_0: key_0{
1118 key-name = "usid";
1119 key-device = "normal";
1120 key-permit = "read","write","del";
1121 };
1122 keysn_1:key_1{
1123 key-name = "mac";
1124 key-device = "normal";
1125 key-permit = "read","write","del";
1126 };
1127 keysn_2:key_2{
1128 key-name = "hdcp";
1129 key-device = "secure";
1130 key-type = "sha1";
1131 key-permit = "read","write","del";
1132 };
1133 keysn_3:key_3{
1134 key-name = "secure_boot_set";
1135 key-device = "efuse";
1136 key-permit = "write";
1137 };
1138 keysn_4:key_4{
1139 key-name = "mac_bt";
1140 key-device = "normal";
1141 key-permit = "read","write","del";
1142 key-type = "mac";
1143 };
1144 keysn_5:key_5{
1145 key-name = "mac_wifi";
1146 key-device = "normal";
1147 key-permit = "read","write","del";
1148 key-type = "mac";
1149 };
1150 keysn_6:key_6{
1151 key-name = "hdcp2_tx";
1152 key-device = "normal";
1153 key-permit = "read","write","del";
1154 };
1155 keysn_7:key_7{
1156 key-name = "hdcp2_rx";
1157 key-device = "normal";
1158 key-permit = "read","write","del";
1159 };
1160 keysn_8:key_8{
1161 key-name = "widevinekeybox";
1162 key-device = "secure";
1163 key-permit = "read","write","del";
1164 };
1165 keysn_9:key_9{
1166 key-name = "deviceid";
1167 key-device = "normal";
1168 key-permit = "read","write","del";
1169 };
1170 keysn_10:key_10{
1171 key-name = "hdcp22_fw_private";
1172 key-device = "secure";
1173 key-permit = "read","write","del";
1174 };
1175 keysn_11:key_11{
1176 key-name = "PlayReadykeybox25";
1177 key-device = "secure";
1178 key-permit = "read","write","del";
1179 };
1180 keysn_12:key_12{
1181 key-name = "prpubkeybox";// PlayReady
1182 key-device = "secure";
1183 key-permit = "read","write","del";
1184 };
1185 keysn_13:key_13{
1186 key-name = "prprivkeybox";// PlayReady
1187 key-device = "secure";
1188 key-permit = "read","write","del";
1189 };
1190 keysn_14:key_14{
1191 key-name = "attestationkeybox";// attestation key
1192 key-device = "secure";
1193 key-permit = "read","write","del";
1194 };
1195 keysn_15:key_15{
1196 key-name = "region_code";
1197 key-device = "normal";
1198 key-permit = "read","write","del";
1199 };
1200 };//End unifykey
1201
1202};
1203&efuse {
1204 status = "ok";
1205};
1206
1207&pwm_ef {
1208 status = "okay";
1209};
1210
1211&audio_data{
1212 status = "okay";
1213};
1214&spicc{
1215 status = "disabled";
1216 pinctrl-names = "spicc_pulldown","spicc_pullup";
1217 pinctrl-0 = <&spicc_pulldown_x8x9x11>;
1218 pinctrl-1 = <&spicc_pullup_x8x9x11>;
1219 num_chipselect = <1>;
1220 cs-gpios = <&gpio GPIOX_10 GPIO_ACTIVE_HIGH>;
1221 dma_en = <0>;
1222 dma_tx_threshold = <3>;
1223 dma_rx_threshold = <3>;
1224 dma_num_per_read_burst = <3>;
1225 dma_num_per_write_burst = <3>;
1226 delay_control = <0x15>;
1227 ssctl = <0>;
1228};
1229