summaryrefslogtreecommitdiff
path: root/arch/arm64/boot/dts/amlogic/gxl_p244_1g.dts (plain)
blob: 2fd451af232b0dd7f14b5f146ed1c0042a52fb48
1/*
2 * arch/arm64/boot/dts/amlogic/gxl_p244_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_p244_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 0x400000>;
70 alignment = <0x0 0x400000>;
71 alloc-ranges = <0x0 0x3fc00000 0x0 0x400000>;
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 0x4C00000>;
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 amlogic_battery:dummy-battery {
143 compatible = "amlogic, dummy-battery";
144 status = "disabled";
145 };
146
147 amlogic_charger:dummy-charger {
148 compatible = "amlogic, dummy-charger";
149 status = "disabled";
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 30541 0>;
175 duty-cycle = <15270>;
176 times = <8>;
177 };
178 pwm_channel2_conf {
179 pwms = <&pwm_ef MESON_PWM_2 30500 0>;
180 duty-cycle = <15250>;
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 = <1200000>;
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 = <500>;
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 = <80000>;
476 hysteresis = <1000>;
477 type = "passive";
478 };
479 control: trip-point@1 {
480 temperature = <90000>;
481 hysteresis = <1000>;
482 type = "passive";
483 };
484 hot: trip-point@2 {
485 temperature = <100000>;
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 cvbsout {
586 compatible = "amlogic, cvbsout-gxl";
587 dev_name = "cvbsout";
588 status = "okay";
589 clocks = <&clkc CLKID_VCLK2_ENCI
590 &clkc CLKID_VCLK2_VENCI0
591 &clkc CLKID_VCLK2_VENCI1
592 &clkc CLKID_DAC_CLK>;
593 clock-names = "venci_top_gate",
594 "venci_0_gate",
595 "venci_1_gate",
596 "vdac_clk_gate";
597
598 /* performance: reg_address, reg_value */
599 /* s905x */
600 performance = <0x1bf0 0x9
601 0x1b56 0x343
602 0x1b12 0x8080
603 0x1b05 0xfd
604 0x1c59 0xf752
605 0xffff 0x0>; /* ending flag */
606 };
607
608 amhdmitx: amhdmitx{
609 compatible = "amlogic, amhdmitx";
610 dev_name = "amhdmitx";
611 status = "okay";
612 vend-data = <&vend_data>;
613 pinctrl-names="hdmitx_hpd", "hdmitx_ddc";
614 pinctrl-0=<&hdmitx_hpd>;
615 pinctrl-1=<&hdmitx_ddc>;
616 /* HPD, 57 + 32 = 89; CEC, 151 + 32 = 183*/
617 interrupts = <0 57 1>;
618 interrupt-names = "hdmitx_hpd";
619 /* 0:M8B 1:GXBB 2:GXTVBB 3:GXL 4:GXM
620 * 5:TXL 6:TXLX 7:AXG 8:GXLX 9:TXHD
621 */
622 ic_type = <3>;
623 vend_data: vend_data{ /* Should modified by Customer */
624 vendor_name = "Amlogic"; /* Max Chars: 8 */
625 /* standards.ieee.org/develop/regauth/oui/oui.txt */
626 vendor_id = <0x000000>;
627 product_desc = "MBox Meson Ref"; /* Max Chars: 16 */
628 };
629 };
630
631 aocec: aocec{
632 compatible = "amlogic, amlogic-aocec";
633 device_name = "aocec";
634 status = "okay";
635 vendor_id = <0x000000>;
636 cec_osd_string = "MBox"; /* Max Chars: 14 */
637 cec_version = <5>; /* 5: 1.4, 6: 2.0 */
638 port_num = <1>;
639 arc_port_mask = <0x0>;
640 interrupts = <0 199 1>;
641 interrupt-names = "hdmi_aocec";
642 pinctrl-names = "default";
643 pinctrl-0=<&hdmitx_aocec>;
644 reg = <0x0 0xc810023c 0x0 0x4
645 0x0 0xc8100000 0x0 0x200>;
646 reg-names = "ao_exit","ao";
647 };
648
649 sysled {
650 compatible = "amlogic, sysled";
651 dev_name = "sysled";
652 status = "disabled";
653 led_gpio = <&gpio GPIODV_24 GPIO_ACTIVE_HIGH>;
654 led_active_low = <1>;
655 };
656
657 codec_io {
658 compatible = "amlogic, codec_io";
659 #address-cells=<2>;
660 #size-cells=<2>;
661 ranges;
662 io_cbus_base{
663 reg = <0x0 0xC1100000 0x0 0x100000>;
664 };
665 io_dos_base{
666 reg = <0x0 0xc8820000 0x0 0x10000>;
667 };
668 io_hiubus_base{
669 reg = <0x0 0xc883c000 0x0 0x2000>;
670 };
671 io_aobus_base{
672 reg = <0x0 0xc8100000 0x0 0x100000>;
673 };
674 io_vcbus_base{
675 reg = <0x0 0xd0100000 0x0 0x40000>;
676 };
677 io_dmc_base{
678 reg = <0x0 0xc8838000 0x0 0x400>;
679 };
680 };
681
682 codec_mm {
683 compatible = "amlogic, codec, mm";
684 memory-region = <&codec_mm_cma &codec_mm_reserved>;
685 dev_name = "codec_mm";
686 /*no-cmatvp;*/
687 status = "okay";
688 };
689
690 canvas{
691 compatible = "amlogic, meson, canvas";
692 dev_name = "amlogic-canvas";
693 status = "ok";
694 reg = <0x0 0xc8838000 0x0 0x400>;
695 };
696
697 mesonstream {
698 compatible = "amlogic, codec, streambuf";
699 dev_name = "mesonstream";
700 status = "okay";
701 clocks = <&clkc CLKID_DOS_PARSER
702 &clkc CLKID_DEMUX
703 &clkc CLKID_DOS
704 &clkc CLKID_CLK81
705 &clkc CLKID_VDEC_MUX
706 &clkc CLKID_HCODEC_MUX
707 &clkc CLKID_HEVC_MUX>;
708 clock-names = "parser_top",
709 "demux",
710 "vdec",
711 "clk_81",
712 "clk_vdec_mux",
713 "clk_hcodec_mux",
714 "clk_hevc_mux";
715 };
716
717 vdec {
718 compatible = "amlogic, vdec";
719 dev_name = "vdec.0";
720 status = "okay";
721 interrupts = <0 3 1
722 0 23 1
723 0 32 1
724 0 43 1
725 0 44 1
726 0 45 1>;
727 interrupt-names = "vsync",
728 "demux",
729 "parser",
730 "mailbox_0",
731 "mailbox_1",
732 "mailbox_2";
733 };
734
735 gpio_keypad{
736 compatible = "amlogic, gpio_keypad";
737 status = "okay";
738 scan_period = <20>;
739 key_num = <1>;
740 key_name = "power";
741 key_code = <116>;
742 key-gpios = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_HIGH>;
743 detect_mode = <0>;/*0:polling mode, 1:irq mode*/
744 };
745 meson-fb {
746 compatible = "amlogic, meson-gxl";
747 memory-region = <&logo_reserved>;
748 dev_name = "meson-fb";
749 status = "okay";
750 interrupts = <0 3 1
751 0 89 1>;
752 interrupt-names = "viu-vsync", "rdma";
753 mem_size = <0x00400000 0x00b00000 0x00100000>;
754 /* uboot logo,fb0/fb1 memory size,if afbcd fb0=0x01851000*/
755 display_mode_default = "720p60hz";
756 scale_mode = <1>;
757 /** 0:VPU free scale 1:OSD free scale 2:OSD super scale */
758 display_size_default = <1280 720 1280 2160 32>;
759 /*1920*1080*4*3 = 0x17BB000*/
760 logo_addr = "0x3fc00000";
761 };
762 ge2d {
763 compatible = "amlogic, ge2d-gxl";
764 dev_name = "ge2d";
765 status = "okay";
766 interrupts = <0 150 1>;
767 interrupt-names = "ge2d";
768 clocks = <&clkc CLKID_VAPB_MUX>,
769 <&clkc CLKID_G2D>,
770 <&clkc CLKID_GE2D_GATE>;
771 clock-names = "clk_vapb_0",
772 "clk_ge2d",
773 "clk_ge2d_gate";
774 };
775
776
777 /* AUDIO MESON DEVICES */
778 i2s_dai: I2S {
779 #sound-dai-cells = <0>;
780 compatible = "amlogic, aml-i2s-dai";
781 clocks =
782 <&clkc CLKID_MPLL2>,
783 <&clkc CLKID_AMCLK_COMP>,
784 <&clkc CLKID_AIU_GLUE>,
785 <&clkc CLKID_IEC958>,
786 <&clkc CLKID_I2S_OUT>,
787 <&clkc CLKID_AMCLK>,
788 <&clkc CLKID_AIFIFO2>,
789 <&clkc CLKID_MIXER>,
790 <&clkc CLKID_MIXER_IFACE>,
791 <&clkc CLKID_ADC>,
792 <&clkc CLKID_AIU_TOP>,
793 <&clkc CLKID_AOCLK_GATE>,
794 <&clkc CLKID_I2S_SPDIF>;
795 clock-names =
796 "mpll",
797 "mclk",
798 "top_glue",
799 "aud_buf",
800 "i2s_out",
801 "amclk_measure",
802 "aififo2",
803 "aud_mixer",
804 "mixer_reg",
805 "adc",
806 "top_level",
807 "aoclk",
808 "aud_in";
809 i2s_pos_sync = <0>;
810 /*DMIC;*/ /* I2s Mic or Dmic, default for I2S mic */
811 };
812 dmic:snd_dmic {
813 #sound-dai-cells = <0>;
814 compatible = "aml, aml_snd_dmic";
815 reg = <0x0 0xd0042000 0x0 0x2000>;
816 status = "disabled";
817 resets = <
818 &clkc CLKID_PDM_GATE
819 >;
820 reset-names = "pdm";
821 pinctrl-names = "audio_dmic";
822 pinctrl-0 = <&aml_dmic_pins>;
823 clocks = <&clkc CLKID_PDM_COMP>,
824 <&clkc CLKID_AMCLK_COMP>;
825 clock-names = "pdm", "mclk";
826 };
827 spdif_dai: SPDIF {
828 #sound-dai-cells = <0>;
829 compatible = "amlogic, aml-spdif-dai";
830 clocks =
831 <&clkc CLKID_MPLL1>,
832 <&clkc CLKID_I958_COMP>,
833 <&clkc CLKID_AMCLK_COMP>,
834 <&clkc CLKID_I958_COMP_SPDIF>,
835 <&clkc CLKID_CLK81>,
836 <&clkc CLKID_IEC958>,
837 <&clkc CLKID_IEC958_GATE>;
838 clock-names =
839 "mpll1",
840 "i958",
841 "mclk",
842 "spdif",
843 "clk_81",
844 "iec958",
845 "iec958_amclk";
846 };
847 pcm_dai: PCM {
848 #sound-dai-cells = <0>;
849 compatible = "amlogic, aml-pcm-dai";
850 pinctrl-names = "audio_pcm";
851 pinctrl-0 = <&audio_pcm_pins>;
852 clocks =
853 <&clkc CLKID_MPLL0>,
854 <&clkc CLKID_PCM_MCLK_COMP>,
855 <&clkc CLKID_PCM_SCLK_GATE>;
856 clock-names =
857 "mpll0",
858 "pcm_mclk",
859 "pcm_sclk";
860 pcm_mode = <1>; /* 0=slave mode, 1=master mode */
861 };
862 i2s_plat: i2s_platform {
863 compatible = "amlogic, aml-i2s";
864 interrupts = <0 29 1>;
865 };
866 pcm_plat: pcm_platform {
867 compatible = "amlogic, aml-pcm";
868 };
869 spdif_codec: spdif_codec{
870 #sound-dai-cells = <0>;
871 compatible = "amlogic, aml-spdif-codec";
872 pinctrl-names = "audio_spdif";
873 pinctrl-0 = <&audio_spdif_pins>;
874 };
875 pcm_codec: pcm_codec{
876 #sound-dai-cells = <0>;
877 compatible = "amlogic, pcm2BT-codec";
878 };
879 /* endof AUDIO MESON DEVICES */
880
881 /* AUDIO board specific */
882 dummy_codec:dummy{
883 #sound-dai-cells = <0>;
884 compatible = "amlogic, aml_dummy_codec";
885 status = "disable";
886 };
887 amlogic_codec:t9015{
888 #sound-dai-cells = <0>;
889 compatible = "amlogic, aml_codec_T9015";
890 reg = <0x0 0xc8832000 0x0 0x14>;
891 status = "okay";
892 };
893 aml_sound_meson {
894 compatible = "aml, meson-snd-card";
895 status = "okay";
896 aml-sound-card,format = "i2s";
897 aml_sound_card,name = "AML-MESONAUDIO";
898 aml,audio-routing =
899 "Ext Spk","LOUTL",
900 "Ext Spk","LOUTR";
901
902 mute_gpio-gpios = <&gpio GPIOH_5 0>;
903 mute_inv;
904 hp_disable;
905 hp_paraments = <800 300 0 5 1>;
906 pinctrl-names = "audio_i2s";
907 pinctrl-0 = <&audio_i2s_pins>;
908 cpu_list = <&cpudai0 &cpudai1 &cpudai2>;
909 codec_list = <&codec0 &codec1 &codec2>;
910 plat_list = <&i2s_plat &i2s_plat &pcm_plat>;
911 cpudai0: cpudai0 {
912 sound-dai = <&i2s_dai>;
913 };
914 cpudai1: cpudai1 {
915 sound-dai = <&spdif_dai>;
916 };
917 cpudai2: cpudai2 {
918 sound-dai = <&pcm_dai>;
919 };
920 codec0: codec0 {
921 sound-dai = <&amlogic_codec>;
922 };
923 codec1: codec1 {
924 sound-dai = <&spdif_codec>;
925 };
926 codec2: codec2 {
927 sound-dai = <&pcm_codec>;
928 };
929 };
930 /* END OF AUDIO board specific */
931 rdma{
932 compatible = "amlogic, meson, rdma";
933 dev_name = "amlogic-rdma";
934 status = "ok";
935 interrupts = <0 89 1>;
936 interrupt-names = "rdma";
937 };
938
939 amvenc_avc{
940 compatible = "amlogic, amvenc_avc";
941 dev_name = "amvenc_avc";
942 status = "okay";
943 interrupts = <0 45 1>;
944 interrupt-names = "mailbox_2";
945 };
946
947 hevc_enc{
948 compatible = "cnm, HevcEnc";
949 dev_name = "HevcEnc";
950 status = "okay";
951 interrupts = <0 187 1>;
952 interrupt-names = "wave420l_irq";
953 #address-cells=<2>;
954 #size-cells=<2>;
955 ranges;
956 io_reg_base{
957 reg = <0x0 0xc8810000 0x0 0x4000>;
958 };
959 };
960
961 picdec {
962 compatible = "amlogic, picdec";
963 memory-region = <&picdec_cma_reserved>;
964 dev_name = "picdec";
965 status = "okay";
966 };
967
968 ppmgr {
969 compatible = "amlogic, ppmgr";
970 memory-region = <&ppmgr_reserved>;
971 dev_name = "ppmgr";
972 status = "okay";
973 };
974
975 deinterlace {
976 compatible = "amlogic, deinterlace";
977 status = "okay";
978 flag_cma = <1>;/*0:use reserved;1:use cma*/
979 //memory-region = <&di_reserved>;
980 memory-region = <&di_cma_reserved>;
981 interrupts = <0 46 1 0 6 1>;
982 interrupt-names = "de_irq", "timerc";
983 /*
984 * nr_size(byte) = 1920*544*2(yuv422 8bit) |
985 * 1920*544*2*12/8(yuv422 10bit)
986 * | 1920*544*2*10/8(yuv422 10bit full pack mode)
987 */
988 /* mtn_size(byte) = 1920*544/2 */
989 /* count_size(byte) = 1920*544/2 */
990 buffer-size = <3133440>;
991 hw-version = <2>;
992 };
993
994 ionvideo {
995 compatible = "amlogic, ionvideo";
996 dev_name = "ionvideo";
997 status = "okay";
998 };
999
1000 amlvideo {
1001 compatible = "amlogic, amlvideo";
1002 dev_name = "amlvideo";
1003 status = "okay";
1004 };
1005
1006 amlvideo2_0 {
1007 compatible = "amlogic, amlvideo2";
1008 dev_name = "amlvideo2";
1009 status = "okay";
1010 amlvideo2_id = <0>;
1011 cma_mode = <1>;
1012 };
1013
1014 amlvideo2_1 {
1015 compatible = "amlogic, amlvideo2";
1016 dev_name = "amlvideo2";
1017 status = "okay";
1018 amlvideo2_id = <1>;
1019 cma_mode = <1>;
1020 };
1021
1022 /*if you want to use vdin just modify status to "ok"*/
1023 vdin0 {
1024 compatible = "amlogic, vdin";
1025 /*memory-region = <&vdin0_cma_reserved>;*/
1026 dev_name = "vdin0";
1027 status = "ok";
1028 reserve-iomap = "true";
1029 flag_cma = <1>;/*1:share with codec_mm;2:cma alone*/
1030 /*MByte, if 10bit disable: 64M(YUV422),
1031 *if 10bit enable: 64*1.5 = 96M(YUV422)
1032 *if support 4K2K-YUV444-10bit-WR:3840*2160*4*4 ~= 128M
1033 *if support 4K2K-YUV422-10bit-wr:3840*2160*3*4 ~= 96M
1034 *if support 4K2K-YUV422-8BIT-WR:3840*2160*2*4 ~= 64M
1035 *if support 1080p-YUV422-8BIT-WR:1920*1080*2*4 ~= 16M
1036 */
1037 cma_size = <16>;
1038 interrupts = <0 83 1>;
1039 rdma-irq = <2>;
1040 /*clocks = <&clock CLK_FPLL_DIV5>,
1041 * <&clock CLK_VDIN_MEAS_CLK>;
1042 *clock-names = "fclk_div5", "cts_vdin_meas_clk";
1043 */
1044 vdin_id = <0>;
1045 /*vdin write mem color depth support:
1046 *bit0:support 8bit
1047 *bit1:support 9bit
1048 *bit2:support 10bit
1049 *bit3:support 12bit
1050 *bit4:support yuv422 10bit full pack mode (from txl new add)
1051 */
1052 tv_bit_mode = <1>;
1053 };
1054 vdin1 {
1055 compatible = "amlogic, vdin";
1056 memory-region = <&vdin1_cma_reserved>;
1057 dev_name = "vdin1";
1058 status = "ok";
1059 reserve-iomap = "true";
1060 flag_cma = <0>;/*1:share with codec_mm;0:cma alone*/
1061 interrupts = <0 85 1>;
1062 rdma-irq = <4>;
1063 /*clocks = <&clock CLK_FPLL_DIV5>,
1064 * <&clock CLK_VDIN_MEAS_CLK>;
1065 *clock-names = "fclk_div5", "cts_vdin_meas_clk";
1066 */
1067 vdin_id = <1>;
1068 /*vdin write mem color depth support:
1069 *bit0:support 8bit
1070 *bit1:support 9bit
1071 *bit2:support 10bit
1072 *bit3:support 12bit
1073 */
1074 tv_bit_mode = <1>;
1075 };
1076
1077 amlvecm {
1078 compatible = "amlogic, vecm";
1079 dev_name = "aml_vecm";
1080 status = "okay";
1081 gamma_en = <0>;/*1:enabel ;0:disable*/
1082 wb_en = <0>;/*1:enabel ;0:disable*/
1083 cm_en = <0>;/*1:enabel ;0:disable*/
1084 /*1:enabel osd lut 100 table;0:disable*/
1085 cfg_en_osd_100 = <0>;
1086 /*0: 709/601 1: bt2020*/
1087 tx_op_color_primary = <1>;
1088 };
1089
1090 unifykey{
1091 compatible = "amlogic, unifykey";
1092 status = "ok";
1093
1094 unifykey-num = <18>;
1095 unifykey-index-0 = <&keysn_0>;
1096 unifykey-index-1 = <&keysn_1>;
1097 unifykey-index-2 = <&keysn_2>;
1098 unifykey-index-3 = <&keysn_3>;
1099 unifykey-index-4 = <&keysn_4>;
1100 unifykey-index-5 = <&keysn_5>;
1101 unifykey-index-6 = <&keysn_6>;
1102 unifykey-index-7 = <&keysn_7>;
1103 unifykey-index-8 = <&keysn_8>;
1104 unifykey-index-9 = <&keysn_9>;
1105 unifykey-index-10= <&keysn_10>;
1106 unifykey-index-11= <&keysn_11>;
1107 unifykey-index-12= <&keysn_12>;
1108 unifykey-index-13= <&keysn_13>;
1109 unifykey-index-14= <&keysn_14>;
1110 unifykey-index-15= <&keysn_15>;
1111 unifykey-index-16= <&keysn_16>;
1112 unifykey-index-17= <&keysn_17>;
1113
1114 keysn_0: key_0{
1115 key-name = "usid";
1116 key-device = "normal";
1117 key-permit = "read","write","del";
1118 };
1119 keysn_1:key_1{
1120 key-name = "mac";
1121 key-device = "normal";
1122 key-permit = "read","write","del";
1123 };
1124 keysn_2:key_2{
1125 key-name = "hdcp";
1126 key-device = "secure";
1127 key-type = "sha1";
1128 key-permit = "read","write","del";
1129 };
1130 keysn_3:key_3{
1131 key-name = "secure_boot_set";
1132 key-device = "efuse";
1133 key-permit = "write";
1134 };
1135 keysn_4:key_4{
1136 key-name = "mac_bt";
1137 key-device = "normal";
1138 key-permit = "read","write","del";
1139 key-type = "mac";
1140 };
1141 keysn_5:key_5{
1142 key-name = "mac_wifi";
1143 key-device = "normal";
1144 key-permit = "read","write","del";
1145 key-type = "mac";
1146 };
1147 keysn_6:key_6{
1148 key-name = "hdcp2_tx";
1149 key-device = "normal";
1150 key-permit = "read","write","del";
1151 };
1152 keysn_7:key_7{
1153 key-name = "hdcp2_rx";
1154 key-device = "normal";
1155 key-permit = "read","write","del";
1156 };
1157 keysn_8:key_8{
1158 key-name = "widevinekeybox";
1159 key-device = "secure";
1160 key-permit = "read","write","del";
1161 };
1162 keysn_9:key_9{
1163 key-name = "deviceid";
1164 key-device = "normal";
1165 key-permit = "read","write","del";
1166 };
1167 keysn_10:key_10{
1168 key-name = "hdcp22_fw_private";
1169 key-device = "secure";
1170 key-permit = "read","write","del";
1171 };
1172 keysn_11:key_11{
1173 key-name = "PlayReadykeybox25";
1174 key-device = "secure";
1175 key-permit = "read","write","del";
1176 };
1177 keysn_12:key_12{
1178 key-name = "prpubkeybox";// PlayReady
1179 key-device = "secure";
1180 key-permit = "read","write","del";
1181 };
1182 keysn_13:key_13{
1183 key-name = "prprivkeybox";// PlayReady
1184 key-device = "secure";
1185 key-permit = "read","write","del";
1186 };
1187 keysn_14:key_14{
1188 key-name = "attestationkeybox";// attestation key
1189 key-device = "secure";
1190 key-permit = "read","write","del";
1191 };
1192 keysn_15:key_15{
1193 key-name = "region_code";
1194 key-device = "normal";
1195 key-permit = "read","write","del";
1196 };
1197 keysn_16:key_16{
1198 key-name = "netflix_mgkid";
1199 key-device = "secure";
1200 key-permit = "read","write","del";
1201 };
1202 keysn_17:key_17{
1203 key-name = "oemkey";
1204 key-device = "normal";
1205 key-permit = "read","write","del";
1206 };
1207 };//End unifykey
1208
1209};
1210&efuse {
1211 status = "ok";
1212};
1213
1214&pwm_ef {
1215 status = "okay";
1216};
1217
1218&audio_data{
1219 status = "okay";
1220};
1221&spicc{
1222 status = "disabled";
1223 pinctrl-names = "spicc_pulldown","spicc_pullup";
1224 pinctrl-0 = <&spicc_pulldown_x8x9x11>;
1225 pinctrl-1 = <&spicc_pullup_x8x9x11>;
1226 num_chipselect = <1>;
1227 cs-gpios = <&gpio GPIOX_10 GPIO_ACTIVE_HIGH>;
1228 dma_en = <0>;
1229 dma_tx_threshold = <3>;
1230 dma_rx_threshold = <3>;
1231 dma_num_per_read_burst = <3>;
1232 dma_num_per_write_burst = <3>;
1233 delay_control = <0x15>;
1234 ssctl = <0>;
1235};
1236
1237