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