/ Dts-v1 /;
/ {
model = "Amlogic";
compatible = "amlogic, Gxm";
amlogic-dt-id = "gxm_q201_2g";
interrupt-parent =<0x1>;
# address-cells =<0x2>;
# size-cells =<0x2>;
t82x {
compatible = "arm, malit602", "arm, malit60x", "arm, malit6xx", "arm, mali-midgard";
# Cooling-cells =<0x2>;
reg =<0x0 0xd00c0000 0x0 0x100000 0x0 0xc1104440 0x0 0x1000 0x0 0xc8100000 0x0 0x1000 0x0 0xc883c000 0x0 0x1000 0x0 0xc1104440 0x0 0x1000>;
interrupt-parent =<0x1>;
interrupts =<0x0 0xa0 0x4 0x0 0xa1 0x4 0x0 0xa2 0x4>;
interrupt-names = "GPU", "MMU", "JOB";
num_of_pp =<0x3>;
sc_mpp =<0x1>;
operating-points =<0xa2c2a 0xf4240 0x7a120 0xf4240 0x61a80 0xf4240 0x45c12 0xf4240 0x3d090 0xf4240 0x1e848 0xf4240>;
tbl =<0x2 0x3 0x4 0x5 0x5>;
clocks =<0x6 0x8 0x6 0x9 0x6 0x11 0x6 0x12 0x6 0x1e 0x6 0x15 0x6 0x13 0x6 0x14>;
clock-names = "fclk_div3", "fclk_div4", "fclk_div5", "fclk_div7", "gp0_pll", "clk_gpu", "clk_gpu_0", "clk_gpu_1";
linux, phandle =<0x84>;
phandle =<0x84>;
clk125_cfg {
clk_freq =<0x7735940>;
clk_parent = "fclk_div4";
clkp_freq =<0x1dcd6500>;
voltage =<0x47e>;
keep_count =<0x5>;
threshold =<0x1e 0x78>;
};
dvfs250_cfg {
clk_freq =<0xee6b280>;
clk_parent = "fclk_div4";
clkp_freq =<0x1dcd6500>;
voltage =<0x47e>;
keep_count =<0x5>;
threshold =<0x50 0xaa>;
};
dvfs285_cfg {
clk_freq =<0x1107a650>;
clk_parent = "fclk_div7";
clkp_freq =<0x1107a650>;
voltage =<0x47e>;
keep_count =<0x5>;
threshold =<0x64 0xbe>;
linux, phandle =<0x2>;
phandle =<0x2>;
};
dvfs400_cfg {
clk_freq =<0x17d78400>;
clk_parent = "fclk_div5";
clkp_freq =<0x17d78400>;
voltage =<0x47e>;
keep_count =<0x5>;
threshold =<0x98 0xcf>;
linux, phandle =<0x3>;
phandle =<0x3>;
};
dvfs500_cfg {
clk_freq =<0x1dcd6500>;
clk_parent = "fclk_div4";
clkp_freq =<0x1dcd6500>;
voltage =<0x47e>;
keep_count =<0x5>;
threshold =<0xb4 0xdc>;
linux, phandle =<0x4>;
phandle =<0x4>;
};
dvfs666_cfg {
clk_freq =<0x27b25a80>;
clk_parent = "fclk_div3";
clkp_freq =<0x27b25a80>;
voltage =<0x47e>;
keep_count =<0x5>;
threshold =<0xd2 0xec>;
linux, phandle =<0x5>;
phandle =<0x5>;
};
dvfs800_cfg {
clk_freq =<0x2f34f600>;
clk_parent = "gp0_pll";
clkp_freq =<0x2f34f600>;
voltage =<0x47e>;
keep_count =<0x5>;
threshold =<0xe6 0xff>;
};
};
gpu_clk @ c883c00 {
compatible = "meson, gpu-clkgen-1.00.a";
# clock-cells =<0x0>;
reg =<0x0 0xc883c000 0x0 0x1000>;
clocks =<0x6 0x8 0x6 0x9 0x6 0x11 0x6 0x12 0x6 0x1e 0x6 0x15 0x6 0x13 0x6 0x14>;
clock-names = "fclk_div3", "fclk_div4", "fclk_div5", "fclk_div7", "gp0_pll", "clk_gpu", "clk_gpu_0", "clk_gpu_1";
clock-output-names = "clk_mali";
tbl =<0x7 0x8 0x9 0xa 0xb 0xc>;
clk125_cfg {
clk_freq =<0x7735940>;
clk_parent = "fclk_div4";
clkp_freq =<0x1dcd6500>;
voltage =<0x47e>;
keep_count =<0x5>;
threshold =<0x1e 0x78>;
linux, phandle =<0x7>;
phandle =<0x7>;
};
clk250_cfg {
clk_freq =<0xee6b280>;
clk_parent = "fclk_div4";
clkp_freq =<0x1dcd6500>;
voltage =<0x47e>;
keep_count =<0x5>;
threshold =<0x50 0xaa>;
linux, phandle =<0x8>;
phandle =<0x8>;
};
clk285_cfg {
clk_freq =<0x1107a650>;
clk_parent = "fclk_div7";
clkp_freq =<0x1107a650>;
voltage =<0x47e>;
keep_count =<0x5>;
threshold =<0x64 0xbe>;
linux, phandle =<0x9>;
phandle =<0x9>;
};
clk400_cfg {
clk_freq =<0x17d78400>;
clk_parent = "fclk_div5";
clkp_freq =<0x17d78400>;
voltage =<0x47e>;
keep_count =<0x5>;
threshold =<0x98 0xcf>;
linux, phandle =<0xa>;
phandle =<0xa>;
};
clk500_cfg {
clk_freq =<0x1dcd6500>;
clk_parent = "fclk_div4";
clkp_freq =<0x1dcd6500>;
voltage =<0x47e>;
keep_count =<0x5>;
threshold =<0xb4 0xdc>;
linux, phandle =<0xb>;
phandle =<0xb>;
};
clk666_cfg {
clk_freq =<0x27bc8410>;
clk_parent = "fclk_div3";
clkp_freq =<0x27bc8410>;
voltage =<0x47e>;
keep_count =<0x5>;
threshold =<0xd2 0xec>;
linux, phandle =<0xc>;
phandle =<0xc>;
};
clk720_cfg {
clk_freq =<0x2aea5400>;
clk_parent = "gp0_pll";
clkp_freq =<0x2aea5400>;
voltage =<0x47e>;
keep_count =<0x5>;
threshold =<0xe6 0xff>;
};
};
cpus {
# address-cells =<0x2>;
# size-cells =<0x0>;
cpu-map {
cluster0 {
# Cooling-cells =<0x2>;
linux, phandle =<0x80>;
phandle =<0x80>;
core0 {
cpu =<0xd>;
};
core1 {
cpu =<0xe>;
};
core2 {
cpu =<0xf>;
};
core3 {
cpu =<0x10>;
};
};
cluster1 {
# Cooling-cells =<0x2>;
linux, phandle =<0x81>;
phandle =<0x81>;
core0 {
cpu =<0x11>;
};
core1 {
cpu =<0x12>;
};
core2 {
cpu =<0x13>;
};
core3 {
cpu =<0x14>;
};
};
};
cpu @ 0 {
device_type = "cpu";
compatible = "arm, cortex-a53", "arm, armv8";
reg =<0x0 0x0>;
enable-method = "psci";
clocks =<0x15 0x0>;
clock-names = "cpu-cluster.0";
cpu-idle-states =<0x16 0x17>;
linux, phandle =<0xd>;
phandle =<0xd>;
};
cpu @ 1 {
device_type = "cpu";
compatible = "arm, cortex-a53", "arm, armv8";
reg =<0x0 0x1>;
enable-method = "psci";
clocks =<0x15 0x0>;
clock-names = "cpu-cluster.0";
cpu-idle-states =<0x16 0x17>;
linux, phandle =<0xe>;
phandle =<0xe>;
};
cpu @ 2 {
device_type = "cpu";
compatible = "arm, cortex-a53", "arm, armv8";
reg =<0x0 0x2>;
enable-method = "psci";
clocks =<0x15 0x0>;
clock-names = "cpu-cluster.0";
cpu-idle-states =<0x16 0x17>;
linux, phandle =<0xf>;
phandle =<0xf>;
};
cpu @ 3 {
device_type = "cpu";
compatible = "arm, cortex-a53", "arm, armv8";
reg =<0x0 0x3>;
enable-method = "psci";
clocks =<0x15 0x0>;
clock-names = "cpu-cluster.0";
cpu-idle-states =<0x16 0x17>;
linux, phandle =<0x10>;
phandle =<0x10>;
};
cpu @ 100 {
device_type = "cpu";
compatible = "arm, cortex-a53", "arm, armv8";
reg =<0x0 0x100>;
enable-method = "psci";
clocks =<0x15 0x1>;
clock-names = "cpu-cluster.1";
cpu-idle-states =<0x16 0x17>;
linux, phandle =<0x11>;
phandle =<0x11>;
};
cpu @ 101 {
device_type = "cpu";
compatible = "arm, cortex-a53", "arm, armv8";
reg =<0x0 0x101>;
enable-method = "psci";
clocks =<0x15 0x1>;
clock-names = "cpu-cluster.1";
cpu-idle-states =<0x16 0x17>;
linux, phandle =<0x12>;
phandle =<0x12>;
};
cpu @ 102 {
device_type = "cpu";
compatible = "arm, cortex-a53", "arm, armv8";
reg =<0x0 0x102>;
enable-method = "psci";
clocks =<0x15 0x1>;
clock-names = "cpu-cluster.1";
cpu-idle-states =<0x16 0x17>;
linux, phandle =<0x13>;
phandle =<0x13>;
};
cpu @ 103 {
device_type = "cpu";
compatible = "arm, cortex-a53", "arm, armv8";
reg =<0x0 0x103>;
enable-method = "psci";
clocks =<0x15 0x1>;
clock-names = "cpu-cluster.1";
cpu-idle-states =<0x16 0x17>;
linux, phandle =<0x14>;
phandle =<0x14>;
};
idle-states {
entry-method = "arm, psci";
cpu-sleep-0 {
compatible = "arm, idle-state";
arm, psci-suspend-param =<0x10000>;
local-timer-stop;
entry-latency-us =<0x2710>;
exit-latency-us =<0x2710>;
min-residency-us =<0x7530>;
linux, phandle =<0x16>;
phandle =<0x16>;
};
cluster-sleep-0 {
compatible = "arm, idle-state";
arm, psci-suspend-param =<0x1010000>;
local-timer-stop;
entry-latency-us =<0x3a98>;
exit-latency-us =<0x2710>;
min-residency-us =<0x88b8>;
linux, phandle =<0x17>;
phandle =<0x17>;
};
};
};
timer {
compatible = "arm, armv8-timer";
interrupts =<0x1 0xd 0xff01 0x1 0xe 0xff01 0x1 0xb 0xff01 0x1 0xa 0xff01>;
};
timer_bc {
compatible = "arm, meson-bc-timer";
reg =<0x0 0xc1109990 0x0 0x4 0x0 0xc1109994 0x0 0x4>;
timer_name = "Meson TimerF";
clockevent-rating =<0x12c>;
clockevent-shift =<0x14>;
clockevent-features =<0x23>;
interrupts =<0x0 0x3c 0x1>;
bit_enable =<0x10>;
bit_mode =<0xc>;
bit_resolution =<0x0>;
};
arm_pmu {
compatible = "arm, armv8-pmuv3";
interrupts =<0x0 0x89 0x4 0x0 0x8a 0x4 0x0 0x99 0x4 0x0 0x9a 0x4>;
};
pm {
compatible = "amlogic, pm";
device_name = "aml_pm";
gxbaby-suspend;
reg =<0x0 0xc81000a8 0x0 0x4 0x0 0xc810023c 0x0 0x4>;
};
interrupt-controller @ 2c001000 {
compatible = "arm, cortex-a15-gic", "arm, cortex-a9-gic";
# Interrupt-cells =<0x3>;
# address-cells =<0x0>;
interrupt-controller;
reg =<0x0 0xc4301000 0x0 0x1000 0x0 0xc4302000 0x0 0x100>;
interrupts =<0x1 0x9 0xf04>;
linux, phandle =<0x1>;
phandle =<0x1>;
};
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 =<0x18>;
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>;
storage_set_enctype =<0x8200006a>;
storage_get_enctype =<0x8200006b>;
storage_version =<0x8200006c>;
};
cpu_iomap {
compatible = "amlogic, iomap";
# address-cells =<0x2>;
# size-cells =<0x2>;
ranges;
io_cbus_base {
reg =<0x0 0xc1100000 0x0 0x100000>;
};
io_apb_base {
reg =<0x0 0xd0000000 0x0 0x200000>;
};
io_aobus_base {
reg =<0x0 0xc8100000 0x0 0x100000>;
};
};
cpufreq {
compatible = "arm, scpi-cpufreq";
};
amlogic-watchdog {
compatible = "amlogic, gx-wdt";
status = "disable";
default_timeout =<0xa>;
reset_watchdog_method =<0x1>;
reset_watchdog_time =<0x2>;
shutdown_timeout =<0xa>;
firmware_timeout =<0x6>;
suspend_timeout =<0x6>;
reg =<0x0 0xc11098d0 0x0 0x10>;
clocks =<0x6 0x2>;
};
amlogic-jtag {
compatible = "amlogic, jtag";
status = "okay";
pinctrl-names = "jtag_apao_pins", "jtag_apee_pins";
pinctrl-0 =<0x19>;
pinctrl-1 =<0x1a>;
};
meson_clock {
compatible = "amlogic, gxl-clock";
reg =<0x0 0xc883c000 0x0 0x1000 0x0 0xc8100000 0x0 0x1000>;
# clock-cells =<0x1>;
# Reset-cells =<0x1>;
sys_max =<0x5b8d8000>;
linux, phandle =<0x6>;
phandle =<0x6>;
};
cpu_info {
compatible = "amlogic, cpuinfo";
cpuinfo_cmd =<0x82000044>;
};
pinmux {
compatible = "amlogic, pinmux-gxl";
dev_name = "pinmux";
# Pinmux-cells =<0x2>;
# address-cells =<0x2>;
# size-cells =<0x2>;
reg =<0x0 0xc1109880 0x0 0x10>;
ranges;
banks @ c11080b0 {
reg =<0x0 0xc88344b0 0x0 0x28 0x0 0xc88344e8 0x0 0x14 0x0 0xc8834520 0x0 0x14 0x0 0xc8834430 0x0 0x40>;
reg-names = "mux", "pull", "pull-enable", "gpio";
gpio-controller;
# Gpio-cells =<0x2>;
linux, phandle =<0x39>;
phandle =<0x39>;
};
ao-bank @ c1108030 {
reg =<0x0 0xc8100014 0x0 0x8 0x0 0xc810002c 0x0 0x4 0x0 0xc8100024 0x0 0x8>;
reg-names = "mux", "pull", "gpio";
gpio-controller;
# Gpio-cells =<0x2>;
linux, phandle =<0x34>;
phandle =<0x34>;
};
external_eth_pins {
amlogic, setmask =<0x4 0xfffc00>;
amlogic, clrmask =<0x4 0x3fc 0x3 0xffcff800>;
amlogic, pins = "GPIOZ_0", "GPIOZ_1", "GPIOZ_2", "GPIOZ_3", "GPIOZ_4", "GPIOZ_5", "GPIOZ_6", "GPIOZ_7", "GPIOZ_8", "GPIOZ_9", "GPIOZ_10", "GPIOZ_11 "," GPIOZ_12 "," GPIOZ_13 ";
linux, phandle =<0x38>;
phandle =<0x38>;
};
internal_eth_pins {
amlogic, setmask =<0x4 0x3000000>;
amlogic, clrmask =<0x3 0x300000>;
amlogic, pins = "GPIOZ_14", "GPIOZ_15";
};
jtag_apao_pin {
amlogic, clrmask =<0x6 0x7fe0000>;
amlogic, pins = "GPIOH_6", "GPIOH_7", "GPIOH_8", "GPIOH_9";
linux, phandle =<0x19>;
phandle =<0x19>;
};
jtag_apee_pin {
amlogic, clrmask =<0x6 0x3c>;
amlogic, pins = "CARD_0", "CARD_1", "CARD_2", "CARD_3";
linux, phandle =<0x1a>;
phandle =<0x1a>;
};
remote_pin {
amlogic, setmask =<0x10 0x1>;
amlogic, pins = "GPIOAO_7";
linux, phandle =<0x26>;
phandle =<0x26>;
};
ao_uart {
amlogic, setmask =<0x10 0x1800>;
amlogic, pins = "GPIOAO_0", "GPIOAO_1";
};
ao_b_uart {
amlogic, setmask =<0x10 0x1800000>;
amlogic, pins = "GPIOAO_4", "GPIOAO_5";
linux, phandle =<0x6a>;
phandle =<0x6a>;
};
a_uart {
amlogic, setmask =<0x5 0xf0000>;
amlogic, clrmask =<0x5 0x3c0>;
amlogic, pins = "GPIOX_12", "GPIOX_13", "GPIOX_14", "GPIOX_15";
linux, phandle =<0x67>;
phandle =<0x67>;
};
b_uart {
amlogic, setmask =<0x2 0x18000>;
amlogic, pins = "GPIODV_24", "GPIODV_25";
linux, phandle =<0x68>;
phandle =<0x68>;
};
c_uart {
amlogic, setmask =<0x5 0x3000>;
amlogic, pins = "GPIOX_8", "GPIOX_9";
linux, phandle =<0x69>;
phandle =<0x69>;
};
wifi_32k_pins {
amlogic, setmask =<0x5 0x8000>;
amlogic, pins = "GPIOX_16";
linux, phandle =<0x3f>;
phandle =<0x3f>;
};
sd_clk_cmd_pins {
amlogic, setmask =<0x6 0xc 0x10 0x1800>;
amlogic, pins = "CARD_2", "CARD_3";
amlogic, enable-output =<0x1>;
amlogic, pullup =<0x1>;
amlogic, pullupen =<0x1>;
linux, phandle =<0x45>;
phandle =<0x45>;
};
sd_all_pins {
amlogic, setmask =<0x6 0x3f 0x10 0x1800>;
amlogic, clrmask =<0x6 0xfc0>;
amlogic, pins = "CARD_0", "CARD_1", "CARD_2", "CARD_3", "CARD_4", "CARD_5";
amlogic, enable-output =<0x1>;
amlogic, pullup =<0x1>;
amlogic, pullupen =<0x1>;
linux, phandle =<0x46>;
phandle =<0x46>;
};
sd_1bit_pins {
amlogic, setmask =<0x6 0x1c 0x10 0x1800>;
amlogic, clrmask =<0x6 0xcc3>;
amlogic, pins = "CARD_1", "CARD_2", "CARD_3";
amlogic, enable-output =<0x1>;
amlogic, pullup =<0x1>;
amlogic, pullupen =<0x1>;
linux, phandle =<0x47>;
phandle =<0x47>;
};
sd_clk_cmd_uart_pins {
amlogic, setmask =<0x6 0x30c>;
amlogic, clrmask =<0x6 0xcc3 0x10 0x1800>;
amlogic, pins = "CARD_2", "CARD_3";
amlogic, enable-output =<0x1>;
amlogic, pullup =<0x1>;
amlogic, pullupen =<0x1>;
linux, phandle =<0x48>;
phandle =<0x48>;
};
sd_1bit_uart_pins {
amlogic, setmask =<0x6 0x31c>;
amlogic, clrmask =<0x6 0xcc3 0x10 0x1800>;
amlogic, pins = "CARD_1", "CARD_2", "CARD_3";
amlogic, enable-output =<0x1>;
amlogic, pullup =<0x1>;
amlogic, pullupen =<0x1>;
linux, phandle =<0x49>;
phandle =<0x49>;
};
sd_to_ao_uart_pins {
amlogic, setmask =<0x10 0x1800>;
amlogic, clrmask =<0x6 0x300>;
amlogic, pins = "GPIOAO_0", "GPIOAO_1";
amlogic, enable-output =<0x1>;
amlogic, pullup =<0x1>;
amlogic, pullupen =<0x1>;
linux, phandle =<0x4a>;
phandle =<0x4a>;
};
ao_to_sd_uart_pins {
amlogic, setmask =<0x6 0x300>;
amlogic, clrmask =<0x10 0x1800 0x6 0xcc3>;
amlogic, pins = "CARD_4", "CARD_5";
amlogic, enable-output =<0x1>;
amlogic, pullup =<0x1>;
amlogic, pullupen =<0x1>;
linux, phandle =<0x4b>;
phandle =<0x4b>;
};
ao_to_sd_jtag_pins {
amlogic, setmask =<0x6 0x300>;
amlogic, clrmask =<0x6 0xcff 0x10 0x1800>;
amlogic, pins = "CARD_4", "CARD_5";
amlogic, enable-output =<0x1>;
amlogic, pullup =<0x1>;
amlogic, pullupen =<0x1>;
linux, phandle =<0x4c>;
phandle =<0x4c>;
};
sd_to_ao_jtag_pins {
amlogic, setmask =<0x10 0x1800>;
amlogic, clrmask =<0x6 0xfc0>;
amlogic, pins = "GPIOAO_0", "GPIOAO_1";
amlogic, enable-output =<0x1>;
amlogic, pullup =<0x1>;
amlogic, pullupen =<0x1>;
linux, phandle =<0x4d>;
phandle =<0x4d>;
};
emmc_clk_cmd_pins {
amlogic, setmask =<0x7 0x60000000>;
amlogic, clrmask =<0x7 0xE0>;
amlogic, pins = "BOOT_8", "BOOT_10";
amlogic, enable-output =<0x1>;
amlogic, pullup =<0x1>;
amlogic, pullupen =<0x1>;
linux, phandle =<0x41>;
phandle =<0x41>;
};
emmc_conf_pull_up {
amlogic, pins = "BOOT_0", "BOOT_1", "BOOT_2", "BOOT_3", "BOOT_4", "BOOT_5", "BOOT_6", "BOOT_7", "BOOT_8", "BOOT_10";
amlogic, pullup =<0x1>;
amlogic, pullupen =<0x1>;
linux, phandle =<0x42>;
phandle =<0x42>;
};
emmc_conf_pull_done {
amlogic, pins = "BOOT_15";
amlogic, pullup =<0x0>;
amlogic, pullupen =<0x1>;
linux, phandle =<0x43>;
phandle =<0x43>;
};
emmc_all_pins {
amlogic, setmask =<0x7 0xf0000000>;
amlogic, clrmask =<0x7 0xE0>;
amlogic, pins = "BOOT_0", "BOOT_1", "BOOT_2", "BOOT_3", "BOOT_4", "BOOT_5", "BOOT_6", "BOOT_7", "BOOT_8", "BOOT_10", "BOOT_15";
amlogic, enable-output =<0x1>;
linux, phandle =<0x44>;
phandle =<0x44>;
};
sdio_clk_cmd_pins {
amlogic, setmask =<0x5 0xc000000>;
amlogic, pins = "GPIOX_4", "GPIOX_5";
amlogic, enable-output =<0x1>;
amlogic, pullup =<0x1>;
amlogic, pullupen =<0x1>;
linux, phandle =<0x4e>;
phandle =<0x4e>;
};
sdio_all_pins {
amlogic, setmask =<0x5 0xfc000000>;
amlogic, pins = "GPIOX_0", "GPIOX_1", "GPIOX_2", "GPIOX_3", "GPIOX_4", "GPIOX_5";
amlogic, enable-output =<0x1>;
amlogic, pullup =<0x1>;
amlogic, pullupen =<0x1>;
linux, phandle =<0x4f>;
phandle =<0x4f>;
};
conf_nand_pulldown {
amlogic, pins = "BOOT_0", "BOOT_1", "BOOT_2", "BOOT_3", "BOOT_4", "BOOT_5", "BOOT_6", "BOOT_7", "BOOT_15";
amlogic, pullup =<0x0>;
amlogic, pullupen =<0x1>;
linux, phandle =<0x50>;
phandle =<0x50>;
};
conf_nand_pullup {
amlogic, pins = "BOOT_8", "BOOT_10";
amlogic, pullup =<0x1>;
amlogic, pullupen =<0x1>;
linux, phandle =<0x51>;
phandle =<0x51>;
};
all_nand_pins {
amlogic, setmask =<0x7 0x800000ff>;
amlogic, clrmask =<0x7 0x70ffbc00>;
amlogic, pins = "BOOT_0", "BOOT_1", "BOOT_2", "BOOT_3", "BOOT_4", "BOOT_5", "BOOT_6", "BOOT_7", "BOOT_8", "BOOT_9", "BOOT_10", "BOOT_11 "," BOOT_12 "," BOOT_13 "," BOOT_14 "," BOOT_15 ";
amlogic, enable-output =<0x1>;
linux, phandle =<0x52>;
phandle =<0x52>;
};
nand_cs {
amlogic, setmask =<0x7 0xc0>;
amlogic, clrmask =<0x7 0x40040000>;
amlogic, pins = "BOOT_8", "BOOT_9";
linux, phandle =<0x53>;
phandle =<0x53>;
};
hdmitx_hpd {
amlogic, setmask =<0x6 0x80000000>;
amlogic, pins = "GPIOH_0";
linux, phandle =<0x64>;
phandle =<0x64>;
};
hdmitx_ddc {
amlogic, setmask =<0x6 0x30000000>;
amlogic, pins = "GPIOH_1", "GPIOH_2";
linux, phandle =<0x65>;
phandle =<0x65>;
};
hdmitx_aocec {
amlogic, setmask =<0x10 0x8000>;
amlogic, clrmask =<0x10 0x24000 0x11 0x1>;
amlogic, pins = "GPIOAO_8";
linux, phandle =<0x66>;
phandle =<0x66>;
};
hdmitx_eecec {
amlogic, setmask =<0x10 0x4000>;
amlogic, clrmask =<0x10 0x28000 0x11 0x1>;
amlogic, pins = "GPIOAO_8";
};
ao_i2c {
amlogic, setmask =<0x10 0x60>;
amlogic, clrmask =<0x10 0x1800006>;
amlogic, pins = "GPIOAO_4", "GPIOAO_5";
linux, phandle =<0x1b>;
phandle =<0x1b>;
};
a_i2c {
amlogic, setmask =<0x1 0xc000>;
amlogic, clrmask =<0x3 0x18 0x2 0x18000 0x2 0xc0 0x1 0x600000>;
amlogic, pins = "GPIODV_24", "GPIODV_25";
linux, phandle =<0x1c>;
phandle =<0x1c>;
};
b_i2c {
amlogic, setmask =<0x1 0x3000>;
amlogic, clrmask =<0x2 0x6000 0x1 0x1c0000>;
amlogic, pins = "GPIODV_26", "GPIODV_27";
linux, phandle =<0x1d>;
phandle =<0x1d>;
};
c_i2c {
amlogic, setmask =<0x1 0xc00>;
amlogic, clrmask =<0x2 0x1800 0x1 0x200 0x2 0x20>;
amlogic, pins = "GPIODV_28", "GPIODV_29";
linux, phandle =<0x1e>;
phandle =<0x1e>;
};
c_i2c_pin1 {
amlogic, setmask =<0x1 0x30000>;
amlogic, clrmask =<0x1 0x2000000 0x3 0x20>;
amlogic, pins = "GPIODV_18", "GPIODV_19";
};
d_i2c {
amlogic, setmask =<0x5 0x30>;
amlogic, clrmask =<0x5 0x300c03 0x6 0x3>;
amlogic, pins = "GPIOX_10", "GPIOX_11";
linux, phandle =<0x1f>;
phandle =<0x1f>;
};
spicc_pins_z11z12z13 {
amlogic, setmask =<0x4 0x1c>;
amlogic, clrmask =<0x3 0x800 0x4 0x1c00>;
amlogic, pins = "GPIOZ_11", "GPIOZ_12", "GPIOZ_13";
};
spicc_pulldown_z11z12z13 {
amlogic, pins = "GPIOZ_11", "GPIOZ_12", "GPIOZ_13";
amlogic, pullup =<0x0>;
amlogic, pullupen =<0x1>;
};
spicc_pullup_z11z12z13 {
amlogic, pins = "GPIOZ_11", "GPIOZ_12", "GPIOZ_13";
amlogic, pullup =<0x1>;
amlogic, pullupen =<0x1>;
};
spicc_pins_x8x9x11 {
amlogic, setmask =<0x5 0xd>;
amlogic, clrmask =<0x5 0xd03430 0x6 0xd>;
amlogic, pins = "GPIOX_8", "GPIOX_9", "GPIOX_11";
};
spicc_pulldown_x8x9x11 {
amlogic, pins = "GPIOX_8", "GPIOX_9", "GPIOX_11";
amlogic, pullup =<0x0>;
amlogic, pullupen =<0x1>;
};
spicc_pullup_x8x9x11 {
amlogic, pins = "GPIOX_8", "GPIOX_9", "GPIOX_11";
amlogic, pullup =<0x1>;
amlogic, pullupen =<0x1>;
};
audio_pin {
amlogic, setmask =<0x6 0x7800000>;
amlogic, clrmask =<0x6 0x7e0000>;
amlogic, pins = "GPIOH_6", "GPIOH_7", "GPIOH_8", "GPIOH_9";
linux, phandle =<0x6f>;
phandle =<0x6f>;
};
audio_pin1 {
amlogic, setmask =<0x6 0x10000000>;
amlogic, clrmask =<0x6 0x8000000>;
amlogic, pins = "GPIOH_4";
linux, phandle =<0x6e>;
phandle =<0x6e>;
};
audio_btpcm_pins {
amlogic, setmask =<0x5 0xf00000>;
amlogic, clrmask =<0x5 0x3c33>;
amlogic, pins = "GPIOX_8", "GPIOX_9", "GPIOX_10", "GPIOX_11";
linux, phandle =<0x6d>;
phandle =<0x6d>;
};
};
cpu_version {
reg =<0x0 0xc8100220 0x0 0x4>;
};
meson_clk_msr {
compatible = "amlogic, gxl_measure";
reg =<0x0 0xc110875c 0x0 0x4 0x0 0xc1108764 0x0 0x4>;
};
i2c @ c8100500 {
compatible = "amlogic, meson-i2c";
dev_name = "i2c-AO";
status = "disabled";
reg =<0x0 0xc8100500 0x0 0x1d>;
device_id =<0x0>;
pinctrl-names = "default";
pinctrl-0 =<0x1b>;
# address-cells =<0x1>;
# size-cells =<0x0>;
use_pio =<0x0>;
master_i2c_speed =<0x493e0>;
clocks =<0x6 0xa>;
clock-names = "clk_i2c";
resets =<0x6 0x9>;
};
i2c @ c1108500 {
compatible = "amlogic, meson-i2c";
dev_name = "i2c-A";
status = "disabled";
reg =<0x0 0xc1108500 0x0 0x20>;
device_id =<0x1>;
pinctrl-names = "default";
pinctrl-0 =<0x1c>;
# address-cells =<0x1>;
# size-cells =<0x0>;
use_pio =<0x0>;
master_i2c_speed =<0x493e0>;
clocks =<0x6 0xa>;
clock-names = "clk_i2c";
resets =<0x6 0x9>;
};
i2c @ c11087c0 {
compatible = "amlogic, meson-i2c";
dev_name = "i2c-B";
status = "disabled";
reg =<0x0 0xc11087c0 0x0 0x20>;
device_id =<0x2>;
pinctrl-names = "default";
pinctrl-0 =<0x1d>;
# address-cells =<0x1>;
# size-cells =<0x0>;
use_pio =<0x0>;
master_i2c_speed =<0x493e0>;
clocks =<0x6 0xa>;
clock-names = "clk_i2c";
resets =<0x6 0x9>;
};
i2c @ c11087e0 {
compatible = "amlogic, meson-i2c";
dev_name = "i2c-C";
status = "disabled";
reg =<0x0 0xc11087e0 0x0 0x20>;
device_id =<0x3>;
pinctrl-names = "default";
pinctrl-0 =<0x1e>;
# address-cells =<0x1>;
# size-cells =<0x0>;
use_pio =<0x0>;
master_i2c_speed =<0x493e0>;
clocks =<0x6 0xa>;
clock-names = "clk_i2c";
resets =<0x6 0x9>;
};
i2c @ c1108d20 {
compatible = "amlogic, meson-i2c";
dev_name = "i2c-D";
status = "disabled";
reg =<0x0 0xc1108d20 0x0 0x20>;
device_id =<0x4>;
pinctrl-names = "default";
pinctrl-0 =<0x1f>;
# address-cells =<0x1>;
# size-cells =<0x0>;
use_pio =<0x0>;
master_i2c_speed =<0x493e0>;
clocks =<0x6 0xa>;
clock-names = "clk_i2c";
resets =<0x6 0x9>;
};
efuse {
compatible = "amlogic, efuse";
read_cmd =<0x82000030>;
write_cmd =<0x82000031>;
get_max_cmd =<0x82000033>;
key =<0x20>;
resets =<0x6 0x3e>;
reset-names = "efuse_clk";
status = "ok";
};
efusekey {
keynum =<0x4>;
key0 =<0x21>;
key1 =<0x22>;
key2 =<0x23>;
key3 =<0x24>;
linux, phandle =<0x20>;
phandle =<0x20>;
key_0 {
keyname = "mac";
offset =<0x0>;
size =<0x6>;
linux, phandle =<0x21>;
phandle =<0x21>;
};
key_1 {
keyname = "mac_bt";
offset =<0x6>;
size =<0x6>;
linux, phandle =<0x22>;
phandle =<0x22>;
};
key_2 {
keyname = "mac_wifi";
offset =<0xc>;
size =<0x6>;
linux, phandle =<0x23>;
phandle =<0x23>;
};
key_3 {
keyname = "usid";
offset =<0x12>;
size =<0x10>;
linux, phandle =<0x24>;
phandle =<0x24>;
};
};
mhu @ c883c400 {
compatible = "amlogic, meson_mhu";
reg =<0x0 0xc883c400 0x0 0x4c 0x0 0xc8013000 0x0 0x800>;
interrupts =<0x0 0xd1 0x8 0x0 0xd2 0x8>;
# Mbox-cells =<0x1>;
mbox-names = "cpu_to_scp_low", "cpu_to_scp_high";
mboxes =<0x25 0x0 0x25 0x1>;
linux, phandle =<0x25>;
phandle =<0x25>;
};
scpi_clocks {
compatible = "arm, scpi-clks";
scpi_clocks @ 0 {
compatible = "arm, scpi-clk-indexed";
# clock-cells =<0x1>;
clock-indices =<0x0 0x1>;
clock-output-names = "vbig", "vlittle";
linux, phandle =<0x15>;
phandle =<0x15>;
};
};
meson-remote {
compatible = "amlogic, aml_remote";
dev_name = "meson-remote";
status = "okay";
remote_ao_offset =<0x580>;
interrupts =<0x0 0xc4 0x1>;
pinctrl-names = "default";
pinctrl-0 =<0x26>;
};
rng {
compatible = "amlogic, meson-rng";
reg =<0x0 0xc8834000 0x0 0x4>;
};
audio_data {
compatible = "amlogic, audio_data";
query_licence_cmd =<0x82000050>;
status = "okay";
};
saradc {
compatible = "amlogic, saradc";
status = "okay";
interrupts =<0x0 0x9 0x1>;
interrupt-names = "saradc_int";
clocks =<0x6 0x2>;
clock-names = "saradc_clk";
resets =<0x6 0x56>;
reg =<0x0 0xc1108680 0x0 0x30 0x0 0xc883c3d8 0x0 0x8>;
};
defendkey {
compatible = "amlogic, defendkey";
reg =<0x0 0xc8834500 0x0 0x4>;
mem_size =<0x0 0x100000>;
status = "okay";
};
spicc {
compatible = "amlogic, spicc";
status = "disabled";
reg =<0x0 0xc1108d80 0x0 0x28>;
resets =<0x6 0x8>;
reset-names = "spicc_clk";
clocks =<0x6 0xa>;
clock-names = "clk81";
interrupts =<0x0 0x51 0x1>;
device_id =<0x0>;
};
aml_aes {
compatible = "amlogic, aes_dma";
dev_name = "aml_aes_dma";
interrupts =<0x0 0xbc 0x1 0x0 0xbd 0x1>;
reg =<0x0 0xc883e000 0x0 0x28>;
};
aml_tdes {
compatible = "amlogic, des_dma, tdes_dma";
dev_name = "aml_tdes_dma";
interrupts =<0x0 0xbc 0x1 0x0 0xbd 0x1>;
reg =<0x0 0xc883e000 0x0 0x28>;
};
aml_sha {
compatible = "amlogic, sha_dma";
dev_name = "aml_sha_dma";
interrupts =<0x0 0xbc 0x1 0x0 0xbd 0x1>;
reg =<0x0 0xc883e000 0x0 0x28>;
};
meson-pwm {
compatible = "amlogic, meson-pwm";
status = "okay";
# Pwm-cells =<0x2>;
pwm-outputs =<0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xa 0xb 0xc 0xd 0xe 0xf>;
reg =<0x0 0xc1108550 0x0 0x1c 0x0 0xc1108640 0x0 0x1c 0x0 0xc11086c0 0x0 0x1c 0x0 0xc8100550 0x0 0x1c>;
clocks =<0x6 0x2 0x6 0x5 0x6 0x9 0x6 0x8>;
clock-names = "xtal", "vid_pll_clk", "fclk_div4", "fclk_div3";
clock-select =<0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0>;
};
partitions {
parts =<0xa>;
part-0 =<0x27>;
part-1 =<0x28>;
part-2 =<0x29>;
part-3 =<0x2a>;
part-4 =<0x2b>;
part-5 =<0x2c>;
part-6 =<0x2d>;
part-7 =<0x2e>;
part-8 =<0x2f>;
part-9 =<0x30>;
logo {
pname = "logo";
size =<0x0 0x2000000>;
mask =<0x1>;
linux, phandle =<0x27>;
phandle =<0x27>;
};
recovery {
pname = "recovery";
size =<0x0 0x2000000>;
mask =<0x1>;
linux, phandle =<0x28>;
phandle =<0x28>;
};
rsv {
pname = "rsv";
size =<0x0 0x800000>;
mask =<0x1>;
linux, phandle =<0x29>;
phandle =<0x29>;
};
tee {
pname = "tee";
size =<0x0 0x800000>;
mask =<0x1>;
linux, phandle =<0x2a>;
phandle =<0x2a>;
};
crypt {
pname = "crypt";
size =<0x0 0x2000000>;
mask =<0x1>;
linux, phandle =<0x2b>;
phandle =<0x2b>;
};
misc {
pname = "misc";
size =<0x0 0x2000000>;
mask =<0x1>;
linux, phandle =<0x2c>;
phandle =<0x2c>;
};
boot {
pname = "boot";
size =<0x0 0x2000000>;
mask =<0x1>;
linux, phandle =<0x2d>;
phandle =<0x2d>;
};
system {
pname = "system";
size =<0x0 0x80000000>;
mask =<0x1>;
linux, phandle =<0x2e>;
phandle =<0x2e>;
};
cache {
pname = "cache";
size =<0x0 0x20000000>;
mask =<0x2>;
linux, phandle =<0x2f>;
phandle =<0x2f>;
};
data {
pname = "data";
size =<0xffffffff 0xffffffff>;
mask =<0x4>;
linux, phandle =<0x30>;
phandle =<0x30>;
};
};
aliases {
serial0 = "/ serial @ c81004c0";
serial1 = "/ serial @ c11084c0";
serial2 = "/ serial @ c11084dc";
serial3 = "/ serial @ c1108700";
serial4 = "/ serial @ c81004e0";
};
memory @ {00000000
device_type = "memory";
linux, usable-memory =<0x0 0x100000 0x0 0x7ff00000>;
};
reserved-memory {
# address-cells =<0x2>;
# size-cells =<0x2>;
ranges;
linux, secmon {
compatible = "amlogic, aml_secmon_memory";
reg =<0x0 0x10000000 0x0 0x200000>;
no-map;
linux, phandle =<0x18>;
phandle =<0x18>;
};
linux, secos {
status = "disable";
compatible = "amlogic, aml_secos_memory";
reg =<0x0 0x5300000 0x0 0x2000000>;
no-map;
};
aml_pstore {
compatible = "amlogic, pstore";
reg =<0x0 0x7300000 0x0 0x100000>;
no-map;
};
linux, di {
compatible = "amlogic, di-mem";
size =<0x0 0x1e00000>;
linux, phandle =<0x3d>;
phandle =<0x3d>;
};
linux, chunk-reserve {
compatible = "amlogic, chunk-reserve";
size =<0x0 0x4000000>;
linux, phandle =<0x35>;
phandle =<0x35>;
};
linux, ion-dev {
compatible = "amlogic, idev-mem";
size =<0x0 0x4000000>;
linux, phandle =<0x3a>;
phandle =<0x3a>;
};
linux, vdin1_cma {
compatible = "shared-dma-pool";
reusable;
size =<0x0 0x1000000>;
alignment =<0x0 0x400000>;
linux, phandle =<0x3e>;
phandle =<0x3e>;
};
linux, ppmgr {
compatible = "shared-dma-pool";
size =<0x0 0x0>;
linux, phandle =<0x3c>;
phandle =<0x3c>;
};
linux, codec_mm_cma {
compatible = "shared-dma-pool";
reusable;
size =<0x0 0x15000000>;
alignment =<0x0 0x400000>;
linux, contiguous-region;
linux, phandle =<0x36>;
phandle =<0x36>;
};
linux, picdec {
compatible = "shared-dma-pool";
reusable;
size =<0x0 0x0>;
alignment =<0x0 0x0>;
linux, contiguous-region;
linux, phandle =<0x3b>;
phandle =<0x3b>;
};
linux, codec_mm_reserved {
compatible = "amlogic, codec-mm-reserved";
size =<0x0 0x4100000>;
alignment =<0x0 0x100000>;
linux, phandle =<0x37>;
phandle =<0x37>;
};
};
ledlight {
compatible = "amlogic, ledlight";
dev_name = "ledlight";
status = "okay";
power_gpio_0 =<0x31>;
power_gpio_1 =<0x32>;
power_gpio_2 =<0x33>;
gpio_r {
led_name = "power_led";
led_gpio =<0x34 0x9 0x0>;
led_active =<0x1>;
led_type = [52 00];
linux, phandle =<0x31>;
phandle =<0x31>;
};
gpio_g {
led_name = "power_led";
led_gpio =<0x34 0x5 0x0>;
led_active =<0x1>;
led_type = [47 00];
linux, phandle =<0x32>;
phandle =<0x32>;
};
gpio_b {
led_name = "power_led";
led_gpio =<0x34 0x6 0x0>;
led_active =<0x1>;
led_type = [42 00];
linux, phandle =<0x33>;
phandle =<0x33>;
};
};
chunk-reserve {
compatible = "amlogic, chunk-reserve";
memory-region =<0x35>;
status = "okay";
};
meson-vout {
compatible = "amlogic, meson-vout";
dev_name = "meson-vout";
status = "okay";
};
meson-fb {
compatible = "amlogic, meson-fb";
dev_name = "meson-fb";
status = "okay";
interrupts =<0x0 0x3 0x1 0x0 0x59 0x1>;
interrupt-names = "viu-vsync", "rdma";
mem_size =<0x1851000 0x100000>;
display_mode_default = "1080p60hz";
scale_mode =<0x1>;
display_size_default =<0x780 0x438 0x780 0xca8 0x20>;
logo_addr = "0x7f851000";
};
ge2d {
compatible = "amlogic, ge2d";
dev_name = "ge2d";
status = "okay";
interrupts =<0x0 0x96 0x1>;
interrupt-names = "ge2d";
clocks =<0x6 0x17 0x6 0x19>;
clock-names = "clk_vapb_0", "clk_ge2d";
resets =<0x6 0x34>;
reset-names = "ge2d";
};
codec_io {
compatible = "amlogic, codec_io";
# address-cells =<0x2>;
# size-cells =<0x2>;
ranges;
io_cbus_base {
reg =<0x0 0xc1100000 0x0 0x100000>;
};
io_dos_base {
reg =<0x0 0xc8820000 0x0 0x10000>;
};
io_hiubus_base {
reg =<0x0 0xc883c000 0x0 0x2000>;
};
io_aobus_base {
reg =<0x0 0xc8100000 0x0 0x100000>;
};
io_vcbus_base {
reg =<0x0 0xd0100000 0x0 0x40000>;
};
io_dmc_base {
reg =<0x0 0xc8838000 0x0 0x400>;
};
};
codec_mm {
compatible = "amlogic, codec, mm";
memory-region =<0x36 0x37>;
dev_name = "codec_mm";
status = "okay";
};
ethernet @ 0xc9410000 {
compatible = "amlogic, gxbb-rgmii-dwmac";
reg =<0x0 0xc9410000 0x0 0x10000 0x0 0xc8834540 0x0 0x8 0x0 0xc8834558 0x0 0xc>;
interrupts =<0x0 0x8 0x1>;
phy-mode = "rgmii";
pinctrl-names = "external_eth_pins";
pinctrl-0 =<0x38>;
rst_pin-gpios =<0x39 0xe 0x0>;
GPIOZ4_pin-gpios =<0x39 0x4 0x0>;
GPIOZ5_pin-gpios =<0x39 0x5 0x0>;
mc_val =<0x1621>;
cali_val =<0x20000>;
resets =<0x6 0x23>;
reset-names = "ethpower";
interrupt-names = "macirq";
clocks =<0x6 0xa>;
clock-names = "ethclk81";
internal_phy =<0x0>;
};
mesonstream {
compatible = "amlogic, codec, streambuf";
dev_name = "mesonstream";
status = "okay";
resets =<0x6 0x39 0x6 0x59 0x6 0x24 0x6 0x1>;
reset-names = "parser_top", "vpu_intr", "demux", "vdec";
};
amvideocap {
compatible = "amlogic, amvideocap";
dev_name = "amvideocap.0";
status = "okay";
max_size =<0x8>;
};
ion_dev {
compatible = "amlogic, ion_dev";
memory-region =<0x3a>;
};
vdec {
compatible = "amlogic, vdec";
dev_name = "vdec.0";
status = "okay";
interrupts =<0x0 0x3 0x1 0x0 0x17 0x1 0x0 0x20 0x1 0x0 0x2b 0x1 0x0 0x2c 0x1 0x0 0x2d 0x1>;
interrupt-names = "vsync", "demux", "parser", "mailbox_0", "mailbox_1", "mailbox_2";
};
picdec {
compatible = "amlogic, picdec";
memory-region =<0x3b>;
dev_name = "picdec";
status = "okay";
};
ppmgr {
compatible = "amlogic, ppmgr";
memory-region =<0x3c>;
dev_name = "ppmgr";
status = "okay";
};
deinterlace {
compatible = "amlogic, deinterlace";
status = "okay";
memory-region =<0x3d>;
interrupts =<0x0 0x2e 0x1 0x0 0x6 0x1>;
interrupt-names = "de_irq", "timerc";
buffer-size =<0x2fd000>;
hw-version =<0x2>;
};
vdin0 {
compatible = "amlogic, vdin";
dev_name = "vdin0";
status = "ok";
reserve-iomap = "true";
flag_cma =<0x1>;
cma_size =<0x10>;
interrupts =<0x0 0x53 0x1>;
rdma-irq =<0x2>;
clocks =<0x6 0x11 0x6 0x29>;
clock-names = "fclk_div5", "cts_vdin_meas_clk";
vdin_id =<0x0>;
tv_bit_mode =<0x1>;
};
vdin1 {
compatible = "amlogic, vdin";
memory-region =<0x3e>;
dev_name = "vdin1";
status = "ok";
reserve-iomap = "true";
flag_cma =<0x0>;
interrupts =<0x0 0x55 0x1>;
rdma-irq =<0x4>;
clocks =<0x6 0x11 0x6 0x29>;
clock-names = "fclk_div5", "cts_vdin_meas_clk";
vdin_id =<0x1>;
tv_bit_mode =<0x1>;
};
amvdec_656in0 {
compatible = "amlogic, amvdec_656in";
dev_name = "amvdec_656in0";
status = "ok";
reg =<0x0 0xd0048000 0x0 0x7c>;
clocks =<0x6 0x7 0x6 0x26>;
clock-names = "fclk_div2", "cts_bt656_clk0";
bt656_id =<0x0>;
};
amvdec_656in1 {
compatible = "amlogic, amvdec_656in";
dev_name = "amvdec_656in1";
status = "ok";
reg =<0x0 0xd0050000 0x0 0x7c>;
clocks =<0x6 0x7 0x6 0x27>;
clock-names = "fclk_div2", "cts_bt656_clk1";
bt656_id =<0x1>;
};
amlvecm {
compatible = "amlogic, vecm";
dev_name = "aml_vecm";
status = "okay";
gamma_en =<0x0>;
wb_en =<0x0>;
cm_en =<0x0>;
};
amvenc_avc {
compatible = "amlogic, amvenc_avc";
dev_name = "amvenc_avc";
status = "okay";
interrupts =<0x0 0x2d 0x1>;
interrupt-names = "mailbox_2";
};
hevc_enc {
compatible = "cnm, HevcEnc";
dev_name = "HevcEnc";
status = "okay";
interrupts =<0x0 0xbb 0x1>;
interrupt-names = "wave420l_irq";
# address-cells =<0x2>;
# size-cells =<0x2>;
ranges;
io_reg_base {
reg =<0x0 0xc8810000 0x0 0x4000>;
};
};
vpu {
compatible = "amlogic, vpu";
dev_name = "vpu";
status = "ok";
clk_level =<0x7>;
};
bt-dev {
compatible = "amlogic, bt-dev";
dev_name = "bt-dev";
status = "okay";
gpio_reset =<0x39 0x60 0x0>;
};
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 =<0x39 0x56 0x0>;
interrupts =<0x0 0x44 0x4>;
irq_trigger_type = "GPIO_IRQ_LOW";
power_on_pin =<0x39 0x55 0x0>;
dhd_static_buf;
pinctrl-names = "wifi_32k_pins";
pinctrl-0 =<0x3f>;
pwm_config =<0x40>;
};
wifi_pwm_conf {
pwm_channel1 =<0x4>;
pwm_channel2 =<0xc>;
pwm_channel1_conf =<0x774d 0x3ba6 0x6>;
pwm_channel2_conf =<0x7736 0x3b9b 0x9>;
linux, phandle =<0x40>;
phandle =<0x40>;
};
emmc {
compatible = "amlogic, aml_sd_emmc";
dev_name = "aml_newsd.0";
status = "okay";
reg =<0x0 0xd0074000 0x0 0x2000>;
interrupts =<0x0 0xda 0x1>;
pinctrl-names = "emmc_clk_cmd_pins", "emmc_all_pins";
pinctrl-0 =<0x41>;
pinctrl-1 =<0x42 0x43 0x44>;
emmc {
status = "disabled";
pinname = "emmc";
ocr_avail =<0x200080>;
caps = "MMC_CAP_8_BIT_DATA", "MMC_CAP_MMC_HIGHSPEED", "MMC_CAP_SD_HIGHSPEED", "MMC_CAP_NONREMOVABLE", "MMC_CAP_1_8V_DDR", "MMC_CAP_HW_RESET", "MMC_CAP_ERASE", "MMC_CAP_CMD23";
f_min =<0x493e0>;
f_max =<0x2faf080>;
max_req_size =<0x20000>;
gpio_dat3 =<0x39 0x1d 0x0>;
hw_reset =<0x39 0x23 0x0>;
card_type =<0x1>;
};
};
sd {
compatible = "amlogic, aml_sd_emmc";
dev_name = "aml_newsd.0";
status = "okay";
reg =<0x0 0xd0072000 0x0 0x2000>;
interrupts =<0x0 0xd9 0x1 0x0 0x43 0x1 0x0 0x45 0x1>;
pinctrl-names = "sd_clk_cmd_pins", "sd_all_pins", "sd_1bit_pins", "sd_clk_cmd_uart_pins", "sd_1bit_uart_pins", "sd_to_ao_uart_pins", "ao_to_sd_uart_pins", "ao_to_sd_jtag_pins", "sd_to_ao_jtag_pins";
pinctrl-0 =<0x45>;
pinctrl-1 =<0x46>;
pinctrl-2 =<0x47>;
pinctrl-3 =<0x48>;
pinctrl-4 =<0x49>;
pinctrl-5 =<0x4a>;
pinctrl-6 =<0x4b>;
pinctrl-7 =<0x4c>;
pinctrl-8 =<0x4d>;
sd {
status = "okay";
pinname = "sd";
ocr_avail =<0x200080>;
caps = "MMC_CAP_4_BIT_DATA", "MMC_CAP_MMC_HIGHSPEED", "MMC_CAP_SD_HIGHSPEED";
f_min =<0x61a80>;
f_max =<0x5f5e100>;
max_req_size =<0x20000>;
gpio_dat3 =<0x39 0x2e 0x0>;
jtag_pin =<0x39 0x2a 0x0>;
gpio_cd =<0x39 0x30 0x0>;
irq_in =<0x3>;
irq_out =<0x5>;
card_type =<0x5>;
};
};
SDIO {
compatible = "amlogic, aml_sd_emmc";
dev_name = "aml_newsd.0";
status = "okay";
reg =<0x0 0xd0070000 0x0 0x2000>;
interrupts =<0x0 0xd8 0x4>;
pinctrl-names = "sdio_clk_cmd_pins", "sdio_all_pins";
pinctrl-0 =<0x4e>;
pinctrl-1 =<0x4f>;
SDIO {
status = "okay";
pinname = "sdio";
ocr_avail =<0x200080>;
caps = "MMC_CAP_4_BIT_DATA", "MMC_CAP_MMC_HIGHSPEED", "MMC_CAP_SD_HIGHSPEED", "MMC_CAP_NONREMOVABLE", "MMC_CAP_UHS_SDR12", "MMC_CAP_UHS_SDR25", "MMC_CAP_UHS_SDR50", "MMC_CAP_UHS_SDR104", "MMC_PM_KEEP_POWER", "MMC_CAP_SDIO_IRQ";
f_min =<0x61a80>;
f_max =<0xbebc200>;
max_req_size =<0x20000>;
card_type =<0x3>;
};
};
nand {
compatible = "amlogic, aml_nand";
dev_name = "nand";
status = "disabled";
reg =<0x0 0xd0074800 0x0 0x200>;
interrupts =<0x0 0x22 0x1>;
pinctrl-names = "nand_rb_mod", "nand_norb_mod", "nand_cs_pins_only";
pinctrl-0 =<0x50 0x51 0x52>;
pinctrl-1 =<0x50 0x51 0x52>;
pinctrl-2 =<0x53>;
device_id =<0x0>;
plat-names = "nandnormal";
plat-num =<0x1>;
plat-part-0 =<0x54>;
normal {
enable_pad = "ce0", "ce1", "ce2", "ce3";
busy_pad = "rb0";
linux, phandle =<0x54>;
phandle =<0x54>;
};
};
aml_nftl {
compatible = "amlogic, nftl";
};
unifykey {
compatible = "amlogic, unifykey";
status = "ok";
unifykey-num =<0xe>;
unifykey-index-0 =<0x55>;
unifykey-index-1 =<0x56>;
unifykey-index-2 =<0x57>;
unifykey-index-3 =<0x58>;
unifykey-index-4 =<0x59>;
unifykey-index-5 =<0x5a>;
unifykey-index-6 =<0x5b>;
unifykey-index-7 =<0x5c>;
unifykey-index-8 =<0x5d>;
unifykey-index-9 =<0x5e>;
unifykey-index-10 =<0x5f>;
unifykey-index-11 =<0x60>;
unifykey-index-12 =<0x61>;
unifykey-index-13 =<0x62>;
key_0 {
key-name = "usid";
key-device = "normal";
key-permit = "read", "write", "del";
linux, phandle =<0x55>;
phandle =<0x55>;
};
key_1 {
key-name = "mac";
key-device = "normal";
key-permit = "read", "write", "del";
linux, phandle =<0x56>;
phandle =<0x56>;
};
key_2 {
key-name = "hdcp";
key-device = "secure";
key-type = "sha1";
key-permit = "read", "write", "del";
linux, phandle =<0x57>;
phandle =<0x57>;
};
key_3 {
key-name = "secure_boot_set";
key-device = "efuse";
key-permit = "write";
linux, phandle =<0x58>;
phandle =<0x58>;
};
key_4 {
key-name = "mac_bt";
key-device = "normal";
key-permit = "read", "write", "del";
key-type = "mac";
linux, phandle =<0x59>;
phandle =<0x59>;
};
key_5 {
key-name = "mac_wifi";
key-device = "normal";
key-permit = "read", "write", "del";
key-type = "mac";
linux, phandle =<0x5a>;
phandle =<0x5a>;
};
key_6 {
key-name = "hdcp2_tx";
key-device = "normal";
key-permit = "read", "write", "del";
linux, phandle =<0x5b>;
phandle =<0x5b>;
};
key_7 {
key-name = "hdcp2_rx";
key-device = "normal";
key-permit = "read", "write", "del";
linux, phandle =<0x5c>;
phandle =<0x5c>;
};
key_8 {
key-name = "widevinekeybox";
key-device = "secure";
key-permit = "read", "write", "del";
linux, phandle =<0x5d>;
phandle =<0x5d>;
};
key_9 {
key-name = "deviceid";
key-device = "normal";
key-permit = "read", "write", "del";
linux, phandle =<0x5e>;
phandle =<0x5e>;
};
key_10 {
key-name = "hdcp22_fw_private";
key-device = "secure";
key-permit = "read", "write", "del";
linux, phandle =<0x5f>;
phandle =<0x5f>;
};
key_11 {
key-name = "PlayReadykeybox25";
key-device = "secure";
key-permit = "read", "write", "del";
linux, phandle =<0x60>;
phandle =<0x60>;
};
key_12 {
key-name = "prpubkeybox";
key-device = "secure";
key-permit = "read", "write", "del";
linux, phandle =<0x61>;
phandle =<0x61>;
};
key_13 {
key-name = "prprivkeybox";
key-device = "secure";
key-permit = "read", "write", "del";
linux, phandle =<0x62>;
phandle =<0x62>;
};
};
amhdmitx {
compatible = "amlogic, amhdmitx";
dev_name = "amhdmitx";
status = "okay";
vend-data =<0x63>;
hdmi5v_pwr_ctrl =<0x39 0x13 0x1>;
pinctrl-names = "hdmitx_hpd", "hdmitx_ddc";
pinctrl-0 =<0x64>;
pinctrl-1 =<0x65>;
interrupts =<0x0 0x39 0x1>;
interrupt-names = "hdmitx_hpd";
clocks =<0x6 0xb 0x6 0xc 0x6 0xd 0x6 0xe 0x6 0xf 0x6 0x16>;
clock-names = "hdmitx_clk_sys", "hdmitx_clk_encp", "hdmitx_clk_enci", "hdmitx_clk_pixel", "hdmitx_clk_phy", "hdmitx_clk_vid";
gpio_i2c_en =<0x1>;
# address-cells =<0x2>;
# size-cells =<0x2>;
ranges;
vend_data {
vendor_name = "Amlogic";
vendor_id =<0x0>;
product_desc = "MBox Meson Ref";
linux, phandle =<0x63>;
phandle =<0x63>;
};
};
aocec {
compatible = "amlogic, amlogic-aocec";
device_name = "aocec";
status = "okay";
vendor_name = "Amlogic";
vendor_id =<0x0>;
product_desc = "GXBB Mbox";
cec_osd_string = "MBox";
port_num =<0x1>;
arc_port_mask =<0x0>;
interrupts =<0x0 0xc7 0x1>;
interrupt-names = "hdmi_aocec";
pinctrl-names = "hdmitx_aocec";
pinctrl-0 =<0x66>;
reg =<0x0 0xc810023c 0x0 0x4 0x0 0xc8100000 0x0 0x200>;
};
tvout {
compatible = "amlogic, tvout";
dev_name = "tvout";
status = "okay";
};
i2c_gpio {
compatible = "i2c-gpio";
status = "okay";
dev_name = "i2c-gpio";
i2c-gpio, delay-us =<0xa>;
gpios =<0x39 0x11 0x0 0x39 0x12 0x0>;
# address-cells =<0x2>;
# size-cells =<0x2>;
i2c-gpio, timeout-ms =<0xa>;
i2c_gpio_edid {
compatible = "i2c-gpio-edid";
reg =<0x50 0x0 0x0 0x0>;
};
};
serial @ c81004c0 {
compatible = "amlogic, meson-uart";
reg =<0x0 0xc81004c0 0x0 0x18>;
interrupts =<0x0 0xc1 0x1>;
status = "okay";
clocks =<0x6 0x2>;
clock-names = "clk_uart";
xtal_tick_en =<0x1>;
fifosize =<0x40>;
pinctrl-names = "default";
support-sysrq =<0x0>;
};
serial @ c11084c0 {
compatible = "amlogic, meson-uart";
reg =<0x0 0xc11084c0 0x0 0x18>;
interrupts =<0x0 0x1a 0x1>;
status = "okay";
clocks =<0x6 0x2>;
clock-names = "clk_uart";
fifosize =<0x80>;
pinctrl-names = "default";
pinctrl-0 =<0x67>;
resets =<0x6 0xd>;
};
serial @ c11084dc {
compatible = "amlogic, meson-uart";
reg =<0x0 0xc11084dc 0x0 0x18>;
interrupts =<0x0 0x4b 0x1>;
status = "disable";
clocks =<0x6 0x2>;
clock-names = "clk_uart";
fifosize =<0x40>;
pinctrl-names = "default";
pinctrl-0 =<0x68>;
resets =<0x6 0x30>;
};
serial @ c1108700 {
compatible = "amlogic, meson-uart";
reg =<0x0 0xc1108700 0x0 0x18>;
interrupts =<0x0 0x5d 0x1>;
status = "disable";
clocks =<0x6 0x2>;
clock-names = "clk_uart";
fifosize =<0x40>;
pinctrl-names = "default";
pinctrl-0 =<0x69>;
resets =<0x6 0x4f>;
};
serial @ c81004e0 {
compatible = "amlogic, meson-uart";
reg =<0x0 0xc81004e0 0x0 0x18>;
interrupts =<0x0 0xc5 0x1>;
status = "disable";
clocks =<0x6 0x2>;
clock-names = "clk_uart";
fifosize =<0x40>;
pinctrl-names = "default";
pinctrl-0 =<0x6a>;
};
canvas {
compatible = "amlogic, meson, canvas";
dev_name = "amlogic-canvas";
status = "ok";
reg =<0x0 0xc8838000 0x0 0x400>;
};
rdma {
compatible = "amlogic, meson, rdma";
dev_name = "amlogic-rdma";
status = "ok";
interrupts =<0x0 0x59 0x1>;
interrupt-names = "rdma";
};
dwc3 @ c9000000 {
compatible = "synopsys, dwc3";
reg =<0x0 0xc9000000 0x0 0x100000>;
interrupts =<0x0 0x1e 0x4>;
usb-phy =<0x6b 0x6c>;
cpu-type = "gxl";
clock-src = "usb3.0";
};
usb2phy @ d0078000 {
compatible = "amlogic, amlogic-new-usb2";
portnum =<0x3>;
reg =<0x0 0xd0078000 0x0 0x80>;
linux, phandle =<0x6b>;
phandle =<0x6b>;
};
usb3phy @ d0078080 {
compatible = "amlogic, amlogic-new-usb3";
portnum =<0x0>;
reg =<0x0 0xd0078080 0x0 0x20>;
linux, phandle =<0x6c>;
phandle =<0x6c>;
};
dwc2_a {
compatible = "amlogic, dwc2";
device_name = "dwc2_a";
reg =<0x0 0xc9100000 0x0 0x40000>;
status = "okay";
interrupts =<0x0 0x1f 0x4>;
pl-periph-id =<0x0>;
clock-src = "usb0";
port-id =<0x0>;
port-type =<0x2>;
port-speed =<0x0>;
port-config =<0x0>;
port-dma =<0x0>;
port-id-mode =<0x0>;
usb-fifo =<0x2d8>;
cpu-type = "gxl";
controller-type =<0x1>;
phy-reg =<0xd0078000>;
phy-reg-size =<0xa0>;
resets =<0x6 0x3a 0x6 0x48 0x6 0x36>;
reset-names = "usb_general", "usb1", "usb1_to_ddr";
};
I2S {
# Sound-dai-cells =<0x0>;
resets =<0x6 0x26 0x6 0x12 0x6 0x28 0x6 0x29 0x6 0x2a 0x6 0x2b 0x6 0x2c 0x6 0x2d 0x6 0x2f 0x6 0x8e 0x6 0x22>;
reset-names = "top_glue", "aud_buf", "i2s_out", "amclk_measure", "aififo2", "aud_mixer", "mixer_reg", "adc", "top_level", "aoclk", "aud_in";
clocks =<0x6 0x21 0x6 0x22>;
clock-names = "mpll2", "mclk";
compatible = "amlogic, aml-i2s-dai";
linux, phandle =<0x78>;
phandle =<0x78>;
};
SPDIF {
# Sound-dai-cells =<0x0>;
compatible = "amlogic, aml-spdif-dai";
resets =<0x6 0x27 0x6 0x90>;
reset-names = "iec958", "iec958_amclk";
clocks =<0x6 0x20 0x6 0x24 0x6 0x22 0x6 0x25 0x6 0xa>;
clock-names = "mpll1", "i958", "mclk", "spdif", "clk_81";
linux, phandle =<0x79>;
phandle =<0x79>;
};
PCM {
# Sound-dai-cells =<0x0>;
compatible = "amlogic, aml-pcm-dai";
pinctrl-names = "aml_audio_btpcm";
pinctrl-0 =<0x6d>;
clocks =<0x6 0x1f 0x6 0x2a 0x6 0x2b>;
clock-names = "mpll0", "pcm_mclk", "pcm_sclk";
pcm_mode =<0x1>;
linux, phandle =<0x7a>;
phandle =<0x7a>;
};
i2s_platform {
compatible = "amlogic, aml-i2s";
interrupts =<0x0 0x1d 0x1>;
linux, phandle =<0x76>;
phandle =<0x76>;
};
pcm_platform {
compatible = "amlogic, aml-pcm";
linux, phandle =<0x77>;
phandle =<0x77>;
};
spdif_codec {
# Sound-dai-cells =<0x0>;
compatible = "amlogic, aml-spdif-codec";
pinctrl-names = "aml_audio_spdif";
pinctrl-0 =<0x6e>;
linux, phandle =<0x7c>;
phandle =<0x7c>;
};
pcm_codec {
# Sound-dai-cells =<0x0>;
compatible = "amlogic, pcm2BT-codec";
linux, phandle =<0x7d>;
phandle =<0x7d>;
};
dummy {
# Sound-dai-cells =<0x0>;
compatible = "amlogic, aml_dummy_codec";
status = "disable";
};
t9015 {
# Sound-dai-cells =<0x0>;
compatible = "amlogic, aml_codec_T9015";
reg =<0x0 0xc8832000 0x0 0x14>;
status = "okay";
linux, phandle =<0x7b>;
phandle =<0x7b>;
};
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", "LOUTL", "Ext Spk", "LOUTR";
mute_gpio-gpios =<0x39 0x15 0x0>;
mute_inv;
hp_disable;
hp_paraments =<0x320 0x12c 0x0 0x5 0x1>;
pinctrl-names = "aml_snd_m8";
pinctrl-0 =<0x6f>;
cpu_list =<0x70 0x71 0x72>;
codec_list =<0x73 0x74 0x75>;
plat_list =<0x76 0x76 0x77>;
cpudai0 {
sound-dai =<0x78>;
linux, phandle =<0x70>;
phandle =<0x70>;
};
cpudai1 {
sound-dai =<0x79>;
linux, phandle =<0x71>;
phandle =<0x71>;
};
cpudai2 {
sound-dai =<0x7a>;
linux, phandle =<0x72>;
phandle =<0x72>;
};
codec0 {
sound-dai =<0x7b>;
linux, phandle =<0x73>;
phandle =<0x73>;
};
codec1 {
sound-dai =<0x7c>;
linux, phandle =<0x74>;
phandle =<0x74>;
};
codec2 {
sound-dai =<0x7d>;
linux, phandle =<0x75>;
phandle =<0x75>;
};
};
gpio_keypad {
compatible = "amlogic, gpio_keypad";
status = "okay";
scan_period =<0x14>;
key_num =<0x1>;
key_name = "power";
key_code =<0xa0>;
key_pin =<0x34 0x2 0x0>;
irq_keyup =<0x6>;
irq_keydown =<0x7>;
};
aml-sensor @ 0 {
compatible = "amlogic, aml-thermal";
device_name = "thermal";
# Thermal-sensor-cells =<0x1>;
linux, phandle =<0x7e>;
phandle =<0x7e>;
cooling_devices {
cpufreq_cool_cluster0 {
min_state =<0xf4240>;
dyn_coeff =<0x8c>;
cluster_id =<0x0>;
node_name = "cluster0";
device_type = "cpufreq";
};
cpufreq_cool_cluster1 {
min_state =<0x7a120>;
dyn_coeff =<0x8c>;
cluster_id =<0x1>;
node_name = "cluster1";
device_type = "cpufreq";
};
cpucore_cool_cluster0 {
min_state =<0x1>;
dyn_coeff =<0x0>;
cluster_id =<0x0>;
node_name = "cpu_core_cluster0";
device_type = "cpucore";
};
cpucore_cool_cluster1 {
min_state =<0x1>;
dyn_coeff =<0x0>;
cluster_id =<0x1>;
node_name = "cpu_core_cluster1";
device_type = "cpucore";
};
gpufreq_cool {
min_state =<0x190>;
dyn_coeff =<0x1b5>;
cluster_id =<0x0>;
node_name = "t82x";
device_type = "gpufreq";
};
gpucore_cool {
min_state =<0x1>;
dyn_coeff =<0x0>;
cluster_id =<0x0>;
node_name = "thermal_gpu_cores";
device_type = "gpucore";
};
};
cpu_core_cluster0 {
# Cooling-cells =<0x2>;
linux, phandle =<0x82>;
phandle =<0x82>;
};
cpu_core_cluster1 {
# Cooling-cells =<0x2>;
linux, phandle =<0x83>;
phandle =<0x83>;
};
thermal_gpu_cores {
# Cooling-cells =<0x2>;
linux, phandle =<0x85>;
phandle =<0x85>;
};
};
thermal-zones {
soc_thermal {
polling-delay =<0x3e8>;
polling-delay-passive =<0x64>;
sustainable-power =<0x992>;
thermal-sensors =<0x7e 0x3>;
trips {
trip-point @ 0 {
temperature =<0x11170>;
hysteresis =<0x3e8>;
type = "passive";
};
trip-point @ 1 {
temperature =<0x13880>;
hysteresis =<0x3e8>;
type = "passive";
linux, phandle =<0x7f>;
phandle =<0x7f>;
};
trip-point @ 2 {
temperature =<0x14c08>;
hysteresis =<0x1388>;
type = "hot";
};
trip-point @ 3 {
temperature =<0x3f7a0>;
hysteresis =<0x3e8>;
type = "critical";
};
};
cooling-maps {
cpufreq_cooling_map0 {
trip =<0x7f>;
cooling-device =<0x80 0x0 0x4>;
contribution =<0x400>;
};
cpufreq_cooling_map1 {
trip =<0x7f>;
cooling-device =<0x81 0x0 0x4>;
contribution =<0x400>;
};
cpucore_cooling_map0 {
trip =<0x7f>;
cooling-device =<0x82 0x0 0x3>;
contribution =<0x400>;
};
cpucore_cooling_map1 {
trip =<0x7f>;
cooling-device =<0x83 0x0 0x3>;
contribution =<0x400>;
};
gpufreq_cooling_map {
trip =<0x7f>;
cooling-device =<0x84 0x0 0x4>;
contribution =<0x400>;
};
gpucore_cooling_map {
trip =<0x7f>;
cooling-device =<0x85 0x0 0x2>;
contribution =<0x400>;
};
};
};
};
};