blob: 42b48dbd056d8499adddda6f6dfb947b5b414f8f
1 | /* |
2 | * arch/arm64/boot/dts/amlogic/gxl_p231_2g.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_2g"; |
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 0x7ff00000>; |
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 0x7f800000 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 = "0x7f800000"; |
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 |