2 * arch/arm64/boot/dts/amlogic/mesonsm1.dtsi
4 * Copyright (C) 2017 Amlogic, Inc. All rights reserved.
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.
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
18 #include <dt-bindings/interrupt-controller/arm-gic.h>
19 #include <dt-bindings/clock/amlogic,g12a-clkc.h>
20 #include <dt-bindings/clock/amlogic,sm1-audio-clk.h>
21 #include <dt-bindings/iio/adc/amlogic-saradc.h>
22 #include <dt-bindings/gpio/meson-g12a-gpio.h>
23 #include <dt-bindings/pwm/pwm.h>
24 #include <dt-bindings/pwm/meson.h>
25 #include <dt-bindings/gpio/gpio.h>
26 #include <dt-bindings/input/input.h>
27 #include <dt-bindings/input/meson_rc.h>
28 #include <dt-bindings/phy/phy-amlogic-pcie.h>
29 #include "mesong12a-bifrost.dtsi"
55 compatible = "arm,cortex-a53","arm,armv8";
57 enable-method = "psci";
58 //cpu-idle-states = <&CPU_SLEEP_0>;
59 clocks = <&clkc CLKID_CPU_CLK>,
60 <&clkc CLKID_CPU_FCLK_P>,
61 <&clkc CLKID_SYS_PLL>;
62 clock-names = "core_clk",
63 "low_freq_clk_parent",
64 "high_freq_clk_parent";
65 operating-points-v2 = <&cpu_opp_table0>;
66 cpu-supply = <&vddcpu0>;
67 voltage-tolerance = <0>;
68 clock-latency = <50000>;
73 compatible = "arm,cortex-a53","arm,armv8";
75 enable-method = "psci";
76 //cpu-idle-states = <&CPU_SLEEP_0>;
77 clocks = <&clkc CLKID_CPU_CLK>,
78 <&clkc CLKID_CPU_FCLK_P>,
79 <&clkc CLKID_SYS_PLL>;
80 clock-names = "core_clk",
81 "low_freq_clk_parent",
82 "high_freq_clk_parent";
83 operating-points-v2 = <&cpu_opp_table0>;
84 cpu-supply = <&vddcpu0>;
85 voltage-tolerance = <0>;
86 clock-latency = <50000>;
91 compatible = "arm,cortex-a53","arm,armv8";
93 enable-method = "psci";
94 //cpu-idle-states = <&CPU_SLEEP_0>;
95 clocks = <&clkc CLKID_CPU_CLK>,
96 <&clkc CLKID_CPU_FCLK_P>,
97 <&clkc CLKID_SYS_PLL>;
98 clock-names = "core_clk",
99 "low_freq_clk_parent",
100 "high_freq_clk_parent";
101 operating-points-v2 = <&cpu_opp_table0>;
102 cpu-supply = <&vddcpu0>;
103 voltage-tolerance = <0>;
104 clock-latency = <50000>;
109 compatible = "arm,cortex-a53","arm,armv8";
111 enable-method = "psci";
112 cpu-idle-states = <&CPU_SLEEP_0>;
113 clocks = <&clkc CLKID_CPU_CLK>,
114 <&clkc CLKID_CPU_FCLK_P>,
115 <&clkc CLKID_SYS_PLL>,
116 <&clkc CLKID_DSU_CLK>,
117 <&clkc CLKID_DSU_PRE_CLK>;
118 clock-names = "core_clk",
119 "low_freq_clk_parent",
120 "high_freq_clk_parent",
123 operating-points-v2 = <&cpu_opp_table0>;
124 cpu-supply = <&vddcpu0>;
125 voltage-tolerance = <0>;
126 clock-latency = <50000>;
130 entry-method = "arm,psci-0.2";
131 CPU_SLEEP_0: cpu-sleep-0 {
132 compatible = "arm,idle-state";
133 arm,psci-suspend-param = <0x0010000>;
135 entry-latency-us = <4000>;
136 exit-latency-us = <5000>;
137 min-residency-us = <10000>;
143 compatible = "arm,armv8-timer";
144 interrupts = <GIC_PPI 13 0xff08>,
151 compatible = "arm, meson-bc-timer";
152 reg= <0x0 0xffd0f190 0x0 0x4 0x0 0xffd0f194 0x0 0x4>;
153 timer_name = "Meson TimerF";
154 clockevent-rating=<300>;
155 clockevent-shift=<20>;
156 clockevent-features=<0x23>;
157 interrupts = <0 60 1>;
164 compatible = "arm,armv8-pmuv3";
165 /* clusterb-enabled; */
166 interrupts = <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>;
167 reg = <0x0 0xff634680 0x0 0x4>;
170 relax-timer-ns = <10000000>;
171 /* default 10000us */
172 max-wait-cnt = <10000>;
175 gic: interrupt-controller@2c001000 {
176 compatible = "arm,cortex-a15-gic", "arm,cortex-a9-gic";
177 #interrupt-cells = <3>;
178 #address-cells = <0>;
179 interrupt-controller;
180 reg = <0x0 0xffc01000 0 0x1000>,
181 <0x0 0xffc02000 0 0x0100>;
182 interrupts = <GIC_PPI 9 0xf04>;
186 compatible = "arm,psci-0.2";
191 compatible = "amlogic, pm";
193 device_name = "aml_pm";
194 debug_reg = <0xff8000a8>;
195 exit_reg = <0xff80023c>;
199 compatible = "amlogic, secmon";
200 memory-region = <&secmon_reserved>;
201 in_base_func = <0x82000020>;
202 out_base_func = <0x82000021>;
203 reserve_mem_size = <0x00300000>;
207 compatible = "aml, securitykey";
208 storage_query = <0x82000060>;
209 storage_read = <0x82000061>;
210 storage_write = <0x82000062>;
211 storage_tell = <0x82000063>;
212 storage_verify = <0x82000064>;
213 storage_status = <0x82000065>;
214 storage_list = <0x82000067>;
215 storage_remove = <0x82000068>;
216 storage_in_func = <0x82000023>;
217 storage_out_func = <0x82000024>;
218 storage_block_func = <0x82000025>;
219 storage_size_func = <0x82000027>;
220 storage_set_enctype = <0x8200006A>;
221 storage_get_enctype = <0x8200006B>;
222 storage_version = <0x8200006C>;
225 mailbox: mhu@c883c400 {
226 compatible = "amlogic, meson_mhu";
227 reg = <0x0 0xff63c400 0x0 0x4c>, /* MHU registers */
228 <0x0 0xfffe7000 0x0 0x800>; /* Payload area */
229 interrupts = <0 209 1>, /* low priority interrupt */
230 <0 210 1>; /* b interrupt */
232 mbox-names = "cpu_to_scp_low", "cpu_to_scp_high";
233 mboxes = <&mailbox 0 &mailbox 1>;
237 compatible = "amlogic, iomap";
242 reg = <0x0 0xffd00000 0x0 0x26fff>;
245 reg = <0x0 0xffe01000 0x0 0x7f000>;
248 reg = <0x0 0xff800000 0x0 0xb000>;
251 reg = <0x0 0xff900000 0x0 0x50000>;
254 reg = <0x0 0xff63c000 0x0 0x2000>;
259 compatible = "fixed-clock";
260 clock-frequency = <24000000>;
261 clock-output-names = "xtal";
266 compatible = "amlogic, aml_vrtc";
267 alarm_reg_addr = <0xff8000a8>;
268 timer_e_addr = <0xffd0f188>;
269 init_date = "2015/01/01";
274 compatible = "amlogic, cpuinfo";
276 cpuinfo_cmd = <0x82000044>;
280 compatible = "aml, reboot";
281 sys_reset = <0x84000009>;
282 sys_poweroff = <0x84000008>;
283 reboot_reason_addr = <0xff80023c>;
287 compatible = "amlogic, vpu-sm1";
290 clocks = <&clkc CLKID_VAPB_MUX>,
291 <&clkc CLKID_VPU_INTR>,
292 <&clkc CLKID_VPU_P0_COMP>,
293 <&clkc CLKID_VPU_P1_COMP>,
294 <&clkc CLKID_VPU_MUX>;
295 clock-names = "vapb_clk",
301 /* 0: 100.0M 1: 166.7M 2: 200.0M 3: 250.0M */
302 /* 4: 333.3M 5: 400.0M 6: 500.0M 7: 666.7M */
306 compatible = "amlogic, meson_uvm";
311 compatible = "amlogic, meson_videotunnel";
315 ethmac: ethernet@ff3f0000 {
316 compatible = "amlogic, g12a-eth-dwmac","snps,dwmac";
317 reg = <0x0 0xff3f0000 0x0 0x10000
318 0x0 0xff634540 0x0 0x8
319 0x0 0xff64c000 0x0 0xa0
320 0x0 0xffd01008 0x0 0x4>;
321 reg-names = "eth_base", "eth_cfg", "eth_pll", "eth_reset";
322 interrupts = <0 8 1>;
323 interrupt-names = "macirq";
325 clocks = <&clkc CLKID_ETH_CORE>;
326 clock-names = "ethclk81";
327 pll_val = <0x9c0040a 0x927e0000 0xac5f49e5>;
328 analog_val = <0x20200000 0x0000c000 0x00000023>;
331 pinctrl_aobus: pinctrl@ff800014{
332 compatible = "amlogic,meson-g12a-aobus-pinctrl";
333 #address-cells = <2>;
337 gpio_ao: ao-bank@ff800014{
338 reg = <0x0 0xff800014 0x0 0x8>,
339 <0x0 0xff800024 0x0 0x14>,
340 <0x0 0xff80001c 0x0 0x8>;
341 reg-names = "mux","gpio", "drive-strength";
347 pinctrl_periphs: pinctrl@ff634480{
348 compatible = "amlogic,meson-g12a-periphs-pinctrl";
349 #address-cells = <2>;
353 gpio: banks@ff6346c0{
354 reg = <0x0 0xff6346c0 0x0 0x40>,
355 <0x0 0xff6344e8 0x0 0x18>,
356 <0x0 0xff634520 0x0 0x18>,
357 <0x0 0xff634440 0x0 0x4c>,
358 <0x0 0xff634740 0x0 0x1c>;
369 audio_data: audio_data {
370 compatible = "amlogic, audio_data";
371 query_licence_cmd = <0x82000050>;
375 dwc3: dwc3@ff500000 {
376 compatible = "synopsys, dwc3";
378 reg = <0x0 0xff500000 0x0 0x100000>;
379 interrupts = <0 30 4>;
380 usb-phy = <&usb2_phy_v2>, <&usb3_phy_v2>;
382 clock-src = "usb3.0";
383 clocks = <&clkc CLKID_USB_GENERAL>;
384 clock-names = "dwc_general";
387 usb2_phy_v2: usb2phy@ffe09000 {
388 compatible = "amlogic, amlogic-new-usb2-v2";
390 reg = <0x0 0xffe09000 0x0 0x80
391 0x0 0xffd01008 0x0 0x100
392 0x0 0xff636000 0x0 0x2000
393 0x0 0xff63a000 0x0 0x2000>;
394 pll-setting-1 = <0x09400414>;
395 pll-setting-2 = <0x927E0000>;
396 pll-setting-3 = <0xac5f69e5>;
397 pll-setting-4 = <0xfe18>;
398 pll-setting-5 = <0x8000fff>;
399 pll-setting-6 = <0x78000>;
400 pll-setting-7 = <0xe0004>;
401 pll-setting-8 = <0xe000c>;
404 u2-ctrl-sleep-shift = <17>;
405 u2-hhi-mem-pd-shift = <30>;
406 u2-hhi-mem-pd-mask = <0x3>;
407 u2-ctrl-iso-shift = <17>;
410 usb3_phy_v2: usb3phy@ffe09080 {
411 compatible = "amlogic, amlogic-new-usb3-v2";
413 reg = <0x0 0xffe09080 0x0 0x20
414 0x0 0xffd01008 0x0 0x100>;
415 phy-reg = <0xff646000>;
416 phy-reg-size = <0x2000>;
417 usb2-phy-reg = <0xffe09000>;
418 usb2-phy-reg-size = <0x80>;
419 interrupts = <0 16 4>;
420 clocks = <&clkc CLKID_PCIE_PLL>;
421 clock-names = "pcie_refpll";
423 u3-ctrl-sleep-shift = <18>;
424 u3-hhi-mem-pd-shift = <26>;
425 u3-hhi-mem-pd-mask = <0xf>;
426 u3-ctrl-iso-shift = <18>;
429 dwc2_a: dwc2_a@ff400000 {
430 compatible = "amlogic, dwc2";
432 device_name = "dwc2_a";
433 reg = <0x0 0xff400000 0x0 0x40000>;
434 interrupts = <0 31 4>;
435 pl-periph-id = <0>; /** lm name */
436 clock-src = "usb0"; /** clock src */
437 port-id = <0>; /** ref to mach/usb.h */
438 port-type = <2>; /** 0: otg, 1: host, 2: slave */
439 port-speed = <0>; /** 0: default, high, 1: full */
440 port-config = <0>; /** 0: default */
441 /*0:default,1:single,2:incr,3:incr4,4:incr8,5:incr16,6:disable*/
443 port-id-mode = <0>; /** 0: hardware, 1: sw_host, 2: sw_slave*/
446 phy-reg = <0xffe09000>;
447 phy-reg-size = <0xa0>;
448 /** phy-interface: 0x0: amlogic phy, 0x1: synopsys phy **/
449 phy-interface = <0x2>;
450 clocks = <&clkc CLKID_USB_GENERAL
451 &clkc CLKID_USB1_TO_DDR>;
452 clock-names = "usb_general",
456 wdt: watchdog@0xffd0f0d0 {
457 compatible = "amlogic, meson-wdt";
459 default_timeout=<10>;
460 reset_watchdog_method=<1>; /* 0:sysfs,1:kernel */
461 reset_watchdog_time=<2>;
462 shutdown_timeout=<10>;
463 firmware_timeout=<6>;
465 reg = <0x0 0xffd0f0d0 0x0 0x10>;
466 clock-names = "xtal";
471 compatible = "amlogic, ram_dump";
473 reg = <0x0 0xFF6345E0 0x0 4>;
474 reg-names = "PREG_STICKY_REG8";
478 compatible = "amlogic, jtag";
480 select = "disable"; /* disable/apao/apee */
481 pinctrl-names="jtag_apao_pins", "jtag_apee_pins";
482 pinctrl-0=<&jtag_apao_pins>;
483 pinctrl-1=<&jtag_apee_pins>;
487 compatible = "amlogic,meson-g12a-saradc";
489 #io-channel-cells = <1>;
490 clocks = <&xtal>, <&clkc CLKID_SARADC_GATE>;
491 clock-names = "xtal", "saradc_clk";
492 interrupts = <GIC_SPI 200 IRQ_TYPE_EDGE_RISING>;
493 reg = <0x0 0xff809000 0x0 0x48>;
496 power_ctrl: power_ctrl@ff8000e8 {
497 compatible = "amlogic, sm1-powerctrl";
498 reg = <0x0 0xff8000e8 0x0 0x10>,
499 <0x0 0xff63c100 0x0 0x10>;
503 compatible = "amlogic, bl40-bootup";
508 compatible = "simple-bus";
509 #address-cells = <2>;
513 cbus: cbus@ffd00000 {
514 compatible = "simple-bus";
515 reg = <0x0 0xffd00000 0x0 0x26000>;
516 #address-cells = <2>;
518 ranges = <0x0 0x0 0x0 0xffd00000 0x0 0x26000>;
520 gpio_intc: interrupt-controller@f080 {
521 compatible = "amlogic,meson-gpio-intc",
522 "amlogic,meson-sm1-gpio-intc";
523 reg = <0x0 0xf080 0x0 0x10>;
524 interrupt-controller;
525 #interrupt-cells = <2>;
526 amlogic,channel-interrupts =
527 <64 65 66 67 68 69 70 71>;
532 compatible = "amlogic, sm1-measure";
533 reg = <0x0 0x18004 0x0 0x4
534 0x0 0x1800c 0x0 0x4>;
535 ringctrl = <0xff6345fc>;
539 compatible = "amlogic,g12a-ee-pwm";
540 reg = <0x0 0x1b000 0x0 0x20>;
546 clock-names = "clkin0",
550 /* default xtal 24m clkin0-clkin2 and
551 * clkin1-clkin3 should be set the same
557 compatible = "amlogic,g12a-ee-pwm";
558 reg = <0x0 0x1a000 0x0 0x20>;
564 clock-names = "clkin0",
572 compatible = "amlogic,g12a-ee-pwm";
573 reg = <0x0 0x19000 0x0 0x20>;
579 clock-names = "clkin0",
587 compatible = "amlogic,meson-g12a-i2c";
589 reg = <0x0 0x1f000 0x0 0x20>;
590 interrupts = <GIC_SPI 21 IRQ_TYPE_EDGE_RISING>,
591 <GIC_SPI 91 IRQ_TYPE_EDGE_RISING>;
592 #address-cells = <1>;
594 clocks = <&clkc CLKID_I2C>;
595 clock-names = "clk_i2c";
599 compatible = "amlogic,meson-g12a-i2c";
601 reg = <0x0 0x1e000 0x0 0x20>;
602 interrupts = <GIC_SPI 214 IRQ_TYPE_EDGE_RISING>,
603 <GIC_SPI 92 IRQ_TYPE_EDGE_RISING>;
604 #address-cells = <1>;
606 clocks = <&clkc CLKID_I2C>;
607 clock-names = "clk_i2c";
611 compatible = "amlogic,meson-g12a-i2c";
613 reg = <0x0 0x1d000 0x0 0x20>;
614 interrupts = <GIC_SPI 215 IRQ_TYPE_EDGE_RISING>,
615 <GIC_SPI 94 IRQ_TYPE_EDGE_RISING>;
616 #address-cells = <1>;
618 clocks = <&clkc CLKID_I2C>;
619 clock-names = "clk_i2c";
623 compatible = "amlogic,meson-g12a-i2c";
625 reg = <0x0 0x1c000 0x0 0x20>;
626 interrupts = <GIC_SPI 39 IRQ_TYPE_EDGE_RISING>,
627 <GIC_SPI 95 IRQ_TYPE_EDGE_RISING>;
628 #address-cells = <1>;
630 clocks = <&clkc CLKID_I2C>;
631 clock-names = "clk_i2c";
635 compatible = "amlogic,meson-g12a-spicc";
636 reg = <0x0 0x13000 0x0 0x44>;
637 interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
638 clocks = <&clkc CLKID_SPICC0>,
639 <&clkc CLKID_SPICC0_COMP>;
640 clock-names = "core", "comp";
641 #address-cells = <1>;
647 compatible = "amlogic,meson-g12a-spicc";
648 reg = <0x0 0x15000 0x0 0x44>;
649 interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
650 clocks = <&clkc CLKID_SPICC1>,
651 <&clkc CLKID_SPICC1_COMP>;
652 clock-names = "core", "comp";
653 #address-cells = <1>;
659 aobus: aobus@ff800000 {
660 compatible = "simple-bus";
661 reg = <0x0 0xff800000 0x0 0xb000>;
662 #address-cells = <2>;
664 ranges = <0x0 0x0 0x0 0xff800000 0x0 0xb000>;
667 reg=<0x0 0x220 0x0 0x4>;
670 aoclkc: clock-controller@0 {
671 compatible = "amlogic,sm1-aoclkc";
673 reg = <0x0 0x0 0x0 0x3dc>;
676 pwm_AO_ab: pwm@7000 {
677 compatible = "amlogic,g12a-ao-pwm";
678 reg = <0x0 0x7000 0x0 0x20>;
684 clock-names = "clkin0",
691 pwm_AO_cd: pwm@2000 {
692 compatible = "amlogic,g12a-ao-pwm";
693 reg = <0x0 0x2000 0x0 0x20>;
699 clock-names = "clkin0",
707 compatible = "amlogic,meson-g12a-i2c";
709 reg = <0x0 0x05000 0x0 0x20>;
710 interrupts = <GIC_SPI 195 IRQ_TYPE_EDGE_RISING>,
711 <GIC_SPI 201 IRQ_TYPE_EDGE_RISING>;
712 #address-cells = <1>;
714 clocks = <&clkc CLKID_I2C>;
715 clock-names = "clk_i2c";
718 i2c_AO_slave:i2c_slave@6000 {
719 compatible = "amlogic, meson-i2c-slave";
721 reg = <0x0 0x6000 0x0 0x20>;
722 interrupts = <0 194 1>;
723 pinctrl-names="default";
724 pinctrl-0=<&ao_i2c_slave_pins>;
727 uart_AO: serial@3000 {
728 compatible = "amlogic, meson-uart";
729 reg = <0x0 0x3000 0x0 0x18>;
730 interrupts = <0 193 1>;
733 clock-names = "clk_uart";
736 pinctrl-names = "default";
737 /*pinctrl-0 = <&ao_uart_pins>;*/
738 support-sysrq = <1>; /* 0 not support*/
741 uart_AO_B: serial@4000 {
742 compatible = "amlogic, meson-uart";
743 reg = <0x0 0x4000 0x0 0x18>;
744 interrupts = <0 197 1>;
747 clock-names = "clk_uart";
749 pinctrl-names = "default";
750 pinctrl-0 = <&ao_b_uart_pins>;
755 periphs: periphs@ff634400 {
756 compatible = "simple-bus";
757 reg = <0x0 0xff634400 0x0 0x400>;
758 #address-cells = <2>;
760 ranges = <0x0 0x0 0x0 0xff634400 0x0 0x400>;
762 };/* end of periphs */
764 hiubus: hiubus@ff63c000 {
765 compatible = "simple-bus";
766 reg = <0x0 0xff63c000 0x0 0x2000>;
767 #address-cells = <2>;
769 ranges = <0x0 0x0 0x0 0xff63c000 0x0 0x2000>;
771 clkc: clock-controller@0 {
772 compatible = "amlogic,sm1-clkc-1";
774 reg = <0x0 0x0 0x0 0x3dc>;
777 clkc_b: clock-controller@1 {
778 compatible = "amlogic,sm1-clkc-2";
780 reg = <0x0 0x0 0x0 0x3dc>;
781 clocks = <&clkc CLKID_FCLK_DIV2>;
782 clock-names = "clkin0";
787 compatible = "amlogic, ion_dev";
788 memory-region = <&ion_cma_reserved
790 };/* end of ion_dev*/
792 audiobus: audiobus@0xFF660000 {
793 compatible = "amlogic, audio-controller", "simple-bus";
794 reg = <0x0 0xFF660000 0x0 0x3000>;
795 #address-cells = <2>;
797 ranges = <0x0 0x0 0x0 0xFF660000 0x0 0x3000>;
798 clkaudio: audio_clocks {
799 compatible = "amlogic, sm1-audio-clocks";
801 reg = <0x0 0x0 0x0 0xb0>;
804 compatible = "amlogic, sm1-audio-ddr-manager";
806 GIC_SPI 148 IRQ_TYPE_EDGE_RISING
807 GIC_SPI 149 IRQ_TYPE_EDGE_RISING
808 GIC_SPI 150 IRQ_TYPE_EDGE_RISING
809 GIC_SPI 49 IRQ_TYPE_EDGE_RISING
810 GIC_SPI 152 IRQ_TYPE_EDGE_RISING
811 GIC_SPI 153 IRQ_TYPE_EDGE_RISING
812 GIC_SPI 154 IRQ_TYPE_EDGE_RISING
813 GIC_SPI 50 IRQ_TYPE_EDGE_RISING
816 "toddr_a", "toddr_b", "toddr_c",
818 "frddr_a", "frddr_b", "frddr_c",
821 };/* end of audiobus*/
824 audio_earc: bus@ff663000 {
825 compatible = "simple-bus";
826 reg = <0x0 0xff663000 0x0 0x1000>;
827 #address-cells = <2>;
829 ranges = <0x0 0x0 0x0 0xff663000 0x0 0x1000>;
832 compatible = "amlogic, sm1-snd-earc";
833 #sound-dai-cells = <0>;
838 <0x0 0x800 0x0 0x400>,
839 <0x0 0xc00 0x0 0x200>,
840 <0x0 0xe00 0x0 0x200>;
846 clocks = < &clkaudio CLKID_EARCRX_CMDC
847 &clkaudio CLKID_EARCRX_DMAC
848 &clkc CLKID_FCLK_DIV4
849 &clkc CLKID_FCLK_DIV4
850 &clkaudio CLKID_EARCTX_CMDC
851 &clkaudio CLKID_EARCTX_DMAC
852 &clkc CLKID_FCLK_DIV4
862 GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
863 interrupt-names = "earc_rx";
869 compatible = "amlogic, snd-iomap";
875 reg = <0x0 0xFF661000 0x0 0x400>;
878 reg = <0x0 0xFF660000 0x0 0x1000>;
881 reg = <0x0 0xFF661400 0x0 0x400>;
884 reg = <0x0 0xFF662000 0x0 0x1000>;
887 reg = <0x0 0xFFD01000 0x0 0x1000>;
890 reg = <0x0 0xFF661800 0x0 0x400>;
895 remote:rc@0xff808040 {
896 compatible = "amlogic, aml_remote";
897 dev_name = "meson-remote";
898 reg = <0x0 0xff808040 0x00 0x44>, /*Multi-format IR controller*/
899 <0x0 0xff808000 0x00 0x20>; /*Legacy IR controller*/
901 protocol = <REMOTE_TYPE_NEC>;
903 led_blink_frq = <100>;
904 interrupts = <0 196 1>;
905 pinctrl-names = "default";
906 pinctrl-0 = <&remote_pins>;
907 map = <&custom_maps>;
908 max_frame_time = <200>; /*set software decoder max frame time*/
911 custom_maps:custom_maps {
917 mapname = "amlogic-remote-1";
918 customcode = <0xfb04>;
919 release_delay = <80>;
920 size = <50>; /*keymap size*/
921 keymap = <REMOTE_KEY(0x47, KEY_0)
922 REMOTE_KEY(0x13, KEY_1)
923 REMOTE_KEY(0x10, KEY_2)
924 REMOTE_KEY(0x11, KEY_3)
925 REMOTE_KEY(0x0F, KEY_4)
926 REMOTE_KEY(0x0C, KEY_5)
927 REMOTE_KEY(0x0D, KEY_6)
928 REMOTE_KEY(0x0B, KEY_7)
929 REMOTE_KEY(0x08, KEY_8)
930 REMOTE_KEY(0x09, KEY_9)
931 REMOTE_KEY(0x5C, KEY_RIGHTCTRL)
932 REMOTE_KEY(0x51, KEY_F3)
933 REMOTE_KEY(0x50, KEY_F4)
934 REMOTE_KEY(0x40, KEY_F5)
935 REMOTE_KEY(0x4d, KEY_F6)
936 REMOTE_KEY(0x43, KEY_F7)
937 REMOTE_KEY(0x17, KEY_F8)
938 REMOTE_KEY(0x00, KEY_F9)
939 REMOTE_KEY(0x01, KEY_F10)
940 REMOTE_KEY(0x16, KEY_F11)
941 REMOTE_KEY(0x49, KEY_BACKSPACE)
942 REMOTE_KEY(0x06, KEY_PROPS)
943 REMOTE_KEY(0x14, KEY_UNDO)
944 REMOTE_KEY(0x44, KEY_UP)
945 REMOTE_KEY(0x1D, KEY_DOWN)
946 REMOTE_KEY(0x1C, KEY_LEFT)
947 REMOTE_KEY(0x48, KEY_RIGHT)
948 REMOTE_KEY(0x53, KEY_LEFTMETA)
949 REMOTE_KEY(0x45, KEY_PAGEUP)
950 REMOTE_KEY(0x19, KEY_PAGEDOWN)
951 REMOTE_KEY(0x52, KEY_PAUSE)
952 REMOTE_KEY(0x05, KEY_HANGEUL)
953 REMOTE_KEY(0x59, KEY_HANJA)
954 REMOTE_KEY(0x1b, KEY_SCALE)
955 REMOTE_KEY(0x04, KEY_KPCOMMA)
956 REMOTE_KEY(0x1A, KEY_POWER)
957 REMOTE_KEY(0x0A, KEY_TAB)
958 REMOTE_KEY(0x0e, KEY_MUTE)
959 REMOTE_KEY(0x1F, KEY_HOME)
960 REMOTE_KEY(0x1e, KEY_FRONT)
961 REMOTE_KEY(0x07, KEY_COPY)
962 REMOTE_KEY(0x12, KEY_OPEN)
963 REMOTE_KEY(0x54, KEY_PASTE)
964 REMOTE_KEY(0x02, KEY_FIND)
965 REMOTE_KEY(0x4f, KEY_A)
966 REMOTE_KEY(0x42, KEY_B)
967 REMOTE_KEY(0x5d, KEY_C)
968 REMOTE_KEY(0x4c, KEY_D)
969 REMOTE_KEY(0x58, KEY_CUT)
970 REMOTE_KEY(0x55, KEY_CALC)>;
973 mapname = "amlogic-remote-2";
974 customcode = <0xfe01>;
975 release_delay = <80>;
977 keymap = <REMOTE_KEY(0x01, KEY_1)
978 REMOTE_KEY(0x02, KEY_2)
979 REMOTE_KEY(0x03, KEY_3)
980 REMOTE_KEY(0x04, KEY_4)
981 REMOTE_KEY(0x05, KEY_5)
982 REMOTE_KEY(0x06, KEY_6)
983 REMOTE_KEY(0x07, KEY_7)
984 REMOTE_KEY(0x08, KEY_8)
985 REMOTE_KEY(0x09, KEY_9)
986 REMOTE_KEY(0x0a, KEY_0)
987 REMOTE_KEY(0x1F, KEY_FN_F1)
988 REMOTE_KEY(0x15, KEY_MENU)
989 REMOTE_KEY(0x16, KEY_TAB)
990 REMOTE_KEY(0x0c, KEY_CHANNELUP)
991 REMOTE_KEY(0x0d, KEY_CHANNELDOWN)
992 REMOTE_KEY(0x0e, KEY_VOLUMEUP)
993 REMOTE_KEY(0x0f, KEY_VOLUMEDOWN)
994 REMOTE_KEY(0x11, KEY_HOME)
995 REMOTE_KEY(0x1c, KEY_RIGHT)
996 REMOTE_KEY(0x1b, KEY_LEFT)
997 REMOTE_KEY(0x19, KEY_UP)
998 REMOTE_KEY(0x1a, KEY_DOWN)
999 REMOTE_KEY(0x1d, KEY_ENTER)
1000 REMOTE_KEY(0x17, KEY_MUTE)
1001 REMOTE_KEY(0x49, KEY_FINANCE)
1002 REMOTE_KEY(0x43, KEY_BACK)
1003 REMOTE_KEY(0x12, KEY_FN_F4)
1004 REMOTE_KEY(0x14, KEY_FN_F5)
1005 REMOTE_KEY(0x18, KEY_FN_F6)
1006 REMOTE_KEY(0x59, KEY_INFO)
1007 REMOTE_KEY(0x5a, KEY_STOPCD)
1008 REMOTE_KEY(0x10, KEY_POWER)
1009 REMOTE_KEY(0x42, KEY_PREVIOUSSONG)
1010 REMOTE_KEY(0x44, KEY_NEXTSONG)
1011 REMOTE_KEY(0x1e, KEY_REWIND)
1012 REMOTE_KEY(0x4b, KEY_FASTFORWARD)
1013 REMOTE_KEY(0x58, KEY_PLAYPAUSE)
1014 REMOTE_KEY(0x46, KEY_PROPS)
1015 REMOTE_KEY(0x40, KEY_UNDO)
1016 REMOTE_KEY(0x38, KEY_SCROLLLOCK)
1017 REMOTE_KEY(0x57, KEY_FN)
1018 REMOTE_KEY(0x5b, KEY_FN_ESC)
1019 REMOTE_KEY(0x54, KEY_RED)
1020 REMOTE_KEY(0x4c, KEY_GREEN)
1021 REMOTE_KEY(0x4e, KEY_YELLOW)
1022 REMOTE_KEY(0x55, KEY_BLUE)
1023 REMOTE_KEY(0x53, KEY_BLUETOOTH)
1024 REMOTE_KEY(0x52, KEY_WLAN)
1025 REMOTE_KEY(0x39, KEY_CAMERA)
1026 REMOTE_KEY(0x41, KEY_SOUND)
1027 REMOTE_KEY(0x0b, KEY_QUESTION)
1028 REMOTE_KEY(0x00, KEY_CHAT)
1029 REMOTE_KEY(0x13, KEY_SEARCH)>;
1032 mapname = "amlogic-remote-3";
1033 customcode = <0xbd02>;
1034 release_delay = <80>;
1036 keymap = <REMOTE_KEY(0xca,103)
1037 REMOTE_KEY(0xd2,108)
1038 REMOTE_KEY(0x99,105)
1039 REMOTE_KEY(0xc1,106)
1041 REMOTE_KEY(0x45,116)
1042 REMOTE_KEY(0xc5,133)
1043 REMOTE_KEY(0x80,113)
1045 REMOTE_KEY(0xd6,125)
1046 REMOTE_KEY(0x95,102)
1047 REMOTE_KEY(0xdd,104)
1048 REMOTE_KEY(0x8c,109)
1049 REMOTE_KEY(0x89,131)
1050 REMOTE_KEY(0x9c,130)
1051 REMOTE_KEY(0x9a,120)
1052 REMOTE_KEY(0xcd,121)>;
1056 uart_A: serial@ffd24000 {
1057 compatible = "amlogic, meson-uart";
1058 reg = <0x0 0xffd24000 0x0 0x18>;
1059 interrupts = <0 26 1>;
1060 status = "disabled";
1063 clock-names = "clk_uart",
1066 pinctrl-names = "default";
1067 pinctrl-0 = <&a_uart_pins>;
1070 uart_B: serial@ffd23000 {
1071 compatible = "amlogic, meson-uart";
1072 reg = <0x0 0xffd23000 0x0 0x18>;
1073 interrupts = <0 75 1>;
1074 status = "disabled";
1077 clock-names = "clk_uart",
1080 pinctrl-names = "default";
1081 pinctrl-0 = <&b_uart_pins>;
1084 uart_C: serial@ffd22000 {
1085 compatible = "amlogic, meson-uart";
1086 reg = <0x0 0xffd22000 0x0 0x18>;
1087 interrupts = <0 93 1>;
1088 status = "disabled";
1091 clock-names = "clk_uart",
1094 pinctrl-names = "default";
1095 pinctrl-0 = <&c_uart_pins>;
1099 pcie_A: pcieA@fc000000 {
1100 compatible = "amlogic, amlogic-pcie-v2", "snps,dw-pcie";
1101 reg = <0x0 0xfc000000 0x0 0x400000
1102 0x0 0xff648000 0x0 0x2000
1103 0x0 0xfc400000 0x0 0x200000
1104 0x0 0xff646000 0x0 0x2000
1105 0x0 0xffd01080 0x0 0x10>;
1106 reg-names = "elbi", "cfg", "config", "phy", "reset";
1107 interrupts = <0 221 0>;
1108 #interrupt-cells = <1>;
1109 bus-range = <0x0 0xff>;
1110 #address-cells = <3>;
1112 interrupt-map-mask = <0 0 0 0>;
1113 interrupt-map = <0 0 0 0 &gic GIC_SPI 223 IRQ_TYPE_EDGE_RISING>;
1114 device_type = "pci";
1115 ranges = <0x81000000 0 0 0 0xfc600000 0x0 0x100000
1116 /* downstream I/O */
1117 0x82000000 0 0xfc700000 0x0 0xfc700000 0 0x1900000>;
1118 /* non-prefetchable memory */
1122 clocks = <&clkc CLKID_PCIE_PLL
1123 &clkc CLKID_PCIE_COMB
1124 &clkc CLKID_PCIE_PHY>;
1125 clock-names = "pcie_refpll",
1128 /*reset-gpio-type 0:Shared pad(no reset)1:OD pad2:Normal pad*/
1130 pcie-apb-rst-bit = <15>;
1131 pcie-phy-rst-bit = <14>;
1132 pcie-ctrl-a-rst-bit = <12>;
1134 pcie-ctrl-sleep-shift = <18>;
1135 pcie-hhi-mem-pd-shift = <26>;
1136 pcie-hhi-mem-pd-mask = <0xf>;
1137 pcie-ctrl-iso-shift = <18>;
1138 status = "disabled";
1142 compatible = "amlogic, amhdmitx";
1143 dev_name = "amhdmitx";
1145 vend-data = <&vend_data>;
1146 pinctrl-names="default", "hdmitx_i2c";
1147 pinctrl-0=<&hdmitx_hpd &hdmitx_ddc>;
1148 pinctrl-1=<&hdmitx_hpd_gpio &i2c3_master_pins1>;
1149 clocks = <&clkc CLKID_VCLK2_ENCI
1150 &clkc CLKID_VCLK2_VENCI0
1151 &clkc CLKID_VCLK2_VENCI1
1152 &clkc CLKID_VAPB_MUX
1153 &clkc CLKID_VPU_MUX>;
1154 clock-names = "venci_top_gate",
1159 /* HPD, 57 + 32 = 89; CEC, 151 + 32 = 183*/
1160 interrupts = <0 57 1>;
1161 interrupt-names = "hdmitx_hpd";
1162 /* 0:M8B 1:GXBB 2:GXTVBB 3:GXL 4:GXM
1163 * 5:TXL 6:TXLX 7:AXG 8:GXLX 9:TXHD
1164 * 10:G12A 11:G12B 12:SM1
1168 vend_data: vend_data{ /* Should modified by Customer */
1169 vendor_name = "Google"; /* Max Chars: 8 */
1170 product_desc = "Chromecast"; /* Max Chars: 16 */
1171 /* standards.ieee.org/develop/regauth/oui/oui.txt */
1172 vendor_id = <0x001a11>;
1177 compatible = "amlogic, galcore";
1178 dev_name = "galcore";
1180 clocks = <&clkc CLKID_VNANOQ_AXI_CLK_COMP>,
1181 <&clkc CLKID_VNANOQ_CORE_CLK_COMP>;
1182 clock-names = "cts_vipnanoq_axi_clk_composite",
1183 "cts_vipnanoq_core_clk_composite";
1184 interrupts = <0 186 4>;
1185 interrupt-names = "galcore";
1186 reg = <0x0 0xff100000 0x0 0x800
1187 0x0 0xff000000 0x0 0x400000
1188 0x0 0xff63c118 0x0 0x0
1189 0x0 0xff63c11c 0x0 0x0
1190 0x0 0xffd01088 0x0 0x0
1191 0x0 0xff63c1c8 0x0 0x0
1193 reg-names = "NN_REG","NN_SRAM","NN_MEM0",
1194 "NN_MEM1","NN_RESET","NN_CLK";
1195 nn_power_version = <3>;
1196 nn_efuse = <0xff63003c 0x20>;
1199 compatible = "amlogic, aocec-sm1";
1200 device_name = "aocec";
1202 vendor_name = "Google"; /* Max Chars: 8 */
1203 /* Refer to the following URL at:
1204 * http://standards.ieee.org/develop/regauth/oui/oui.txt
1206 vendor_id = <0x001a11>;
1207 product_desc = "Chromecast"; /* Max Chars: 16 */
1208 cec_osd_string = "Chromecast"; /* Max Chars: 14 */
1209 cec_version = <5>;/*5:1.4;6:2.0*/
1213 arc_port_mask = <0x2>;
1214 interrupts = <0 203 1
1215 0 199 1>; /*0:snps 1:ts*/
1216 interrupt-names = "hdmi_aocecb","hdmi_aocec";
1217 pinctrl-names = "default","hdmitx_aocecb","cec_pin_sleep";
1218 pinctrl-0=<&eecec_a>;
1219 pinctrl-1=<&eecec_b>;
1220 pinctrl-2=<&eecec_b>;
1221 reg = <0x0 0xFF80023c 0x0 0x4
1222 0x0 0xFF800000 0x0 0x400
1223 0x0 0xFF634400 0x0 0x70>;
1224 reg-names = "ao_exit","ao","periphs";
1227 /*if you want to use vdin just modify status to "ok"*/
1229 compatible = "amlogic, vdin";
1231 status = "disabled";
1232 reserve-iomap = "true";
1233 flag_cma = <0>;/*1:share with codec_mm;2:cma alone*/
1234 /*MByte, if 10bit disable: 64M(YUV422),
1235 *if 10bit enable: 64*1.5 = 96M(YUV422)
1236 *if support 4K2K-YUV444-10bit-WR:3840*2160*4*4 ~= 128M
1237 *if support 4K2K-YUV422-10bit-wr:3840*2160*3*4 ~= 96M
1238 *if support 4K2K-YUV422-8BIT-WR:3840*2160*2*4 ~= 64M
1239 *if support 1080p-YUV422-8BIT-WR:1920*1080*2*4 ~= 16M
1241 /*cma_size = <16>;*/
1242 interrupts = <0 83 1>;
1244 /*clocks = <&clock CLK_FPLL_DIV5>,
1245 * <&clock CLK_VDIN_MEAS_CLK>;
1246 *clock-names = "fclk_div5", "cts_vdin_meas_clk";
1251 compatible = "amlogic, vdin";
1253 status = "disabled";
1254 reserve-iomap = "true";
1255 flag_cma = <0>;/*1:share with codec_mm;0:cma alone*/
1256 interrupts = <0 85 1>;
1258 /*clocks = <&clock CLK_FPLL_DIV5>,
1259 * <&clock CLK_VDIN_MEAS_CLK>;
1260 *clock-names = "fclk_div5", "cts_vdin_meas_clk";
1266 compatible = "amlogic, vout";
1272 * 1: nearby (only for 60->59.94 and 30->29.97)
1273 * 2: force (60/50/30/24/59.94/23.97)
1279 compatible = "amlogic, vout2";
1282 clocks = <&clkc CLKID_VPU_CLKC_P0_COMP>,
1283 <&clkc CLKID_VPU_CLKC_MUX>;
1284 clock-names = "vpu_clkc0",
1289 * 1: nearby (only for 60->59.94 and 30->29.97)
1290 * 2: force (60/50/30/24/59.94/23.97)
1295 dummy_venc: dummy_venc {
1296 compatible = "amlogic, dummy_venc";
1298 clocks = <&clkc CLKID_VCLK2_ENCP
1299 &clkc CLKID_VCLK2_VENCP0
1300 &clkc CLKID_VCLK2_VENCP1
1301 &clkc CLKID_VCLK2_ENCI
1302 &clkc CLKID_VCLK2_VENCI0
1303 &clkc CLKID_VCLK2_VENCI1
1304 &clkc CLKID_VCLK2_ENCL
1305 &clkc CLKID_VCLK2_VENCL>;
1306 clock-names = "encp_top_gate",
1317 compatible = "amlogic, vdac-sm1";
1322 compatible = "amlogic, meson, canvas";
1323 dev_name = "amlogic-canvas";
1325 reg = <0x0 0xff638000 0x0 0x2000>;
1329 compatible = "amlogic, ge2d-sm1";
1332 interrupts = <0 146 1>;
1333 interrupt-names = "ge2d";
1334 clocks = <&clkc CLKID_VAPB_MUX>,
1336 <&clkc CLKID_GE2D_GATE>;
1337 clock-names = "clk_vapb_0",
1340 reg = <0x0 0xff940000 0x0 0x10000>;
1344 compatible = "amlogic, amvideom";
1345 dev_name = "amvideom";
1347 interrupts = <0 3 1>;
1348 interrupt-names = "vsync";
1351 codec_io: codec_io {
1352 compatible = "amlogic, codec_io";
1358 reg = <0x0 0xffd00000 0x0 0x100000>;
1361 reg = <0x0 0xff620000 0x0 0x10000>;
1364 reg = <0x0 0xff63c000 0x0 0x2000>;
1367 reg = <0x0 0xff800000 0x0 0x10000>;
1370 reg = <0x0 0xff900000 0x0 0x40000>;
1373 reg = <0x0 0xff638000 0x0 0x2000>;
1376 reg = <0x0 0xff630000 0x0 0x2000>;
1381 compatible = "amlogic, codec, streambuf";
1382 dev_name = "mesonstream";
1384 clocks = <&clkc CLKID_DOS_PARSER
1386 &clkc CLKID_AHB_ARB0
1389 &clkc CLKID_VDEC_MUX
1390 &clkc CLKID_HCODEC_MUX
1391 &clkc CLKID_HEVC_MUX
1392 &clkc CLKID_HEVCF_MUX>;
1393 clock-names = "parser_top",
1405 compatible = "amlogic, vdec";
1406 dev_name = "vdec.0";
1414 interrupt-names = "vsync",
1423 compatible = "amlogic, vcodec-dec";
1424 dev_name = "aml-vcodec-dec";
1429 compatible = "amlogic, video_composer";
1430 dev_name = "video_composer";
1435 compatible = "amlogic, amvenc_avc";
1436 dev_name = "amvenc_avc";
1438 interrupts = <0 45 1>;
1439 interrupt-names = "mailbox_2";
1443 compatible = "cnm, HevcEnc";
1444 //memory-region = <&hevc_enc_reserved>;
1445 dev_name = "HevcEnc";
1447 interrupts = <0 187 1>;
1448 interrupt-names = "wave420l_irq";
1453 reg = <0x0 0xff610000 0x0 0x4000>;
1458 compatible = "amlogic, meson, rdma";
1459 dev_name = "amlogic-rdma";
1461 interrupts = <0 89 1>;
1462 interrupt-names = "rdma";
1466 compatible = "amlogic, meson-sm1";
1467 memory-region = <&logo_reserved>;
1468 dev_name = "meson-fb";
1473 interrupt-names = "viu-vsync", "viu2-vsync", "rdma";
1474 /* uboot logo,fb0/fb1 memory size,if afbcd fb0=0x01851000*/
1475 display_mode_default = "1080p60hz";
1477 /** 0:VPU free scale 1:OSD free scale 2:OSD super scale */
1478 display_size_default = <1920 1080 1920 2160 32>;
1479 /*1920*1080*4*3 = 0x17BB000*/
1480 clocks = <&clkc CLKID_VPU_CLKC_MUX>;
1481 clock-names = "vpu_clkc";
1484 irblaster: meson-irblaster {
1485 compatible = "amlogic, meson_irblaster";
1486 reg = <0x0 0xff80014c 0x0 0x10>,
1487 <0x0 0xff800040 0x0 0x4>;
1488 pinctrl-names = "default";
1489 pinctrl-0 = <&irblaster_pins>;
1490 interrupts = <0 198 1>;
1494 sd_emmc_c: emmc@ffe07000 {
1495 status = "disabled";
1496 compatible = "amlogic, meson-mmc-sm1";
1497 reg = <0x0 0xffe07000 0x0 0x800>;
1498 interrupts = <0 191 1>;
1499 pinctrl-names = "emmc_clk_cmd_pins", "emmc_all_pins";
1500 pinctrl-0 = <&emmc_clk_cmd_pins>;
1501 pinctrl-1 = <&emmc_conf_pull_up &emmc_conf_pull_done>;
1502 clocks = <&clkc CLKID_SD_EMMC_C>,
1503 <&clkc CLKID_SD_EMMC_C_P0_COMP>,
1504 <&clkc CLKID_FCLK_DIV2>,
1505 <&clkc CLKID_FCLK_DIV2P5>,
1507 clock-names = "core", "clkin0", "clkin1", "clkin2", "xtal";
1513 /* mmc-hs200-1_8v; */
1515 max-frequency = <200000000>;
1520 ocr_avail = <0x200080>; /**VDD voltage 3.3 ~ 3.4 */
1521 /*caps defined in dts*/
1524 max_req_size = <0x20000>; /**128KB*/
1525 gpio_dat3 = <&gpio BOOT_3 GPIO_ACTIVE_HIGH>;
1526 hw_reset = <&gpio BOOT_12 GPIO_ACTIVE_HIGH>;
1528 /* 1:mmc card(include eMMC),
1529 * 2:sd card(include tSD)
1534 sd_emmc_b:sd@ffe05000 {
1535 status = "disabled";
1536 compatible = "amlogic, meson-mmc-sm1";
1537 reg = <0x0 0xffe05000 0x0 0x800>;
1538 interrupts = <0 190 1>;
1540 pinctrl-names = "sd_all_pins",
1543 "sd_clk_cmd_uart_pins",
1544 "sd_1bit_uart_pins",
1545 "sd_to_ao_uart_pins",
1546 "ao_to_sd_uart_pins",
1547 "sd_to_ao_jtag_pins",
1548 "ao_to_sd_jtag_pins";
1550 pinctrl-0 = <&sd_all_pins>;
1551 pinctrl-1 = <&sd_clk_cmd_pins>;
1552 pinctrl-2 = <&sd_1bit_pins>;
1553 pinctrl-3 = <&sd_to_ao_uart_clr_pins
1554 &sd_clk_cmd_pins &ao_to_sd_uart_pins>;
1555 pinctrl-4 = <&sd_to_ao_uart_clr_pins
1556 &sd_1bit_pins &ao_to_sd_uart_pins>;
1557 pinctrl-5 = <&sd_all_pins &sd_to_ao_uart_pins>;
1558 pinctrl-6 = <&sd_to_ao_uart_clr_pins
1559 &ao_to_sd_uart_pins>;
1560 pinctrl-7 = <&sd_all_pins &sd_to_ao_uart_pins>;
1561 pinctrl-8 = <&sd_to_ao_uart_clr_pins
1562 &ao_to_sd_uart_pins>;
1564 clocks = <&clkc CLKID_SD_EMMC_B>,
1565 <&clkc CLKID_SD_EMMC_B_P0_COMP>,
1566 <&clkc CLKID_FCLK_DIV2>,
1567 <&clkc CLKID_FCLK_DIV5>,
1569 clock-names = "core", "clkin0", "clkin1", "clkin2", "xtal";
1574 max-frequency = <100000000>;
1578 ocr_avail = <0x200080>; /**VDD voltage 3.3 ~ 3.4 */
1579 max_req_size = <0x20000>; /**128KB*/
1580 gpio_dat3 = <&gpio GPIOC_3 GPIO_ACTIVE_HIGH>;
1581 jtag_pin = <&gpio GPIOC_0 GPIO_ACTIVE_HIGH>;
1582 gpio_cd = <&gpio GPIOC_6 GPIO_ACTIVE_HIGH>;
1584 /* 3:sdio device(ie:sdio-wifi),
1585 * 4:SD combo (IO+mem) card
1591 sd_emmc_a:sdio@ffe03000 {
1592 status = "disabled";
1593 compatible = "amlogic, meson-mmc-sm1";
1594 reg = <0x0 0xffe03000 0x0 0x800>;
1595 interrupts = <0 189 4>;
1597 pinctrl-names = "sdio_all_pins",
1598 "sdio_clk_cmd_pins";
1599 pinctrl-0 = <&sdio_all_pins>;
1600 pinctrl-1 = <&sdio_clk_cmd_pins>;
1602 clocks = <&clkc CLKID_SD_EMMC_A>,
1603 <&clkc CLKID_SD_EMMC_A_P0_COMP>,
1604 <&clkc CLKID_FCLK_DIV2>,
1605 <&clkc CLKID_FCLK_DIV5>,
1607 clock-names = "core", "clkin0", "clkin1", "clkin2", "xtal";
1612 max-frequency = <100000000>;
1616 ocr_avail = <0x200080>; /**VDD voltage 3.3 ~ 3.4 */
1617 max_req_size = <0x20000>; /**128KB*/
1619 /* 3:sdio device(ie:sdio-wifi),
1620 * 4:SD combo (IO+mem) card
1626 compatible = "amlogic, aml_mtd_nand";
1627 dev_name = "mtdnand";
1628 status = "disabled";
1629 reg = <0x0 0xFFE07800 0x0 0x200>;
1630 interrupts = <0 34 1>;
1631 pinctrl-names = "nand_rb_mod","nand_norb_mod", "nand_cs_only";
1632 pinctrl-0 = <&all_nand_pins>;
1633 pinctrl-1 = <&all_nand_pins>;
1634 pinctrl-2 = <&nand_cs_pins>;
1636 clocks = <&clkc CLKID_SD_EMMC_C>,
1637 <&clkc CLKID_FCLK_DIV2>;
1638 clock-names = "gate", "fdiv2pll";
1641 fip_size = <0x200000>;
1642 nand_clk_ctrl = <0xFFE07000>;
1645 vddcpu0: pwmao_d-regulator {
1646 compatible = "pwm-regulator";
1647 pwms = <&pwm_AO_cd MESON_PWM_1 1500 0>;
1648 regulator-name = "vddcpu0";
1649 regulator-min-microvolt = <690000>;
1650 regulator-max-microvolt = <1050000>;
1651 regulator-always-on;
1652 max-duty-cycle = <1500>;
1653 /* Voltage Duty-Cycle */
1654 voltage-table = <1050000 0>,
1695 compatible = "amlogic, ddr-bandwidth";
1697 reg = <0x0 0xff638000 0x0 0x100
1698 0x0 0xff638c00 0x0 0x100>;
1699 sec_base = <0xff639000>;
1700 interrupts = <0 52 1>;
1701 interrupt-names = "ddr_bandwidth";
1704 compatible = "amlogic, dmc_monitor";
1706 reg_base = <0xff639000>;
1707 interrupts = <0 51 1>;
1710 defendkey: defendkey {
1711 compatible = "amlogic, defendkey";
1712 reg = <0x0 0xff630218 0x0 0x4>; /*RNG_USR_DATA*/
1713 mem_size = <0x0 0x100000>;
1718 compatible = "amlogic,aml_txlx_dma";
1719 reg = <0x0 0xff63e000 0x0 0x48>;
1720 interrupts = <0 180 1>;
1723 compatible = "amlogic,aes_g12a_dma";
1724 dev_name = "aml_aes_dma";
1729 compatible = "amlogic,sha_dma";
1730 dev_name = "aml_sha_dma";
1736 compatible = "amlogic,meson-rng";
1738 #address-cells = <2>;
1740 reg = <0x0 0xff630218 0x0 0x4>;
1741 quality = /bits/ 16 <1000>;
1745 compatible = "amlogic, efuse";
1746 read_cmd = <0x82000030>;
1747 write_cmd = <0x82000031>;
1748 get_max_cmd = <0x82000033>;
1750 clocks = <&clkc CLKID_EFUSE>;
1751 clock-names = "efuse_clk";
1752 status = "disabled";
1756 compatible = "amlogic, cpu-major-id-sm1";
1759 p_tsensor: p_tsensor@ff634800 {
1760 compatible = "amlogic, r1p1-tsensor";
1761 device_name = "meson-pthermal";
1763 reg = <0x0 0xff634800 0x0 0x50>,
1764 <0x0 0xff800268 0x0 0x4>;
1771 interrupts = <0 35 0>;
1772 clocks = <&clkc CLKID_TS_COMP>; /* CLKID_TS_COMP>;*/
1773 clock-names = "ts_comp";
1774 #thermal-sensor-cells = <1>;
1777 d_tsensor: d_tsensor@ff634c00 {
1778 compatible = "amlogic, r1p1-tsensor";
1779 device_name = "meson-dthermal";
1781 reg = <0x0 0xff634c00 0x0 0x50>,
1782 <0x0 0xff800230 0x0 0x4>;
1789 interrupts = <0 36 0>;
1790 clocks = <&clkc CLKID_TS_COMP>; /* CLKID_TS_COMP>;*/
1791 clock-names = "ts_comp";
1792 #thermal-sensor-cells = <1>;
1795 meson_cooldev: meson-cooldev@0 {
1797 compatible = "amlogic, meson-cooldev";
1798 device_name = "mcooldev";
1800 cpufreq_cool_cluster0 {
1801 min_state = <1000000>;
1805 node_name = "cpufreq_cool0";
1806 device_type = "cpufreq";
1808 cpucore_cool_cluster0 {
1813 node_name = "cpucore_cool0";
1814 device_type = "cpucore";
1821 node_name = "gpufreq_cool0";
1822 device_type = "gpufreq";
1829 node_name = "gpucore_cool0";
1830 device_type = "gpucore";
1833 cpufreq_cool0:cpufreq_cool0 {
1834 #cooling-cells = <2>; /* min followed by max */
1836 cpucore_cool0:cpucore_cool0 {
1837 #cooling-cells = <2>; /* min followed by max */
1839 gpufreq_cool0:gpufreq_cool0 {
1840 #cooling-cells = <2>; /* min followed by max */
1842 gpucore_cool0:gpucore_cool0 {
1843 #cooling-cells = <2>; /* min followed by max */
1846 /*meson cooling devices end*/
1849 soc_thermal: soc_thermal {
1850 polling-delay = <1000>;
1851 polling-delay-passive = <100>;
1852 sustainable-power = <1410>;
1853 thermal-sensors = <&p_tsensor 0>;
1855 pswitch_on: trip-point@0 {
1856 temperature = <60000>;
1857 hysteresis = <5000>;
1860 pcontrol: trip-point@1 {
1861 temperature = <75000>;
1862 hysteresis = <5000>;
1865 phot: trip-point@2 {
1866 temperature = <85000>;
1867 hysteresis = <5000>;
1870 pcritical: trip-point@3 {
1871 temperature = <110000>;
1872 hysteresis = <1000>;
1878 cpufreq_cooling_map {
1880 cooling-device = <&cpufreq_cool0 0 4>;
1881 contribution = <1024>;
1883 cpucore_cooling_map {
1885 cooling-device = <&cpucore_cool0 0 3>;
1886 contribution = <1024>;
1888 gpufreq_cooling_map {
1890 cooling-device = <&gpufreq_cool0 0 3>;
1891 contribution = <1024>;
1893 gpucore_cooling_map {
1895 cooling-device = <&gpucore_cool0 0 2>;
1896 contribution = <1024>;
1900 ddr_thermal: ddr_thermal {
1901 polling-delay = <2000>;
1902 polling-delay-passive = <1000>;
1903 sustainable-power = <1410>;
1904 thermal-sensors = <&d_tsensor 1>;
1906 dswitch_on: trip-point@0 {
1907 temperature = <60000>;
1908 hysteresis = <5000>;
1911 dcontrol: trip-point@1 {
1912 temperature = <75000>;
1913 hysteresis = <5000>;
1916 dhot: trip-point@2 {
1917 temperature = <85000>;
1918 hysteresis = <5000>;
1921 dcritical: trip-point@3 {
1922 temperature = <110000>;
1923 hysteresis = <1000>;
1928 };/*thermal zone end*/
1932 sd_to_ao_uart_clr_pins:sd_to_ao_uart_clr_pins {
1934 groups = "GPIOAO_0",
1936 function = "gpio_aobus";
1940 sd_to_ao_uart_pins:sd_to_ao_uart_pins {
1942 groups = "uart_ao_tx_a",
1944 function = "uart_ao_a";
1950 ao_uart_pins:ao_uart {
1952 groups = "uart_ao_tx_a",
1954 function = "uart_ao_a";
1958 ao_b_uart_pins:ao_b_uart {
1960 groups = "uart_ao_tx_b_2",
1962 function = "uart_ao_b";
1966 ao_i2c_master_pins1:ao_i2c_pins1 {
1968 groups = "i2c_ao_sck",
1970 function = "i2c_ao";
1971 drive-strength = <2>;
1975 ao_i2c_master_pins2:ao_i2c_pins2 {
1977 groups = "i2c_ao_sck_e",
1979 function = "i2c_ao";
1980 drive-strength = <2>;
1984 ao_i2c_slave_pins:ao_i2c_slave_pins {
1986 groups = "i2c_ao_slave_sck",
1988 function = "i2c_ao_slave";
1992 pwm_ao_a_pins: pwm_ao_a {
1994 groups = "pwm_ao_a";
1995 function = "pwm_ao_a";
1999 pwm_ao_a_hiz_pins: pwm_ao_a_hiz {
2001 groups = "pwm_ao_a_hiz";
2002 function = "pwm_ao_a";
2006 pwm_ao_b_pins: pwm_ao_b {
2008 groups = "pwm_ao_b";
2009 function = "pwm_ao_b";
2013 pwm_ao_c_pins1: pwm_ao_c_pins1 {
2015 groups = "pwm_ao_c_4";
2016 function = "pwm_ao_c";
2020 pwm_ao_c_pins2: pwm_ao_c_pins2 {
2022 groups = "pwm_ao_c_6";
2023 function = "pwm_ao_c";
2027 pwm_ao_c_hiz_pins: pwm_ao_c_hiz {
2029 groups = "pwm_ao_c_hiz_4";
2030 function = "pwm_ao_c";
2034 pwm_ao_d_pins1: pwm_ao_d_pins1 {
2036 groups = "pwm_ao_d_5";
2037 function = "pwm_ao_d";
2041 pwm_ao_d_pins2: pwm_ao_d_pins2 {
2043 groups = "pwm_ao_d_10";
2044 function = "pwm_ao_d";
2048 pwm_ao_d_pins3: pwm_ao_d_pins3 {
2050 groups = "pwm_ao_d_e";
2051 function = "pwm_ao_d";
2057 groups = "cec_ao_a";
2058 function = "cec_ao";
2064 groups = "cec_ao_b";
2065 function = "cec_ao";
2069 jtag_apao_pins:jtag_apao_pin {
2071 groups = "jtag_a_tdi",
2075 function = "jtag_a";
2082 emmc_clk_cmd_pins:emmc_clk_cmd_pins {
2084 groups = "emmc_clk",
2089 drive-strength = <3>;
2093 emmc_conf_pull_up:emmc_conf_pull_up {
2095 groups = "emmc_nand_d7",
2108 drive-strength = <3>;
2112 emmc_conf_pull_done:emmc_conf_pull_done {
2114 groups = "emmc_nand_ds";
2118 drive-strength = <3>;
2123 sd_clk_cmd_pins:sd_clk_cmd_pins {
2125 groups = "sdcard_cmd_c";
2126 function = "sdcard";
2129 drive-strength = <3>;
2132 groups = "sdcard_clk_c";
2133 function = "sdcard";
2136 drive-strength = <3>;
2140 sd_all_pins:sd_all_pins {
2142 groups = "sdcard_d0_c",
2147 function = "sdcard";
2150 drive-strength = <3>;
2153 groups = "sdcard_clk_c";
2154 function = "sdcard";
2157 drive-strength = <3>;
2161 sd_1bit_pins:sd_1bit_pins {
2163 groups = "sdcard_d0_c",
2165 function = "sdcard";
2168 drive-strength = <3>;
2171 groups = "sdcard_clk_c";
2172 function = "sdcard";
2175 drive-strength = <3>;
2179 sd_clr_all_pins:sd_clr_all_pins {
2186 function = "gpio_periphs";
2191 function = "gpio_periphs";
2196 sd_clr_noall_pins:sd_clr_noall_pins {
2202 function = "gpio_periphs";
2207 ao_to_sd_uart_pins:ao_to_sd_uart_pins {
2209 groups = "uart_ao_tx_a_c3",
2211 function = "uart_ao_a_ee";
2218 sdio_clk_cmd_pins:sdio_clk_cmd_pins {
2220 groups = "sdio_clk",
2225 drive-strength = <3>;
2229 sdio_all_pins:sdio_all_pins {
2240 drive-strength = <3>;
2244 sdio_x_clk_cmd_pins:sdio_x_clk_cmd_pins {
2247 function = "gpio_periphs";
2250 drive-strength = <3>;
2254 function = "gpio_periphs";
2257 drive-strength = <3>;
2261 sdio_x_all_pins:sdio_x_all_pins {
2268 function = "gpio_periphs";
2271 drive-strength = <3>;
2275 function = "gpio_periphs";
2278 drive-strength = <3>;
2282 sdio_x_en_pins:sdio_x_en_pins {
2284 groups = "sdio_dummy";
2291 sdio_x_clr_pins:sdio_x_clr_pins {
2294 function = "gpio_periphs";
2300 function = "gpio_periphs";
2305 all_nand_pins: all_nand_pins {
2307 groups = "emmc_nand_d0",
2326 nand_cs_pins: nand_cs {
2328 groups = "nand_ce0";
2333 i2c0_master_pins1:i2c0_pins1 {
2335 groups = "i2c0_sda_c",
2338 drive-strength = <2>;
2342 i2c0_master_pins2:i2c0_pins2 {
2344 groups = "i2c0_sda_z0",
2347 drive-strength = <2>;
2351 i2c0_master_pins3:i2c0_pins3 {
2353 groups = "i2c0_sda_z7",
2356 drive-strength = <2>;
2360 i2c1_master_pins1:i2c1_pins1 {
2362 groups = "i2c1_sda_x",
2365 drive-strength = <2>;
2369 i2c1_master_pins2:i2c1_pins2 {
2371 groups = "i2c1_sda_h2",
2374 drive-strength = <2>;
2378 i2c1_master_pins3:i2c1_pins3 {
2380 groups = "i2c1_sda_h6",
2383 drive-strength = <2>;
2387 i2c2_master_pins1:i2c2_pins1 {
2389 groups = "i2c2_sda_x",
2392 drive-strength = <2>;
2396 i2c2_master_pins2:i2c2_pins2 {
2398 groups = "i2c2_sda_z",
2401 drive-strength = <2>;
2405 i2c2_master_pins3:i2c2_pins3 {
2407 groups = "i2c2_sda_z10",
2410 drive-strength = <2>;
2414 i2c3_master_pins1:i2c3_pins1 {
2416 groups = "i2c3_sda_h",
2419 drive-strength = <2>;
2423 i2c3_master_pins2:i2c3_pins2 {
2425 groups = "i2c3_sda_a",
2428 drive-strength = <2>;
2432 /*dvb_p_ts1_pins: dvb_p_ts1_pins {
2434 * groups = "tsin_b_sop_z",
2445 * function = "tsin_b";
2457 pwm_b_pins1: pwm_b_pins1 {
2459 groups = "pwm_b_x7";
2464 pwm_b_pins2: pwm_b_pins2 {
2466 groups = "pwm_b_x19";
2471 pwm_c_pins1: pwm_c_pins1 {
2473 groups = "pwm_c_c4";
2478 pwm_c_pins2: pwm_c_pins2 {
2480 groups = "pwm_c_x5";
2485 pwm_c_pins3: pwm_c_pins3 {
2487 groups = "pwm_c_x8";
2492 pwm_d_pins1: pwm_d_pins1 {
2494 groups = "pwm_d_x3";
2499 pwm_d_pins2: pwm_d_pins2 {
2501 groups = "pwm_d_x6";
2510 drive-strength = <0>;
2514 pwm_f_pins1: pwm_f_pins1 {
2521 pwm_f_pins2: pwm_f_pins2 {
2528 spicc0_pins_x: spicc0_pins_x {
2530 groups = "spi0_mosi_x",
2535 drive-strength = <1>;
2539 spicc0_pins_c: spicc0_pins_c {
2541 groups = "spi0_mosi_c",
2546 drive-strength = <1>;
2550 spicc1_pins: spicc1_pins {
2552 groups = "spi1_mosi",
2557 drive-strength = <1>;
2561 a_uart_pins:a_uart {
2563 groups = "uart_tx_a",
2567 function = "uart_a";
2571 b_uart_pins:b_uart {
2573 groups = "uart_tx_b",
2575 function = "uart_b";
2579 c_uart_pins:c_uart {
2581 groups = "uart_tx_c",
2583 function = "uart_c";
2587 hdmitx_hpd: hdmitx_hpd {
2589 groups = "hdmitx_hpd_in";
2590 function = "hdmitx";
2595 hdmitx_hpd_gpio: hdmitx_hpd_gpio {
2598 function = "gpio_periphs";
2603 hdmitx_ddc: hdmitx_ddc {
2605 groups = "hdmitx_sda",
2607 function = "hdmitx";
2609 drive-strength = <3>;
2615 groups = "cec_ao_a_ee";
2616 function = "cec_ao_ee";
2622 groups = "cec_ao_b_ee";
2623 function = "cec_ao_ee";
2627 internal_eth_pins: internal_eth_pins {
2629 groups = "eth_link_led",
2635 internal_gpio_pins: internal_gpio_pins {
2637 groups = "GPIOZ_14",
2639 function = "gpio_periphs";
2645 external_eth_pins: external_eth_pins {
2647 groups = "eth_mdio",
2662 drive-strength = <3>;
2666 jtag_apee_pins:jtag_apee_pin {
2668 groups = "jtag_b_tdi",
2672 function = "jtag_b";
2678 remote_pins:remote_pin {
2680 groups = "remote_input_ao";
2681 function = "remote_input_ao";
2685 irblaster_pins:irblaster_pin {
2687 groups = "remote_out_ao";
2688 function = "remote_out_ao";
2691 }; /* end of pinctrl_aobus */