From feb745991d52e8673891e61b2ff4e56d12f4d05e Mon Sep 17 00:00:00 2001 From: iansun2 Date: Fri, 14 Apr 2023 02:18:12 +0000 Subject: [PATCH] init --- gxlx2-p291-2g.dts | 2104 +++++++++++++++++++++++++++++++++++++++++++++ x7-5g.dts | 1705 ++++++++++++++++++++++++++++++++++++ 2 files changed, 3809 insertions(+) create mode 100644 gxlx2-p291-2g.dts create mode 100644 x7-5g.dts diff --git a/gxlx2-p291-2g.dts b/gxlx2-p291-2g.dts new file mode 100644 index 0000000..9d4b275 --- /dev/null +++ b/gxlx2-p291-2g.dts @@ -0,0 +1,2104 @@ +/dts-v1/; + +/ { + model = "Amlogic"; + compatible = "amlogic, gxl"; + amlogic-dt-id = "gxlx2_p291_2g"; + interrupt-parent = <0x02>; + #address-cells = <0x02>; + #size-cells = <0x02>; + + mali@d00c0000 { + #cooling-cells = <0x02>; + compatible = "arm,mali-450"; + interrupt-parent = <0x02>; + reg = <0x00 0xd00c0000 0x00 0x40000 0x00 0xc883c000 0x00 0x04 0x00 0xc8100000 0x00 0x04 0x00 0xc883c000 0x00 0x100 0x00 0xc1104440 0x00 0x100>; + interrupts = <0x00 0xa0 0x04 0x00 0xa1 0x04 0x00 0xa2 0x04 0x00 0xa3 0x04 0x00 0xa4 0x04 0x00 0xa5 0x04 0x00 0xa6 0x04 0x00 0xa7 0x04>; + interrupt-names = "IRQGP\0IRQGPMMU\0IRQPP\0IRQPMU\0IRQPP0\0IRQPPMMU0\0IRQPP1\0IRQPPMMU1"; + pmu_domain_config = <0x01 0x02 0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01 0x02 0x00>; + pmu_switch_delay = <0xffff>; + num_of_pp = <0x02>; + def_clock = <0x03>; + sc_mpp = <0x02>; + tbl = <0x03 0x04 0x05 0x07 0x08 0x08>; + clocks = <0x09 0x08 0x09 0x09 0x09 0x11 0x09 0x12 0x09 0x1e 0x09 0x15 0x09 0x13 0x09 0x14>; + clock-names = "fclk_div3\0fclk_div4\0fclk_div5\0fclk_div7\0gp0_pll\0clk_mali\0clk_mali_0\0clk_mali_1"; + control_interval = <0xc8>; + + clk125_cfg { + clk_freq = <0x7735940>; + clk_parent = "fclk_div4"; + clkp_freq = <0x1dcd6500>; + voltage = <0x47e>; + keep_count = <0x05>; + threshold = <0x1e 0x78>; + linux,phandle = <0x03>; + phandle = <0x03>; + }; + + clk250_cfg { + clk_freq = <0xee6b280>; + clk_parent = "fclk_div4"; + clkp_freq = <0x1dcd6500>; + voltage = <0x47e>; + keep_count = <0x05>; + threshold = <0x50 0xaa>; + }; + + clk285_cfg { + clk_freq = <0x10fcc140>; + clk_parent = "fclk_div7"; + clkp_freq = <0x10fcc140>; + voltage = <0x47e>; + keep_count = <0x05>; + threshold = <0x64 0xbe>; + linux,phandle = <0x04>; + phandle = <0x04>; + }; + + clk400_cfg { + clk_freq = <0x17d78400>; + clk_parent = "fclk_div5"; + clkp_freq = <0x17d78400>; + voltage = <0x47e>; + keep_count = <0x05>; + threshold = <0x98 0xcf>; + linux,phandle = <0x05>; + phandle = <0x05>; + }; + + clk500_cfg { + clk_freq = <0x1dcd6500>; + clk_parent = "fclk_div4"; + clkp_freq = <0x1dcd6500>; + voltage = <0x47e>; + keep_count = <0x05>; + threshold = <0xb4 0xdc>; + linux,phandle = <0x07>; + phandle = <0x07>; + }; + + clk666_cfg { + clk_freq = <0x27b25a80>; + clk_parent = "fclk_div3"; + clkp_freq = <0x27b25a80>; + voltage = <0x47e>; + keep_count = <0x05>; + threshold = <0xd2 0xec>; + linux,phandle = <0x08>; + phandle = <0x08>; + }; + + clk750_cfg { + clk_freq = <0x2c588a00>; + clk_parent = "gp0_pll"; + clkp_freq = <0x2c588a00>; + voltage = <0x47e>; + keep_count = <0x05>; + threshold = <0xe6 0xff>; + }; + + clk800_cfg { + clk_freq = <0x2f34f600>; + clk_parent = "gp0_pll"; + clkp_freq = <0x2f34f600>; + voltage = <0x47e>; + keep_count = <0x05>; + threshold = <0xe6 0xff>; + }; + }; + + cpus { + #address-cells = <0x02>; + #size-cells = <0x00>; + #cooling-cells = <0x02>; + + cpu@0 { + device_type = "cpu"; + compatible = "arm,cortex-a53\0arm,armv8"; + reg = <0x00 0x00>; + enable-method = "psci"; + }; + + cpu@1 { + device_type = "cpu"; + compatible = "arm,cortex-a53\0arm,armv8"; + reg = <0x00 0x01>; + enable-method = "psci"; + }; + + cpu@2 { + device_type = "cpu"; + compatible = "arm,cortex-a53\0arm,armv8"; + reg = <0x00 0x02>; + enable-method = "psci"; + }; + + cpu@3 { + device_type = "cpu"; + compatible = "arm,cortex-a53\0arm,armv8"; + reg = <0x00 0x03>; + enable-method = "psci"; + }; + }; + + timer { + compatible = "arm,armv8-timer"; + interrupts = <0x01 0x0d 0xff01 0x01 0x0e 0xff01 0x01 0x0b 0xff01 0x01 0x0a 0xff01>; + }; + + arm_pmu { + compatible = "arm,armv8-pmuv3"; + interrupts = <0x00 0x89 0x04 0x00 0x8a 0x04 0x00 0x99 0x04 0x00 0x9a 0x04>; + }; + + pm { + compatible = "amlogic, pm"; + device_name = "aml_pm"; + gxbaby-suspend; + reg = <0x00 0xc81000a8 0x00 0x04 0x00 0xc810023c 0x00 0x04>; + }; + + interrupt-controller@2c001000 { + compatible = "arm,cortex-a15-gic\0arm,cortex-a9-gic"; + #interrupt-cells = <0x03>; + #address-cells = <0x00>; + interrupt-controller; + reg = <0x00 0xc4301000 0x00 0x1000 0x00 0xc4302000 0x00 0x100>; + interrupts = <0x01 0x09 0xf04>; + linux,phandle = <0x02>; + phandle = <0x02>; + }; + + aml_restart { + compatible = "aml, restart"; + sys_reset = <0x84000009>; + sys_poweroff = <0x84000008>; + }; + + psci { + compatible = "arm,psci"; + method = "smc"; + cpu_suspend = <0xc4000001>; + cpu_off = <0x84000002>; + cpu_on = <0xc4000003>; + migrate = <0xc4000005>; + }; + + secmon { + compatible = "amlogic, secmon"; + memory-region = <0x0a>; + in_base_func = <0x82000020>; + out_base_func = <0x82000021>; + }; + + securitykey { + compatible = "aml, securitykey"; + storage_query = <0x82000060>; + storage_read = <0x82000061>; + storage_write = <0x82000062>; + storage_tell = <0x82000063>; + storage_verify = <0x82000064>; + storage_status = <0x82000065>; + storage_list = <0x82000067>; + storage_remove = <0x82000068>; + storage_in_func = <0x82000023>; + storage_out_func = <0x82000024>; + storage_block_func = <0x82000025>; + storage_size_func = <0x82000027>; + }; + + cpu_iomap { + compatible = "amlogic, iomap"; + #address-cells = <0x02>; + #size-cells = <0x02>; + ranges; + + io_cbus_base { + reg = <0x00 0xc1100000 0x00 0x100000>; + }; + + io_apb_base { + reg = <0x00 0xd0000000 0x00 0x200000>; + }; + + io_aobus_base { + reg = <0x00 0xc8100000 0x00 0x100000>; + }; + }; + + cpufreq-meson { + compatible = "amlogic, cpufreq-scpi"; + status = "okay"; + clocks = <0x0b 0x00>; + clock-names = "cpu_clk"; + }; + + amlogic-watchdog { + compatible = "amlogic, gx-wdt"; + status = "disable"; + default_timeout = <0x0a>; + reset_watchdog_method = <0x01>; + reset_watchdog_time = <0x02>; + shutdown_timeout = <0x0a>; + firmware_timeout = <0x06>; + suspend_timeout = <0x06>; + reg = <0x00 0xc11098d0 0x00 0x10>; + clocks = <0x09 0x02>; + }; + + amlogic-jtag { + compatible = "amlogic, jtag"; + status = "okay"; + pinctrl-names = "jtag_apao_pins\0jtag_apee_pins"; + pinctrl-0 = <0x0c>; + pinctrl-1 = <0x0d>; + }; + + meson_clock { + compatible = "amlogic, gxl-clock"; + reg = <0x00 0xc883c000 0x00 0x1000 0x00 0xc8100000 0x00 0x1000>; + #clock-cells = <0x01>; + #reset-cells = <0x01>; + sys_max = <0x5b8d8000>; + linux,phandle = <0x09>; + phandle = <0x09>; + }; + + cpu_info { + compatible = "amlogic, cpuinfo"; + cpuinfo_cmd = <0x82000044>; + }; + + pinmux { + compatible = "amlogic, pinmux-gxl"; + dev_name = "pinmux"; + #pinmux-cells = <0x02>; + #address-cells = <0x02>; + #size-cells = <0x02>; + reg = <0x00 0xc1109880 0x00 0x10>; + ranges; + + banks@c11080b0 { + reg = <0x00 0xc88344b0 0x00 0x28 0x00 0xc88344e8 0x00 0x14 0x00 0xc8834520 0x00 0x14 0x00 0xc8834430 0x00 0x40>; + reg-names = "mux\0pull\0pull-enable\0gpio"; + gpio-controller; + #gpio-cells = <0x02>; + linux,phandle = <0x1a>; + phandle = <0x1a>; + }; + + ao-bank@c1108030 { + reg = <0x00 0xc8100014 0x00 0x08 0x00 0xc810002c 0x00 0x04 0x00 0xc8100024 0x00 0x08>; + reg-names = "mux\0pull\0gpio"; + gpio-controller; + #gpio-cells = <0x02>; + linux,phandle = <0x10>; + phandle = <0x10>; + }; + + eth_pins { + amlogic,setmask = <0x04 0x3000000>; + amlogic,clrmask = <0x03 0x300000>; + amlogic,pins = "GPIOZ_14\0GPIOZ_15"; + linux,phandle = <0x20>; + phandle = <0x20>; + }; + + jtag_apao_pin { + amlogic,clrmask = <0x06 0x7fe0000>; + amlogic,pins = "GPIOH_6\0GPIOH_7\0GPIOH_8\0GPIOH_9"; + linux,phandle = <0x0c>; + phandle = <0x0c>; + }; + + jtag_apee_pin { + amlogic,clrmask = <0x06 0x3c>; + amlogic,pins = "CARD_0\0CARD_1\0CARD_2\0CARD_3"; + linux,phandle = <0x0d>; + phandle = <0x0d>; + }; + + remote_pin { + amlogic,setmask = <0x10 0x01>; + amlogic,pins = "GPIOAO_7"; + linux,phandle = <0x19>; + phandle = <0x19>; + }; + + ao_uart { + amlogic,setmask = <0x10 0x1800>; + amlogic,pins = "GPIOAO_0\0GPIOAO_1"; + }; + + ao_b_uart { + amlogic,setmask = <0x10 0x1800000>; + amlogic,pins = "GPIOAO_4\0GPIOAO_5"; + linux,phandle = <0x5e>; + phandle = <0x5e>; + }; + + a_uart { + amlogic,setmask = <0x05 0xf0000>; + amlogic,clrmask = <0x05 0x3c0>; + amlogic,pins = "GPIOX_12\0GPIOX_13\0GPIOX_14\0GPIOX_15"; + linux,phandle = <0x5b>; + phandle = <0x5b>; + }; + + b_uart { + amlogic,setmask = <0x02 0x18000>; + amlogic,pins = "GPIODV_24\0GPIODV_25"; + linux,phandle = <0x5c>; + phandle = <0x5c>; + }; + + c_uart { + amlogic,setmask = <0x05 0x3000>; + amlogic,pins = "GPIOX_8\0GPIOX_9"; + linux,phandle = <0x5d>; + phandle = <0x5d>; + }; + + wifi_32k_pins { + amlogic,setmask = <0x05 0x8000>; + amlogic,pins = "GPIOX_16"; + linux,phandle = <0x26>; + phandle = <0x26>; + }; + + sd_clk_cmd_pins { + amlogic,setmask = <0x06 0x0c 0x10 0x1800>; + amlogic,pins = "CARD_2\0CARD_3"; + amlogic,enable-output = <0x01>; + amlogic,pullup = <0x01>; + amlogic,pullupen = <0x01>; + linux,phandle = <0x2b>; + phandle = <0x2b>; + }; + + sd_all_pins { + amlogic,setmask = <0x06 0x3f 0x10 0x1800>; + amlogic,clrmask = <0x06 0xfc0>; + amlogic,pins = "CARD_0\0CARD_1\0CARD_2\0CARD_3\0CARD_4\0CARD_5"; + amlogic,enable-output = <0x01>; + amlogic,pullup = <0x01>; + amlogic,pullupen = <0x01>; + linux,phandle = <0x2c>; + phandle = <0x2c>; + }; + + sd_clear_all_pin { + amlogic,setmask = <0x10 0x1800>; + amlogic,clrmask = <0x06 0x3f 0x06 0xfc0>; + amlogic,pins = "GPIOAO_0\0GPIOAO_1"; + amlogic,enable-output = <0x01>; + amlogic,pullup = <0x01>; + amlogic,pullupen = <0x01>; + linux,phandle = <0x34>; + phandle = <0x34>; + }; + + sd_1bit_pins { + amlogic,setmask = <0x06 0x1c 0x10 0x1800>; + amlogic,clrmask = <0x06 0xcc3>; + amlogic,pins = "CARD_1\0CARD_2\0CARD_3"; + amlogic,enable-output = <0x01>; + amlogic,pullup = <0x01>; + amlogic,pullupen = <0x01>; + linux,phandle = <0x2d>; + phandle = <0x2d>; + }; + + sd_clk_cmd_uart_pins { + amlogic,setmask = <0x06 0x30c>; + amlogic,clrmask = <0x06 0xcc3 0x10 0x1800>; + amlogic,pins = "CARD_2\0CARD_3"; + amlogic,enable-output = <0x01>; + amlogic,pullup = <0x01>; + amlogic,pullupen = <0x01>; + linux,phandle = <0x2e>; + phandle = <0x2e>; + }; + + sd_1bit_uart_pins { + amlogic,setmask = <0x06 0x31c>; + amlogic,clrmask = <0x06 0xcc3 0x10 0x1800>; + amlogic,pins = "CARD_1\0CARD_2\0CARD_3"; + amlogic,enable-output = <0x01>; + amlogic,pullup = <0x01>; + amlogic,pullupen = <0x01>; + linux,phandle = <0x2f>; + phandle = <0x2f>; + }; + + sd_to_ao_uart_pins { + amlogic,setmask = <0x10 0x1800>; + amlogic,clrmask = <0x06 0x300>; + amlogic,pins = "GPIOAO_0\0GPIOAO_1"; + amlogic,enable-output = <0x01>; + amlogic,pullup = <0x01>; + amlogic,pullupen = <0x01>; + linux,phandle = <0x30>; + phandle = <0x30>; + }; + + ao_to_sd_uart_pins { + amlogic,setmask = <0x06 0x300>; + amlogic,clrmask = <0x10 0x1800 0x06 0xcc3>; + amlogic,pins = "CARD_4\0CARD_5"; + amlogic,enable-output = <0x01>; + amlogic,pullup = <0x01>; + amlogic,pullupen = <0x01>; + linux,phandle = <0x31>; + phandle = <0x31>; + }; + + ao_to_sd_jtag_pins { + amlogic,setmask = <0x06 0x300>; + amlogic,clrmask = <0x06 0xcff 0x10 0x1800>; + amlogic,pins = "CARD_4\0CARD_5"; + amlogic,enable-output = <0x01>; + amlogic,pullup = <0x01>; + amlogic,pullupen = <0x01>; + linux,phandle = <0x32>; + phandle = <0x32>; + }; + + sd_to_ao_jtag_pins { + amlogic,setmask = <0x10 0x1800>; + amlogic,clrmask = <0x06 0xfc0>; + amlogic,pins = "GPIOAO_0\0GPIOAO_1"; + amlogic,enable-output = <0x01>; + amlogic,pullup = <0x01>; + amlogic,pullupen = <0x01>; + linux,phandle = <0x33>; + phandle = <0x33>; + }; + + emmc_conf_pull_up { + amlogic,pins = "BOOT_0\0BOOT_1\0BOOT_2\0BOOT_3\0BOOT_4\0BOOT_5\0BOOT_6\0BOOT_7\0BOOT_8\0BOOT_10"; + amlogic,pullup = <0x01>; + amlogic,pullupen = <0x01>; + linux,phandle = <0x28>; + phandle = <0x28>; + }; + + emmc_conf_pull_done { + amlogic,pins = "BOOT_15"; + amlogic,pullup = <0x00>; + amlogic,pullupen = <0x01>; + linux,phandle = <0x29>; + phandle = <0x29>; + }; + + emmc_clk_cmd_pins { + amlogic,setmask = <0x07 0x60000000>; + amlogic,clrmask = <0x07 0xe0>; + amlogic,pins = "BOOT_8\0BOOT_10"; + amlogic,enable-output = <0x01>; + amlogic,pullup = <0x01>; + amlogic,pullupen = <0x01>; + linux,phandle = <0x27>; + phandle = <0x27>; + }; + + emmc_all_pins { + amlogic,setmask = <0x07 0xf0000000>; + amlogic,clrmask = <0x07 0xe0>; + amlogic,pins = "BOOT_0\0BOOT_1\0BOOT_2\0BOOT_3\0BOOT_4\0BOOT_5\0BOOT_6\0BOOT_7\0BOOT_8\0BOOT_10\0BOOT_15"; + amlogic,enable-output = <0x01>; + linux,phandle = <0x2a>; + phandle = <0x2a>; + }; + + sdio_clk_cmd_pins { + amlogic,setmask = <0x05 0xc000000>; + amlogic,pins = "GPIOX_4\0GPIOX_5"; + amlogic,enable-output = <0x01>; + amlogic,pullup = <0x01>; + amlogic,pullupen = <0x01>; + linux,phandle = <0x35>; + phandle = <0x35>; + }; + + sdio_all_pins { + amlogic,setmask = <0x05 0xfc000000>; + amlogic,pins = "GPIOX_0\0GPIOX_1\0GPIOX_2\0GPIOX_3\0GPIOX_4\0GPIOX_5"; + amlogic,enable-output = <0x01>; + amlogic,pullup = <0x01>; + amlogic,pullupen = <0x01>; + linux,phandle = <0x36>; + phandle = <0x36>; + }; + + conf_nand_pulldown { + amlogic,pins = "BOOT_0\0BOOT_1\0BOOT_2\0BOOT_3\0BOOT_4\0BOOT_5\0BOOT_6\0BOOT_7\0BOOT_15"; + amlogic,pullup = <0x00>; + amlogic,pullupen = <0x01>; + linux,phandle = <0x37>; + phandle = <0x37>; + }; + + conf_nand_pullup { + amlogic,pins = "BOOT_8\0BOOT_10"; + amlogic,pullup = <0x01>; + amlogic,pullupen = <0x01>; + linux,phandle = <0x38>; + phandle = <0x38>; + }; + + all_nand_pins { + amlogic,setmask = <0x07 0x800000ff>; + amlogic,clrmask = <0x07 0x70ffbc00>; + amlogic,pins = "BOOT_0\0BOOT_1\0BOOT_2\0BOOT_3\0BOOT_4\0BOOT_5\0BOOT_6\0BOOT_7\0BOOT_8\0BOOT_9\0BOOT_10\0BOOT_11\0BOOT_12\0BOOT_13\0BOOT_14\0BOOT_15"; + amlogic,enable-output = <0x01>; + linux,phandle = <0x39>; + phandle = <0x39>; + }; + + nand_cs { + amlogic,setmask = <0x07 0xc0>; + amlogic,clrmask = <0x07 0x40040000>; + amlogic,pins = "BOOT_8\0BOOT_9"; + linux,phandle = <0x3a>; + phandle = <0x3a>; + }; + + hdmitx_hpd { + amlogic,setmask = <0x06 0x80000000>; + amlogic,pins = "GPIOH_0"; + linux,phandle = <0x57>; + phandle = <0x57>; + }; + + hdmitx_ddc { + amlogic,setmask = <0x06 0x30000000>; + amlogic,pins = "GPIOH_1\0GPIOH_2"; + linux,phandle = <0x58>; + phandle = <0x58>; + }; + + hdmitx_aocec { + amlogic,setmask = <0x10 0x8000>; + amlogic,clrmask = <0x10 0x24000 0x11 0x01>; + amlogic,pins = "GPIOAO_8"; + linux,phandle = <0x5a>; + phandle = <0x5a>; + }; + + hdmitx_eecec { + amlogic,setmask = <0x10 0x4000>; + amlogic,clrmask = <0x10 0x28000 0x11 0x01>; + amlogic,pins = "GPIOAO_8"; + }; + + a_i2c { + amlogic,setmask = <0x01 0xc000>; + amlogic,clrmask = <0x03 0x18 0x02 0x18000 0x02 0xc0 0x01 0x600000>; + amlogic,pins = "GPIODV_24\0GPIODV_25"; + linux,phandle = <0x0e>; + phandle = <0x0e>; + }; + + b_i2c { + amlogic,setmask = <0x01 0x3000>; + amlogic,clrmask = <0x02 0x6000 0x01 0x1c0000>; + amlogic,pins = "GPIODV_26\0GPIODV_27"; + linux,phandle = <0x0f>; + phandle = <0x0f>; + }; + + c_i2c { + amlogic,setmask = <0x01 0xc00>; + amlogic,clrmask = <0x02 0x1800 0x01 0x200 0x02 0x20>; + amlogic,pins = "GPIODV_28\0GPIODV_29"; + linux,phandle = <0x11>; + phandle = <0x11>; + }; + + d_i2c { + amlogic,setmask = <0x05 0x30>; + amlogic,clrmask = <0x05 0x300c03>; + amlogic,pins = "GPIOX_10\0GPIOX_11"; + linux,phandle = <0x12>; + phandle = <0x12>; + }; + + spicc_pins_z11z12z13 { + amlogic,setmask = <0x04 0x1c>; + amlogic,clrmask = <0x03 0x800 0x04 0x1c00>; + amlogic,pins = "GPIOZ_11\0GPIOZ_12\0GPIOZ_13"; + }; + + spicc_pulldown_z11z12z13 { + amlogic,pins = "GPIOZ_11\0GPIOZ_12\0GPIOZ_13"; + amlogic,pullup = <0x00>; + amlogic,pullupen = <0x01>; + }; + + spicc_pullup_z11z12z13 { + amlogic,pins = "GPIOZ_11\0GPIOZ_12\0GPIOZ_13"; + amlogic,pullup = <0x01>; + amlogic,pullupen = <0x01>; + }; + + spicc_pins_x8x9x11 { + amlogic,setmask = <0x05 0x0d>; + amlogic,clrmask = <0x05 0xd03430 0x06 0x0d>; + amlogic,pins = "GPIOX_8\0GPIOX_9\0GPIOX_11"; + }; + + spicc_pulldown_x8x9x11 { + amlogic,pins = "GPIOX_8\0GPIOX_9\0GPIOX_11"; + amlogic,pullup = <0x00>; + amlogic,pullupen = <0x01>; + }; + + spicc_pullup_x8x9x11 { + amlogic,pins = "GPIOX_8\0GPIOX_9\0GPIOX_11"; + amlogic,pullup = <0x01>; + amlogic,pullupen = <0x01>; + }; + + audio_pin { + amlogic,setmask = <0x06 0x7800000>; + amlogic,clrmask = <0x06 0x7e0000>; + amlogic,pins = "GPIOH_6\0GPIOH_7\0GPIOH_8\0GPIOH_9"; + linux,phandle = <0x63>; + phandle = <0x63>; + }; + + audio_pin1 { + amlogic,setmask = <0x06 0x10000000>; + amlogic,clrmask = <0x06 0x8000000>; + amlogic,pins = "GPIOH_4"; + linux,phandle = <0x62>; + phandle = <0x62>; + }; + + audio_btpcm_pins { + amlogic,setmask = <0x05 0xf00000>; + amlogic,clrmask = <0x05 0x3c33>; + amlogic,pins = "GPIOX_8\0GPIOX_9\0GPIOX_10\0GPIOX_11"; + linux,phandle = <0x61>; + phandle = <0x61>; + }; + + pwm_ao_a_pins { + amlogic,setmask = <0x10 0x400000>; + amlogic,clrmask = <0x10 0x280>; + amlogic,pins = "GPIOAO_3"; + linux,phandle = <0x1c>; + phandle = <0x1c>; + }; + }; + + cpu_version { + reg = <0x00 0xc8100220 0x00 0x04>; + }; + + meson_clk_msr { + compatible = "amlogic, gxl_measure"; + reg = <0x00 0xc110875c 0x00 0x04 0x00 0xc1108764 0x00 0x04>; + }; + + ddr_bandwidth { + compatible = "amlogic, ddr-bandwidth"; + status = "okay"; + reg = <0x00 0xc8838000 0x00 0x100 0x00 0xc8837000 0x00 0x100>; + interrupts = <0x00 0x34 0x01>; + interrupt-names = "ddr_bandwidth"; + }; + + dmc_monitor { + compatible = "amlogic, dmc_monitor"; + status = "okay"; + reg_base = <0xda838400>; + interrupts = <0x00 0x33 0x01>; + }; + + i2c@c1108500 { + compatible = "amlogic, meson-i2c"; + dev_name = "i2c-A"; + status = "disabled"; + reg = <0x00 0xc1108500 0x00 0x20>; + device_id = <0x01>; + pinctrl-names = "default"; + pinctrl-0 = <0x0e>; + #address-cells = <0x01>; + #size-cells = <0x00>; + use_pio = <0x00>; + master_i2c_speed = <0x493e0>; + clocks = <0x09 0x0a>; + clock-names = "clk_i2c"; + resets = <0x09 0x09>; + }; + + i2c@c11087c0 { + compatible = "amlogic, meson-i2c"; + dev_name = "i2c-B"; + status = "disabled"; + reg = <0x00 0xc11087c0 0x00 0x20>; + device_id = <0x02>; + pinctrl-names = "default"; + pinctrl-0 = <0x0f>; + #address-cells = <0x01>; + #size-cells = <0x00>; + use_pio = <0x00>; + master_i2c_speed = <0x493e0>; + clocks = <0x09 0x0a>; + clock-names = "clk_i2c"; + resets = <0x09 0x09>; + + ntag_i2c@55 { + compatible = "nxp,ntag_i2c"; + reg = <0x55>; + clock-frequency = <0x61a80>; + interrupt-gpios = <0x10 0x02 0x00>; + irq_fall = <0x01>; + irq_rise = <0x02>; + interrupts = <0x00 0x41 0x01 0x00 0x42 0x01>; + }; + + pn547@28 { + compatible = "nxp,pn547"; + reg = <0x28>; + clock-frequency = <0x61a80>; + interrupt-gpios = <0x10 0x06 0x00>; + enable-gpios = <0x10 0x05 0x00>; + switch-gpios = <0x10 0x09 0x00>; + gpioirq = <0x00>; + interrupts = <0x00 0x40 0x01>; + }; + }; + + i2c@c11087e0 { + compatible = "amlogic, meson-i2c"; + dev_name = "i2c-C"; + status = "disabled"; + reg = <0x00 0xc11087e0 0x00 0x20>; + device_id = <0x03>; + pinctrl-names = "default"; + pinctrl-0 = <0x11>; + #address-cells = <0x01>; + #size-cells = <0x00>; + use_pio = <0x00>; + master_i2c_speed = <0x493e0>; + clocks = <0x09 0x0a>; + clock-names = "clk_i2c"; + resets = <0x09 0x09>; + }; + + i2c@c1108d20 { + compatible = "amlogic, meson-i2c"; + dev_name = "i2c-D"; + status = "disabled"; + reg = <0x00 0xc1108d20 0x00 0x20>; + device_id = <0x04>; + pinctrl-names = "default"; + pinctrl-0 = <0x12>; + #address-cells = <0x01>; + #size-cells = <0x00>; + use_pio = <0x00>; + master_i2c_speed = <0x493e0>; + clocks = <0x09 0x0a>; + clock-names = "clk_i2c"; + resets = <0x09 0x09>; + }; + + efuse { + compatible = "amlogic, efuse"; + read_cmd = <0x82000030>; + write_cmd = <0x82000031>; + get_max_cmd = <0x82000033>; + key = <0x13>; + resets = <0x09 0x3e>; + reset-names = "efuse_clk"; + status = "okay"; + }; + + efusekey { + keynum = <0x04>; + key0 = <0x14>; + key1 = <0x15>; + key2 = <0x16>; + key3 = <0x17>; + linux,phandle = <0x13>; + phandle = <0x13>; + + key0 { + keyname = "mac"; + offset = <0x00>; + size = <0x06>; + linux,phandle = <0x14>; + phandle = <0x14>; + }; + + key1 { + keyname = "mac_bt"; + offset = <0x06>; + size = <0x06>; + linux,phandle = <0x15>; + phandle = <0x15>; + }; + + key2 { + keyname = "mac_wifi"; + offset = <0x0c>; + size = <0x06>; + linux,phandle = <0x16>; + phandle = <0x16>; + }; + + key3 { + keyname = "usid"; + offset = <0x12>; + size = <0x10>; + linux,phandle = <0x17>; + phandle = <0x17>; + }; + }; + + mhu@c883c400 { + compatible = "amlogic, meson_mhu"; + reg = <0x00 0xc883c400 0x00 0x4c 0x00 0xc8013000 0x00 0x800>; + interrupts = <0x00 0xd1 0x08 0x00 0xd2 0x08>; + #mbox-cells = <0x01>; + mbox-names = "cpu_to_scp_low\0cpu_to_scp_high"; + mboxes = <0x18 0x00 0x18 0x01>; + linux,phandle = <0x18>; + phandle = <0x18>; + }; + + scpi_clocks { + compatible = "arm,scpi-clks"; + + scpi_clocks@0 { + compatible = "arm,scpi-clk-indexed"; + #clock-cells = <0x01>; + clock-indices = <0x00>; + clock-output-names = "vcpu"; + linux,phandle = <0x0b>; + phandle = <0x0b>; + }; + }; + + meson_remote { + compatible = "amlogic, aml_remote"; + dev_name = "meson-remote"; + status = "ok"; + remote_ao_offset = <0x580>; + interrupts = <0x00 0xc4 0x01>; + pinctrl-names = "default"; + pinctrl-0 = <0x19>; + led_status_on = <0x00>; + led_pin = <0x1a 0x49 0x00>; + }; + + rng { + compatible = "amlogic,meson-rng"; + reg = <0x00 0xc8834000 0x00 0x04>; + }; + + audio_data { + compatible = "amlogic, audio_data"; + query_licence_cmd = <0x82000050>; + status = "okay"; + }; + + saradc { + compatible = "amlogic, saradc"; + status = "okay"; + interrupts = <0x00 0x09 0x01>; + interrupt-names = "saradc_int"; + clocks = <0x09 0x02>; + clock-names = "saradc_clk"; + resets = <0x09 0x56>; + reg = <0x00 0xc1108680 0x00 0x30 0x00 0xc883c3d8 0x00 0x08>; + }; + + defendkey { + compatible = "amlogic, defendkey"; + reg = <0x00 0xc8834500 0x00 0x04>; + mem_size = <0x00 0x100000>; + status = "okay"; + }; + + spicc { + compatible = "amlogic, spicc"; + status = "disabled"; + reg = <0x00 0xc1108d80 0x00 0x28>; + resets = <0x09 0x08>; + clocks = <0x09 0x0a>; + clock-names = "spicc_clk"; + interrupts = <0x00 0x51 0x01>; + device_id = <0x00>; + }; + + aliases { + serial0 = "/serial@c81004c0"; + serial1 = "/serial@c11084c0"; + serial2 = "/serial@c11084dc"; + serial3 = "/serial@c1108700"; + serial4 = "/serial@c81004e0"; + }; + + memory@00000000 { + device_type = "memory"; + linux,usable-memory = <0x00 0x100000 0x00 0x7f000000>; + }; + + reserved-memory { + #address-cells = <0x02>; + #size-cells = <0x02>; + ranges; + + linux,secmon { + compatible = "amlogic, aml_secmon_memory"; + reg = <0x00 0x10000000 0x00 0x200000>; + no-map; + linux,phandle = <0x0a>; + phandle = <0x0a>; + }; + + linux,secos { + status = "disabled"; + compatible = "amlogic, aml_secos_memory"; + reg = <0x00 0x5300000 0x00 0x2000000>; + no-map; + }; + + aml_pstore { + compatible = "amlogic, pstore"; + reg = <0x00 0x7300000 0x00 0x100000>; + no-map; + }; + + linux,secchk { + compatible = "shared-dma-pool"; + status = "disabled"; + reusable; + size = <0x00 0x2000000>; + alignment = <0x00 0x400000>; + linux,contiguous-region; + }; + + linux,meson-fb { + compatible = "shared-dma-pool"; + reusable; + size = <0x00 0x2400000>; + alignment = <0x00 0x40000>; + alloc-ranges = <0x00 0x3dc00000 0x00 0x2400000>; + linux,phandle = <0x1d>; + phandle = <0x1d>; + }; + + linux,di_cma { + compatible = "shared-dma-pool"; + reusable; + size = <0x00 0x2800000>; + alignment = <0x00 0x400000>; + linux,phandle = <0x25>; + phandle = <0x25>; + }; + + linux,ion-dev { + compatible = "amlogic, idev-mem"; + size = <0x00 0x1000>; + linux,phandle = <0x21>; + phandle = <0x21>; + }; + + linux,vdin1_cma { + compatible = "shared-dma-pool"; + linux,phandle = <0x06>; + reusable; + size = <0x00 0x1400000>; + alignment = <0x00 0x400000>; + }; + + linux,ppmgr { + compatible = "shared-dma-pool"; + size = <0x00 0x00>; + linux,phandle = <0x23>; + phandle = <0x23>; + }; + + linux,amlvideo2 { + compatible = "shared-dma-pool"; + reusable; + size = <0x00 0x00>; + alignment = <0x00 0x400000>; + linux,phandle = <0x24>; + phandle = <0x24>; + }; + + linux,hevc_cma { + compatible = "shared-dma-pool"; + linux,phandle = <0x01>; + reusable; + size = <0x00 0x00>; + alignment = <0x00 0x400000>; + linux,contiguous-region; + }; + + linux,codec_mm_cma { + compatible = "shared-dma-pool"; + reusable; + size = <0x00 0x1f400000>; + alignment = <0x00 0x400000>; + linux,contiguous-region; + linux,phandle = <0x1e>; + phandle = <0x1e>; + }; + + linux,picdec { + compatible = "shared-dma-pool"; + reusable; + size = <0x00 0x00>; + alignment = <0x00 0x00>; + linux,contiguous-region; + linux,phandle = <0x22>; + phandle = <0x22>; + }; + + linux,codec_mm_reserved { + compatible = "amlogic, codec-mm-reserved"; + size = <0x00 0x1000>; + alignment = <0x00 0x100000>; + linux,phandle = <0x1f>; + phandle = <0x1f>; + }; + }; + + meson-pwm { + compatible = "amlogic, meson-pwm"; + status = "disabled"; + #pwm-cells = <0x02>; + pwm-outputs = <0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07>; + pwm-outputs-new = <0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b 0x0c 0x0d 0x0e 0x0f>; + reg = <0x00 0xc1108550 0x00 0x30 0x00 0xc8100550 0x00 0x10>; + clocks = <0x09 0x02 0x09 0x05 0x09 0x09 0x09 0x08>; + clock-names = "xtal\0vid_pll_clk\0fclk_div4\0fclk_div3"; + clock-select = <0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00>; + clock-select-new = <0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00>; + linux,phandle = <0x1b>; + phandle = <0x1b>; + }; + + pwmled { + compatible = "amlogic, pwmled"; + dev_name = "pwmled"; + status = "disabled"; + pwms = <0x1b 0x06 0x989680>; + polarity = <0x01>; + max_brightness = <0xff>; + pinctrl-names = "pwm_ao_a_pins"; + pinctrl-0 = <0x1c>; + expires = <0x190>; + expires_count = <0x08>; + }; + + meson-vout { + compatible = "amlogic, meson-vout"; + dev_name = "meson-vout"; + status = "okay"; + }; + + meson-fb { + compatible = "amlogic, meson-fb"; + memory-region = <0x1d>; + dev_name = "meson-fb"; + status = "okay"; + interrupts = <0x00 0x03 0x01 0x00 0x59 0x01>; + interrupt-names = "viu-vsync\0rdma"; + mem_size = <0x800000 0x1800000 0x100000>; + display_mode_default = "1080p60hz"; + scale_mode = <0x01>; + display_size_default = <0x780 0x438 0x780 0xca8 0x20>; + logo_addr = "0x3dc00000"; + }; + + ge2d { + compatible = "amlogic, ge2d"; + dev_name = "ge2d"; + status = "okay"; + interrupts = <0x00 0x96 0x01>; + interrupt-names = "ge2d"; + clocks = <0x09 0x17 0x09 0x19>; + clock-names = "clk_vapb_0\0clk_ge2d"; + resets = <0x09 0x34>; + reset-names = "ge2d"; + }; + + codec_io { + compatible = "amlogic, codec_io"; + #address-cells = <0x02>; + #size-cells = <0x02>; + ranges; + + io_cbus_base { + reg = <0x00 0xc1100000 0x00 0x100000>; + }; + + io_dos_base { + reg = <0x00 0xc8820000 0x00 0x10000>; + }; + + io_hiubus_base { + reg = <0x00 0xc883c000 0x00 0x2000>; + }; + + io_aobus_base { + reg = <0x00 0xc8100000 0x00 0x100000>; + }; + + io_vcbus_base { + reg = <0x00 0xd0100000 0x00 0x40000>; + }; + + io_dmc_base { + reg = <0x00 0xc8838000 0x00 0x400>; + }; + }; + + codec_mm { + compatible = "amlogic, codec, mm"; + memory-region = <0x1e 0x1f>; + dev_name = "codec_mm"; + status = "okay"; + }; + + ethernet@0xc9410000 { + compatible = "amlogic, gxbb-rmii-dwmac"; + reg = <0x00 0xc9410000 0x00 0x10000 0x00 0xc8834540 0x00 0x08 0x00 0xc8834558 0x00 0x0c>; + interrupts = <0x00 0x08 0x01 0x00 0x09 0x01>; + phy-mode = "rmii"; + pinctrl-names = "eth_pins"; + pinctrl-0 = <0x20>; + mc_val = <0x1800>; + resets = <0x09 0x23>; + reset-names = "ethpower"; + interrupt-names = "macirq\0phyirq"; + clocks = <0x09 0x0a>; + clock-names = "ethclk81"; + internal_phy = <0x01>; + }; + + mesonstream { + compatible = "amlogic, codec, streambuf"; + dev_name = "mesonstream"; + status = "okay"; + resets = <0x09 0x39 0x09 0x59 0x09 0x24 0x09 0x01>; + reset-names = "parser_top\0vpu_intr\0demux\0vdec"; + }; + + amvideocap { + compatible = "amlogic, amvideocap"; + dev_name = "amvideocap.0"; + status = "okay"; + max_size = <0x08>; + }; + + ion_dev { + compatible = "amlogic, ion_dev"; + memory-region = <0x21>; + }; + + vdec { + compatible = "amlogic, vdec"; + dev_name = "vdec.0"; + status = "okay"; + interrupts = <0x00 0x03 0x01 0x00 0x17 0x01 0x00 0x20 0x01 0x00 0x2b 0x01 0x00 0x2c 0x01 0x00 0x2d 0x01>; + interrupt-names = "vsync\0demux\0parser\0mailbox_0\0mailbox_1\0mailbox_2"; + }; + + picdec { + compatible = "amlogic, picdec"; + memory-region = <0x22>; + dev_name = "picdec"; + status = "okay"; + }; + + ppmgr { + compatible = "amlogic, ppmgr"; + memory-region = <0x23>; + dev_name = "ppmgr"; + status = "okay"; + }; + + amlvideo2 { + compatible = "amlogic, amlvideo2"; + memory-region = <0x24>; + dev_name = "amlvideo2"; + status = "okay"; + }; + + deinterlace { + compatible = "amlogic, deinterlace"; + status = "okay"; + flag_cma = <0x02>; + memory-region = <0x25>; + interrupts = <0x00 0x2e 0x01 0x00 0x06 0x01>; + interrupt-names = "de_irq\0timerc"; + buffer-size = <0x3e2c40>; + nr10bit-surpport = <0x01>; + hw-version = <0x02>; + }; + + vdin0 { + compatible = "amlogic, vdin"; + dev_name = "vdin0"; + status = "okay"; + reserve-iomap = "true"; + flag_cma = <0x01>; + cma_size = <0x18>; + interrupts = <0x00 0x53 0x01>; + rdma-irq = <0x02>; + clocks = <0x09 0x11 0x09 0x29>; + clock-names = "fclk_div5\0cts_vdin_meas_clk"; + vdin_id = <0x00>; + tv_bit_mode = <0x15>; + }; + + vdin1 { + compatible = "amlogic, vdin"; + memory-region = <0x06>; + dev_name = "vdin1"; + status = "okay"; + reserve-iomap = "true"; + flag_cma = <0x00>; + interrupts = <0x00 0x55 0x01>; + rdma-irq = <0x04>; + clocks = <0x09 0x11 0x09 0x29>; + clock-names = "fclk_div5\0cts_vdin_meas_clk"; + vdin_id = <0x01>; + }; + + amvdec_656in0 { + compatible = "amlogic, amvdec_656in"; + dev_name = "amvdec_656in0"; + status = "ok"; + reg = <0x00 0xd0048000 0x00 0x7c>; + clocks = <0x09 0x07 0x09 0x26>; + clock-names = "fclk_div2\0cts_bt656_clk0"; + bt656_id = <0x00>; + }; + + amvdec_656in1 { + compatible = "amlogic, amvdec_656in"; + dev_name = "amvdec_656in1"; + status = "ok"; + reg = <0x00 0xd0050000 0x00 0x7c>; + clocks = <0x09 0x07 0x09 0x27>; + clock-names = "fclk_div2\0cts_bt656_clk1"; + bt656_id = <0x01>; + }; + + amlvecm { + compatible = "amlogic, vecm"; + dev_name = "aml_vecm"; + status = "okay"; + gamma_en = <0x00>; + wb_en = <0x00>; + cm_en = <0x00>; + }; + + amvenc_avc { + compatible = "amlogic, amvenc_avc"; + dev_name = "amvenc_avc"; + status = "okay"; + interrupts = <0x00 0x2d 0x01>; + interrupt-names = "mailbox_2"; + }; + + hevc_enc { + compatible = "cnm, HevcEnc"; + memory-region = <0x01>; + dev_name = "HevcEnc"; + status = "okay"; + interrupts = <0x00 0xbb 0x01>; + interrupt-names = "wave420l_irq"; + #address-cells = <0x02>; + #size-cells = <0x02>; + ranges; + + io_reg_base { + reg = <0x00 0xc8810000 0x00 0x4000>; + }; + }; + + vpu { + compatible = "amlogic, vpu"; + dev_name = "vpu"; + status = "ok"; + clk_level = <0x07>; + }; + + bt-dev { + compatible = "amlogic, bt-dev"; + dev_name = "bt-dev"; + status = "okay"; + gpio_reset = <0x1a 0x60 0x00>; + }; + + rtc { + compatible = "amlogic, aml_vrtc"; + alarm_reg_addr = <0xc81000a8>; + timer_e_addr = <0xc1109988>; + init_date = "2015/01/01"; + status = "okay"; + }; + + wifi { + compatible = "amlogic, aml_wifi"; + dev_name = "aml_wifi"; + status = "okay"; + interrupt_pin = <0x1a 0x61 0x00>; + interrupts = <0x00 0x44 0x04>; + irq_trigger_type = "GPIO_IRQ_HIGH"; + power_on_pin = <0x1a 0x55 0x00>; + dhd_static_buf; + pinctrl-names = "wifi_32k_pins"; + pinctrl-0 = <0x26>; + }; + + emmc { + compatible = "amlogic, aml_sd_emmc"; + dev_name = "aml_newsd.0"; + status = "okay"; + reg = <0x00 0xd0074000 0x00 0x2000>; + interrupts = <0x00 0xda 0x01>; + pinctrl-names = "emmc_clk_cmd_pins\0emmc_all_pins"; + pinctrl-0 = <0x27>; + pinctrl-1 = <0x28 0x29 0x2a>; + + emmc { + status = "disabled"; + pinname = "emmc"; + ocr_avail = <0x200080>; + caps = "MMC_CAP_8_BIT_DATA\0MMC_CAP_MMC_HIGHSPEED\0MMC_CAP_SD_HIGHSPEED\0MMC_CAP_NONREMOVABLE\0MMC_CAP_1_8V_DDR\0MMC_CAP_HW_RESET\0MMC_CAP_ERASE\0MMC_CAP_CMD23"; + f_min = <0x493e0>; + f_max = <0x2faf080>; + tx_phase = <0x00>; + max_req_size = <0x20000>; + gpio_dat3 = <0x1a 0x1d 0x00>; + hw_reset = <0x1a 0x23 0x00>; + card_type = <0x01>; + }; + }; + + sd { + compatible = "amlogic, aml_sd_emmc"; + dev_name = "aml_newsd.0"; + status = "okay"; + reg = <0x00 0xd0072000 0x00 0x2000>; + interrupts = <0x00 0xd9 0x01 0x00 0x43 0x01 0x00 0x45 0x01>; + pinctrl-names = "sd_clk_cmd_pins\0sd_all_pins\0sd_1bit_pins\0sd_clk_cmd_uart_pins\0sd_1bit_uart_pins\0sd_to_ao_uart_pins\0ao_to_sd_uart_pins\0ao_to_sd_jtag_pins\0sd_to_ao_jtag_pins\0sd_clear_all_pin"; + pinctrl-0 = <0x2b>; + pinctrl-1 = <0x2c>; + pinctrl-2 = <0x2d>; + pinctrl-3 = <0x2e>; + pinctrl-4 = <0x2f>; + pinctrl-5 = <0x30>; + pinctrl-6 = <0x31>; + pinctrl-7 = <0x32>; + pinctrl-8 = <0x33>; + pinctrl-9 = <0x34>; + + sd { + status = "okay"; + pinname = "sd"; + ocr_avail = <0x200080>; + caps = "MMC_CAP_4_BIT_DATA\0MMC_CAP_MMC_HIGHSPEED\0MMC_CAP_SD_HIGHSPEED"; + f_min = <0x61a80>; + f_max = <0x5f5e100>; + max_req_size = <0x20000>; + gpio_card5 = <0x1a 0x2f 0x00>; + gpio_dat3 = <0x1a 0x2e 0x00>; + gpio_card3 = <0x1a 0x2d 0x00>; + gpio_card2 = <0x1a 0x2c 0x00>; + gpio_card1 = <0x1a 0x2b 0x00>; + jtag_pin = <0x1a 0x2a 0x00>; + gpio_cd = <0x1a 0x30 0x00>; + irq_in = <0x03>; + irq_out = <0x05>; + card_type = <0x05>; + }; + }; + + sdio { + compatible = "amlogic, aml_sd_emmc"; + dev_name = "aml_newsd.0"; + status = "okay"; + reg = <0x00 0xd0070000 0x00 0x2000>; + interrupts = <0x00 0xd8 0x04>; + pinctrl-names = "sdio_clk_cmd_pins\0sdio_all_pins"; + pinctrl-0 = <0x35>; + pinctrl-1 = <0x36>; + + sdio { + status = "okay"; + pinname = "sdio"; + ocr_avail = <0x200080>; + caps = "MMC_CAP_4_BIT_DATA\0MMC_CAP_MMC_HIGHSPEED\0MMC_CAP_SD_HIGHSPEED\0MMC_CAP_NONREMOVABLE\0MMC_CAP_UHS_SDR12\0MMC_CAP_UHS_SDR25\0MMC_CAP_UHS_SDR50\0MMC_CAP_UHS_SDR104\0MMC_PM_KEEP_POWER\0MMC_CAP_SDIO_IRQ"; + f_min = <0x61a80>; + f_max = <0x9f437c0>; + tx_delay = <0x06>; + max_req_size = <0x20000>; + card_type = <0x03>; + }; + }; + + nand { + compatible = "amlogic, aml_nand"; + dev_name = "nand"; + status = "okay"; + reg = <0x00 0xd0074800 0x00 0x200>; + interrupts = <0x00 0x22 0x01>; + pinctrl-names = "nand_rb_mod\0nand_norb_mod\0nand_cs_pins_only"; + pinctrl-0 = <0x37 0x38 0x39>; + pinctrl-1 = <0x37 0x38 0x39>; + pinctrl-2 = <0x3a>; + device_id = <0x00>; + plat-names = "nandnormal"; + plat-num = <0x01>; + plat-part-0 = <0x3b>; + + normal { + enable_pad = "ce0\0ce1\0ce2\0ce3"; + busy_pad = "rb0"; + linux,phandle = <0x3b>; + phandle = <0x3b>; + }; + }; + + aml_nftl { + compatible = "amlogic, nftl"; + }; + + partitions { + parts = <0x0e>; + part-0 = <0x3c>; + part-1 = <0x3d>; + part-2 = <0x3e>; + part-3 = <0x3f>; + part-4 = <0x40>; + part-5 = <0x41>; + part-6 = <0x42>; + part-7 = <0x43>; + part-8 = <0x44>; + part-9 = <0x45>; + part-10 = <0x46>; + part-11 = <0x47>; + part-12 = <0x48>; + part-13 = <0x49>; + + logo { + pname = "logo"; + size = <0x00 0x2000000>; + mask = <0x01>; + linux,phandle = <0x3c>; + phandle = <0x3c>; + }; + + recovery { + pname = "recovery"; + size = <0x00 0x2000000>; + mask = <0x01>; + linux,phandle = <0x3d>; + phandle = <0x3d>; + }; + + rsv { + pname = "rsv"; + size = <0x00 0x800000>; + mask = <0x01>; + linux,phandle = <0x3e>; + phandle = <0x3e>; + }; + + tee { + pname = "tee"; + size = <0x00 0x800000>; + mask = <0x01>; + linux,phandle = <0x3f>; + phandle = <0x3f>; + }; + + crypt { + pname = "crypt"; + size = <0x00 0x2000000>; + mask = <0x01>; + linux,phandle = <0x40>; + phandle = <0x40>; + }; + + misc { + pname = "misc"; + size = <0x00 0x2000000>; + mask = <0x01>; + linux,phandle = <0x41>; + phandle = <0x41>; + }; + + BootFiles { + pname = "BootFiles"; + size = <0x00 0x20000000>; + mask = <0x01>; + linux,phandle = <0x42>; + phandle = <0x42>; + }; + + boot { + pname = "boot"; + size = <0x00 0x2000000>; + mask = <0x01>; + linux,phandle = <0x43>; + phandle = <0x43>; + }; + + system { + pname = "system"; + size = <0x00 0x32000000>; + mask = <0x01>; + linux,phandle = <0x44>; + phandle = <0x44>; + }; + + cache { + pname = "cache"; + size = <0x00 0x20000000>; + mask = <0x02>; + linux,phandle = <0x45>; + phandle = <0x45>; + }; + + ghost { + pname = "ghost"; + size = <0x00 0x32000000>; + mask = <0x02>; + linux,phandle = <0x46>; + phandle = <0x46>; + }; + + info { + pname = "info"; + size = <0x00 0x4000000>; + mask = <0x02>; + linux,phandle = <0x47>; + phandle = <0x47>; + }; + + params { + pname = "params"; + size = <0x00 0x4000000>; + mask = <0x02>; + linux,phandle = <0x48>; + phandle = <0x48>; + }; + + data { + pname = "data"; + size = <0xffffffff 0xffffffff>; + mask = <0x04>; + linux,phandle = <0x49>; + phandle = <0x49>; + }; + }; + + unifykey { + compatible = "amlogic, unifykey"; + status = "ok"; + unifykey-num = <0x0d>; + unifykey-index-0 = <0x4a>; + unifykey-index-1 = <0x4b>; + unifykey-index-2 = <0x4c>; + unifykey-index-3 = <0x4d>; + unifykey-index-4 = <0x4e>; + unifykey-index-5 = <0x4f>; + unifykey-index-6 = <0x50>; + unifykey-index-7 = <0x51>; + unifykey-index-8 = <0x52>; + unifykey-index-9 = <0x53>; + unifykey-index-10 = <0x54>; + unifykey-index-11 = <0x55>; + unifykey-index-12 = <0x56>; + + key_0 { + key-name = "usid"; + key-device = "normal"; + key-permit = "read\0write\0del"; + linux,phandle = <0x4a>; + phandle = <0x4a>; + }; + + key_1 { + key-name = "mac"; + key-device = "normal"; + key-permit = "read\0write\0del"; + linux,phandle = <0x4b>; + phandle = <0x4b>; + }; + + key_2 { + key-name = "hdcp"; + key-device = "secure"; + key-type = "sha1"; + key-permit = "read\0write\0del"; + linux,phandle = <0x4c>; + phandle = <0x4c>; + }; + + key_3 { + key-name = "secure_boot_set"; + key-device = "efuse"; + key-permit = "write"; + linux,phandle = <0x4d>; + phandle = <0x4d>; + }; + + key_4 { + key-name = "mac_bt"; + key-device = "normal"; + key-permit = "read\0write\0del"; + key-type = "mac"; + linux,phandle = <0x4e>; + phandle = <0x4e>; + }; + + key_5 { + key-name = "mac_wifi"; + key-device = "normal"; + key-permit = "read\0write\0del"; + key-type = "mac"; + linux,phandle = <0x4f>; + phandle = <0x4f>; + }; + + key_6 { + key-name = "hdcp2_tx"; + key-device = "normal"; + key-permit = "read\0write\0del"; + linux,phandle = <0x50>; + phandle = <0x50>; + }; + + key_7 { + key-name = "hdcp2_rx"; + key-device = "normal"; + key-permit = "read\0write\0del"; + linux,phandle = <0x51>; + phandle = <0x51>; + }; + + key_8 { + key-name = "widevinekeybox"; + key-device = "secure"; + key-type = "sha1"; + key-permit = "read\0write\0del"; + linux,phandle = <0x52>; + phandle = <0x52>; + }; + + key_9 { + key-name = "deviceid"; + key-device = "normal"; + key-permit = "read\0write\0del"; + linux,phandle = <0x53>; + phandle = <0x53>; + }; + + key_10 { + key-name = "hdcp22_fw_private"; + key-device = "secure"; + key-permit = "read\0write\0del"; + linux,phandle = <0x54>; + phandle = <0x54>; + }; + + key_11 { + key-name = "telecomkeybox"; + key-device = "secure"; + key-type = "raw"; + key-permit = "read\0write\0del"; + linux,phandle = <0x55>; + phandle = <0x55>; + }; + + key_12 { + key-name = "stbid"; + key-device = "normal"; + key-permit = "read\0write\0del"; + linux,phandle = <0x56>; + phandle = <0x56>; + }; + }; + + tfsec { + compatible = "amlogic, tfsec"; + tap_get_sn = <0xb000ff01>; + tap_decrypt_cloud_challenge = <0xb000ff02>; + tap_decrypt_terminal_challenge = <0xb000ff03>; + tap_burn_in = <0xb000ff04>; + tap_burn_sn = <0xb000ff05>; + tap_burn_ci = <0xb000ff06>; + tap_burn_mac = <0xb000ff07>; + tap_get_mac = <0xb000ff08>; + tap_get_ci = <0xb000ff09>; + tap_query_in = <0xb000ff0a>; + }; + + amhdmitx { + compatible = "amlogic, amhdmitx"; + dev_name = "amhdmitx"; + status = "okay"; + pinctrl-names = "hdmitx_hpd\0hdmitx_ddc"; + pinctrl-0 = <0x57>; + pinctrl-1 = <0x58>; + vend-data = <0x59>; + interrupts = <0x00 0x39 0x01>; + interrupt-names = "hdmitx_hpd"; + clocks = <0x09 0x0b 0x09 0x0c 0x09 0x0d 0x09 0x0e 0x09 0x0f 0x09 0x16>; + clock-names = "hdmitx_clk_sys\0hdmitx_clk_encp\0hdmitx_clk_enci\0hdmitx_clk_pixel\0hdmitx_clk_phy\0hdmitx_clk_vid"; + gpio_i2c_en = <0x01>; + #address-cells = <0x02>; + #size-cells = <0x02>; + ranges; + + vend_data { + compatible = "amlogic, amlogic-cec"; + status = "okay"; + vendor_name = "Amlogic"; + vendor_id = <0x00>; + product_desc = "GXBB Mbox"; + cec_osd_string = "MBox"; + interrupts = <0x00 0xc7 0x01>; + interrupt-names = "hdmitx_cec"; + pinctrl-names = "hdmitx_aocec"; + pinctrl-0 = <0x5a>; + reg = <0x00 0xc810023c 0x00 0x04 0x00 0xc8100000 0x00 0x200>; + linux,phandle = <0x59>; + phandle = <0x59>; + }; + }; + + tvout { + compatible = "amlogic, tvout"; + dev_name = "tvout"; + status = "okay"; + }; + + i2c_gpio { + compatible = "i2c-gpio"; + status = "okay"; + dev_name = "i2c-gpio"; + i2c-gpio,delay-us = <0x0a>; + gpios = <0x1a 0x11 0x00 0x1a 0x12 0x00>; + #address-cells = <0x02>; + #size-cells = <0x02>; + i2c-gpio,timeout-ms = <0x0a>; + + i2c_gpio_edid { + compatible = "i2c-gpio-edid"; + reg = <0x50 0x00 0x00 0x00>; + }; + }; + + serial@c81004c0 { + compatible = "amlogic, meson-uart"; + reg = <0x00 0xc81004c0 0x00 0x18>; + interrupts = <0x00 0xc1 0x01>; + status = "okay"; + clocks = <0x09 0x02>; + clock-names = "clk_uart"; + xtal_tick_en = <0x01>; + fifosize = <0x40>; + pinctrl-names = "default"; + support-sysrq = <0x00>; + }; + + serial@c11084c0 { + compatible = "amlogic, meson-uart"; + reg = <0x00 0xc11084c0 0x00 0x18>; + interrupts = <0x00 0x1a 0x01>; + status = "okay"; + clocks = <0x09 0x02>; + clock-names = "clk_uart"; + fifosize = <0x80>; + pinctrl-names = "default"; + pinctrl-0 = <0x5b>; + resets = <0x09 0x0d>; + }; + + serial@c11084dc { + compatible = "amlogic, meson-uart"; + reg = <0x00 0xc11084dc 0x00 0x18>; + interrupts = <0x00 0x4b 0x01>; + status = "disable"; + clocks = <0x09 0x02>; + clock-names = "clk_uart"; + fifosize = <0x40>; + pinctrl-names = "default"; + pinctrl-0 = <0x5c>; + resets = <0x09 0x30>; + }; + + serial@c1108700 { + compatible = "amlogic, meson-uart"; + reg = <0x00 0xc1108700 0x00 0x18>; + interrupts = <0x00 0x5d 0x01>; + status = "disable"; + clocks = <0x09 0x02>; + clock-names = "clk_uart"; + fifosize = <0x40>; + pinctrl-names = "default"; + pinctrl-0 = <0x5d>; + resets = <0x09 0x4f>; + }; + + serial@c81004e0 { + compatible = "amlogic, meson-uart"; + reg = <0x00 0xc81004e0 0x00 0x18>; + interrupts = <0x00 0xc5 0x01>; + status = "disable"; + clocks = <0x09 0x02>; + clock-names = "clk_uart"; + fifosize = <0x40>; + pinctrl-names = "default"; + pinctrl-0 = <0x5e>; + }; + + canvas { + compatible = "amlogic, meson, canvas"; + dev_name = "amlogic-canvas"; + status = "ok"; + reg = <0x00 0xc8838000 0x00 0x400>; + }; + + rdma { + compatible = "amlogic, meson, rdma"; + dev_name = "amlogic-rdma"; + status = "ok"; + interrupts = <0x00 0x59 0x01>; + interrupt-names = "rdma"; + }; + + dwc3@c9000000 { + compatible = "synopsys, dwc3"; + reg = <0x00 0xc9000000 0x00 0x100000>; + interrupts = <0x00 0x1e 0x04>; + usb-phy = <0x5f 0x60>; + cpu-type = "gxl"; + clock-src = "usb3.0"; + }; + + usb2phy@d0078000 { + compatible = "amlogic, amlogic-new-usb2"; + portnum = <0x02>; + reg = <0x00 0xd0078000 0x00 0x80>; + linux,phandle = <0x5f>; + phandle = <0x5f>; + }; + + usb3phy@d0078080 { + compatible = "amlogic, amlogic-new-usb3"; + portnum = <0x00>; + reg = <0x00 0xd0078080 0x00 0x20>; + linux,phandle = <0x60>; + phandle = <0x60>; + }; + + dwc2_a { + compatible = "amlogic,dwc2"; + device_name = "dwc2_a"; + reg = <0x00 0xc9100000 0x00 0x40000>; + status = "okay"; + interrupts = <0x00 0x1f 0x04>; + pl-periph-id = <0x00>; + clock-src = "usb0"; + port-id = <0x00>; + port-type = <0x02>; + port-speed = <0x00>; + port-config = <0x00>; + port-dma = <0x00>; + port-id-mode = <0x00>; + usb-fifo = <0x2d8>; + cpu-type = "gxl"; + controller-type = <0x01>; + phy-reg = <0xd0078000>; + phy-reg-size = <0xa0>; + resets = <0x09 0x3a 0x09 0x48 0x09 0x36>; + reset-names = "usb_general\0usb1\0usb1_to_ddr"; + }; + + I2S { + #sound-dai-cells = <0x00>; + resets = <0x09 0x26 0x09 0x12 0x09 0x28 0x09 0x29 0x09 0x2a 0x09 0x2b 0x09 0x2c 0x09 0x2d 0x09 0x2f 0x09 0x8e 0x09 0x22>; + reset-names = "top_glue\0aud_buf\0i2s_out\0amclk_measure\0aififo2\0aud_mixer\0mixer_reg\0adc\0top_level\0aoclk\0aud_in"; + clocks = <0x09 0x1f 0x09 0x22>; + clock-names = "mpll0\0mclk"; + compatible = "amlogic, aml-i2s-dai"; + linux,phandle = <0x6c>; + phandle = <0x6c>; + }; + + SPDIF { + #sound-dai-cells = <0x00>; + compatible = "amlogic, aml-spdif-dai"; + resets = <0x09 0x27 0x09 0x90>; + reset-names = "iec958\0iec958_amclk"; + clocks = <0x09 0x20 0x09 0x24 0x09 0x22 0x09 0x25 0x09 0x0a>; + clock-names = "mpll1\0i958\0mclk\0spdif\0clk_81"; + linux,phandle = <0x6d>; + phandle = <0x6d>; + }; + + PCM { + #sound-dai-cells = <0x00>; + compatible = "amlogic, aml-pcm-dai"; + pinctrl-names = "aml_audio_btpcm"; + pinctrl-0 = <0x61>; + linux,phandle = <0x6e>; + phandle = <0x6e>; + }; + + i2s_platform { + compatible = "amlogic, aml-i2s"; + interrupts = <0x00 0x30 0x01 0x00 0x1d 0x01>; + linux,phandle = <0x6a>; + phandle = <0x6a>; + }; + + pcm_platform { + compatible = "amlogic, aml-pcm"; + linux,phandle = <0x6b>; + phandle = <0x6b>; + }; + + spdif_codec { + #sound-dai-cells = <0x00>; + compatible = "amlogic, aml-spdif-codec"; + pinctrl-names = "aml_audio_spdif"; + pinctrl-0 = <0x62>; + linux,phandle = <0x70>; + phandle = <0x70>; + }; + + pcm_codec { + #sound-dai-cells = <0x00>; + compatible = "amlogic, pcm2BT-codec"; + linux,phandle = <0x71>; + phandle = <0x71>; + }; + + dummy { + #sound-dai-cells = <0x00>; + compatible = "amlogic, aml_dummy_codec"; + status = "disable"; + }; + + t9015 { + #sound-dai-cells = <0x00>; + compatible = "amlogic, aml_codec_T9015"; + reg = <0x00 0xc8832000 0x00 0x14>; + status = "okay"; + linux,phandle = <0x6f>; + phandle = <0x6f>; + }; + + aml_m8_snd { + compatible = "aml, aml_snd_m8"; + status = "okay"; + aml-sound-card,format = "i2s"; + aml_sound_card,name = "AML-M8AUDIO"; + aml,audio-routing = "Ext Spk\0LOUTL\0Ext Spk\0LOUTR"; + mute_gpio-gpios = <0x1a 0x15 0x00>; + mute_inv; + hp_disable; + sleep_time = <0x12c>; + hp_paraments = <0x320 0x12c 0x00 0x05 0x01>; + pinctrl-names = "aml_snd_m8"; + pinctrl-0 = <0x63>; + cpu_list = <0x64 0x65 0x66>; + codec_list = <0x67 0x68 0x69>; + plat_list = <0x6a 0x6a 0x6b>; + + cpudai0 { + sound-dai = <0x6c>; + linux,phandle = <0x64>; + phandle = <0x64>; + }; + + cpudai1 { + sound-dai = <0x6d>; + linux,phandle = <0x65>; + phandle = <0x65>; + }; + + cpudai2 { + sound-dai = <0x6e>; + linux,phandle = <0x66>; + phandle = <0x66>; + }; + + codec0 { + sound-dai = <0x6f>; + linux,phandle = <0x67>; + phandle = <0x67>; + }; + + codec1 { + sound-dai = <0x70>; + linux,phandle = <0x68>; + phandle = <0x68>; + }; + + codec2 { + sound-dai = <0x71>; + linux,phandle = <0x69>; + phandle = <0x69>; + }; + }; + + ledlight { + compatible = "amlogic, ledlight"; + dev_name = "ledlight"; + status = "okay"; + power_gpio_0 = <0x72>; + ir_gpio_0 = <0x73>; + + gpio_rg { + led_name = "power_led"; + led_gpio = <0x1a 0x49 0x00>; + led_active = <0x01>; + led_type = "R&G"; + linux,phandle = <0x72>; + phandle = <0x72>; + }; + + gpio_b { + led_name = "ir_led"; + led_gpio = <0x1a 0x49 0x00>; + led_active = <0x00>; + led_type = "B"; + linux,phandle = <0x73>; + phandle = <0x73>; + }; + }; + + amlogic_thermals { + compatible = "amlogic, amlogic-thermal"; + #thermal-cells = <0x07>; + dev_name = "aml_thermal"; + status = "okay"; + trip_point = <0x46 0x177001 0x177001 0x1ff 0x1ff 0x03 0x02 0x50 0x13c681 0x13c681 0x1b3 0x1b3 0x02 0x01 0x5a 0xfbf41 0xfbf41 0x148 0x148 0x02 0x01 0x104 0xffffffff 0xffffffff 0xffffffff 0xffffffff 0xffffffff 0xffffffff>; + cpu_cali_a = <0x00>; + idle_interval = <0x3e8>; + keep_mode; + keep_mode_threshold = <0x55>; + keep_mode_max_range = <0x1ec300 0x29a 0x04 0x02>; + keep_mode_min_range = <0xf4240 0x190 0x02 0x01 0xa2d78 0x190 0x01 0x01>; + }; +}; diff --git a/x7-5g.dts b/x7-5g.dts new file mode 100644 index 0000000..9aee4b3 --- /dev/null +++ b/x7-5g.dts @@ -0,0 +1,1705 @@ +/dts-v1/; + +/ { + interrupt-parent = <0x01>; + #address-cells = <0x02>; + #size-cells = <0x02>; + compatible = "amlogic,x7-5g\0amlogic,s905l2\0amlogic,meson-gxl"; + model = "Amlogic Meson GXL (S905L2) X7 5G Tv Box"; + + aliases { + mmc0 = "/soc/apb@d0000000/mmc@72000"; + mmc1 = "/soc/apb@d0000000/mmc@74000"; + mmc2 = "/soc/apb@d0000000/mmc@70000"; + serial0 = "/soc/bus@c8100000/serial@4c0"; + ethernet0 = "/soc/ethernet@c9410000"; + }; + + reserved-memory { + #address-cells = <0x02>; + #size-cells = <0x02>; + ranges; + + hwrom@0 { + reg = <0x00 0x00 0x00 0x1000000>; + no-map; + }; + + secmon@10000000 { + reg = <0x00 0x10000000 0x00 0x200000>; + no-map; + }; + + secmon@5000000 { + reg = <0x00 0x5000000 0x00 0x300000>; + no-map; + }; + + linux,cma { + compatible = "shared-dma-pool"; + reusable; + size = <0x00 0x10000000>; + alignment = <0x00 0x400000>; + linux,cma-default; + }; + }; + + chosen { + #address-cells = <0x02>; + #size-cells = <0x02>; + ranges; + stdout-path = "serial0:115200n8"; + + framebuffer-cvbs { + compatible = "amlogic,simple-framebuffer\0simple-framebuffer"; + amlogic,pipeline = "vpu-cvbs"; + power-domains = <0x02 0x00>; + status = "disabled"; + }; + + framebuffer-hdmi { + compatible = "amlogic,simple-framebuffer\0simple-framebuffer"; + amlogic,pipeline = "vpu-hdmi"; + power-domains = <0x02 0x00>; + status = "disabled"; + clocks = <0x03 0x3f 0x03 0x0c 0x03 0x4d>; + }; + }; + + cpus { + #address-cells = <0x02>; + #size-cells = <0x00>; + + cpu@0 { + device_type = "cpu"; + compatible = "arm,cortex-a53"; + reg = <0x00 0x00>; + enable-method = "psci"; + next-level-cache = <0x04>; + clocks = <0x05 0x00>; + #cooling-cells = <0x02>; + phandle = <0x08>; + }; + + cpu@1 { + device_type = "cpu"; + compatible = "arm,cortex-a53"; + reg = <0x00 0x01>; + enable-method = "psci"; + next-level-cache = <0x04>; + clocks = <0x05 0x00>; + #cooling-cells = <0x02>; + phandle = <0x09>; + }; + + cpu@2 { + device_type = "cpu"; + compatible = "arm,cortex-a53"; + reg = <0x00 0x02>; + enable-method = "psci"; + next-level-cache = <0x04>; + clocks = <0x05 0x00>; + #cooling-cells = <0x02>; + phandle = <0x0a>; + }; + + cpu@3 { + device_type = "cpu"; + compatible = "arm,cortex-a53"; + reg = <0x00 0x03>; + enable-method = "psci"; + next-level-cache = <0x04>; + clocks = <0x05 0x00>; + #cooling-cells = <0x02>; + phandle = <0x0b>; + }; + + l2-cache0 { + compatible = "cache"; + phandle = <0x04>; + }; + }; + + thermal-zones { + + cpu-thermal { + polling-delay-passive = <0xfa>; + polling-delay = <0x3e8>; + thermal-sensors = <0x06 0x00>; + + trips { + + cpu-passive { + temperature = <0x13880>; + hysteresis = <0x7d0>; + type = "passive"; + phandle = <0x07>; + }; + + cpu-hot { + temperature = <0x15f90>; + hysteresis = <0x7d0>; + type = "hot"; + phandle = <0x0c>; + }; + + cpu-critical { + temperature = <0x1adb0>; + hysteresis = <0x7d0>; + type = "critical"; + }; + }; + + cooling-maps { + + map0 { + trip = <0x07>; + cooling-device = <0x08 0xffffffff 0xffffffff 0x09 0xffffffff 0xffffffff 0x0a 0xffffffff 0xffffffff 0x0b 0xffffffff 0xffffffff>; + }; + + map1 { + trip = <0x0c>; + cooling-device = <0x08 0xffffffff 0xffffffff 0x09 0xffffffff 0xffffffff 0x0a 0xffffffff 0xffffffff 0x0b 0xffffffff 0xffffffff>; + }; + }; + }; + }; + + arm-pmu { + compatible = "arm,cortex-a53-pmu"; + interrupts = <0x00 0x89 0x04 0x00 0x8a 0x04 0x00 0x99 0x04 0x00 0x9a 0x04>; + interrupt-affinity = <0x08 0x09 0x0a 0x0b>; + }; + + psci { + compatible = "arm,psci-0.2"; + method = "smc"; + }; + + timer { + compatible = "arm,armv8-timer"; + interrupts = <0x01 0x0d 0xff08 0x01 0x0e 0xff08 0x01 0x0b 0xff08 0x01 0x0a 0xff08>; + }; + + xtal-clk { + compatible = "fixed-clock"; + clock-frequency = <0x16e3600>; + clock-output-names = "xtal"; + #clock-cells = <0x00>; + phandle = <0x13>; + }; + + firmware { + + secure-monitor { + compatible = "amlogic,meson-gx-sm\0amlogic,meson-gxbb-sm"; + phandle = <0x0d>; + }; + }; + + efuse { + compatible = "amlogic,meson-gx-efuse\0amlogic,meson-gxbb-efuse"; + #address-cells = <0x01>; + #size-cells = <0x01>; + read-only; + secure-monitor = <0x0d>; + clocks = <0x03 0x3a>; + + sn@14 { + reg = <0x14 0x10>; + }; + + eth_mac@34 { + reg = <0x34 0x10>; + }; + + bid@46 { + reg = <0x46 0x30>; + }; + }; + + scpi { + compatible = "amlogic,meson-gxbb-scpi\0arm,scpi-pre-1.0"; + mboxes = <0x0e 0x01 0x0e 0x02>; + shmem = <0x0f 0x10>; + + clocks { + compatible = "arm,scpi-clocks"; + + scpi_clocks@0 { + compatible = "arm,scpi-dvfs-clocks"; + #clock-cells = <0x01>; + clock-indices = <0x00>; + clock-output-names = "vcpu"; + phandle = <0x05>; + }; + }; + + sensors { + compatible = "amlogic,meson-gxbb-scpi-sensors\0arm,scpi-sensors"; + #thermal-sensor-cells = <0x01>; + phandle = <0x06>; + }; + }; + + soc { + compatible = "simple-bus"; + #address-cells = <0x02>; + #size-cells = <0x02>; + ranges; + + bus@c1100000 { + compatible = "simple-bus"; + reg = <0x00 0xc1100000 0x00 0x100000>; + #address-cells = <0x02>; + #size-cells = <0x02>; + ranges = <0x00 0x00 0x00 0xc1100000 0x00 0x100000>; + + interrupt-controller@9880 { + compatible = "amlogic,meson-gpio-intc\0amlogic,meson-gxl-gpio-intc"; + reg = <0x00 0x9880 0x00 0x10>; + interrupt-controller; + #interrupt-cells = <0x02>; + amlogic,channel-interrupts = <0x40 0x41 0x42 0x43 0x44 0x45 0x46 0x47>; + status = "okay"; + }; + + reset-controller@4404 { + compatible = "amlogic,meson-gxbb-reset"; + reg = <0x00 0x4404 0x00 0x9c>; + #reset-cells = <0x01>; + phandle = <0x11>; + }; + + audio-controller@5400 { + compatible = "amlogic,aiu-gxl\0amlogic,aiu"; + #sound-dai-cells = <0x02>; + sound-name-prefix = "AIU"; + reg = <0x00 0x5400 0x00 0x2ac>; + interrupts = <0x00 0x30 0x01 0x00 0x32 0x01>; + interrupt-names = "i2s\0spdif"; + status = "okay"; + clocks = <0x03 0x26 0x03 0x28 0x03 0x50 0x03 0x6b 0x03 0x2c 0x03 0x27 0x03 0x51 0x03 0x6e 0x03 0x71>; + clock-names = "pclk\0i2s_pclk\0i2s_aoclk\0i2s_mclk\0i2s_mixer\0spdif_pclk\0spdif_aoclk\0spdif_mclk\0spdif_mclk_sel"; + resets = <0x11 0x06>; + pinctrl-0 = <0x12>; + pinctrl-names = "default"; + phandle = <0x3d>; + }; + + serial@84c0 { + compatible = "amlogic,meson-gx-uart"; + reg = <0x00 0x84c0 0x00 0x18>; + interrupts = <0x00 0x1a 0x01>; + status = "disabled"; + fifo-size = <0x80>; + clocks = <0x13 0x03 0x1a 0x13>; + clock-names = "xtal\0pclk\0baud"; + }; + + serial@84dc { + compatible = "amlogic,meson-gx-uart"; + reg = <0x00 0x84dc 0x00 0x18>; + interrupts = <0x00 0x4b 0x01>; + status = "disabled"; + clocks = <0x13 0x03 0x30 0x13>; + clock-names = "xtal\0pclk\0baud"; + }; + + i2c@8500 { + compatible = "amlogic,meson-gxbb-i2c"; + reg = <0x00 0x8500 0x00 0x20>; + interrupts = <0x00 0x15 0x01>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "disabled"; + clocks = <0x03 0x16>; + }; + + pwm@8550 { + compatible = "amlogic,meson-gx-pwm\0amlogic,meson-gxbb-pwm"; + reg = <0x00 0x8550 0x00 0x10>; + #pwm-cells = <0x03>; + status = "disabled"; + }; + + pwm@8650 { + compatible = "amlogic,meson-gx-pwm\0amlogic,meson-gxbb-pwm"; + reg = <0x00 0x8650 0x00 0x10>; + #pwm-cells = <0x03>; + status = "disabled"; + }; + + adc@8680 { + compatible = "amlogic,meson-gxl-saradc\0amlogic,meson-saradc"; + reg = <0x00 0x8680 0x00 0x34>; + #io-channel-cells = <0x01>; + interrupts = <0x00 0x49 0x01>; + status = "okay"; + clocks = <0x13 0x03 0x17 0x03 0x61 0x03 0x62>; + clock-names = "clkin\0core\0adc_clk\0adc_sel"; + vref-supply = <0x14>; + }; + + pwm@86c0 { + compatible = "amlogic,meson-gx-pwm\0amlogic,meson-gxbb-pwm"; + reg = <0x00 0x86c0 0x00 0x10>; + #pwm-cells = <0x03>; + status = "okay"; + pinctrl-0 = <0x15>; + pinctrl-names = "default"; + clocks = <0x03 0x06>; + clock-names = "clkin0"; + phandle = <0x38>; + }; + + serial@8700 { + compatible = "amlogic,meson-gx-uart"; + reg = <0x00 0x8700 0x00 0x18>; + interrupts = <0x00 0x5d 0x01>; + status = "disabled"; + clocks = <0x13 0x03 0x44 0x13>; + clock-names = "xtal\0pclk\0baud"; + }; + + clock-measure@8758 { + compatible = "amlogic,meson-gx-clk-measure"; + reg = <0x00 0x8758 0x00 0x10>; + }; + + i2c@87c0 { + compatible = "amlogic,meson-gxbb-i2c"; + reg = <0x00 0x87c0 0x00 0x20>; + interrupts = <0x00 0xd6 0x01>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "disabled"; + clocks = <0x03 0x16>; + }; + + i2c@87e0 { + compatible = "amlogic,meson-gxbb-i2c"; + reg = <0x00 0x87e0 0x00 0x20>; + interrupts = <0x00 0xd7 0x01>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "disabled"; + clocks = <0x03 0x16>; + }; + + spi@8d80 { + compatible = "amlogic,meson-gx-spicc"; + reg = <0x00 0x8d80 0x00 0x80>; + interrupts = <0x00 0x51 0x04>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "disabled"; + clocks = <0x03 0x15>; + clock-names = "core"; + resets = <0x11 0xc1>; + num-cs = <0x01>; + }; + + spi@8c80 { + compatible = "amlogic,meson-gxbb-spifc"; + reg = <0x00 0x8c80 0x00 0x80>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "disabled"; + clocks = <0x03 0x22>; + }; + + watchdog@98d0 { + compatible = "amlogic,meson-gxbb-wdt"; + reg = <0x00 0x98d0 0x00 0x10>; + clocks = <0x13>; + }; + }; + + interrupt-controller@c4301000 { + compatible = "arm,gic-400"; + reg = <0x00 0xc4301000 0x00 0x1000 0x00 0xc4302000 0x00 0x2000 0x00 0xc4304000 0x00 0x2000 0x00 0xc4306000 0x00 0x2000>; + interrupt-controller; + interrupts = <0x01 0x09 0xff04>; + #interrupt-cells = <0x03>; + #address-cells = <0x00>; + phandle = <0x01>; + }; + + sram@c8000000 { + compatible = "mmio-sram"; + reg = <0x00 0xc8000000 0x00 0x14000>; + #address-cells = <0x01>; + #size-cells = <0x01>; + ranges = <0x00 0x00 0xc8000000 0x14000>; + + scp-sram@0 { + compatible = "amlogic,meson-gxbb-scp-shmem"; + reg = <0x13000 0x400>; + phandle = <0x0f>; + }; + + scp-sram@200 { + compatible = "amlogic,meson-gxbb-scp-shmem"; + reg = <0x13400 0x400>; + phandle = <0x10>; + }; + }; + + bus@c8100000 { + compatible = "simple-bus"; + reg = <0x00 0xc8100000 0x00 0x100000>; + #address-cells = <0x02>; + #size-cells = <0x02>; + ranges = <0x00 0x00 0x00 0xc8100000 0x00 0x100000>; + + sys-ctrl@0 { + compatible = "amlogic,meson-gx-ao-sysctrl\0simple-mfd\0syscon"; + reg = <0x00 0x00 0x00 0x100>; + phandle = <0x1c>; + + clock-controller { + compatible = "amlogic,meson-gxl-aoclkc\0amlogic,meson-gx-aoclkc"; + #clock-cells = <0x01>; + #reset-cells = <0x01>; + clocks = <0x13 0x03 0x0c>; + clock-names = "xtal\0mpeg-clk"; + phandle = <0x16>; + }; + }; + + cec@100 { + compatible = "amlogic,meson-gx-ao-cec"; + reg = <0x00 0x100 0x00 0x14>; + interrupts = <0x00 0xc7 0x01>; + status = "okay"; + clocks = <0x16 0x06>; + clock-names = "core"; + pinctrl-0 = <0x17>; + pinctrl-names = "default"; + hdmi-phandle = <0x18>; + }; + + ao-secure@140 { + compatible = "amlogic,meson-gx-ao-secure\0syscon"; + reg = <0x00 0x140 0x00 0x140>; + amlogic,has-chip-id; + }; + + serial@4c0 { + compatible = "amlogic,meson-gx-uart\0amlogic,meson-ao-uart"; + reg = <0x00 0x4c0 0x00 0x18>; + interrupts = <0x00 0xc1 0x01>; + status = "okay"; + clocks = <0x13 0x16 0x03 0x13>; + clock-names = "xtal\0pclk\0baud"; + pinctrl-0 = <0x19>; + pinctrl-names = "default"; + }; + + serial@4e0 { + compatible = "amlogic,meson-gx-uart\0amlogic,meson-ao-uart"; + reg = <0x00 0x4e0 0x00 0x18>; + interrupts = <0x00 0xc5 0x01>; + status = "disabled"; + clocks = <0x13 0x16 0x04 0x13>; + clock-names = "xtal\0pclk\0baud"; + }; + + i2c@500 { + compatible = "amlogic,meson-gxbb-i2c"; + reg = <0x00 0x500 0x00 0x20>; + interrupts = <0x00 0xc3 0x01>; + #address-cells = <0x01>; + #size-cells = <0x00>; + status = "disabled"; + clocks = <0x03 0x5d>; + }; + + pwm@550 { + compatible = "amlogic,meson-gx-ao-pwm\0amlogic,meson-gxbb-ao-pwm"; + reg = <0x00 0x550 0x00 0x10>; + #pwm-cells = <0x03>; + status = "disabled"; + }; + + ir@580 { + compatible = "amlogic,meson-gx-ir\0amlogic,meson-gxbb-ir"; + reg = <0x00 0x580 0x00 0x40>; + interrupts = <0x00 0xc4 0x01>; + status = "okay"; + pinctrl-0 = <0x1a>; + pinctrl-names = "default"; + }; + + pinctrl@14 { + compatible = "amlogic,meson-gxl-aobus-pinctrl"; + #address-cells = <0x02>; + #size-cells = <0x02>; + ranges; + phandle = <0x1b>; + + bank@14 { + reg = <0x00 0x14 0x00 0x08 0x00 0x2c 0x00 0x04 0x00 0x24 0x00 0x08>; + reg-names = "mux\0pull\0gpio"; + gpio-controller; + #gpio-cells = <0x02>; + gpio-ranges = <0x1b 0x00 0x00 0x0e>; + }; + + uart_ao_a { + phandle = <0x19>; + + mux { + groups = "uart_tx_ao_a\0uart_rx_ao_a"; + function = "uart_ao"; + bias-disable; + }; + }; + + uart_ao_a_cts_rts { + + mux { + groups = "uart_cts_ao_a\0uart_rts_ao_a"; + function = "uart_ao"; + bias-disable; + }; + }; + + uart_ao_b { + + mux { + groups = "uart_tx_ao_b\0uart_rx_ao_b"; + function = "uart_ao_b"; + bias-disable; + }; + }; + + uart_ao_b_0_1 { + + mux { + groups = "uart_tx_ao_b_0\0uart_rx_ao_b_1"; + function = "uart_ao_b"; + bias-disable; + }; + }; + + uart_ao_b_cts_rts { + + mux { + groups = "uart_cts_ao_b\0uart_rts_ao_b"; + function = "uart_ao_b"; + bias-disable; + }; + }; + + remote_input_ao { + phandle = <0x1a>; + + mux { + groups = "remote_input_ao"; + function = "remote_input_ao"; + bias-disable; + }; + }; + + i2c_ao { + + mux { + groups = "i2c_sck_ao\0i2c_sda_ao"; + function = "i2c_ao"; + bias-disable; + }; + }; + + pwm_ao_a_3 { + + mux { + groups = "pwm_ao_a_3"; + function = "pwm_ao_a"; + bias-disable; + }; + }; + + pwm_ao_a_8 { + + mux { + groups = "pwm_ao_a_8"; + function = "pwm_ao_a"; + bias-disable; + }; + }; + + pwm_ao_b { + + mux { + groups = "pwm_ao_b"; + function = "pwm_ao_b"; + bias-disable; + }; + }; + + pwm_ao_b_6 { + + mux { + groups = "pwm_ao_b_6"; + function = "pwm_ao_b"; + bias-disable; + }; + }; + + i2s_out_ch23_ao { + + mux { + groups = "i2s_out_ch23_ao"; + function = "i2s_out_ao"; + bias-disable; + }; + }; + + i2s_out_ch45_ao { + + mux { + groups = "i2s_out_ch45_ao"; + function = "i2s_out_ao"; + bias-disable; + }; + }; + + spdif_out_ao_6 { + + mux { + groups = "spdif_out_ao_6"; + function = "spdif_out_ao"; + bias-disable; + }; + }; + + spdif_out_ao_9 { + + mux { + groups = "spdif_out_ao_9"; + function = "spdif_out_ao"; + bias-disable; + }; + }; + + ao_cec { + phandle = <0x17>; + + mux { + groups = "ao_cec"; + function = "cec_ao"; + bias-disable; + }; + }; + + ee_cec { + + mux { + groups = "ee_cec"; + function = "cec_ao"; + bias-disable; + }; + }; + }; + }; + + video-codec@c8820000 { + compatible = "amlogic,gxl-vdec\0amlogic,gx-vdec"; + reg = <0x00 0xc8820000 0x00 0x10000 0x00 0xc110a580 0x00 0xe4>; + reg-names = "dos\0esparser"; + interrupts = <0x00 0x2c 0x01 0x00 0x20 0x01>; + interrupt-names = "vdec\0esparser"; + amlogic,ao-sysctrl = <0x1c>; + amlogic,canvas = <0x1d>; + clocks = <0x03 0x36 0x03 0x11 0x03 0x99 0x03 0x9c>; + clock-names = "dos_parser\0dos\0vdec_1\0vdec_hevc"; + resets = <0x11 0x28>; + reset-names = "esparser"; + }; + + bus@c8834000 { + compatible = "simple-bus"; + reg = <0x00 0xc8834000 0x00 0x2000>; + #address-cells = <0x02>; + #size-cells = <0x02>; + ranges = <0x00 0x00 0x00 0xc8834000 0x00 0x2000>; + + rng { + compatible = "amlogic,meson-rng"; + reg = <0x00 0x00 0x00 0x04>; + clocks = <0x03 0x19>; + clock-names = "core"; + }; + + pinctrl@4b0 { + compatible = "amlogic,meson-gxl-periphs-pinctrl"; + #address-cells = <0x02>; + #size-cells = <0x02>; + ranges; + phandle = <0x1e>; + + bank@4b0 { + reg = <0x00 0x4b0 0x00 0x28 0x00 0x4e8 0x00 0x14 0x00 0x520 0x00 0x14 0x00 0x430 0x00 0x40>; + reg-names = "mux\0pull\0pull-enable\0gpio"; + gpio-controller; + #gpio-cells = <0x02>; + gpio-ranges = <0x1e 0x00 0x00 0x64>; + phandle = <0x28>; + }; + + emmc { + phandle = <0x29>; + + mux-0 { + groups = "emmc_nand_d07\0emmc_cmd"; + function = "emmc"; + bias-pull-up; + }; + + mux-1 { + groups = "emmc_clk"; + function = "emmc"; + bias-disable; + }; + }; + + emmc-ds { + phandle = <0x2a>; + + mux { + groups = "emmc_ds"; + function = "emmc"; + bias-pull-down; + }; + }; + + emmc_clk_gate { + phandle = <0x2b>; + + mux { + groups = "BOOT_8"; + function = "gpio_periphs"; + bias-pull-down; + }; + }; + + nor { + + mux { + groups = "nor_d\0nor_q\0nor_c\0nor_cs"; + function = "nor"; + bias-disable; + }; + }; + + spi-pins { + + mux { + groups = "spi_miso\0spi_mosi\0spi_sclk"; + function = "spi"; + bias-disable; + }; + }; + + spi-ss0 { + + mux { + groups = "spi_ss0"; + function = "spi"; + bias-disable; + }; + }; + + sdcard { + phandle = <0x26>; + + mux-0 { + groups = "sdcard_d0\0sdcard_d1\0sdcard_d2\0sdcard_d3\0sdcard_cmd"; + function = "sdcard"; + bias-pull-up; + }; + + mux-1 { + groups = "sdcard_clk"; + function = "sdcard"; + bias-disable; + }; + }; + + sdcard_clk_gate { + phandle = <0x27>; + + mux { + groups = "CARD_2"; + function = "gpio_periphs"; + bias-pull-down; + }; + }; + + sdio { + phandle = <0x21>; + + mux-0 { + groups = "sdio_d0\0sdio_d1\0sdio_d2\0sdio_d3\0sdio_cmd"; + function = "sdio"; + bias-pull-up; + }; + + mux-1 { + groups = "sdio_clk"; + function = "sdio"; + bias-disable; + }; + }; + + sdio_clk_gate { + phandle = <0x22>; + + mux { + groups = "GPIOX_4"; + function = "gpio_periphs"; + bias-pull-down; + }; + }; + + sdio_irq { + + mux { + groups = "sdio_irq"; + function = "sdio"; + bias-disable; + }; + }; + + uart_a { + + mux { + groups = "uart_tx_a\0uart_rx_a"; + function = "uart_a"; + bias-disable; + }; + }; + + uart_a_cts_rts { + + mux { + groups = "uart_cts_a\0uart_rts_a"; + function = "uart_a"; + bias-disable; + }; + }; + + uart_b { + + mux { + groups = "uart_tx_b\0uart_rx_b"; + function = "uart_b"; + bias-disable; + }; + }; + + uart_b_cts_rts { + + mux { + groups = "uart_cts_b\0uart_rts_b"; + function = "uart_b"; + bias-disable; + }; + }; + + uart_c { + + mux { + groups = "uart_tx_c\0uart_rx_c"; + function = "uart_c"; + bias-disable; + }; + }; + + uart_c_cts_rts { + + mux { + groups = "uart_cts_c\0uart_rts_c"; + function = "uart_c"; + bias-disable; + }; + }; + + i2c_a { + + mux { + groups = "i2c_sck_a\0i2c_sda_a"; + function = "i2c_a"; + bias-disable; + }; + }; + + i2c_b { + + mux { + groups = "i2c_sck_b\0i2c_sda_b"; + function = "i2c_b"; + bias-disable; + }; + }; + + i2c_c { + + mux { + groups = "i2c_sck_c\0i2c_sda_c"; + function = "i2c_c"; + bias-disable; + }; + }; + + i2c_c_dv18 { + + mux { + groups = "i2c_sck_c_dv19\0i2c_sda_c_dv18"; + function = "i2c_c"; + bias-disable; + }; + }; + + eth_c { + + mux { + groups = "eth_mdio\0eth_mdc\0eth_clk_rx_clk\0eth_rx_dv\0eth_rxd0\0eth_rxd1\0eth_rxd2\0eth_rxd3\0eth_rgmii_tx_clk\0eth_tx_en\0eth_txd0\0eth_txd1\0eth_txd2\0eth_txd3"; + function = "eth"; + bias-disable; + }; + }; + + eth_link_led { + + mux { + groups = "eth_link_led"; + function = "eth_led"; + bias-disable; + }; + }; + + eth_act_led { + + mux { + groups = "eth_act_led"; + function = "eth_led"; + }; + }; + + pwm_a { + + mux { + groups = "pwm_a"; + function = "pwm_a"; + bias-disable; + }; + }; + + pwm_b { + + mux { + groups = "pwm_b"; + function = "pwm_b"; + bias-disable; + }; + }; + + pwm_c { + + mux { + groups = "pwm_c"; + function = "pwm_c"; + bias-disable; + }; + }; + + pwm_d { + + mux { + groups = "pwm_d"; + function = "pwm_d"; + bias-disable; + }; + }; + + pwm_e { + phandle = <0x15>; + + mux { + groups = "pwm_e"; + function = "pwm_e"; + bias-disable; + }; + }; + + pwm_f_clk { + + mux { + groups = "pwm_f_clk"; + function = "pwm_f"; + bias-disable; + }; + }; + + pwm_f_x { + + mux { + groups = "pwm_f_x"; + function = "pwm_f"; + bias-disable; + }; + }; + + hdmi_hpd { + phandle = <0x31>; + + mux { + groups = "hdmi_hpd"; + function = "hdmi_hpd"; + bias-disable; + }; + }; + + hdmi_i2c { + phandle = <0x32>; + + mux { + groups = "hdmi_sda\0hdmi_scl"; + function = "hdmi_i2c"; + bias-disable; + }; + }; + + i2s_am_clk { + + mux { + groups = "i2s_am_clk"; + function = "i2s_out"; + bias-disable; + }; + }; + + i2s_out_ao_clk { + + mux { + groups = "i2s_out_ao_clk"; + function = "i2s_out"; + bias-disable; + }; + }; + + i2s_out_lr_clk { + + mux { + groups = "i2s_out_lr_clk"; + function = "i2s_out"; + bias-disable; + }; + }; + + i2s_out_ch01 { + + mux { + groups = "i2s_out_ch01"; + function = "i2s_out"; + bias-disable; + }; + }; + + i2sout_ch23_z { + + mux { + groups = "i2sout_ch23_z"; + function = "i2s_out"; + bias-disable; + }; + }; + + i2sout_ch45_z { + + mux { + groups = "i2sout_ch45_z"; + function = "i2s_out"; + bias-disable; + }; + }; + + i2sout_ch67_z { + + mux { + groups = "i2sout_ch67_z"; + function = "i2s_out"; + bias-disable; + }; + }; + + spdif_out_ao_h { + phandle = <0x12>; + + mux { + groups = "spdif_out_h"; + function = "spdif_out"; + bias-disable; + }; + }; + }; + + eth-phy-mux { + compatible = "mdio-mux-mmioreg\0mdio-mux"; + #address-cells = <0x01>; + #size-cells = <0x00>; + reg = <0x00 0x55c 0x00 0x04>; + mux-mask = <0xffffffff>; + mdio-parent-bus = <0x1f>; + + mdio@e40908ff { + reg = <0xe40908ff>; + #address-cells = <0x01>; + #size-cells = <0x00>; + + ethernet-phy@8 { + compatible = "ethernet-phy-id0181.4400"; + interrupts = <0x00 0x09 0x04>; + reg = <0x08>; + max-speed = <0x64>; + phandle = <0x20>; + }; + }; + + mdio@2009087f { + reg = <0x2009087f>; + #address-cells = <0x01>; + #size-cells = <0x00>; + }; + }; + }; + + bus@c8838000 { + compatible = "simple-bus"; + reg = <0x00 0xc8838000 0x00 0x400>; + #address-cells = <0x02>; + #size-cells = <0x02>; + ranges = <0x00 0x00 0x00 0xc8838000 0x00 0x400>; + + video-lut@48 { + compatible = "amlogic,canvas"; + reg = <0x00 0x48 0x00 0x14>; + phandle = <0x1d>; + }; + }; + + bus@c883c000 { + compatible = "simple-bus"; + reg = <0x00 0xc883c000 0x00 0x2000>; + #address-cells = <0x02>; + #size-cells = <0x02>; + ranges = <0x00 0x00 0x00 0xc883c000 0x00 0x2000>; + + system-controller@0 { + compatible = "amlogic,meson-gx-hhi-sysctrl\0simple-mfd\0syscon"; + reg = <0x00 0x00 0x00 0x400>; + + power-controller { + compatible = "amlogic,meson-gxbb-pwrc"; + #power-domain-cells = <0x01>; + amlogic,ao-sysctrl = <0x1c>; + resets = <0x11 0x05 0x11 0x0a 0x11 0x0d 0x11 0x25 0x11 0x84 0x11 0x85 0x11 0x86 0x11 0x87 0x11 0x89 0x11 0x8c 0x11 0x8d 0x11 0xe7>; + reset-names = "viu\0venc\0vcbus\0bt656\0dvin\0rdma\0venci\0vencp\0vdac\0vdi6\0vencl\0vid_lock"; + clocks = <0x03 0x84 0x03 0x8c>; + clock-names = "vpu\0vapb"; + assigned-clocks = <0x03 0x7e 0x03 0x80 0x03 0x84 0x03 0x85 0x03 0x87 0x03 0x8b>; + assigned-clock-parents = <0x03 0x05 0x00 0x03 0x80 0x03 0x06 0x00 0x03 0x87>; + assigned-clock-rates = <0x00 0x27bc86aa 0x00 0x00 0xee6b280 0x00>; + phandle = <0x02>; + }; + + clock-controller { + compatible = "amlogic,gxl-clkc"; + #clock-cells = <0x01>; + clocks = <0x13>; + clock-names = "xtal"; + phandle = <0x03>; + }; + }; + + mailbox@404 { + compatible = "amlogic,meson-gxbb-mhu"; + reg = <0x00 0x404 0x00 0x4c>; + interrupts = <0x00 0xd0 0x01 0x00 0xd1 0x01 0x00 0xd2 0x01>; + #mbox-cells = <0x01>; + phandle = <0x0e>; + }; + }; + + ethernet@c9410000 { + compatible = "amlogic,meson-gxbb-dwmac\0snps,dwmac-3.70a\0snps,dwmac"; + reg = <0x00 0xc9410000 0x00 0x10000 0x00 0xc8834540 0x00 0x04>; + interrupts = <0x00 0x08 0x04>; + interrupt-names = "macirq"; + rx-fifo-depth = <0x1000>; + tx-fifo-depth = <0x800>; + power-domains = <0x02 0x01>; + status = "okay"; + clocks = <0x03 0x24 0x03 0x04 0x03 0x0f 0x03 0x04>; + clock-names = "stmmaceth\0clkin0\0clkin1\0timing-adjustment"; + phy-mode = "rmii"; + phy-handle = <0x20>; + + mdio { + #address-cells = <0x01>; + #size-cells = <0x00>; + compatible = "snps,dwmac-mdio"; + phandle = <0x1f>; + }; + }; + + apb@d0000000 { + compatible = "simple-bus"; + reg = <0x00 0xd0000000 0x00 0x200000>; + #address-cells = <0x02>; + #size-cells = <0x02>; + ranges = <0x00 0x00 0x00 0xd0000000 0x00 0x200000>; + + mmc@70000 { + compatible = "amlogic,meson-gx-mmc\0amlogic,meson-gxbb-mmc"; + reg = <0x00 0x70000 0x00 0x800>; + interrupts = <0x00 0xd8 0x01>; + status = "okay"; + clocks = <0x03 0x5e 0x03 0x77 0x03 0x04>; + clock-names = "core\0clkin0\0clkin1"; + resets = <0x11 0x2c>; + pinctrl-0 = <0x21>; + pinctrl-1 = <0x22>; + pinctrl-names = "default\0clk-gate"; + #address-cells = <0x01>; + #size-cells = <0x00>; + bus-width = <0x04>; + cap-sd-highspeed; + max-frequency = <0x2faf080>; + non-removable; + disable-wp; + keep-power-in-suspend; + mmc-pwrseq = <0x23>; + vmmc-supply = <0x24>; + vqmmc-supply = <0x25>; + }; + + mmc@72000 { + compatible = "amlogic,meson-gx-mmc\0amlogic,meson-gxbb-mmc"; + reg = <0x00 0x72000 0x00 0x800>; + interrupts = <0x00 0xd9 0x01>; + status = "okay"; + clocks = <0x03 0x5f 0x03 0x7a 0x03 0x04>; + clock-names = "core\0clkin0\0clkin1"; + resets = <0x11 0x2d>; + pinctrl-0 = <0x26>; + pinctrl-1 = <0x27>; + pinctrl-names = "default\0clk-gate"; + bus-width = <0x04>; + cap-sd-highspeed; + max-frequency = <0x2faf080>; + disable-wp; + cd-gpios = <0x28 0x30 0x01>; + vmmc-supply = <0x24>; + vqmmc-supply = <0x25>; + }; + + mmc@74000 { + compatible = "amlogic,meson-gx-mmc\0amlogic,meson-gxbb-mmc"; + reg = <0x00 0x74000 0x00 0x800>; + interrupts = <0x00 0xda 0x01>; + status = "okay"; + clocks = <0x03 0x60 0x03 0x7d 0x03 0x04>; + clock-names = "core\0clkin0\0clkin1"; + resets = <0x11 0x2e>; + pinctrl-0 = <0x29 0x2a>; + pinctrl-1 = <0x2b>; + pinctrl-names = "default\0clk-gate"; + bus-width = <0x08>; + cap-mmc-highspeed; + max-frequency = <0xbebc200>; + non-removable; + disable-wp; + mmc-ddr-1_8v; + mmc-hs200-1_8v; + mmc-pwrseq = <0x2c>; + vmmc-supply = <0x2d>; + vqmmc-supply = <0x25>; + }; + + phy@78000 { + compatible = "amlogic,meson-gxl-usb2-phy"; + #phy-cells = <0x00>; + reg = <0x00 0x78000 0x00 0x20>; + clocks = <0x03 0x37>; + clock-names = "phy"; + resets = <0x11 0x22>; + reset-names = "phy"; + status = "okay"; + phandle = <0x36>; + }; + + phy@78020 { + compatible = "amlogic,meson-gxl-usb2-phy"; + #phy-cells = <0x00>; + reg = <0x00 0x78020 0x00 0x20>; + clocks = <0x03 0x37>; + clock-names = "phy"; + resets = <0x11 0x22>; + reset-names = "phy"; + status = "okay"; + phandle = <0x37>; + }; + + gpu@c0000 { + compatible = "amlogic,meson-gxl-mali\0arm,mali-450"; + reg = <0x00 0xc0000 0x00 0x40000>; + interrupts = <0x00 0xa0 0x04 0x00 0xa1 0x04 0x00 0xa2 0x04 0x00 0xa3 0x04 0x00 0xa4 0x04 0x00 0xa5 0x04 0x00 0xa6 0x04 0x00 0xa7 0x04>; + interrupt-names = "gp\0gpmmu\0pp\0pmu\0pp0\0ppmmu0\0pp1\0ppmmu1"; + operating-points-v2 = <0x2e>; + clocks = <0x03 0x0c 0x03 0x6a>; + clock-names = "bus\0core"; + assigned-clocks = <0x03 0x09>; + assigned-clock-rates = <0x2c588a00>; + }; + }; + + vpu@d0100000 { + compatible = "amlogic,meson-gxl-vpu\0amlogic,meson-gx-vpu"; + reg = <0x00 0xd0100000 0x00 0x100000 0x00 0xc883c000 0x00 0x1000>; + reg-names = "vpu\0hhi"; + interrupts = <0x00 0x03 0x01>; + #address-cells = <0x01>; + #size-cells = <0x00>; + amlogic,canvas = <0x1d>; + power-domains = <0x02 0x00>; + + port@0 { + reg = <0x00>; + + endpoint { + remote-endpoint = <0x2f>; + phandle = <0x3a>; + }; + }; + + port@1 { + reg = <0x01>; + + endpoint { + remote-endpoint = <0x30>; + phandle = <0x34>; + }; + }; + }; + + hdmi-tx@c883a000 { + compatible = "amlogic,meson-gxl-dw-hdmi\0amlogic,meson-gx-dw-hdmi"; + reg = <0x00 0xc883a000 0x00 0x1c>; + interrupts = <0x00 0x39 0x01>; + #address-cells = <0x01>; + #size-cells = <0x00>; + #sound-dai-cells = <0x00>; + sound-name-prefix = "HDMITX"; + status = "okay"; + resets = <0x11 0x13 0x11 0x4f 0x11 0x42>; + reset-names = "hdmitx_apb\0hdmitx\0hdmitx_phy"; + clocks = <0x03 0x3f 0x03 0x0c 0x03 0x4d>; + clock-names = "isfr\0iahb\0venci"; + pinctrl-0 = <0x31 0x32>; + pinctrl-names = "default"; + hdmi-supply = <0x33>; + phandle = <0x18>; + + port@0 { + reg = <0x00>; + + endpoint { + remote-endpoint = <0x34>; + phandle = <0x30>; + }; + }; + + port@1 { + reg = <0x01>; + + endpoint { + remote-endpoint = <0x35>; + phandle = <0x3b>; + }; + }; + }; + + usb@d0078080 { + compatible = "amlogic,meson-gxl-usb-ctrl"; + reg = <0x00 0xd0078080 0x00 0x20>; + interrupts = <0x00 0x10 0x04>; + #address-cells = <0x02>; + #size-cells = <0x02>; + ranges; + clocks = <0x03 0x37 0x03 0x40>; + clock-names = "usb_ctrl\0ddr"; + resets = <0x11 0x22>; + dr_mode = "host"; + phys = <0x36 0x37>; + phy-names = "usb2-phy0\0usb2-phy1"; + status = "okay"; + + usb@c9100000 { + compatible = "amlogic,meson-g12a-usb\0snps,dwc2"; + reg = <0x00 0xc9100000 0x00 0x40000>; + interrupts = <0x00 0x1f 0x04>; + clocks = <0x03 0x33>; + clock-names = "otg"; + phys = <0x37>; + dr_mode = "peripheral"; + g-rx-fifo-size = <0xc0>; + g-np-tx-fifo-size = <0x80>; + g-tx-fifo-size = <0x80 0x80 0x10 0x10 0x10>; + }; + + usb@c9000000 { + compatible = "snps,dwc3"; + reg = <0x00 0xc9000000 0x00 0x100000>; + interrupts = <0x00 0x1e 0x04>; + dr_mode = "host"; + maximum-speed = "high-speed"; + snps,dis_u2_susphy_quirk; + }; + }; + + audio-controller@c8832000 { + compatible = "amlogic,t9015"; + reg = <0x00 0xc8832000 0x00 0x14>; + #sound-dai-cells = <0x00>; + sound-name-prefix = "ACODEC"; + clocks = <0x03 0xce>; + clock-names = "pclk"; + resets = <0x11 0x3d>; + status = "okay"; + AVDD-supply = <0x14>; + phandle = <0x3f>; + }; + + crypto@c883e000 { + compatible = "amlogic,gxl-crypto"; + reg = <0x00 0xc883e000 0x00 0x36>; + interrupts = <0x00 0xbc 0x01 0x00 0xbd 0x01>; + clocks = <0x03 0x2e>; + clock-names = "blkmv"; + status = "okay"; + }; + }; + + opp-table { + compatible = "operating-points-v2"; + phandle = <0x2e>; + + opp-125000000 { + opp-hz = <0x00 0x7735940>; + opp-microvolt = <0xe7ef0>; + }; + + opp-250000000 { + opp-hz = <0x00 0xee6b280>; + opp-microvolt = <0xe7ef0>; + }; + + opp-285714285 { + opp-hz = <0x00 0x1107a76d>; + opp-microvolt = <0xe7ef0>; + }; + + opp-400000000 { + opp-hz = <0x00 0x17d78400>; + opp-microvolt = <0xe7ef0>; + }; + + opp-500000000 { + opp-hz = <0x00 0x1dcd6500>; + opp-microvolt = <0xe7ef0>; + }; + + opp-666666666 { + opp-hz = <0x00 0x27bc86aa>; + opp-microvolt = <0xe7ef0>; + }; + + opp-744000000 { + opp-hz = <0x00 0x2c588a00>; + opp-microvolt = <0xe7ef0>; + }; + }; + + analog-amplifier { + compatible = "simple-audio-amplifier"; + sound-name-prefix = "AU2"; + VCC-supply = <0x33>; + enable-gpios = <0x28 0x15 0x00>; + phandle = <0x3c>; + }; + + audio-codec-0 { + #sound-dai-cells = <0x00>; + compatible = "linux,spdif-dit"; + status = "okay"; + sound-name-prefix = "DIT"; + phandle = <0x3e>; + }; + + memory@0 { + device_type = "memory"; + reg = <0x00 0x00 0x00 0x40000000>; + }; + + regulator-hdmi-5v { + compatible = "regulator-fixed"; + regulator-name = "HDMI_5V"; + regulator-min-microvolt = <0x4c4b40>; + regulator-max-microvolt = <0x4c4b40>; + gpio = <0x28 0x13 0x00>; + enable-active-high; + regulator-always-on; + phandle = <0x33>; + }; + + regulator-vddio_ao18 { + compatible = "regulator-fixed"; + regulator-name = "VDDIO_AO18"; + regulator-min-microvolt = <0x1b7740>; + regulator-max-microvolt = <0x1b7740>; + phandle = <0x14>; + }; + + regulator-vddio_boot { + compatible = "regulator-fixed"; + regulator-name = "VDDIO_BOOT"; + regulator-min-microvolt = <0x1b7740>; + regulator-max-microvolt = <0x1b7740>; + phandle = <0x25>; + }; + + regulator-vddao_3v3 { + compatible = "regulator-fixed"; + regulator-name = "VDDAO_3V3"; + regulator-min-microvolt = <0x325aa0>; + regulator-max-microvolt = <0x325aa0>; + phandle = <0x24>; + }; + + regulator-vcc_3v3 { + compatible = "regulator-fixed"; + regulator-name = "VCC_3V3"; + regulator-min-microvolt = <0x325aa0>; + regulator-max-microvolt = <0x325aa0>; + phandle = <0x2d>; + }; + + emmc-pwrseq { + compatible = "mmc-pwrseq-emmc"; + reset-gpios = <0x28 0x23 0x01>; + phandle = <0x2c>; + }; + + wifi32k { + compatible = "pwm-clock"; + #clock-cells = <0x00>; + clock-frequency = <0x8000>; + pwms = <0x38 0x00 0x7736 0x00>; + phandle = <0x39>; + }; + + sdio-pwrseq { + compatible = "mmc-pwrseq-simple"; + reset-gpios = <0x28 0x55 0x01>; + clocks = <0x39>; + clock-names = "ext_clock"; + phandle = <0x23>; + }; + + cvbs-connector { + compatible = "composite-video-connector"; + + port { + + endpoint { + remote-endpoint = <0x3a>; + phandle = <0x2f>; + }; + }; + }; + + hdmi-connector { + compatible = "hdmi-connector"; + type = "a"; + + port { + + endpoint { + remote-endpoint = <0x3b>; + phandle = <0x35>; + }; + }; + }; + + sound { + compatible = "amlogic,gx-sound-card"; + model = "P230-Q200"; + audio-aux-devs = <0x3c>; + audio-widgets = "Line\0Lineout"; + audio-routing = "AU2 INL\0ACODEC LOLP\0AU2 INR\0ACODEC LORP\0AU2 INL\0ACODEC LOLN\0AU2 INR\0ACODEC LORN\0Lineout\0AU2 OUTL\0Lineout\0AU2 OUTR"; + assigned-clocks = <0x03 0x0d 0x03 0x0e 0x03 0x0f>; + assigned-clock-parents = <0x00 0x00 0x00>; + assigned-clock-rates = <0x11940000 0x10266000 0x17700000>; + status = "okay"; + + dai-link-0 { + sound-dai = <0x3d 0x00 0x00>; + }; + + dai-link-1 { + sound-dai = <0x3d 0x00 0x01>; + }; + + dai-link-2 { + sound-dai = <0x3d 0x00 0x02>; + dai-format = "i2s"; + mclk-fs = <0x100>; + + codec-0 { + sound-dai = <0x3d 0x01 0x00>; + }; + + codec-1 { + sound-dai = <0x3d 0x02 0x00>; + }; + }; + + dai-link-3 { + sound-dai = <0x3d 0x00 0x03>; + + codec-0 { + sound-dai = <0x3e>; + }; + }; + + dai-link-4 { + sound-dai = <0x3d 0x01 0x02>; + + codec-0 { + sound-dai = <0x18>; + }; + }; + + dai-link-5 { + sound-dai = <0x3d 0x02 0x02>; + + codec-0 { + sound-dai = <0x3f>; + }; + }; + }; +};