比特米盒的armbian系统适配与调整
比特米盒的armbian系统适配与调整
1.环境
闲鱼上淘了一个矿渣盒子,名称很多,私家云二代、比特米盒、cumebox2,其实就是同一个产品,配置如下:
处理器是晶晨S905X,内存1G,WIFI,2个USB2.0,1个typeC口,百兆网卡,SD卡,HDMI接口,有两个2.5寸的硬盘位。
网卡和usb差了点,盒子自带能插两个2.5寸的硬盘就很好,安装好后,外面只看到一个接上各种线缆的盒子,桌面会显得干净。
2.安装系统
盒子原生系统是定制化的安卓系统,拿来先搞掉。
2.1安装ATV6.0
换成ATV6.0,方法:type c线接电脑,短接,上电,扫描到后,使用Amlogic USB Burning Tool烧录。
这中间电脑尝试了数个USB口,总算有一个能够扫描到。
安装ATV6.0的目的并不是真正使用ATV这个系统,而是为了安装reboot2sd.apk之类(或者叫切换卡载系统V1.0.apk)的应用。
有了reboot2sd这样的应用,就可以通过SD卡上的armbian系统来启动盒子了。
2.2安装armbian系统至SD卡
这一步相当简单,到https://github.com/ophub/amlogic-s9xxx-armbian下载相应的固件文件,可以有很多个系统选择。
我下载的版本是:Armbian 23.11.0-trunk Jammy with Linux 5.15.138-ophub,类似名字为
Armbian_23.11.0_amlogic_s905_bullseye_5.15.138_server_XXXX.XX.XX.img.gz
在Linux下使用dd命令(或balenaEtcher),Windows下使用rufus等写U盘工具,将.img写入到SD卡。
写完之后,需要将设备树文件名调整好。一般就是将uEnv.txt文件中的
FDT=/dtb/amlogic/meson-sm1-x96-max-plus-100m.dtb
修改为
FDT=/dtb/amlogic/meson-gxl-s905x-p212.dtb
这么修改是因为比特米盒很多的硬件配置与meson-gxl-s905x-p212很相似。
(据说,这个盒子与Khadas-vim1更相像,Khadas-vim1的官方镜像所在网站https://www.armbian.com/khadas-vim1/)
修改完后,就可以将SD卡插入插槽,reboot2sd后重新启动。
将armbian系统安装至SD卡的原因是,这个盒子通过SD卡启动时,也可以安装EmuELEC至SD卡,然后就是一个家用游戏机了。
2.3风扇与面板灯
虽然比特米盒与meson-gxl-s905x-p212的配置很相似,但启动后,想启动相应的风扇与面板灯,还得额外的脚本程序,网上有现成的fan_on/off.sh
#!/bin/sh -e
###-------fan's gpio is 504 ------###
if [ ! -e /sys/class/gpio/gpio504/direction ]; then
echo 504 > /sys/class/gpio/export
fi
echo high > /sys/class/gpio/gpio504/direction
###--------font-LED-------###
# open474-BLUE
if [ ! -e /sys/class/gpio/gpio474/direction ]; then
echo 474 > /sys/class/gpio/export
fi
# open476-RED
if [ ! -e /sys/class/gpio/gpio476/direction ]; then
echo 476 > /sys/class/gpio/export
fi
# open477-GREEN
if [ ! -e /sys/class/gpio/gpio477/direction ]; then
echo 477 > /sys/class/gpio/export
fi
echo high > /sys/class/gpio/gpio474/direction
echo high > /sys/class/gpio/gpio476/direction
echo low > /sys/class/gpio/gpio477/direction
#!/bin/sh -e
###-------fan's gpio is 504 ------###
if [ ! -e /sys/class/gpio/gpio504/direction ]; then
echo 504 > /sys/class/gpio/export
fi
echo low > /sys/class/gpio/gpio504/direction
###--------font-LED-------###
# open474-BLUE
if [ ! -e /sys/class/gpio/gpio474/direction ]; then
echo 474 > /sys/class/gpio/export
fi
# open476-RED
if [ ! -e /sys/class/gpio/gpio476/direction ]; then
echo 476 > /sys/class/gpio/export
fi
# open477-GREEN
if [ ! -e /sys/class/gpio/gpio477/direction ]; then
echo 477 > /sys/class/gpio/export
fi
echo low > /sys/class/gpio/gpio474/direction
echo low > /sys/class/gpio/gpio476/direction
echo high > /sys/class/gpio/gpio477/direction
2.4面板OLED屏
上面的脚本能够驱动风扇、面板灯,但面板的OLED屏是另外的驱动方式。
从网络上搜索到的工具代码在:
https://github.com/bearcatl/SSD1306_OLED_json
要求使用的镜像是:Armbian_21.08.1_Ubuntu_CumeBox2_5.10.602_ssd1306
但实际上,主要在相应镜像里面的DTB文件,提取出来,然后用dtc反编译成文本,对比meson-gxl-s905x-p212的设备树信息来看,OLED屏的差异在如下处:
i2c@500 {
compatible = "amlogic,meson-gxbb-i2c";
reg = <0x00 0x500 0x00 0x20>;
interrupts = <0x00 0xc3 0x01>;
#address-cells = <0x01>;
#size-cells = <0x00>;
status = "okay";
clocks = <0x03 0x5d>;
pinctrl-0 = <0x1d>;
pinctrl-names = "default";
clock-frequency = <0x61a80>;
oled@3c {
status = "disabled";
compatible = "solomon,ssd1306fb-i2c";
reg = <0x3c>;
solomon,width = <0x80>;
solomon,height = <0x40>;
solomon,page-offset = <0x00>;
solomon,com-invdir;
};
};
当然,无脑替换之上的meson-gxl-s905x-p212.dtb为Armbian_21.08.1_Ubuntu_CumeBox2_5.10.602_ssd1306中的v.dtb也是更好的办法。
但替换后,再使用2.3的脚本就驱动不了风扇与面板灯了(原因是v.dtb配置风扇与面板灯)。
需要调整为如下脚本bitbox_on/off.sh:
#!/bin/sh -e
###-------gpio-fan driver gen this ------###
if [ -e /sys/class/hwmon/hwmon1/fan1_target ]; then
echo 4500 > /sys/class/hwmon/hwmon1/fan1_target
else
echo missing gpio-fan
fi
###--------gpio-led driver -------###
if [ -e /sys/class/leds/blue/brightness ]; then
echo 1 > /sys/class/leds/blue/brightness
else
echo missing gpio-led blue
fi
if [ -e /sys/class/leds/red/brightness ]; then
echo 1 > /sys/class/leds/red/brightness
else
echo missing gpio-led red
fi
if [ -e /sys/class/leds/green/brightness ]; then
echo 0 > /sys/class/leds/green/brightness
else
echo missing gpio-led green
fi
#!/bin/sh -e
###-------gpio-fan driver gen this ------###
if [ -e /sys/class/hwmon/hwmon1/fan1_target ]; then
echo 0 > /sys/class/hwmon/hwmon1/fan1_target
else
echo missing gpio-fan
fi
###--------gpio-led driver -------###
if [ -e /sys/class/leds/blue/brightness ]; then
echo 0 > /sys/class/leds/blue/brightness
else
echo missing gpio-led blue
fi
if [ -e /sys/class/leds/red/brightness ]; then
echo 0 > /sys/class/leds/red/brightness
else
echo missing gpio-led red
fi
if [ -e /sys/class/leds/green/brightness ]; then
echo 1 > /sys/class/leds/green/brightness
else
echo missing gpio-led green
fi
CumeBox2相应的完整设备树文本如下(将v.dtb反编译的结果):
/dts-v1/;
/ {
interrupt-parent = <0x01>;
#address-cells = <0x02>;
#size-cells = <0x02>;
compatible = "amlogic,p212\0amlogic,s905x\0amlogic,meson-gxl";
model = "CumeBox";
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 = <0x12>;
};
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 = "disabled";
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>;
};
serial@84c0 {
compatible = "amlogic,meson-gx-uart";
reg = <0x00 0x84c0 0x00 0x18>;
interrupts = <0x00 0x1a 0x01>;
status = "okay";
clocks = <0x12 0x03 0x1a 0x12>;
clock-names = "xtal\0pclk\0baud";
pinctrl-0 = <0x13 0x14>;
pinctrl-names = "default";
uart-has-rtscts;
bluetooth {
compatible = "brcm,bcm43438-bt";
shutdown-gpios = <0x15 0x60 0x00>;
max-speed = <0x1e8480>;
clocks = <0x16>;
clock-names = "lpo";
};
};
serial@84dc {
compatible = "amlogic,meson-gx-uart";
reg = <0x00 0x84dc 0x00 0x18>;
interrupts = <0x00 0x4b 0x01>;
status = "disabled";
clocks = <0x12 0x03 0x30 0x12>;
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 = <0x12 0x03 0x17 0x03 0x61 0x03 0x62>;
clock-names = "clkin\0core\0adc_clk\0adc_sel";
vref-supply = <0x17>;
};
pwm@86c0 {
compatible = "amlogic,meson-gx-pwm\0amlogic,meson-gxbb-pwm";
reg = <0x00 0x86c0 0x00 0x10>;
#pwm-cells = <0x03>;
status = "okay";
pinctrl-0 = <0x18>;
pinctrl-names = "default";
clocks = <0x03 0x06>;
clock-names = "clkin0";
phandle = <0x3c>;
};
serial@8700 {
compatible = "amlogic,meson-gx-uart";
reg = <0x00 0x8700 0x00 0x18>;
interrupts = <0x00 0x5d 0x01>;
status = "disabled";
clocks = <0x12 0x03 0x44 0x12>;
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 = <0x12>;
};
};
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 = <0x20>;
clock-controller {
compatible = "amlogic,meson-gxl-aoclkc\0amlogic,meson-gx-aoclkc";
#clock-cells = <0x01>;
#reset-cells = <0x01>;
clocks = <0x12 0x03 0x0c>;
clock-names = "xtal\0mpeg-clk";
phandle = <0x19>;
};
};
cec@100 {
compatible = "amlogic,meson-gx-ao-cec";
reg = <0x00 0x100 0x00 0x14>;
interrupts = <0x00 0xc7 0x01>;
status = "okay";
clocks = <0x19 0x06>;
clock-names = "core";
pinctrl-0 = <0x1a>;
pinctrl-names = "default";
hdmi-phandle = <0x1b>;
};
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 = <0x12 0x19 0x03 0x12>;
clock-names = "xtal\0pclk\0baud";
pinctrl-0 = <0x1c>;
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 = <0x12 0x19 0x04 0x12>;
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 = "okay";
clocks = <0x03 0x5d>;
pinctrl-0 = <0x1d>;
pinctrl-names = "default";
clock-frequency = <0x61a80>;
oled@3c {
status = "disabled";
compatible = "solomon,ssd1306fb-i2c";
reg = <0x3c>;
solomon,width = <0x80>;
solomon,height = <0x40>;
solomon,page-offset = <0x00>;
solomon,com-invdir;
};
};
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 = <0x1e>;
pinctrl-names = "default";
};
pinctrl@14 {
compatible = "amlogic,meson-gxl-aobus-pinctrl";
#address-cells = <0x02>;
#size-cells = <0x02>;
ranges;
phandle = <0x1f>;
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 = <0x1f 0x00 0x00 0x0e>;
phandle = <0x3e>;
};
uart_ao_a {
phandle = <0x1c>;
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 = <0x1e>;
mux {
groups = "remote_input_ao";
function = "remote_input_ao";
bias-disable;
};
};
i2c_ao {
phandle = <0x1d>;
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 = <0x1a>;
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 = <0x20>;
amlogic,canvas = <0x21>;
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 = <0x22>;
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 = <0x22 0x00 0x00 0x64>;
phandle = <0x15>;
};
emmc {
phandle = <0x2e>;
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 = <0x2f>;
mux {
groups = "emmc_ds";
function = "emmc";
bias-pull-down;
};
};
emmc_clk_gate {
phandle = <0x30>;
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 = <0x2c>;
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 = <0x2d>;
mux {
groups = "CARD_2";
function = "gpio_periphs";
bias-pull-down;
};
};
sdio {
phandle = <0x27>;
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 = <0x28>;
mux {
groups = "GPIOX_4";
function = "gpio_periphs";
bias-pull-down;
};
};
sdio_irq {
mux {
groups = "sdio_irq";
function = "sdio";
bias-disable;
};
};
uart_a {
phandle = <0x13>;
mux {
groups = "uart_tx_a\0uart_rx_a";
function = "uart_a";
bias-disable;
};
};
uart_a_cts_rts {
phandle = <0x14>;
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 {
phandle = <0x24>;
mux {
groups = "eth_link_led";
function = "eth_led";
bias-disable;
};
};
eth_act_led {
phandle = <0x25>;
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 = <0x18>;
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 = <0x36>;
mux {
groups = "hdmi_hpd";
function = "hdmi_hpd";
bias-disable;
};
};
hdmi_i2c {
phandle = <0x37>;
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 {
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 = <0x23>;
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>;
pinctrl-0 = <0x24 0x25>;
pinctrl-names = "default";
phandle = <0x26>;
};
};
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 = <0x21>;
};
};
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 = <0x20>;
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 = <0x12>;
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 = <0x26>;
mdio {
#address-cells = <0x01>;
#size-cells = <0x00>;
compatible = "snps,dwmac-mdio";
phandle = <0x23>;
};
};
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 = <0x27>;
pinctrl-1 = <0x28>;
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 = <0x29>;
vmmc-supply = <0x2a>;
vqmmc-supply = <0x2b>;
};
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 = <0x2c>;
pinctrl-1 = <0x2d>;
pinctrl-names = "default\0clk-gate";
bus-width = <0x04>;
cap-sd-highspeed;
max-frequency = <0x2faf080>;
disable-wp;
cd-gpios = <0x15 0x30 0x01>;
vmmc-supply = <0x2a>;
vqmmc-supply = <0x2b>;
};
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 = <0x2e 0x2f>;
pinctrl-1 = <0x30>;
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 = <0x31>;
vmmc-supply = <0x32>;
vqmmc-supply = <0x2b>;
};
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";
phy-supply = <0x33>;
phandle = <0x3a>;
};
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 = <0x3b>;
};
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 0x00 0xa8 0x04 0x00 0xa9 0x04>;
interrupt-names = "gp\0gpmmu\0pp\0pmu\0pp0\0ppmmu0\0pp1\0ppmmu1\0pp2\0ppmmu2";
operating-points-v2 = <0x34>;
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 = <0x21>;
power-domains = <0x02 0x00>;
port@0 {
reg = <0x00>;
};
port@1 {
reg = <0x01>;
endpoint {
remote-endpoint = <0x35>;
phandle = <0x38>;
};
};
};
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 = <0x36 0x37>;
pinctrl-names = "default";
hdmi-supply = <0x33>;
phandle = <0x1b>;
port@0 {
reg = <0x00>;
endpoint {
remote-endpoint = <0x38>;
phandle = <0x35>;
};
};
port@1 {
reg = <0x01>;
endpoint {
remote-endpoint = <0x39>;
phandle = <0x3d>;
};
};
};
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 = <0x3a 0x3b>;
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 = <0x3b>;
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 = "disabled";
};
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 = <0x34>;
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>;
};
};
aliases {
serial0 = "/soc/bus@c8100000/serial@4c0";
ethernet0 = "/soc/ethernet@c9410000";
};
memory@0 {
device_type = "memory";
reg = <0x00 0x00 0x00 0x80000000>;
};
regulator-hdmi-5v {
compatible = "regulator-fixed";
regulator-name = "OTG_5V";
regulator-min-microvolt = <0x4c4b40>;
regulator-max-microvolt = <0x4c4b40>;
gpio = <0x15 0x15 0x00>;
enable-active-high;
regulator-always-on;
phandle = <0x33>;
};
regulator-vddio_boot {
compatible = "regulator-fixed";
regulator-name = "VDDIO_BOOT";
regulator-min-microvolt = <0x1b7740>;
regulator-max-microvolt = <0x1b7740>;
phandle = <0x2b>;
};
regulator-vddao_3v3 {
compatible = "regulator-fixed";
regulator-name = "VDDAO_3V3";
regulator-min-microvolt = <0x325aa0>;
regulator-max-microvolt = <0x325aa0>;
phandle = <0x2a>;
};
regulator-vddio_ao18 {
compatible = "regulator-fixed";
regulator-name = "VDDIO_AO18";
regulator-min-microvolt = <0x1b7740>;
regulator-max-microvolt = <0x1b7740>;
phandle = <0x17>;
};
regulator-vcc_3v3 {
compatible = "regulator-fixed";
regulator-name = "VCC_3V3";
regulator-min-microvolt = <0x325aa0>;
regulator-max-microvolt = <0x325aa0>;
phandle = <0x32>;
};
emmc-pwrseq {
compatible = "mmc-pwrseq-emmc";
reset-gpios = <0x15 0x23 0x01>;
phandle = <0x31>;
};
wifi32k {
compatible = "pwm-clock";
#clock-cells = <0x00>;
clock-frequency = <0x8000>;
pwms = <0x3c 0x00 0x7736 0x00>;
phandle = <0x16>;
};
sdio-pwrseq {
compatible = "mmc-pwrseq-simple";
reset-gpios = <0x15 0x55 0x01>;
clocks = <0x16>;
clock-names = "ext_clock";
phandle = <0x29>;
};
hdmi-connector {
compatible = "hdmi-connector";
type = "a";
port {
endpoint {
remote-endpoint = <0x3d>;
phandle = <0x39>;
};
};
};
leds {
compatible = "gpio-leds";
led-blue {
label = "blue";
color = <0x03>;
function = "status";
gpios = <0x15 0x49 0x00>;
linux,default-trigger = "activity";
};
led-red {
label = "red";
color = <0x01>;
function = "disk-activity";
gpios = <0x15 0x4b 0x00>;
panic-indicator;
};
led-green {
label = "green";
color = <0x02>;
function = "disk-activity";
gpios = <0x15 0x4c 0x00>;
};
};
gpio-fan {
#cooling-cells = <0x02>;
compatible = "gpio-fan";
gpio-fan,speed-map = <0x00 0x00 0x1194 0x01>;
gpios = <0x3e 0x03 0x00>;
status = "okay";
};
gpio-keys-polled {
compatible = "gpio-keys-polled";
poll-interval = <0x64>;
power-button {
label = "power";
linux,code = <0x74>;
gpios = <0x3e 0x02 0x01>;
};
reset-button {
label = "reset";
linux,code = <0x1d2>;
gpios = <0x3e 0x09 0x01>;
};
ap-button {
label = "ap";
linux,code = <0x1d3>;
gpios = <0x3e 0x06 0x01>;
};
};
};
而meson-gxl-s905x-p212的设备树信息如下(将meson-gxl-s905x-p212.dtb反编译的结果):
/dts-v1/;
/ {
interrupt-parent = <0x01>;
#address-cells = <0x02>;
#size-cells = <0x02>;
compatible = "amlogic,p212\0amlogic,s905x\0amlogic,meson-gxl";
model = "Amlogic Meson GXL (S905X) P212 Development Board";
reserved-memory {
#address-cells = <0x02>;
#size-cells = <0x02>;
ranges;
hwrom@0 {
reg = <0x00 0x00 0x00 0x1000000>;
no-map;
phandle = <0x40>;
};
secmon@10000000 {
reg = <0x00 0x10000000 0x00 0x200000>;
no-map;
phandle = <0x41>;
};
secmon@5000000 {
reg = <0x00 0x5000000 0x00 0x300000>;
no-map;
phandle = <0x42>;
};
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";
phandle = <0x43>;
};
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>;
phandle = <0x44>;
};
};
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";
phandle = <0x45>;
};
};
cooling-maps {
phandle = <0x46>;
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 = <0x12>;
};
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>;
phandle = <0x47>;
sn@14 {
reg = <0x14 0x10>;
phandle = <0x48>;
};
eth_mac@34 {
reg = <0x34 0x10>;
phandle = <0x49>;
};
bid@46 {
reg = <0x46 0x30>;
phandle = <0x4a>;
};
};
scpi {
compatible = "amlogic,meson-gxbb-scpi\0arm,scpi-pre-1.0";
mboxes = <0x0e 0x01 0x0e 0x02>;
shmem = <0x0f 0x10>;
clocks {
compatible = "arm,scpi-clocks";
phandle = <0x4b>;
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>;
phandle = <0x4c>;
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";
phandle = <0x4d>;
};
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>;
phandle = <0x3c>;
};
serial@84c0 {
compatible = "amlogic,meson-gx-uart";
reg = <0x00 0x84c0 0x00 0x18>;
interrupts = <0x00 0x1a 0x01>;
status = "okay";
clocks = <0x12 0x03 0x1a 0x12>;
clock-names = "xtal\0pclk\0baud";
pinctrl-0 = <0x13 0x14>;
pinctrl-names = "default";
uart-has-rtscts;
phandle = <0x4e>;
bluetooth {
compatible = "brcm,bcm43438-bt";
shutdown-gpios = <0x15 0x60 0x00>;
max-speed = <0x1e8480>;
clocks = <0x16>;
clock-names = "lpo";
};
};
serial@84dc {
compatible = "amlogic,meson-gx-uart";
reg = <0x00 0x84dc 0x00 0x18>;
interrupts = <0x00 0x4b 0x01>;
status = "disabled";
clocks = <0x12 0x03 0x30 0x12>;
clock-names = "xtal\0pclk\0baud";
phandle = <0x4f>;
};
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>;
phandle = <0x50>;
};
pwm@8550 {
compatible = "amlogic,meson-gx-pwm\0amlogic,meson-gxbb-pwm";
reg = <0x00 0x8550 0x00 0x10>;
#pwm-cells = <0x03>;
status = "disabled";
phandle = <0x51>;
};
pwm@8650 {
compatible = "amlogic,meson-gx-pwm\0amlogic,meson-gxbb-pwm";
reg = <0x00 0x8650 0x00 0x10>;
#pwm-cells = <0x03>;
status = "disabled";
phandle = <0x52>;
};
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 = <0x12 0x03 0x17 0x03 0x61 0x03 0x62>;
clock-names = "clkin\0core\0adc_clk\0adc_sel";
vref-supply = <0x17>;
phandle = <0x53>;
};
pwm@86c0 {
compatible = "amlogic,meson-gx-pwm\0amlogic,meson-gxbb-pwm";
reg = <0x00 0x86c0 0x00 0x10>;
#pwm-cells = <0x03>;
status = "okay";
pinctrl-0 = <0x18>;
pinctrl-names = "default";
clocks = <0x03 0x06>;
clock-names = "clkin0";
phandle = <0x3a>;
};
serial@8700 {
compatible = "amlogic,meson-gx-uart";
reg = <0x00 0x8700 0x00 0x18>;
interrupts = <0x00 0x5d 0x01>;
status = "disabled";
clocks = <0x12 0x03 0x44 0x12>;
clock-names = "xtal\0pclk\0baud";
phandle = <0x54>;
};
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>;
phandle = <0x55>;
};
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>;
phandle = <0x56>;
};
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>;
phandle = <0x57>;
};
spi@8c80 {
compatible = "amlogic,meson-gxbb-spifc";
reg = <0x00 0x8c80 0x00 0x80>;
#address-cells = <0x01>;
#size-cells = <0x00>;
status = "disabled";
clocks = <0x03 0x22>;
phandle = <0x58>;
};
watchdog@98d0 {
compatible = "amlogic,meson-gxbb-wdt";
reg = <0x00 0x98d0 0x00 0x10>;
clocks = <0x12>;
};
};
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>;
phandle = <0x59>;
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>;
phandle = <0x5a>;
sys-ctrl@0 {
compatible = "amlogic,meson-gx-ao-sysctrl\0simple-mfd\0syscon";
reg = <0x00 0x00 0x00 0x100>;
phandle = <0x1f>;
clock-controller {
compatible = "amlogic,meson-gxl-aoclkc\0amlogic,meson-gx-aoclkc";
#clock-cells = <0x01>;
#reset-cells = <0x01>;
clocks = <0x12 0x03 0x0c>;
clock-names = "xtal\0mpeg-clk";
phandle = <0x19>;
};
};
cec@100 {
compatible = "amlogic,meson-gx-ao-cec";
reg = <0x00 0x100 0x00 0x14>;
interrupts = <0x00 0xc7 0x01>;
status = "okay";
clocks = <0x19 0x06>;
clock-names = "core";
pinctrl-0 = <0x1a>;
pinctrl-names = "default";
hdmi-phandle = <0x1b>;
phandle = <0x5b>;
};
ao-secure@140 {
compatible = "amlogic,meson-gx-ao-secure\0syscon";
reg = <0x00 0x140 0x00 0x140>;
amlogic,has-chip-id;
phandle = <0x5c>;
};
serial@4c0 {
compatible = "amlogic,meson-gx-uart\0amlogic,meson-ao-uart";
reg = <0x00 0x4c0 0x00 0x18>;
interrupts = <0x00 0xc1 0x01>;
status = "okay";
clocks = <0x12 0x19 0x03 0x12>;
clock-names = "xtal\0pclk\0baud";
pinctrl-0 = <0x1c>;
pinctrl-names = "default";
phandle = <0x5d>;
};
serial@4e0 {
compatible = "amlogic,meson-gx-uart\0amlogic,meson-ao-uart";
reg = <0x00 0x4e0 0x00 0x18>;
interrupts = <0x00 0xc5 0x01>;
status = "disabled";
clocks = <0x12 0x19 0x04 0x12>;
clock-names = "xtal\0pclk\0baud";
phandle = <0x5e>;
};
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>;
phandle = <0x5f>;
};
pwm@550 {
compatible = "amlogic,meson-gx-ao-pwm\0amlogic,meson-gxbb-ao-pwm";
reg = <0x00 0x550 0x00 0x10>;
#pwm-cells = <0x03>;
status = "disabled";
phandle = <0x60>;
};
ir@580 {
compatible = "amlogic,meson-gx-ir\0amlogic,meson-gxbb-ir";
reg = <0x00 0x580 0x00 0x40>;
interrupts = <0x00 0xc4 0x01>;
status = "okay";
pinctrl-0 = <0x1d>;
pinctrl-names = "default";
phandle = <0x61>;
};
pinctrl@14 {
compatible = "amlogic,meson-gxl-aobus-pinctrl";
#address-cells = <0x02>;
#size-cells = <0x02>;
ranges;
phandle = <0x1e>;
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 = <0x1e 0x00 0x00 0x0e>;
phandle = <0x62>;
};
uart_ao_a {
phandle = <0x1c>;
mux {
groups = "uart_tx_ao_a\0uart_rx_ao_a";
function = "uart_ao";
bias-disable;
};
};
uart_ao_a_cts_rts {
phandle = <0x63>;
mux {
groups = "uart_cts_ao_a\0uart_rts_ao_a";
function = "uart_ao";
bias-disable;
};
};
uart_ao_b {
phandle = <0x64>;
mux {
groups = "uart_tx_ao_b\0uart_rx_ao_b";
function = "uart_ao_b";
bias-disable;
};
};
uart_ao_b_0_1 {
phandle = <0x65>;
mux {
groups = "uart_tx_ao_b_0\0uart_rx_ao_b_1";
function = "uart_ao_b";
bias-disable;
};
};
uart_ao_b_cts_rts {
phandle = <0x66>;
mux {
groups = "uart_cts_ao_b\0uart_rts_ao_b";
function = "uart_ao_b";
bias-disable;
};
};
remote_input_ao {
phandle = <0x1d>;
mux {
groups = "remote_input_ao";
function = "remote_input_ao";
bias-disable;
};
};
i2c_ao {
phandle = <0x67>;
mux {
groups = "i2c_sck_ao\0i2c_sda_ao";
function = "i2c_ao";
bias-disable;
};
};
pwm_ao_a_3 {
phandle = <0x68>;
mux {
groups = "pwm_ao_a_3";
function = "pwm_ao_a";
bias-disable;
};
};
pwm_ao_a_8 {
phandle = <0x69>;
mux {
groups = "pwm_ao_a_8";
function = "pwm_ao_a";
bias-disable;
};
};
pwm_ao_b {
phandle = <0x6a>;
mux {
groups = "pwm_ao_b";
function = "pwm_ao_b";
bias-disable;
};
};
pwm_ao_b_6 {
phandle = <0x6b>;
mux {
groups = "pwm_ao_b_6";
function = "pwm_ao_b";
bias-disable;
};
};
i2s_out_ch23_ao {
phandle = <0x6c>;
mux {
groups = "i2s_out_ch23_ao";
function = "i2s_out_ao";
bias-disable;
};
};
i2s_out_ch45_ao {
phandle = <0x6d>;
mux {
groups = "i2s_out_ch45_ao";
function = "i2s_out_ao";
bias-disable;
};
};
spdif_out_ao_6 {
phandle = <0x6e>;
mux {
groups = "spdif_out_ao_6";
function = "spdif_out_ao";
bias-disable;
};
};
spdif_out_ao_9 {
phandle = <0x6f>;
mux {
groups = "spdif_out_ao_9";
function = "spdif_out_ao";
bias-disable;
};
};
ao_cec {
phandle = <0x1a>;
mux {
groups = "ao_cec";
function = "cec_ao";
bias-disable;
};
};
ee_cec {
phandle = <0x70>;
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 = <0x1f>;
amlogic,canvas = <0x20>;
clocks = <0x03 0x36 0x03 0x11 0x03 0x99 0x03 0x9c>;
clock-names = "dos_parser\0dos\0vdec_1\0vdec_hevc";
resets = <0x11 0x28>;
reset-names = "esparser";
phandle = <0x71>;
};
bus@c8834000 {
compatible = "simple-bus";
reg = <0x00 0xc8834000 0x00 0x2000>;
#address-cells = <0x02>;
#size-cells = <0x02>;
ranges = <0x00 0x00 0x00 0xc8834000 0x00 0x2000>;
phandle = <0x72>;
rng {
compatible = "amlogic,meson-rng";
reg = <0x00 0x00 0x00 0x04>;
clocks = <0x03 0x19>;
clock-names = "core";
phandle = <0x73>;
};
pinctrl@4b0 {
compatible = "amlogic,meson-gxl-periphs-pinctrl";
#address-cells = <0x02>;
#size-cells = <0x02>;
ranges;
phandle = <0x21>;
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 = <0x21 0x00 0x00 0x64>;
phandle = <0x15>;
};
emmc {
phandle = <0x2b>;
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 = <0x2c>;
mux {
groups = "emmc_ds";
function = "emmc";
bias-pull-down;
};
};
emmc_clk_gate {
phandle = <0x2d>;
mux {
groups = "BOOT_8";
function = "gpio_periphs";
bias-pull-down;
};
};
nor {
phandle = <0x74>;
mux {
groups = "nor_d\0nor_q\0nor_c\0nor_cs";
function = "nor";
bias-disable;
};
};
spi-pins {
phandle = <0x75>;
mux {
groups = "spi_miso\0spi_mosi\0spi_sclk";
function = "spi";
bias-disable;
};
};
spi-ss0 {
phandle = <0x76>;
mux {
groups = "spi_ss0";
function = "spi";
bias-disable;
};
};
sdcard {
phandle = <0x29>;
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 = <0x2a>;
mux {
groups = "CARD_2";
function = "gpio_periphs";
bias-pull-down;
};
};
sdio {
phandle = <0x24>;
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 = <0x25>;
mux {
groups = "GPIOX_4";
function = "gpio_periphs";
bias-pull-down;
};
};
sdio_irq {
phandle = <0x77>;
mux {
groups = "sdio_irq";
function = "sdio";
bias-disable;
};
};
uart_a {
phandle = <0x13>;
mux {
groups = "uart_tx_a\0uart_rx_a";
function = "uart_a";
bias-disable;
};
};
uart_a_cts_rts {
phandle = <0x14>;
mux {
groups = "uart_cts_a\0uart_rts_a";
function = "uart_a";
bias-disable;
};
};
uart_b {
phandle = <0x78>;
mux {
groups = "uart_tx_b\0uart_rx_b";
function = "uart_b";
bias-disable;
};
};
uart_b_cts_rts {
phandle = <0x79>;
mux {
groups = "uart_cts_b\0uart_rts_b";
function = "uart_b";
bias-disable;
};
};
uart_c {
phandle = <0x7a>;
mux {
groups = "uart_tx_c\0uart_rx_c";
function = "uart_c";
bias-disable;
};
};
uart_c_cts_rts {
phandle = <0x7b>;
mux {
groups = "uart_cts_c\0uart_rts_c";
function = "uart_c";
bias-disable;
};
};
i2c_a {
phandle = <0x7c>;
mux {
groups = "i2c_sck_a\0i2c_sda_a";
function = "i2c_a";
bias-disable;
};
};
i2c_b {
phandle = <0x7d>;
mux {
groups = "i2c_sck_b\0i2c_sda_b";
function = "i2c_b";
bias-disable;
};
};
i2c_c {
phandle = <0x7e>;
mux {
groups = "i2c_sck_c\0i2c_sda_c";
function = "i2c_c";
bias-disable;
};
};
i2c_c_dv18 {
phandle = <0x7f>;
mux {
groups = "i2c_sck_c_dv19\0i2c_sda_c_dv18";
function = "i2c_c";
bias-disable;
};
};
eth_c {
phandle = <0x80>;
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 {
phandle = <0x81>;
mux {
groups = "eth_link_led";
function = "eth_led";
bias-disable;
};
};
eth_act_led {
phandle = <0x82>;
mux {
groups = "eth_act_led";
function = "eth_led";
};
};
pwm_a {
phandle = <0x83>;
mux {
groups = "pwm_a";
function = "pwm_a";
bias-disable;
};
};
pwm_b {
phandle = <0x84>;
mux {
groups = "pwm_b";
function = "pwm_b";
bias-disable;
};
};
pwm_c {
phandle = <0x85>;
mux {
groups = "pwm_c";
function = "pwm_c";
bias-disable;
};
};
pwm_d {
phandle = <0x86>;
mux {
groups = "pwm_d";
function = "pwm_d";
bias-disable;
};
};
pwm_e {
phandle = <0x18>;
mux {
groups = "pwm_e";
function = "pwm_e";
bias-disable;
};
};
pwm_f_clk {
phandle = <0x87>;
mux {
groups = "pwm_f_clk";
function = "pwm_f";
bias-disable;
};
};
pwm_f_x {
phandle = <0x88>;
mux {
groups = "pwm_f_x";
function = "pwm_f";
bias-disable;
};
};
hdmi_hpd {
phandle = <0x34>;
mux {
groups = "hdmi_hpd";
function = "hdmi_hpd";
bias-disable;
};
};
hdmi_i2c {
phandle = <0x35>;
mux {
groups = "hdmi_sda\0hdmi_scl";
function = "hdmi_i2c";
bias-disable;
};
};
i2s_am_clk {
phandle = <0x89>;
mux {
groups = "i2s_am_clk";
function = "i2s_out";
bias-disable;
};
};
i2s_out_ao_clk {
phandle = <0x8a>;
mux {
groups = "i2s_out_ao_clk";
function = "i2s_out";
bias-disable;
};
};
i2s_out_lr_clk {
phandle = <0x8b>;
mux {
groups = "i2s_out_lr_clk";
function = "i2s_out";
bias-disable;
};
};
i2s_out_ch01 {
phandle = <0x8c>;
mux {
groups = "i2s_out_ch01";
function = "i2s_out";
bias-disable;
};
};
i2sout_ch23_z {
phandle = <0x8d>;
mux {
groups = "i2sout_ch23_z";
function = "i2s_out";
bias-disable;
};
};
i2sout_ch45_z {
phandle = <0x8e>;
mux {
groups = "i2sout_ch45_z";
function = "i2s_out";
bias-disable;
};
};
i2sout_ch67_z {
phandle = <0x8f>;
mux {
groups = "i2sout_ch67_z";
function = "i2s_out";
bias-disable;
};
};
spdif_out_ao_h {
phandle = <0x90>;
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 = <0x22>;
mdio@e40908ff {
reg = <0xe40908ff>;
#address-cells = <0x01>;
#size-cells = <0x00>;
phandle = <0x91>;
ethernet-phy@8 {
compatible = "ethernet-phy-id0181.4400";
interrupts = <0x00 0x09 0x04>;
reg = <0x08>;
max-speed = <0x64>;
phandle = <0x23>;
};
};
mdio@2009087f {
reg = <0x2009087f>;
#address-cells = <0x01>;
#size-cells = <0x00>;
phandle = <0x92>;
};
};
};
bus@c8838000 {
compatible = "simple-bus";
reg = <0x00 0xc8838000 0x00 0x400>;
#address-cells = <0x02>;
#size-cells = <0x02>;
ranges = <0x00 0x00 0x00 0xc8838000 0x00 0x400>;
phandle = <0x93>;
video-lut@48 {
compatible = "amlogic,canvas";
reg = <0x00 0x48 0x00 0x14>;
phandle = <0x20>;
};
};
bus@c883c000 {
compatible = "simple-bus";
reg = <0x00 0xc883c000 0x00 0x2000>;
#address-cells = <0x02>;
#size-cells = <0x02>;
ranges = <0x00 0x00 0x00 0xc883c000 0x00 0x2000>;
phandle = <0x94>;
system-controller@0 {
compatible = "amlogic,meson-gx-hhi-sysctrl\0simple-mfd\0syscon";
reg = <0x00 0x00 0x00 0x400>;
phandle = <0x95>;
power-controller {
compatible = "amlogic,meson-gxbb-pwrc";
#power-domain-cells = <0x01>;
amlogic,ao-sysctrl = <0x1f>;
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 = <0x12>;
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 = <0x23>;
phandle = <0x96>;
mdio {
#address-cells = <0x01>;
#size-cells = <0x00>;
compatible = "snps,dwmac-mdio";
phandle = <0x22>;
};
};
apb@d0000000 {
compatible = "simple-bus";
reg = <0x00 0xd0000000 0x00 0x200000>;
#address-cells = <0x02>;
#size-cells = <0x02>;
ranges = <0x00 0x00 0x00 0xd0000000 0x00 0x200000>;
phandle = <0x97>;
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 = <0x24>;
pinctrl-1 = <0x25>;
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 = <0x26>;
vmmc-supply = <0x27>;
vqmmc-supply = <0x28>;
phandle = <0x98>;
};
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 = <0x29>;
pinctrl-1 = <0x2a>;
pinctrl-names = "default\0clk-gate";
bus-width = <0x04>;
cap-sd-highspeed;
max-frequency = <0x2faf080>;
disable-wp;
cd-gpios = <0x15 0x30 0x01>;
vmmc-supply = <0x27>;
vqmmc-supply = <0x28>;
phandle = <0x99>;
};
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 = <0x2b 0x2c>;
pinctrl-1 = <0x2d>;
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 = <0x2e>;
vmmc-supply = <0x2f>;
vqmmc-supply = <0x28>;
phandle = <0x9a>;
};
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";
phy-supply = <0x30>;
phandle = <0x38>;
};
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 = <0x39>;
};
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 0x00 0xa8 0x04 0x00 0xa9 0x04>;
interrupt-names = "gp\0gpmmu\0pp\0pmu\0pp0\0ppmmu0\0pp1\0ppmmu1\0pp2\0ppmmu2";
operating-points-v2 = <0x31>;
clocks = <0x03 0x0c 0x03 0x6a>;
clock-names = "bus\0core";
assigned-clocks = <0x03 0x09>;
assigned-clock-rates = <0x2c588a00>;
phandle = <0x9b>;
};
};
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 = <0x20>;
power-domains = <0x02 0x00>;
phandle = <0x9c>;
port@0 {
reg = <0x00>;
phandle = <0x9d>;
endpoint {
remote-endpoint = <0x32>;
phandle = <0x3e>;
};
};
port@1 {
reg = <0x01>;
phandle = <0x9e>;
endpoint {
remote-endpoint = <0x33>;
phandle = <0x36>;
};
};
};
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 = <0x34 0x35>;
pinctrl-names = "default";
hdmi-supply = <0x30>;
phandle = <0x1b>;
port@0 {
reg = <0x00>;
phandle = <0x9f>;
endpoint {
remote-endpoint = <0x36>;
phandle = <0x33>;
};
};
port@1 {
reg = <0x01>;
phandle = <0xa0>;
endpoint {
remote-endpoint = <0x37>;
phandle = <0x3f>;
};
};
};
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 = <0x38 0x39>;
phy-names = "usb2-phy0\0usb2-phy1";
status = "okay";
phandle = <0xa1>;
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 = <0x39>;
dr_mode = "peripheral";
g-rx-fifo-size = <0xc0>;
g-np-tx-fifo-size = <0x80>;
g-tx-fifo-size = <0x80 0x80 0x10 0x10 0x10>;
phandle = <0xa2>;
};
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;
phandle = <0xa3>;
};
};
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 = <0x17>;
phandle = <0x3d>;
};
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";
phandle = <0xa4>;
};
};
opp-table {
compatible = "operating-points-v2";
phandle = <0x31>;
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>;
};
};
aliases {
serial0 = "/soc/bus@c8100000/serial@4c0";
ethernet0 = "/soc/ethernet@c9410000";
};
analog-amplifier {
compatible = "simple-audio-amplifier";
sound-name-prefix = "AU2";
VCC-supply = <0x30>;
enable-gpios = <0x15 0x15 0x00>;
phandle = <0x3b>;
};
memory@0 {
device_type = "memory";
reg = <0x00 0x00 0x00 0x80000000>;
};
regulator-hdmi-5v {
compatible = "regulator-fixed";
regulator-name = "HDMI_5V";
regulator-min-microvolt = <0x4c4b40>;
regulator-max-microvolt = <0x4c4b40>;
gpio = <0x15 0x13 0x00>;
enable-active-high;
regulator-always-on;
phandle = <0x30>;
};
regulator-vddio_boot {
compatible = "regulator-fixed";
regulator-name = "VDDIO_BOOT";
regulator-min-microvolt = <0x1b7740>;
regulator-max-microvolt = <0x1b7740>;
phandle = <0x28>;
};
regulator-vddao_3v3 {
compatible = "regulator-fixed";
regulator-name = "VDDAO_3V3";
regulator-min-microvolt = <0x325aa0>;
regulator-max-microvolt = <0x325aa0>;
phandle = <0x27>;
};
regulator-vddio_ao18 {
compatible = "regulator-fixed";
regulator-name = "VDDIO_AO18";
regulator-min-microvolt = <0x1b7740>;
regulator-max-microvolt = <0x1b7740>;
phandle = <0x17>;
};
regulator-vcc_3v3 {
compatible = "regulator-fixed";
regulator-name = "VCC_3V3";
regulator-min-microvolt = <0x325aa0>;
regulator-max-microvolt = <0x325aa0>;
phandle = <0x2f>;
};
emmc-pwrseq {
compatible = "mmc-pwrseq-emmc";
reset-gpios = <0x15 0x23 0x01>;
phandle = <0x2e>;
};
wifi32k {
compatible = "pwm-clock";
#clock-cells = <0x00>;
clock-frequency = <0x8000>;
pwms = <0x3a 0x00 0x7736 0x00>;
phandle = <0x16>;
};
sdio-pwrseq {
compatible = "mmc-pwrseq-simple";
reset-gpios = <0x15 0x55 0x01>;
clocks = <0x16>;
clock-names = "ext_clock";
phandle = <0x26>;
};
sound {
compatible = "amlogic,gx-sound-card";
model = "GX-SOUND-CARD";
audio-aux-devs = <0x3b>;
audio-widgets = "Line\0Lineout";
audio-routing = "AU2 INL\0ACODEC LOLN\0AU2 INR\0ACODEC LORN\0Lineout\0AU2 OUTL\0Lineout\0AU2 OUTR";
assigned-clocks = <0x03 0x0f 0x03 0x0d 0x03 0x0e>;
assigned-clock-parents = <0x00 0x00 0x00>;
assigned-clock-rates = <0x11940000 0x10266000 0x17700000>;
status = "okay";
dai-link-0 {
sound-dai = <0x3c 0x00 0x00>;
};
dai-link-1 {
sound-dai = <0x3c 0x00 0x02>;
dai-format = "i2s";
mclk-fs = <0x200>;
codec-0 {
sound-dai = <0x3c 0x01 0x00>;
};
codec-1 {
sound-dai = <0x3c 0x02 0x00>;
};
};
dai-link-2 {
sound-dai = <0x3c 0x01 0x02>;
codec-0 {
sound-dai = <0x1b>;
};
};
dai-link-3 {
sound-dai = <0x3c 0x02 0x02>;
codec-0 {
sound-dai = <0x3d>;
};
};
};
cvbs-connector {
compatible = "composite-video-connector";
port {
endpoint {
remote-endpoint = <0x3e>;
phandle = <0x32>;
};
};
};
hdmi-connector {
compatible = "hdmi-connector";
type = "a";
port {
endpoint {
remote-endpoint = <0x3f>;
phandle = <0x37>;
};
};
};
__symbols__ {
hwrom_reserved = "/reserved-memory/hwrom@0";
secmon_reserved = "/reserved-memory/secmon@10000000";
secmon_reserved_alt = "/reserved-memory/secmon@5000000";
simplefb_cvbs = "/chosen/framebuffer-cvbs";
simplefb_hdmi = "/chosen/framebuffer-hdmi";
cpu0 = "/cpus/cpu@0";
cpu1 = "/cpus/cpu@1";
cpu2 = "/cpus/cpu@2";
cpu3 = "/cpus/cpu@3";
l2 = "/cpus/l2-cache0";
cpu_passive = "/thermal-zones/cpu-thermal/trips/cpu-passive";
cpu_hot = "/thermal-zones/cpu-thermal/trips/cpu-hot";
cpu_critical = "/thermal-zones/cpu-thermal/trips/cpu-critical";
cpu_cooling_maps = "/thermal-zones/cpu-thermal/cooling-maps";
xtal = "/xtal-clk";
sm = "/firmware/secure-monitor";
efuse = "/efuse";
sn = "/efuse/sn@14";
eth_mac = "/efuse/eth_mac@34";
bid = "/efuse/bid@46";
scpi_clocks = "/scpi/clocks";
scpi_dvfs = "/scpi/clocks/scpi_clocks@0";
scpi_sensors = "/scpi/sensors";
cbus = "/soc/bus@c1100000";
gpio_intc = "/soc/bus@c1100000/interrupt-controller@9880";
reset = "/soc/bus@c1100000/reset-controller@4404";
aiu = "/soc/bus@c1100000/audio-controller@5400";
uart_A = "/soc/bus@c1100000/serial@84c0";
uart_B = "/soc/bus@c1100000/serial@84dc";
i2c_A = "/soc/bus@c1100000/i2c@8500";
pwm_ab = "/soc/bus@c1100000/pwm@8550";
pwm_cd = "/soc/bus@c1100000/pwm@8650";
saradc = "/soc/bus@c1100000/adc@8680";
pwm_ef = "/soc/bus@c1100000/pwm@86c0";
uart_C = "/soc/bus@c1100000/serial@8700";
i2c_B = "/soc/bus@c1100000/i2c@87c0";
i2c_C = "/soc/bus@c1100000/i2c@87e0";
spicc = "/soc/bus@c1100000/spi@8d80";
spifc = "/soc/bus@c1100000/spi@8c80";
gic = "/soc/interrupt-controller@c4301000";
sram = "/soc/sram@c8000000";
cpu_scp_lpri = "/soc/sram@c8000000/scp-sram@0";
cpu_scp_hpri = "/soc/sram@c8000000/scp-sram@200";
aobus = "/soc/bus@c8100000";
sysctrl_AO = "/soc/bus@c8100000/sys-ctrl@0";
clkc_AO = "/soc/bus@c8100000/sys-ctrl@0/clock-controller";
cec_AO = "/soc/bus@c8100000/cec@100";
sec_AO = "/soc/bus@c8100000/ao-secure@140";
uart_AO = "/soc/bus@c8100000/serial@4c0";
uart_AO_B = "/soc/bus@c8100000/serial@4e0";
i2c_AO = "/soc/bus@c8100000/i2c@500";
pwm_AO_ab = "/soc/bus@c8100000/pwm@550";
ir = "/soc/bus@c8100000/ir@580";
pinctrl_aobus = "/soc/bus@c8100000/pinctrl@14";
gpio_ao = "/soc/bus@c8100000/pinctrl@14/bank@14";
uart_ao_a_pins = "/soc/bus@c8100000/pinctrl@14/uart_ao_a";
uart_ao_a_cts_rts_pins = "/soc/bus@c8100000/pinctrl@14/uart_ao_a_cts_rts";
uart_ao_b_pins = "/soc/bus@c8100000/pinctrl@14/uart_ao_b";
uart_ao_b_0_1_pins = "/soc/bus@c8100000/pinctrl@14/uart_ao_b_0_1";
uart_ao_b_cts_rts_pins = "/soc/bus@c8100000/pinctrl@14/uart_ao_b_cts_rts";
remote_input_ao_pins = "/soc/bus@c8100000/pinctrl@14/remote_input_ao";
i2c_ao_pins = "/soc/bus@c8100000/pinctrl@14/i2c_ao";
pwm_ao_a_3_pins = "/soc/bus@c8100000/pinctrl@14/pwm_ao_a_3";
pwm_ao_a_8_pins = "/soc/bus@c8100000/pinctrl@14/pwm_ao_a_8";
pwm_ao_b_pins = "/soc/bus@c8100000/pinctrl@14/pwm_ao_b";
pwm_ao_b_6_pins = "/soc/bus@c8100000/pinctrl@14/pwm_ao_b_6";
i2s_out_ch23_ao_pins = "/soc/bus@c8100000/pinctrl@14/i2s_out_ch23_ao";
i2s_out_ch45_ao_pins = "/soc/bus@c8100000/pinctrl@14/i2s_out_ch45_ao";
spdif_out_ao_6_pins = "/soc/bus@c8100000/pinctrl@14/spdif_out_ao_6";
spdif_out_ao_9_pins = "/soc/bus@c8100000/pinctrl@14/spdif_out_ao_9";
ao_cec_pins = "/soc/bus@c8100000/pinctrl@14/ao_cec";
ee_cec_pins = "/soc/bus@c8100000/pinctrl@14/ee_cec";
vdec = "/soc/video-codec@c8820000";
periphs = "/soc/bus@c8834000";
hwrng = "/soc/bus@c8834000/rng";
pinctrl_periphs = "/soc/bus@c8834000/pinctrl@4b0";
gpio = "/soc/bus@c8834000/pinctrl@4b0/bank@4b0";
emmc_pins = "/soc/bus@c8834000/pinctrl@4b0/emmc";
emmc_ds_pins = "/soc/bus@c8834000/pinctrl@4b0/emmc-ds";
emmc_clk_gate_pins = "/soc/bus@c8834000/pinctrl@4b0/emmc_clk_gate";
nor_pins = "/soc/bus@c8834000/pinctrl@4b0/nor";
spi_pins = "/soc/bus@c8834000/pinctrl@4b0/spi-pins";
spi_ss0_pins = "/soc/bus@c8834000/pinctrl@4b0/spi-ss0";
sdcard_pins = "/soc/bus@c8834000/pinctrl@4b0/sdcard";
sdcard_clk_gate_pins = "/soc/bus@c8834000/pinctrl@4b0/sdcard_clk_gate";
sdio_pins = "/soc/bus@c8834000/pinctrl@4b0/sdio";
sdio_clk_gate_pins = "/soc/bus@c8834000/pinctrl@4b0/sdio_clk_gate";
sdio_irq_pins = "/soc/bus@c8834000/pinctrl@4b0/sdio_irq";
uart_a_pins = "/soc/bus@c8834000/pinctrl@4b0/uart_a";
uart_a_cts_rts_pins = "/soc/bus@c8834000/pinctrl@4b0/uart_a_cts_rts";
uart_b_pins = "/soc/bus@c8834000/pinctrl@4b0/uart_b";
uart_b_cts_rts_pins = "/soc/bus@c8834000/pinctrl@4b0/uart_b_cts_rts";
uart_c_pins = "/soc/bus@c8834000/pinctrl@4b0/uart_c";
uart_c_cts_rts_pins = "/soc/bus@c8834000/pinctrl@4b0/uart_c_cts_rts";
i2c_a_pins = "/soc/bus@c8834000/pinctrl@4b0/i2c_a";
i2c_b_pins = "/soc/bus@c8834000/pinctrl@4b0/i2c_b";
i2c_c_pins = "/soc/bus@c8834000/pinctrl@4b0/i2c_c";
i2c_c_dv18_pins = "/soc/bus@c8834000/pinctrl@4b0/i2c_c_dv18";
eth_pins = "/soc/bus@c8834000/pinctrl@4b0/eth_c";
eth_link_led_pins = "/soc/bus@c8834000/pinctrl@4b0/eth_link_led";
eth_act_led_pins = "/soc/bus@c8834000/pinctrl@4b0/eth_act_led";
pwm_a_pins = "/soc/bus@c8834000/pinctrl@4b0/pwm_a";
pwm_b_pins = "/soc/bus@c8834000/pinctrl@4b0/pwm_b";
pwm_c_pins = "/soc/bus@c8834000/pinctrl@4b0/pwm_c";
pwm_d_pins = "/soc/bus@c8834000/pinctrl@4b0/pwm_d";
pwm_e_pins = "/soc/bus@c8834000/pinctrl@4b0/pwm_e";
pwm_f_clk_pins = "/soc/bus@c8834000/pinctrl@4b0/pwm_f_clk";
pwm_f_x_pins = "/soc/bus@c8834000/pinctrl@4b0/pwm_f_x";
hdmi_hpd_pins = "/soc/bus@c8834000/pinctrl@4b0/hdmi_hpd";
hdmi_i2c_pins = "/soc/bus@c8834000/pinctrl@4b0/hdmi_i2c";
i2s_am_clk_pins = "/soc/bus@c8834000/pinctrl@4b0/i2s_am_clk";
i2s_out_ao_clk_pins = "/soc/bus@c8834000/pinctrl@4b0/i2s_out_ao_clk";
i2s_out_lr_clk_pins = "/soc/bus@c8834000/pinctrl@4b0/i2s_out_lr_clk";
i2s_out_ch01_pins = "/soc/bus@c8834000/pinctrl@4b0/i2s_out_ch01";
i2sout_ch23_z_pins = "/soc/bus@c8834000/pinctrl@4b0/i2sout_ch23_z";
i2sout_ch45_z_pins = "/soc/bus@c8834000/pinctrl@4b0/i2sout_ch45_z";
i2sout_ch67_z_pins = "/soc/bus@c8834000/pinctrl@4b0/i2sout_ch67_z";
spdif_out_h_pins = "/soc/bus@c8834000/pinctrl@4b0/spdif_out_ao_h";
internal_mdio = "/soc/bus@c8834000/eth-phy-mux/mdio@e40908ff";
internal_phy = "/soc/bus@c8834000/eth-phy-mux/mdio@e40908ff/ethernet-phy@8";
external_mdio = "/soc/bus@c8834000/eth-phy-mux/mdio@2009087f";
dmcbus = "/soc/bus@c8838000";
canvas = "/soc/bus@c8838000/video-lut@48";
hiubus = "/soc/bus@c883c000";
sysctrl = "/soc/bus@c883c000/system-controller@0";
pwrc = "/soc/bus@c883c000/system-controller@0/power-controller";
clkc = "/soc/bus@c883c000/system-controller@0/clock-controller";
mailbox = "/soc/bus@c883c000/mailbox@404";
ethmac = "/soc/ethernet@c9410000";
mdio0 = "/soc/ethernet@c9410000/mdio";
apb = "/soc/apb@d0000000";
sd_emmc_a = "/soc/apb@d0000000/mmc@70000";
sd_emmc_b = "/soc/apb@d0000000/mmc@72000";
sd_emmc_c = "/soc/apb@d0000000/mmc@74000";
usb2_phy0 = "/soc/apb@d0000000/phy@78000";
usb2_phy1 = "/soc/apb@d0000000/phy@78020";
mali = "/soc/apb@d0000000/gpu@c0000";
vpu = "/soc/vpu@d0100000";
cvbs_vdac_port = "/soc/vpu@d0100000/port@0";
cvbs_vdac_out = "/soc/vpu@d0100000/port@0/endpoint";
hdmi_tx_port = "/soc/vpu@d0100000/port@1";
hdmi_tx_out = "/soc/vpu@d0100000/port@1/endpoint";
hdmi_tx = "/soc/hdmi-tx@c883a000";
hdmi_tx_venc_port = "/soc/hdmi-tx@c883a000/port@0";
hdmi_tx_in = "/soc/hdmi-tx@c883a000/port@0/endpoint";
hdmi_tx_tmds_port = "/soc/hdmi-tx@c883a000/port@1";
hdmi_tx_tmds_out = "/soc/hdmi-tx@c883a000/port@1/endpoint";
usb = "/soc/usb@d0078080";
dwc2 = "/soc/usb@d0078080/usb@c9100000";
dwc3 = "/soc/usb@d0078080/usb@c9000000";
acodec = "/soc/audio-controller@c8832000";
crypto = "/soc/crypto@c883e000";
gpu_opp_table = "/opp-table";
dio2133 = "/analog-amplifier";
hdmi_5v = "/regulator-hdmi-5v";
vddio_boot = "/regulator-vddio_boot";
vddao_3v3 = "/regulator-vddao_3v3";
vddio_ao18 = "/regulator-vddio_ao18";
vcc_3v3 = "/regulator-vcc_3v3";
emmc_pwrseq = "/emmc-pwrseq";
wifi32k = "/wifi32k";
sdio_pwrseq = "/sdio-pwrseq";
cvbs_connector_in = "/cvbs-connector/port/endpoint";
hdmi_connector_in = "/hdmi-connector/port/endpoint";
};
};
3.网络上搜索到的一些其他问题线索
3.1问题链接1
https://www.sima.link/flashing_firmware_bit_atv6/
问题1:刷机时,Amlogic USB Burning Tool识别到设备,点“开始"刷机,出现“[0x00101004]擦除bootloader/USB限流/设备识别/命令结果返回错误”
解决方法:,先点开始,等到设备识别到,直接进入刷机,就突然跳过这个问题。
问题2、刷机时,刷到4% 显示“[0x10302001]Romcode/状态切换/等待设备接入/设备枚举异常”
解决方法:换其他USB口试下
问题3:刷机工具识别不到盒子,电脑usb识别的MTP设备
解决方法:按着reset键,上电5秒6秒后松放,重置盒子,此时电脑usb识别的设备就不是MTP是P212,然后再重新线刷。
3.2其他线索资源
https://blog.csdn.net/qq_31761069/article/details/137455401
https://blog.csdn.net/adinlead/article/details/130122468
https://ruohai.wang/202404/cumebox2-install-armbian/
https://penghong.org.cn/815.html
https://www.mydigit.cn/thread-413920-1-1.html
https://www.right.com.cn/forum/thread-5990353-1-1.html
3.3一个百度云资源共享
https://pan.baidu.com/s/1YhllqtFJQKiNJOD_7le_6g?pwd=93w4