summaryrefslogtreecommitdiff
path: root/arch/arm64/boot/dts/amlogic/gxl_p231_1g.dts (plain)
blob: 6730a2e341b27250ab91110c3822e965be0af967
1/*
2 * arch/arm64/boot/dts/amlogic/gxl_p231_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 <dt-bindings/interrupt-controller/arm-gic.h>
21#include "mesongxl.dtsi"
22#include "partition_mbox_normal.dtsi"
23/ {
24 model = "Amlogic";
25 amlogic-dt-id = "gxl_p231_1g";
26 compatible = "amlogic, Gxl";
27 interrupt-parent = <&gic>;
28 #address-cells = <2>;
29 #size-cells = <2>;
30
31 aliases {
32 serial0 = &uart_AO;
33 serial1 = &uart_A;
34 serial2 = &uart_B;
35 serial3 = &uart_C;
36 serial4 = &uart_AO_B;
37 };
38
39 ion_dev {
40 compatible = "amlogic, ion_dev";
41 memory-region = <&ion_reserved>;
42 };
43
44 memory@00000000 {
45 device_type = "memory";
46 linux,usable-memory = <0x0 0x0100000 0x0 0x3ff00000>;
47 };
48
49 reserved-memory {
50 #address-cells = <2>;
51 #size-cells = <2>;
52 ranges;
53 /* global autoconfigured region for contiguous allocations */
54 secmon_reserved:linux,secmon {
55 compatible = "shared-dma-pool";
56 reusable;
57 size = <0x0 0x400000>;
58 alignment = <0x0 0x400000>;
59 alloc-ranges = <0x0 0x05000000 0x0 0x400000>;
60 };
61 secos_reserved:linux,secos {
62 status = "disable";
63 compatible = "amlogic, aml_secos_memory";
64 reg = <0x0 0x05300000 0x0 0x2000000>;
65 no-map;
66 };
67 logo_reserved:linux,meson-fb {
68 compatible = "shared-dma-pool";
69 reusable;
70 size = <0x0 0x800000>;
71 alignment = <0x0 0x400000>;
72 alloc-ranges = <0x0 0x3f800000 0x0 0x800000>;
73 };
74 //don't put other dts in front of logo_reserved
75
76 //di_reserved:linux,di {
77 // compatible = "amlogic, di-mem";
78 /** 10x3133440=30M(0x1e) support 8bit **/
79 // size = <0x0 0x1e00000>;
80 //no-map;
81 //};
82 di_cma_reserved:linux,di_cma {
83 compatible = "shared-dma-pool";
84 reusable;
85 /** 10x3133440=30M(0x1e) support 8bit **/
86 size = <0x0 0x2000000>;
87 alignment = <0x0 0x400000>;
88 };
89 ion_reserved:linux,ion-dev {
90 compatible = "shared-dma-pool";
91 reusable;
92 size = <0x0 0x7C00000>;
93 alignment = <0x0 0x400000>;
94 };
95
96 /* vdin0 CMA pool */
97 //vdin0_cma_reserved:linux,vdin0_cma {
98 // compatible = "shared-dma-pool";
99 // linux,phandle = <4>;
100 // reusable;
101 /* 1920x1080x2x4 =16+4 M */
102 // size = <0x0 0x01400000>;
103 // alignment = <0x0 0x400000>;
104 //};
105 /* vdin1 CMA pool */
106 vdin1_cma_reserved:linux,vdin1_cma {
107 compatible = "shared-dma-pool";
108 reusable;
109 /* 1920x1080x2x4 =16 M */
110 size = <0x0 0x01000000>;
111 alignment = <0x0 0x400000>;
112 };
113 /* POST PROCESS MANAGER */
114 ppmgr_reserved:linux,ppmgr {
115 compatible = "shared-dma-pool";
116 size = <0x0 0x0>;
117 };
118
119 codec_mm_cma:linux,codec_mm_cma {
120 compatible = "shared-dma-pool";
121 reusable;
122 /* ion_codec_mm max can alloc size 80M*/
123 size = <0x0 0x13400000>;
124 alignment = <0x0 0x400000>;
125 linux,contiguous-region;
126 };
127 picdec_cma_reserved:linux,picdec {
128 compatible = "shared-dma-pool";
129 reusable;
130 size = <0x0 0x0>;
131 alignment = <0x0 0x0>;
132 linux,contiguous-region;
133 };
134 /* codec shared reserved */
135 codec_mm_reserved:linux,codec_mm_reserved {
136 compatible = "amlogic, codec-mm-reserved";
137 size = <0x0 0x0>;
138 alignment = <0x0 0x100000>;
139 //no-map;
140 };
141 };
142
143 bt-dev{
144 compatible = "amlogic, bt-dev";
145 dev_name = "bt-dev";
146 status = "okay";
147 gpio_reset = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>;
148 };
149
150 wifi{
151 compatible = "amlogic, aml_wifi";
152 dev_name = "aml_wifi";
153 status = "okay";
154 interrupt_pin = <&gpio GPIOX_7 GPIO_ACTIVE_HIGH>;
155 irq_trigger_type = "GPIO_IRQ_LOW";
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
326 ethmac: ethernet@0xc9410000 {
327 compatible = "amlogic, gxbb-eth-dwmac";
328 reg = <0x0 0xc9410000 0x0 0x10000
329 0x0 0xc8834540 0x0 0x8
330 0x0 0xc8834558 0x0 0xc>;
331 interrupts = <0 8 1>;
332 pinctrl-names = "external_eth_pins";
333 pinctrl-0 = <&external_eth_pins>;
334 rst_pin-gpios = <&gpio GPIOZ_14 0>;
335 GPIOZ4_pin-gpios = <&gpio GPIOZ_4 0>;
336 GPIOZ5_pin-gpios = <&gpio GPIOZ_5 0>;
337 mc_val_internal_phy = <0x1800>;
338 mc_val_external_phy = <0x1621>;
339 cali_val = <0x20000>;
340 interrupt-names = "macirq";
341 clocks = <&clkc CLKID_ETH>;
342 clock-names = "ethclk81";
343 internal_phy=<1>;
344 };
345
346 codec_io {
347 compatible = "amlogic, codec_io";
348 #address-cells=<2>;
349 #size-cells=<2>;
350 ranges;
351 io_cbus_base{
352 reg = <0x0 0xC1100000 0x0 0x100000>;
353 };
354 io_dos_base{
355 reg = <0x0 0xc8820000 0x0 0x10000>;
356 };
357 io_hiubus_base{
358 reg = <0x0 0xc883c000 0x0 0x2000>;
359 };
360 io_aobus_base{
361 reg = <0x0 0xc8100000 0x0 0x100000>;
362 };
363 io_vcbus_base{
364 reg = <0x0 0xd0100000 0x0 0x40000>;
365 };
366 io_dmc_base{
367 reg = <0x0 0xc8838000 0x0 0x400>;
368 };
369 };
370
371 codec_mm {
372 compatible = "amlogic, codec, mm";
373 memory-region = <&codec_mm_cma &codec_mm_reserved>;
374 dev_name = "codec_mm";
375 status = "okay";
376 };
377
378 canvas{
379 compatible = "amlogic, meson, canvas";
380 dev_name = "amlogic-canvas";
381 status = "ok";
382 reg = <0x0 0xc8838000 0x0 0x400>;
383 };
384
385 mesonstream {
386 compatible = "amlogic, codec, streambuf";
387 dev_name = "mesonstream";
388 status = "okay";
389 clocks = <&clkc CLKID_DOS_PARSER
390 &clkc CLKID_DEMUX
391 &clkc CLKID_DOS
392 &clkc CLKID_VDEC_MUX
393 &clkc CLKID_HCODEC_MUX
394 &clkc CLKID_HEVC_MUX>;
395 clock-names = "parser_top",
396 "demux",
397 "vdec",
398 "clk_vdec_mux",
399 "clk_hcodec_mux",
400 "clk_hevc_mux";
401 };
402
403 vdec {
404 compatible = "amlogic, vdec";
405 dev_name = "vdec.0";
406 status = "okay";
407 interrupts = <0 3 1
408 0 23 1
409 0 32 1
410 0 43 1
411 0 44 1
412 0 45 1>;
413 interrupt-names = "vsync",
414 "demux",
415 "parser",
416 "mailbox_0",
417 "mailbox_1",
418 "mailbox_2";
419 };
420
421 aml_sensor0: aml-sensor@0 {
422 compatible = "amlogic, aml-thermal";
423 device_name = "thermal";
424 #thermal-sensor-cells = <1>;
425 cooling_devices {
426 cpufreq_cool_cluster0 {
427 min_state = <1000000>;
428 dyn_coeff = <140>;
429 cluster_id = <0>;
430 node_name = "cpufreq_cool0";
431 device_type = "cpufreq";
432 };
433 cpucore_cool_cluster0 {
434 min_state = <1>;
435 dyn_coeff = <0>;
436 cluster_id = <0>;
437 node_name = "cpucore_cool0";
438 device_type = "cpucore";
439 };
440 gpufreq_cool {
441 min_state = <400>;
442 dyn_coeff = <437>;
443 cluster_id = <0>;
444 node_name = "gpufreq_cool0";
445 device_type = "gpufreq";
446 };
447 gpucore_cool {
448 min_state = <1>;
449 dyn_coeff = <0>;
450 cluster_id = <0>;
451 node_name = "gpucore_cool0";
452 device_type = "gpucore";
453 };
454 };
455 cpufreq_cool0:cpufreq_cool0 {
456 #cooling-cells = <2>; /* min followed by max */
457 };
458 cpucore_cool0:cpucore_cool0 {
459 #cooling-cells = <2>; /* min followed by max */
460 };
461 gpufreq_cool0:gpufreq_cool0 {
462 #cooling-cells = <2>; /* min followed by max */
463 };
464 gpucore_cool0:gpucore_cool0 {
465 #cooling-cells = <2>; /* min followed by max */
466 };
467 };
468 thermal-zones {
469 soc_thermal {
470 polling-delay = <1000>;
471 polling-delay-passive = <100>;
472 sustainable-power = <2150>;
473
474 thermal-sensors = <&aml_sensor0 3>;
475
476 trips {
477 switch_on: trip-point@0 {
478 temperature = <70000>;
479 hysteresis = <1000>;
480 type = "passive";
481 };
482 control: trip-point@1 {
483 temperature = <80000>;
484 hysteresis = <1000>;
485 type = "passive";
486 };
487 hot: trip-point@2 {
488 temperature = <85000>;
489 hysteresis = <5000>;
490 type = "hot";
491 };
492 critical: trip-point@3 {
493 temperature = <260000>;
494 hysteresis = <1000>;
495 type = "critical";
496 };
497 };
498
499 cooling-maps {
500 cpufreq_cooling_map {
501 trip = <&control>;
502 cooling-device = <&cpufreq_cool0 0 4>;
503 contribution = <1024>;
504 };
505 cpucore_cooling_map {
506 trip = <&control>;
507 cooling-device = <&cpucore_cool0 0 3>;
508 contribution = <1024>;
509 };
510 gpufreq_cooling_map {
511 trip = <&control>;
512 cooling-device = <&gpufreq_cool0 0 4>;
513 contribution = <1024>;
514 };
515 gpucore_cooling_map {
516 trip = <&control>;
517 cooling-device = <&gpucore_cool0 0 2>;
518 contribution = <1024>;
519 };
520 };
521 };
522 };
523
524 dwc3: dwc3@c9000000 {
525 compatible = "synopsys, dwc3";
526 reg = <0x0 0xc9000000 0x0 0x100000>;
527 interrupts = <0 30 4>;
528 usb-phy = <&usb2_phy>, <&usb3_phy>;
529 cpu-type = "gxl";
530 clock-src = "usb3.0";
531 };
532
533 usb2_phy: usb2phy@d0078000 {
534 compatible = "amlogic, amlogic-new-usb2";
535 portnum = <3>;
536 reg = <0x0 0xd0078000 0x0 0x80
537 0x0 0xc1104408 0x0 0x4>;
538 };
539
540 usb3_phy: usb3phy@d0078080 {
541 compatible = "amlogic, amlogic-new-usb3";
542 portnum = <0>;
543 reg = <0x0 0xd0078080 0x0 0x20>;
544 };
545
546 dwc2_a {
547 compatible = "amlogic, dwc2";
548 device_name = "dwc2_a";
549 reg = <0x0 0xc9100000 0x0 0x40000>;
550 status = "okay";
551 interrupts = <0 31 4>;
552 pl-periph-id = <0>; /** lm name */
553 clock-src = "usb0"; /** clock src */
554 port-id = <0>; /** ref to mach/usb.h */
555 port-type = <2>; /** 0: otg, 1: host, 2: slave */
556 port-speed = <0>; /** 0: default, high, 1: full */
557 port-config = <0>; /** 0: default */
558 port-dma = <0>; /** 0: default ... 6: disable*/
559 port-id-mode = <0>; /** 0: hardware, 1: sw_host, 2: sw_slave*/
560 usb-fifo = <728>;
561 cpu-type = "gxl";
562 controller-type = <1>; /** 0: normal, 1: host, 2: device*/
563 phy-reg = <0xd0078000>;
564 phy-reg-size = <0xa0>;
565 clocks = <&clkc CLKID_USB_GENERAL
566 &clkc CLKID_USB1_TO_DDR
567 &clkc CLKID_USB1>;
568 clock-names = "usb_general",
569 "usb1",
570 "usb1_to_ddr";
571 };
572
573 meson-amvideom {
574 compatible = "amlogic, amvideom";
575 dev_name = "amvideom";
576 status = "okay";
577 interrupts = <0 3 1>;
578 interrupt-names = "vsync";
579 };
580
581 vout {
582 compatible = "amlogic, vout";
583 dev_name = "vout";
584 status = "okay";
585 fr_auto_policy = <0>;
586 };
587
588 vdac {
589 compatible = "amlogic, vdac";
590 dev_name = "vdac";
591 status = "okay";
592 };
593
594 cvbsout {
595 compatible = "amlogic, cvbsout-gxl";
596 dev_name = "cvbsout";
597 status = "okay";
598 clocks = <&clkc CLKID_VCLK2_ENCI
599 &clkc CLKID_VCLK2_VENCI0
600 &clkc CLKID_VCLK2_VENCI1
601 &clkc CLKID_DAC_CLK>;
602 clock-names = "venci_top_gate",
603 "venci_0_gate",
604 "venci_1_gate",
605 "vdac_clk_gate";
606
607 /* performance: reg_address, reg_value */
608 /* s905d */
609 performance = <0x1bf0 0x9
610 0x1b56 0x343
611 0x1b12 0x8080
612 0x1b05 0xfd
613 0x1c59 0xf752
614 0xffff 0x0>; /* ending flag */
615 };
616
617 amhdmitx: amhdmitx{
618 compatible = "amlogic, amhdmitx";
619 dev_name = "amhdmitx";
620 status = "okay";
621 vend-data = <&vend_data>;
622 pinctrl-names="hdmitx_hpd", "hdmitx_ddc";
623 pinctrl-0=<&hdmitx_hpd>;
624 pinctrl-1=<&hdmitx_ddc>;
625 /* HPD, 57 + 32 = 89; CEC, 151 + 32 = 183*/
626 interrupts = <0 57 1>;
627 interrupt-names = "hdmitx_hpd";
628 /* 0:M8B 1:GXBB 2:GXTVBB 3:GXL 4:GXM
629 * 5:TXL 6:TXLX 7:AXG 8:GXLX 9:TXHD
630 */
631 ic_type = <3>;
632 vend_data: vend_data{ /* Should modified by Customer */
633 vendor_name = "Amlogic"; /* Max Chars: 8 */
634 /* standards.ieee.org/develop/regauth/oui/oui.txt */
635 vendor_id = <0x000000>;
636 product_desc = "MBox Meson Ref"; /* Max Chars: 16 */
637 };
638 };
639
640 aocec: aocec{
641 compatible = "amlogic, amlogic-aocec";
642 device_name = "aocec";
643 status = "okay";
644 vendor_id = <0x000000>;
645 cec_osd_string = "MBox"; /* Max Chars: 14 */
646 cec_version = <6>; /* 5: 1.4, 6: 2.0 */
647 port_num = <1>;
648 arc_port_mask = <0x0>;
649 interrupts = <0 199 1>;
650 interrupt-names = "hdmi_aocec";
651 pinctrl-names = "default";
652 pinctrl-0=<&hdmitx_aocec>;
653 reg = <0x0 0xc810023c 0x0 0x4
654 0x0 0xc8100000 0x0 0x200>;
655 };
656
657 sysled {
658 compatible = "amlogic, sysled";
659 dev_name = "sysled";
660 status = "disabled";
661 led_gpio = <&gpio GPIODV_24 GPIO_ACTIVE_HIGH>;
662 led_active_low = <1>;
663 };
664
665 meson-fb {
666 compatible = "amlogic, meson-fb";
667 memory-region = <&logo_reserved>;
668 dev_name = "meson-fb";
669 status = "okay";
670 interrupts = <0 3 1
671 0 89 1>;
672 interrupt-names = "viu-vsync", "rdma";
673 mem_size = <0x00800000 0x01800000 0x00100000>;
674 /* uboot logo,fb0/fb1 memory size,if afbcd fb0=0x01851000*/
675 display_mode_default = "1080p60hz";
676 scale_mode = <1>;
677 /** 0:VPU free scale 1:OSD free scale 2:OSD super scale */
678 display_size_default = <1920 1080 1920 3240 32>;
679 /*1920*1080*4*3 = 0x17BB000*/
680 logo_addr = "0x3f800000";
681 };
682 ge2d {
683 compatible = "amlogic, ge2d";
684 dev_name = "ge2d";
685 status = "okay";
686 interrupts = <0 150 1>;
687 interrupt-names = "ge2d";
688 clocks = <&clkc CLKID_VAPB_MUX>,
689 <&clkc CLKID_GE2D_GATE>,
690 <&clkc CLKID_G2D>;
691 clock-names = "clk_vapb_0",
692 "clk_ge2d",
693 "clk_ge2d_gate";
694 };
695
696
697 /* AUDIO MESON DEVICES */
698 i2s_dai: I2S {
699 #sound-dai-cells = <0>;
700 compatible = "amlogic, aml-i2s-dai";
701 clocks =
702 <&clkc CLKID_MPLL2>,
703 <&clkc CLKID_AMCLK_COMP>,
704 <&clkc CLKID_AIU_GLUE>,
705 <&clkc CLKID_IEC958>,
706 <&clkc CLKID_I2S_OUT>,
707 <&clkc CLKID_AMCLK>,
708 <&clkc CLKID_AIFIFO2>,
709 <&clkc CLKID_MIXER>,
710 <&clkc CLKID_MIXER_IFACE>,
711 <&clkc CLKID_ADC>,
712 <&clkc CLKID_AIU_TOP>,
713 <&clkc CLKID_AOCLK_GATE>,
714 <&clkc CLKID_I2S_SPDIF>;
715 clock-names =
716 "mpll",
717 "mclk",
718 "top_glue",
719 "aud_buf",
720 "i2s_out",
721 "amclk_measure",
722 "aififo2",
723 "aud_mixer",
724 "mixer_reg",
725 "adc",
726 "top_level",
727 "aoclk",
728 "aud_in";
729 i2s_pos_sync = <0>;
730 /*DMIC;*/ /* I2s Mic or Dmic, default for I2S mic */
731 };
732 dmic:snd_dmic {
733 #sound-dai-cells = <0>;
734 compatible = "aml, aml_snd_dmic";
735 reg = <0x0 0xd0042000 0x0 0x2000>;
736 status = "okay";
737 resets = <
738 &clkc CLKID_PDM_GATE
739 >;
740 reset-names = "pdm";
741 pinctrl-names = "audio_dmic";
742 pinctrl-0 = <&aml_dmic_pins>;
743 clocks = <&clkc CLKID_PDM_COMP>,
744 <&clkc CLKID_AMCLK_COMP>;
745 clock-names = "pdm", "mclk";
746 };
747 spdif_dai: SPDIF {
748 #sound-dai-cells = <0>;
749 compatible = "amlogic, aml-spdif-dai";
750 clocks =
751 <&clkc CLKID_MPLL1>,
752 <&clkc CLKID_I958_COMP>,
753 <&clkc CLKID_AMCLK_COMP>,
754 <&clkc CLKID_I958_COMP_SPDIF>,
755 <&clkc CLKID_CLK81>,
756 <&clkc CLKID_IEC958>,
757 <&clkc CLKID_IEC958_GATE>;
758 clock-names =
759 "mpll1",
760 "i958",
761 "mclk",
762 "spdif",
763 "clk_81",
764 "iec958",
765 "iec958_amclk";
766 };
767 pcm_dai: PCM {
768 #sound-dai-cells = <0>;
769 compatible = "amlogic, aml-pcm-dai";
770 pinctrl-names = "audio_pcm";
771 pinctrl-0 = <&audio_pcm_pins>;
772 clocks =
773 <&clkc CLKID_MPLL0>,
774 <&clkc CLKID_PCM_MCLK_COMP>,
775 <&clkc CLKID_PCM_SCLK_GATE>;
776 clock-names =
777 "mpll0",
778 "pcm_mclk",
779 "pcm_sclk";
780 pcm_mode = <1>; /* 0=slave mode, 1=master mode */
781 };
782 i2s_plat: i2s_platform {
783 compatible = "amlogic, aml-i2s";
784 interrupts = <0 29 1>;
785 };
786 pcm_plat: pcm_platform {
787 compatible = "amlogic, aml-pcm";
788 };
789 spdif_codec: spdif_codec{
790 #sound-dai-cells = <0>;
791 compatible = "amlogic, aml-spdif-codec";
792 pinctrl-names = "audio_spdif";
793 pinctrl-0 = <&audio_spdif_pins>;
794 };
795 pcm_codec: pcm_codec{
796 #sound-dai-cells = <0>;
797 compatible = "amlogic, pcm2BT-codec";
798 };
799 /* endof AUDIO MESON DEVICES */
800
801 /* AUDIO board specific */
802 dummy_codec:dummy{
803 #sound-dai-cells = <0>;
804 compatible = "amlogic, aml_dummy_codec";
805 status = "disable";
806 };
807 amlogic_codec:t9015{
808 #sound-dai-cells = <0>;
809 compatible = "amlogic, aml_codec_T9015";
810 reg = <0x0 0xc8832000 0x0 0x14>;
811 status = "okay";
812 };
813 aml_sound_meson {
814 compatible = "aml, meson-snd-card";
815 status = "okay";
816 aml-sound-card,format = "i2s";
817 aml_sound_card,name = "AML-MESONAUDIO";
818 aml,audio-routing =
819 "Ext Spk","LOUTL",
820 "Ext Spk","LOUTR";
821
822 mute_gpio-gpios = <&gpio GPIOH_5 0>;
823 mute_inv;
824 hp_disable;
825 hp_paraments = <800 300 0 5 1>;
826 pinctrl-names = "audio_i2s";
827 pinctrl-0 = <&audio_i2s_pins>;
828 cpu_list = <&cpudai0 &cpudai1 &cpudai2>;
829 codec_list = <&codec0 &codec1 &codec2>;
830 plat_list = <&i2s_plat &i2s_plat &pcm_plat>;
831 cpudai0: cpudai0 {
832 sound-dai = <&i2s_dai>;
833 };
834 cpudai1: cpudai1 {
835 sound-dai = <&spdif_dai>;
836 };
837 cpudai2: cpudai2 {
838 sound-dai = <&pcm_dai>;
839 };
840 codec0: codec0 {
841 sound-dai = <&amlogic_codec>;
842 };
843 codec1: codec1 {
844 sound-dai = <&spdif_codec>;
845 };
846 codec2: codec2 {
847 sound-dai = <&pcm_codec>;
848 };
849 };
850 /* END OF AUDIO board specific */
851 rdma{
852 compatible = "amlogic, meson, rdma";
853 dev_name = "amlogic-rdma";
854 status = "ok";
855 interrupts = <0 89 1>;
856 interrupt-names = "rdma";
857 };
858
859 amvenc_avc{
860 compatible = "amlogic, amvenc_avc";
861 dev_name = "amvenc_avc";
862 status = "okay";
863 interrupts = <0 45 1>;
864 interrupt-names = "mailbox_2";
865 };
866
867 hevc_enc{
868 compatible = "cnm, HevcEnc";
869 dev_name = "HevcEnc";
870 status = "okay";
871 interrupts = <0 187 1>;
872 interrupt-names = "wave420l_irq";
873 #address-cells=<2>;
874 #size-cells=<2>;
875 ranges;
876 io_reg_base{
877 reg = <0x0 0xc8810000 0x0 0x4000>;
878 };
879 };
880
881 picdec {
882 compatible = "amlogic, picdec";
883 memory-region = <&picdec_cma_reserved>;
884 dev_name = "picdec";
885 status = "okay";
886 };
887
888 ppmgr {
889 compatible = "amlogic, ppmgr";
890 memory-region = <&ppmgr_reserved>;
891 dev_name = "ppmgr";
892 status = "okay";
893 };
894
895 deinterlace {
896 compatible = "amlogic, deinterlace";
897 status = "okay";
898 flag_cma = <1>;/*0:use reserved;1:use cma*/
899 //memory-region = <&di_reserved>;
900 memory-region = <&di_cma_reserved>;
901 interrupts = <0 46 1 0 6 1>;
902 interrupt-names = "de_irq", "timerc";
903 /*
904 * nr_size(byte) = 1920*544*2(yuv422 8bit) |
905 * 1920*544*2*12/8(yuv422 10bit)
906 * | 1920*544*2*10/8(yuv422 10bit full pack mode)
907 */
908 /* mtn_size(byte) = 1920*544/2 */
909 /* count_size(byte) = 1920*544/2 */
910 buffer-size = <3133440>;
911 hw-version = <2>;
912 };
913
914 ionvideo {
915 compatible = "amlogic, ionvideo";
916 dev_name = "ionvideo";
917 status = "okay";
918 };
919
920 amlvideo {
921 compatible = "amlogic, amlvideo";
922 dev_name = "amlvideo";
923 status = "okay";
924 };
925
926 amlvideo2_0 {
927 compatible = "amlogic, amlvideo2";
928 dev_name = "amlvideo2";
929 status = "okay";
930 amlvideo2_id = <0>;
931 cma_mode = <1>;
932 };
933
934 amlvideo2_1 {
935 compatible = "amlogic, amlvideo2";
936 dev_name = "amlvideo2";
937 status = "okay";
938 amlvideo2_id = <1>;
939 cma_mode = <1>;
940 };
941
942 /*if you want to use vdin just modify status to "ok"*/
943 vdin0 {
944 compatible = "amlogic, vdin";
945 /*memory-region = <&vdin0_cma_reserved>;*/
946 dev_name = "vdin0";
947 status = "ok";
948 reserve-iomap = "true";
949 flag_cma = <1>;/*1:share with codec_mm;2:cma alone*/
950 /*MByte, if 10bit disable: 64M(YUV422),
951 *if 10bit enable: 64*1.5 = 96M(YUV422)
952 *if support 4K2K-YUV444-10bit-WR:3840*2160*4*4 ~= 128M
953 *if support 4K2K-YUV422-10bit-wr:3840*2160*3*4 ~= 96M
954 *if support 4K2K-YUV422-8BIT-WR:3840*2160*2*4 ~= 64M
955 *if support 1080p-YUV422-8BIT-WR:1920*1080*2*4 ~= 16M
956 */
957 cma_size = <16>;
958 interrupts = <0 83 1>;
959 rdma-irq = <2>;
960 /*clocks = <&clock CLK_FPLL_DIV5>,
961 * <&clock CLK_VDIN_MEAS_CLK>;
962 *clock-names = "fclk_div5", "cts_vdin_meas_clk";
963 */
964 vdin_id = <0>;
965 /*vdin write mem color depth support:
966 *bit0:support 8bit
967 *bit1:support 9bit
968 *bit2:support 10bit
969 *bit3:support 12bit
970 *bit4:support yuv422 10bit full pack mode (from txl new add)
971 */
972 tv_bit_mode = <1>;
973 };
974 vdin1 {
975 compatible = "amlogic, vdin";
976 memory-region = <&vdin1_cma_reserved>;
977 dev_name = "vdin1";
978 status = "ok";
979 reserve-iomap = "true";
980 flag_cma = <0>;/*1:share with codec_mm;0:cma alone*/
981 interrupts = <0 85 1>;
982 rdma-irq = <4>;
983 /*clocks = <&clock CLK_FPLL_DIV5>,
984 * <&clock CLK_VDIN_MEAS_CLK>;
985 *clock-names = "fclk_div5", "cts_vdin_meas_clk";
986 */
987 vdin_id = <1>;
988 /*vdin write mem color depth support:
989 *bit0:support 8bit
990 *bit1:support 9bit
991 *bit2:support 10bit
992 *bit3:support 12bit
993 */
994 tv_bit_mode = <1>;
995 };
996
997 amlvecm {
998 compatible = "amlogic, vecm";
999 dev_name = "aml_vecm";
1000 status = "okay";
1001 gamma_en = <0>;/*1:enabel ;0:disable*/
1002 wb_en = <0>;/*1:enabel ;0:disable*/
1003 cm_en = <0>;/*1:enabel ;0:disable*/
1004 };
1005
1006 unifykey{
1007 compatible = "amlogic, unifykey";
1008 status = "ok";
1009
1010 unifykey-num = <14>;
1011 unifykey-index-0 = <&keysn_0>;
1012 unifykey-index-1 = <&keysn_1>;
1013 unifykey-index-2 = <&keysn_2>;
1014 unifykey-index-3 = <&keysn_3>;
1015 unifykey-index-4 = <&keysn_4>;
1016 unifykey-index-5 = <&keysn_5>;
1017 unifykey-index-6 = <&keysn_6>;
1018 unifykey-index-7 = <&keysn_7>;
1019 unifykey-index-8 = <&keysn_8>;
1020 unifykey-index-9 = <&keysn_9>;
1021 unifykey-index-10= <&keysn_10>;
1022 unifykey-index-11= <&keysn_11>;
1023 unifykey-index-12= <&keysn_12>;
1024 unifykey-index-13= <&keysn_13>;
1025
1026 keysn_0: key_0{
1027 key-name = "usid";
1028 key-device = "normal";
1029 key-permit = "read","write","del";
1030 };
1031 keysn_1:key_1{
1032 key-name = "mac";
1033 key-device = "normal";
1034 key-permit = "read","write","del";
1035 };
1036 keysn_2:key_2{
1037 key-name = "hdcp";
1038 key-device = "secure";
1039 key-type = "sha1";
1040 key-permit = "read","write","del";
1041 };
1042 keysn_3:key_3{
1043 key-name = "secure_boot_set";
1044 key-device = "efuse";
1045 key-permit = "write";
1046 };
1047 keysn_4:key_4{
1048 key-name = "mac_bt";
1049 key-device = "normal";
1050 key-permit = "read","write","del";
1051 key-type = "mac";
1052 };
1053 keysn_5:key_5{
1054 key-name = "mac_wifi";
1055 key-device = "normal";
1056 key-permit = "read","write","del";
1057 key-type = "mac";
1058 };
1059 keysn_6:key_6{
1060 key-name = "hdcp2_tx";
1061 key-device = "normal";
1062 key-permit = "read","write","del";
1063 };
1064 keysn_7:key_7{
1065 key-name = "hdcp2_rx";
1066 key-device = "normal";
1067 key-permit = "read","write","del";
1068 };
1069 keysn_8:key_8{
1070 key-name = "widevinekeybox";
1071 key-device = "secure";
1072 key-permit = "read","write","del";
1073 };
1074 keysn_9:key_9{
1075 key-name = "deviceid";
1076 key-device = "normal";
1077 key-permit = "read","write","del";
1078 };
1079 keysn_10:key_10{
1080 key-name = "hdcp22_fw_private";
1081 key-device = "secure";
1082 key-permit = "read","write","del";
1083 };
1084 keysn_11:key_11{
1085 key-name = "PlayReadykeybox25";
1086 key-device = "secure";
1087 key-permit = "read","write","del";
1088 };
1089 keysn_12:key_12{
1090 key-name = "prpubkeybox";// PlayReady
1091 key-device = "secure";
1092 key-permit = "read","write","del";
1093 };
1094 keysn_13:key_13{
1095 key-name = "prprivkeybox";// PlayReady
1096 key-device = "secure";
1097 key-permit = "read","write","del";
1098 };
1099 };//End unifykey
1100};
1101&efuse {
1102 status = "ok";
1103};
1104
1105&pwm_ef {
1106 status = "okay";
1107};
1108