* [PATCH 0/2] Add initial device tree support for the Xiaomi Mi Box 4 (MDZ-21-AA), an Amlogic S905L based TV box.
@ 2026-09-03 7:09 YuChia-Kan
2026-09-03 7:09 ` [PATCH 1/2] dt-bindings: arm: amlogic: add Xiaomi Mi Box 4 YuChia-Kan
2026-09-03 7:09 ` [PATCH 2/2] arm64: dts: amlogic: add Xiaomi Mi Box 4 support YuChia-Kan
0 siblings, 2 replies; 8+ messages in thread
From: YuChia-Kan @ 2026-09-03 7:09 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Neil Armstrong,
Kevin Hilman, Jerome Brunet, Martin Blumenstingl
Cc: devicetree, linux-kernel, linux-arm-kernel, linux-amlogic, YuChia-Kan
The series adds the board device tree and enables the main on-board hardware, including eMMC, RTL8723DS Wi-Fi, HDMI output, HDMI CEC, USB host, IR receiver, power LED, audio, Mali GPU and the Amlogic video decoder.
Bluetooth is currently not described in the device tree. The device firmware uses the H4 UART protocol, while the current mainline RTL8723DS Bluetooth support expects H5.
Tested:
* SMP (4 CPU cores)
* 2 GiB RAM
* eMMC
* RTL8723DS Wi-Fi
* HDMI output
* HDMI CEC
* USB 2.0 host
* Power LED
* Mali GPU
* Amlogic VDEC
Also verified that the sound card and IR input device are correctly registered.
Not tested:
* CVBS / analog AV output, due to lack of compatible test equipment
Signed-off-by: YuChia-Kan <raspberrykan@stu.hqu.edu.cn>
---
YuChia-Kan (2):
dt-bindings: arm: amlogic: add Xiaomi Mi Box 4
arm64: dts: amlogic: add Xiaomi Mi Box 4 support
Documentation/devicetree/bindings/arm/amlogic.yaml | 1 +
arch/arm64/boot/dts/amlogic/Makefile | 1 +
arch/arm64/boot/dts/amlogic/meson-gxlx-mibox4.dts | 340 +++++++++++++++++++++
3 files changed, 342 insertions(+)
---
base-commit: ae77d827fb0e6fb2faf8186f075c6c337f2dcf08
change-id: 20260903-mibox4-dt-f64044d040ad
Best regards,
--
YuChia-Kan <raspberrykan@stu.hqu.edu.cn>
_______________________________________________
linux-amlogic mailing list
linux-amlogic@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-amlogic
^ permalink raw reply [flat|nested] 8+ messages in thread* [PATCH 1/2] dt-bindings: arm: amlogic: add Xiaomi Mi Box 4 2026-09-03 7:09 [PATCH 0/2] Add initial device tree support for the Xiaomi Mi Box 4 (MDZ-21-AA), an Amlogic S905L based TV box YuChia-Kan @ 2026-09-03 7:09 ` YuChia-Kan 2026-09-03 7:09 ` [PATCH 2/2] arm64: dts: amlogic: add Xiaomi Mi Box 4 support YuChia-Kan 1 sibling, 0 replies; 8+ messages in thread From: YuChia-Kan @ 2026-09-03 7:09 UTC (permalink / raw) To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Neil Armstrong, Kevin Hilman, Jerome Brunet, Martin Blumenstingl Cc: devicetree, linux-kernel, linux-arm-kernel, linux-amlogic, YuChia-Kan Add the Xiaomi Mi Box 4 (MDZ-21-AA), based on the Amlogic S905L SoC, to the list of supported Amlogic boards. Signed-off-by: YuChia-Kan <raspberrykan@stu.hqu.edu.cn> --- Documentation/devicetree/bindings/arm/amlogic.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/arm/amlogic.yaml b/Documentation/devicetree/bindings/arm/amlogic.yaml index 9f73a0054fb2..96e207572d98 100644 --- a/Documentation/devicetree/bindings/arm/amlogic.yaml +++ b/Documentation/devicetree/bindings/arm/amlogic.yaml @@ -120,6 +120,7 @@ properties: items: - enum: - amlogic,p271 + - xiaomi,mibox4 - const: amlogic,s905l - const: amlogic,meson-gxlx -- 2.53.0 _______________________________________________ linux-amlogic mailing list linux-amlogic@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-amlogic ^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH 2/2] arm64: dts: amlogic: add Xiaomi Mi Box 4 support 2026-09-03 7:09 [PATCH 0/2] Add initial device tree support for the Xiaomi Mi Box 4 (MDZ-21-AA), an Amlogic S905L based TV box YuChia-Kan 2026-09-03 7:09 ` [PATCH 1/2] dt-bindings: arm: amlogic: add Xiaomi Mi Box 4 YuChia-Kan @ 2026-09-03 7:09 ` YuChia-Kan 2026-09-03 7:20 ` Neil Armstrong 2026-09-03 7:36 ` sashiko-bot 1 sibling, 2 replies; 8+ messages in thread From: YuChia-Kan @ 2026-09-03 7:09 UTC (permalink / raw) To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Neil Armstrong, Kevin Hilman, Jerome Brunet, Martin Blumenstingl Cc: devicetree, linux-kernel, linux-arm-kernel, linux-amlogic, YuChia-Kan Add initial device tree support for the Xiaomi Mi Box 4 (MDZ-21-AA), based on the Amlogic S905L SoC. Enable the main on-board peripherals including eMMC, Wi-Fi, HDMI, CEC, USB, IR, audio, power LED, GPU and video decoder. Signed-off-by: YuChia-Kan <raspberrykan@stu.hqu.edu.cn> --- arch/arm64/boot/dts/amlogic/Makefile | 1 + arch/arm64/boot/dts/amlogic/meson-gxlx-mibox4.dts | 340 ++++++++++++++++++++++ 2 files changed, 341 insertions(+) diff --git a/arch/arm64/boot/dts/amlogic/Makefile b/arch/arm64/boot/dts/amlogic/Makefile index 57bc440fa55c..9f357df5fc54 100644 --- a/arch/arm64/boot/dts/amlogic/Makefile +++ b/arch/arm64/boot/dts/amlogic/Makefile @@ -72,6 +72,7 @@ dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-nexbox-a95x.dtb dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-p212.dtb dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-vero4k.dtb dtb-$(CONFIG_ARCH_MESON) += meson-gxlx-s905l-p271.dtb +dtb-$(CONFIG_ARCH_MESON) += meson-gxlx-mibox4.dtb dtb-$(CONFIG_ARCH_MESON) += meson-gxm-gt1-ultimate.dtb dtb-$(CONFIG_ARCH_MESON) += meson-gxm-khadas-vim2.dtb dtb-$(CONFIG_ARCH_MESON) += meson-gxm-mecool-kiii-pro.dtb diff --git a/arch/arm64/boot/dts/amlogic/meson-gxlx-mibox4.dts b/arch/arm64/boot/dts/amlogic/meson-gxlx-mibox4.dts new file mode 100644 index 000000000000..db774efb2898 --- /dev/null +++ b/arch/arm64/boot/dts/amlogic/meson-gxlx-mibox4.dts @@ -0,0 +1,340 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +// Copyright (c) 2026 YuChia-Kan <mail@raspberrykan.dev> + +/dts-v1/; + +#include "meson-gxl-s905x.dtsi" + +#include <dt-bindings/leds/common.h> +#include <dt-bindings/sound/meson-aiu.h> + +/ { + compatible = "xiaomi,mibox4", "amlogic,s905l", "amlogic,meson-gxlx"; + model = "Xiaomi Mi Box 4 (MDZ-21-AA)"; + + aliases { + serial0 = &uart_AO; + mmc0 = &sd_emmc_c; + mmc1 = &sd_emmc_a; + /delete-property/ mmc2; + }; + + chosen { + stdout-path = "serial0:115200n8"; + }; + + av_mute: analog-audio-mute { + compatible = "simple-audio-amplifier"; + sound-name-prefix = "AV"; + enable-gpios = <&gpio GPIOH_5 GPIO_ACTIVE_HIGH>; + }; + + memory@0 { + device_type = "memory"; + reg = <0x0 0x0 0x0 0x80000000>; + }; + + hdmi_connector: hdmi-connector { + compatible = "hdmi-connector"; + type = "a"; + + port { + hdmi_connector_in: endpoint { + remote-endpoint = <&hdmi_tx_tmds_out>; + }; + }; + }; + + cvbs_connector: cvbs-connector { + compatible = "composite-video-connector"; + + port { + cvbs_connector_in: endpoint { + remote-endpoint = <&cvbs_vdac_out>; + }; + }; + }; + + hdmi_usb_5v: regulator-hdmi-usb-5v { + compatible = "regulator-fixed"; + regulator-name = "HDMI_USB_5V"; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + gpio = <&gpio_ao GPIOAO_4 GPIO_ACTIVE_HIGH>; + enable-active-high; + regulator-boot-on; + regulator-always-on; + }; + + vddio_boot: regulator-vddio-boot { + compatible = "regulator-fixed"; + regulator-name = "VDDIO_BOOT"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + vddao_3v3: regulator-vddao-3v3 { + compatible = "regulator-fixed"; + regulator-name = "VDDAO_3V3"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + vddio_ao18: regulator-vddio-ao18 { + compatible = "regulator-fixed"; + regulator-name = "VDDIO_AO18"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + vcc_3v3: regulator-vcc-3v3 { + compatible = "regulator-fixed"; + regulator-name = "VCC_3V3"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + emmc_pwrseq: emmc-pwrseq { + compatible = "mmc-pwrseq-emmc"; + reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>; + }; + + wifi32k: wifi32k { + compatible = "pwm-clock"; + #clock-cells = <0>; + clock-frequency = <32768>; + pwms = <&pwm_ef 0 30518 0>; + }; + + wifi_pwrseq: wifi-pwrseq { + compatible = "mmc-pwrseq-simple"; + reset-gpios = <&gpio GPIOX_9 GPIO_ACTIVE_LOW>; + clocks = <&wifi32k>; + clock-names = "ext_clock"; + post-power-on-delay-ms = <200>; + }; + + leds: leds { + compatible = "gpio-leds"; + + power_led: power-led { + label = "mibox4:power"; + function = LED_FUNCTION_POWER; + gpios = <&gpio GPIOX_6 GPIO_ACTIVE_HIGH>; + default-state = "on"; + }; + }; + + sound { + compatible = "amlogic,gx-sound-card"; + model = "Xiaomi-Mi-Box-4"; + audio-aux-devs = <&av_mute>; + audio-widgets = "Line", "Lineout"; + audio-routing = "AV INL", "ACODEC LOLN", + "AV INR", "ACODEC LORN", + "Lineout", "AV OUTL", + "Lineout", "AV OUTR"; + + clocks = <&clkc CLKID_MPLL0>, + <&clkc CLKID_MPLL1>, + <&clkc CLKID_MPLL2>; + assigned-clocks = <&clkc CLKID_MPLL0>, + <&clkc CLKID_MPLL1>, + <&clkc CLKID_MPLL2>; + assigned-clock-rates = <294912000>, <270950400>, <393216000>; + + dai-link-0 { + sound-dai = <&aiu AIU_CPU CPU_I2S_FIFO>; + }; + + dai-link-1 { + sound-dai = <&aiu AIU_CPU CPU_I2S_ENCODER>; + dai-format = "i2s"; + mclk-fs = <256>; + + codec-0 { + sound-dai = <&aiu AIU_HDMI CTRL_I2S>; + }; + + codec-1 { + sound-dai = <&aiu AIU_ACODEC CTRL_I2S>; + }; + }; + + dai-link-2 { + sound-dai = <&aiu AIU_HDMI CTRL_OUT>; + + codec-0 { + sound-dai = <&hdmi_tx>; + }; + }; + + dai-link-3 { + sound-dai = <&aiu AIU_ACODEC CTRL_OUT>; + + codec-0 { + sound-dai = <&acodec>; + }; + }; + }; +}; + +&apb { + mali: gpu@c0000 { + interrupts = <GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 166 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>; + interrupt-names = "gp", "gpmmu", "pp", "pmu", + "pp0", "ppmmu0", "pp1", "ppmmu1", + "pp2", "ppmmu2"; + }; +}; + +&acodec { + AVDD-supply = <&vddio_ao18>; + status = "okay"; +}; + +&aiu { + status = "okay"; +}; + +&cec_AO { + status = "okay"; + pinctrl-0 = <&ao_cec_pins>; + pinctrl-names = "default"; + hdmi-phandle = <&hdmi_tx>; +}; + +&cvbs_vdac_port { + cvbs_vdac_out: endpoint { + remote-endpoint = <&cvbs_connector_in>; + }; +}; + +/delete-node/ ð_mac; +/delete-node/ &sn; +/delete-node/ &bid; + +&efuse { + wifi_mac: mac-address@c { + reg = <0x0c 0x06>; + }; +}; + +ðmac { + status = "disabled"; +}; + +&hdmi_tx { + status = "okay"; + pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>; + pinctrl-names = "default"; + hdmi-supply = <&hdmi_usb_5v>; +}; + +&hdmi_tx_tmds_port { + hdmi_tx_tmds_out: endpoint { + remote-endpoint = <&hdmi_connector_in>; + }; +}; + +&ir { + status = "okay"; + pinctrl-0 = <&remote_input_ao_pins>; + pinctrl-names = "default"; +}; + +&pwm_ef { + status = "okay"; + pinctrl-0 = <&pwm_e_pins>; + pinctrl-names = "default"; +}; + +&saradc { + compatible = "amlogic,meson-gxlx-saradc", "amlogic,meson-saradc"; + status = "okay"; + vref-supply = <&vddio_ao18>; +}; + +&sd_emmc_a { + status = "okay"; + pinctrl-0 = <&sdio_pins>; + pinctrl-1 = <&sdio_clk_gate_pins>; + pinctrl-names = "default", "clk-gate"; + #address-cells = <1>; + #size-cells = <0>; + bus-width = <4>; + cap-sd-highspeed; + cap-sdio-irq; + max-frequency = <50000000>; + non-removable; + no-mmc; + no-sd; + disable-wp; + keep-power-in-suspend; + sd-uhs-sdr12; + sd-uhs-sdr25; + sd-uhs-sdr50; + sd-uhs-sdr104; + mmc-pwrseq = <&wifi_pwrseq>; + vmmc-supply = <&vddao_3v3>; + vqmmc-supply = <&vddio_boot>; + + rtl8723ds: wifi@1 { + reg = <1>; + nvmem-cells = <&wifi_mac>; + nvmem-cell-names = "mac-address"; + interrupt-parent = <&gpio_intc>; + interrupts = <GPIOX_7 IRQ_TYPE_LEVEL_HIGH>; + interrupt-names = "host-wake"; + }; +}; + +&sd_emmc_b { + status = "disabled"; +}; + +&sd_emmc_c { + status = "okay"; + pinctrl-0 = <&emmc_pins>, <&emmc_ds_pins>; + pinctrl-1 = <&emmc_clk_gate_pins>; + pinctrl-names = "default", "clk-gate"; + bus-width = <8>; + cap-mmc-highspeed; + max-frequency = <100000000>; + non-removable; + disable-wp; + mmc-ddr-1_8v; + mmc-hs200-1_8v; + mmc-hs400-1_8v; + mmc-pwrseq = <&emmc_pwrseq>; + vmmc-supply = <&vcc_3v3>; + vqmmc-supply = <&vddio_boot>; +}; + +&uart_AO { + status = "okay"; + pinctrl-0 = <&uart_ao_a_pins>; + pinctrl-names = "default"; +}; + +&usb { + status = "okay"; + dr_mode = "host"; +}; + +&usb2_phy0 { + phy-supply = <&hdmi_usb_5v>; +}; + +&vdec { + compatible = "amlogic,gxlx-vdec", "amlogic,gx-vdec"; +}; -- 2.53.0 _______________________________________________ linux-amlogic mailing list linux-amlogic@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-amlogic ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 2/2] arm64: dts: amlogic: add Xiaomi Mi Box 4 support 2026-09-03 7:09 ` [PATCH 2/2] arm64: dts: amlogic: add Xiaomi Mi Box 4 support YuChia-Kan @ 2026-09-03 7:20 ` Neil Armstrong 2026-09-03 7:36 ` sashiko-bot 1 sibling, 0 replies; 8+ messages in thread From: Neil Armstrong @ 2026-09-03 7:20 UTC (permalink / raw) To: YuChia-Kan, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Kevin Hilman, Jerome Brunet, Martin Blumenstingl Cc: devicetree, linux-kernel, linux-arm-kernel, linux-amlogic Hi, On 9/3/26 09:09, YuChia-Kan wrote: > Add initial device tree support for the Xiaomi Mi Box 4 > (MDZ-21-AA), based on the Amlogic S905L SoC. > > Enable the main on-board peripherals including eMMC, Wi-Fi, > HDMI, CEC, USB, IR, audio, power LED, GPU and video decoder. > > Signed-off-by: YuChia-Kan <raspberrykan@stu.hqu.edu.cn> > --- > arch/arm64/boot/dts/amlogic/Makefile | 1 + > arch/arm64/boot/dts/amlogic/meson-gxlx-mibox4.dts | 340 ++++++++++++++++++++++ > 2 files changed, 341 insertions(+) > > diff --git a/arch/arm64/boot/dts/amlogic/Makefile b/arch/arm64/boot/dts/amlogic/Makefile > index 57bc440fa55c..9f357df5fc54 100644 > --- a/arch/arm64/boot/dts/amlogic/Makefile > +++ b/arch/arm64/boot/dts/amlogic/Makefile > @@ -72,6 +72,7 @@ dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-nexbox-a95x.dtb > dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-p212.dtb > dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-vero4k.dtb > dtb-$(CONFIG_ARCH_MESON) += meson-gxlx-s905l-p271.dtb > +dtb-$(CONFIG_ARCH_MESON) += meson-gxlx-mibox4.dtb > dtb-$(CONFIG_ARCH_MESON) += meson-gxm-gt1-ultimate.dtb > dtb-$(CONFIG_ARCH_MESON) += meson-gxm-khadas-vim2.dtb > dtb-$(CONFIG_ARCH_MESON) += meson-gxm-mecool-kiii-pro.dtb > diff --git a/arch/arm64/boot/dts/amlogic/meson-gxlx-mibox4.dts b/arch/arm64/boot/dts/amlogic/meson-gxlx-mibox4.dts > new file mode 100644 > index 000000000000..db774efb2898 > --- /dev/null > +++ b/arch/arm64/boot/dts/amlogic/meson-gxlx-mibox4.dts > @@ -0,0 +1,340 @@ > +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) > +// Copyright (c) 2026 YuChia-Kan <mail@raspberrykan.dev> > + > +/dts-v1/; > + > +#include "meson-gxl-s905x.dtsi" > + > +#include <dt-bindings/leds/common.h> > +#include <dt-bindings/sound/meson-aiu.h> > + > +/ { > + compatible = "xiaomi,mibox4", "amlogic,s905l", "amlogic,meson-gxlx"; > + model = "Xiaomi Mi Box 4 (MDZ-21-AA)"; > + > + aliases { > + serial0 = &uart_AO; > + mmc0 = &sd_emmc_c; > + mmc1 = &sd_emmc_a; > + /delete-property/ mmc2; > + }; > + > + chosen { > + stdout-path = "serial0:115200n8"; > + }; > + > + av_mute: analog-audio-mute { > + compatible = "simple-audio-amplifier"; > + sound-name-prefix = "AV"; > + enable-gpios = <&gpio GPIOH_5 GPIO_ACTIVE_HIGH>; > + }; > + > + memory@0 { > + device_type = "memory"; > + reg = <0x0 0x0 0x0 0x80000000>; > + }; > + > + hdmi_connector: hdmi-connector { > + compatible = "hdmi-connector"; > + type = "a"; > + > + port { > + hdmi_connector_in: endpoint { > + remote-endpoint = <&hdmi_tx_tmds_out>; > + }; > + }; > + }; > + > + cvbs_connector: cvbs-connector { > + compatible = "composite-video-connector"; > + > + port { > + cvbs_connector_in: endpoint { > + remote-endpoint = <&cvbs_vdac_out>; > + }; > + }; > + }; > + > + hdmi_usb_5v: regulator-hdmi-usb-5v { > + compatible = "regulator-fixed"; > + regulator-name = "HDMI_USB_5V"; > + regulator-min-microvolt = <5000000>; > + regulator-max-microvolt = <5000000>; > + gpio = <&gpio_ao GPIOAO_4 GPIO_ACTIVE_HIGH>; > + enable-active-high; > + regulator-boot-on; > + regulator-always-on; > + }; > + > + vddio_boot: regulator-vddio-boot { > + compatible = "regulator-fixed"; > + regulator-name = "VDDIO_BOOT"; > + regulator-min-microvolt = <1800000>; > + regulator-max-microvolt = <1800000>; > + }; > + > + vddao_3v3: regulator-vddao-3v3 { > + compatible = "regulator-fixed"; > + regulator-name = "VDDAO_3V3"; > + regulator-min-microvolt = <3300000>; > + regulator-max-microvolt = <3300000>; > + }; > + > + vddio_ao18: regulator-vddio-ao18 { > + compatible = "regulator-fixed"; > + regulator-name = "VDDIO_AO18"; > + regulator-min-microvolt = <1800000>; > + regulator-max-microvolt = <1800000>; > + }; > + > + vcc_3v3: regulator-vcc-3v3 { > + compatible = "regulator-fixed"; > + regulator-name = "VCC_3V3"; > + regulator-min-microvolt = <3300000>; > + regulator-max-microvolt = <3300000>; > + }; > + > + emmc_pwrseq: emmc-pwrseq { > + compatible = "mmc-pwrseq-emmc"; > + reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>; > + }; > + > + wifi32k: wifi32k { > + compatible = "pwm-clock"; > + #clock-cells = <0>; > + clock-frequency = <32768>; > + pwms = <&pwm_ef 0 30518 0>; > + }; > + > + wifi_pwrseq: wifi-pwrseq { > + compatible = "mmc-pwrseq-simple"; > + reset-gpios = <&gpio GPIOX_9 GPIO_ACTIVE_LOW>; > + clocks = <&wifi32k>; > + clock-names = "ext_clock"; > + post-power-on-delay-ms = <200>; > + }; > + > + leds: leds { > + compatible = "gpio-leds"; > + > + power_led: power-led { > + label = "mibox4:power"; Drop the label, add the color attribute. > + function = LED_FUNCTION_POWER; > + gpios = <&gpio GPIOX_6 GPIO_ACTIVE_HIGH>; > + default-state = "on"; > + }; > + }; > + > + sound { > + compatible = "amlogic,gx-sound-card"; > + model = "Xiaomi-Mi-Box-4"; > + audio-aux-devs = <&av_mute>; > + audio-widgets = "Line", "Lineout"; > + audio-routing = "AV INL", "ACODEC LOLN", > + "AV INR", "ACODEC LORN", > + "Lineout", "AV OUTL", > + "Lineout", "AV OUTR"; > + > + clocks = <&clkc CLKID_MPLL0>, > + <&clkc CLKID_MPLL1>, > + <&clkc CLKID_MPLL2>; > + assigned-clocks = <&clkc CLKID_MPLL0>, > + <&clkc CLKID_MPLL1>, > + <&clkc CLKID_MPLL2>; > + assigned-clock-rates = <294912000>, <270950400>, <393216000>; > + > + dai-link-0 { > + sound-dai = <&aiu AIU_CPU CPU_I2S_FIFO>; > + }; > + > + dai-link-1 { > + sound-dai = <&aiu AIU_CPU CPU_I2S_ENCODER>; > + dai-format = "i2s"; > + mclk-fs = <256>; > + > + codec-0 { > + sound-dai = <&aiu AIU_HDMI CTRL_I2S>; > + }; > + > + codec-1 { > + sound-dai = <&aiu AIU_ACODEC CTRL_I2S>; > + }; > + }; > + > + dai-link-2 { > + sound-dai = <&aiu AIU_HDMI CTRL_OUT>; > + > + codec-0 { > + sound-dai = <&hdmi_tx>; > + }; > + }; > + > + dai-link-3 { > + sound-dai = <&aiu AIU_ACODEC CTRL_OUT>; > + > + codec-0 { > + sound-dai = <&acodec>; > + }; > + }; > + }; > +}; > + > +&apb { > + mali: gpu@c0000 { > + interrupts = <GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>, > + <GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>, > + <GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>, > + <GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>, > + <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>, > + <GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>, > + <GIC_SPI 166 IRQ_TYPE_LEVEL_HIGH>, > + <GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>, > + <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>, > + <GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>; > + interrupt-names = "gp", "gpmmu", "pp", "pmu", > + "pp0", "ppmmu0", "pp1", "ppmmu1", > + "pp2", "ppmmu2"; > + }; > +}; Drop this, it's already defined in arch/arm64/boot/dts/amlogic/meson-gx-mali450.dtsi > + > +&acodec { > + AVDD-supply = <&vddio_ao18>; > + status = "okay"; > +}; > + > +&aiu { > + status = "okay"; > +}; > + > +&cec_AO { > + status = "okay"; > + pinctrl-0 = <&ao_cec_pins>; > + pinctrl-names = "default"; > + hdmi-phandle = <&hdmi_tx>; > +}; > + > +&cvbs_vdac_port { > + cvbs_vdac_out: endpoint { > + remote-endpoint = <&cvbs_connector_in>; > + }; > +}; > + > +/delete-node/ ð_mac; > +/delete-node/ &sn; > +/delete-node/ &bid; Add a comment stating the nvmem layout is custom > + > +&efuse { > + wifi_mac: mac-address@c { > + reg = <0x0c 0x06>; > + }; > +}; > + > +ðmac { > + status = "disabled"; > +}; > + > +&hdmi_tx { > + status = "okay"; > + pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>; > + pinctrl-names = "default"; > + hdmi-supply = <&hdmi_usb_5v>; > +}; > + > +&hdmi_tx_tmds_port { > + hdmi_tx_tmds_out: endpoint { > + remote-endpoint = <&hdmi_connector_in>; > + }; > +}; > + > +&ir { > + status = "okay"; > + pinctrl-0 = <&remote_input_ao_pins>; > + pinctrl-names = "default"; > +}; > + > +&pwm_ef { > + status = "okay"; > + pinctrl-0 = <&pwm_e_pins>; > + pinctrl-names = "default"; > +}; > + > +&saradc { > + compatible = "amlogic,meson-gxlx-saradc", "amlogic,meson-saradc"; > + status = "okay"; > + vref-supply = <&vddio_ao18>; > +}; > + > +&sd_emmc_a { > + status = "okay"; > + pinctrl-0 = <&sdio_pins>; > + pinctrl-1 = <&sdio_clk_gate_pins>; > + pinctrl-names = "default", "clk-gate"; > + #address-cells = <1>; > + #size-cells = <0>; > + bus-width = <4>; > + cap-sd-highspeed; > + cap-sdio-irq; > + max-frequency = <50000000>; > + non-removable; > + no-mmc; > + no-sd; > + disable-wp; > + keep-power-in-suspend; > + sd-uhs-sdr12; > + sd-uhs-sdr25; > + sd-uhs-sdr50; > + sd-uhs-sdr104; > + mmc-pwrseq = <&wifi_pwrseq>; > + vmmc-supply = <&vddao_3v3>; > + vqmmc-supply = <&vddio_boot>; > + > + rtl8723ds: wifi@1 { > + reg = <1>; > + nvmem-cells = <&wifi_mac>; > + nvmem-cell-names = "mac-address"; > + interrupt-parent = <&gpio_intc>; > + interrupts = <GPIOX_7 IRQ_TYPE_LEVEL_HIGH>; > + interrupt-names = "host-wake"; > + }; > +}; > + > +&sd_emmc_b { > + status = "disabled"; > +}; > + > +&sd_emmc_c { > + status = "okay"; > + pinctrl-0 = <&emmc_pins>, <&emmc_ds_pins>; > + pinctrl-1 = <&emmc_clk_gate_pins>; > + pinctrl-names = "default", "clk-gate"; > + bus-width = <8>; > + cap-mmc-highspeed; > + max-frequency = <100000000>; > + non-removable; > + disable-wp; > + mmc-ddr-1_8v; > + mmc-hs200-1_8v; > + mmc-hs400-1_8v; > + mmc-pwrseq = <&emmc_pwrseq>; > + vmmc-supply = <&vcc_3v3>; > + vqmmc-supply = <&vddio_boot>; > +}; > + > +&uart_AO { > + status = "okay"; > + pinctrl-0 = <&uart_ao_a_pins>; > + pinctrl-names = "default"; > +}; > + > +&usb { > + status = "okay"; > + dr_mode = "host"; > +}; > + > +&usb2_phy0 { > + phy-supply = <&hdmi_usb_5v>; > +}; > + > +&vdec { > + compatible = "amlogic,gxlx-vdec", "amlogic,gx-vdec"; > +}; > _______________________________________________ linux-amlogic mailing list linux-amlogic@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-amlogic ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 2/2] arm64: dts: amlogic: add Xiaomi Mi Box 4 support 2026-09-03 7:09 ` [PATCH 2/2] arm64: dts: amlogic: add Xiaomi Mi Box 4 support YuChia-Kan 2026-09-03 7:20 ` Neil Armstrong @ 2026-09-03 7:36 ` sashiko-bot 2026-09-03 7:49 ` Raspberry Kan 1 sibling, 1 reply; 8+ messages in thread From: sashiko-bot @ 2026-09-03 7:36 UTC (permalink / raw) To: YuChia-Kan; +Cc: devicetree, robh, linux-amlogic, conor+dt, neil.armstrong Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider: - [Medium] The Mali GPU interrupt configuration incorrectly specifies 10 interrupts (Mali-450 MP3 configuration) instead of 8, conflicting with the S905L SoC's Mali-450 MP2 hardware. -- commit 8f654a48f8eb2e8df4804fdee2520ed242bedb16 Author: YuChia-Kan <raspberrykan@stu.hqu.edu.cn> arm64: dts: amlogic: add Xiaomi Mi Box 4 support Add initial device tree support for the Xiaomi Mi Box 4 (MDZ-21-AA), based on the Amlogic S905L SoC, enabling on-board peripherals. > diff --git a/arch/arm64/boot/dts/amlogic/meson-gxlx-mibox4.dts b/arch/arm64/boot/dts/amlogic/meson-gxlx-mibox4.dts > new file mode 100644 > --- /dev/null > +++ b/arch/arm64/boot/dts/amlogic/meson-gxlx-mibox4.dts [ ... ] > +&apb { > + mali: gpu@c0000 { > + interrupts = <GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>, > + <GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>, > + <GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>, > + <GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>, > + <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>, > + <GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>, > + <GIC_SPI 166 IRQ_TYPE_LEVEL_HIGH>, > + <GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>, > + <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>, > + <GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>; > + interrupt-names = "gp", "gpmmu", "pp", "pmu", > + "pp0", "ppmmu0", "pp1", "ppmmu1", > + "pp2", "ppmmu2"; [Severity: Medium] Is this interrupt configuration correct for the S905L SoC? The S905L contains a Mali-450 MP2 GPU, but this specifies 10 interrupts which targets a Mali-450 MP3 configuration (including pp2 and ppmmu2). By providing interrupts for the non-existent pp2 and ppmmu2 cores, could this cause the Lima GPU driver to mistakenly attempt initialization of missing IP blocks? This might result in hardware initialization timeouts, spurious hardware reset errors in the kernel log, or potentially trigger a fatal bus error (SError) depending on how the SoC handles unmapped APB reads. > + }; > +}; [ ... ] -- Sashiko AI review · https://sashiko.dev/#/patchset/20260903-mibox4-dt-v1-0-f29f1e828ca3@stu.hqu.edu.cn?part=2 _______________________________________________ linux-amlogic mailing list linux-amlogic@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-amlogic ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 2/2] arm64: dts: amlogic: add Xiaomi Mi Box 4 support 2026-09-03 7:36 ` sashiko-bot @ 2026-09-03 7:49 ` Raspberry Kan 2026-09-03 7:55 ` neil.armstrong 0 siblings, 1 reply; 8+ messages in thread From: Raspberry Kan @ 2026-09-03 7:49 UTC (permalink / raw) To: sashiko-reviews; +Cc: devicetree, robh, linux-amlogic, conor+dt, neil.armstrong First of all, I checked the device tree extracted from the stock firmware, and it explicitly describes a third pixel processor (|pp2|). The original vendor DTS can be found here: https://github.com/Raspberry-Monster/MiBox4-LibreELEC/blob/misc/mibox4_gxl_tf_2g.dts#L10 It specifies three pixel processors and includes interrupts for |IRQPP2| and |IRQPPMMU2|. I also verified this on the actual Xiaomi Mi Box 4 hardware. Lima successfully detects three pixel processors: |lima d00c0000.gpu: pp0 - mali450 version major 0 minor 0 lima d00c0000.gpu: pp1 - mali450 version major 0 minor 0 lima d00c0000.gpu: pp2 - mali450 version major 0 minor 0 | The corresponding |pp2| and |ppmmu2| interrupts are also registered: |GICv2 200 Level pp2 GICv2 201 Level ppmmu2 | The driver then initializes successfully: |[drm] Initialized lima 1.1.0 for d00c0000.gpu on minor 1 | So this particular S905L-based Mi Box 4 appears to use a Mali-450 MP3 configuration rather than MP2. I have not observed any initialization timeouts, reset errors, or SError failures with the third PP enabled. As Neil mentioned above, the Mali GPU is already defined in |meson-gx-mali450.dtsi|, so this redundant definition will be removed in v2. Thanks for the review. _______________________________________________ linux-amlogic mailing list linux-amlogic@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-amlogic ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 2/2] arm64: dts: amlogic: add Xiaomi Mi Box 4 support 2026-09-03 7:49 ` Raspberry Kan @ 2026-09-03 7:55 ` neil.armstrong 2026-09-03 8:07 ` Raspberry Kan 0 siblings, 1 reply; 8+ messages in thread From: neil.armstrong @ 2026-09-03 7:55 UTC (permalink / raw) To: Raspberry Kan, sashiko-reviews; +Cc: devicetree, robh, linux-amlogic, conor+dt On 9/3/26 09:49, Raspberry Kan wrote: > First of all, I checked the device tree extracted from the stock firmware, and it explicitly describes a third pixel processor (|pp2|). > > The original vendor DTS can be found here: > https://github.com/Raspberry-Monster/MiBox4-LibreELEC/blob/misc/mibox4_gxl_tf_2g.dts#L10 > > It specifies three pixel processors and includes interrupts for |IRQPP2| and |IRQPPMMU2|. > > I also verified this on the actual Xiaomi Mi Box 4 hardware. Lima successfully detects three pixel processors: > > |lima d00c0000.gpu: pp0 - mali450 version major 0 minor 0 lima d00c0000.gpu: pp1 - mali450 version major 0 minor 0 lima d00c0000.gpu: pp2 - mali450 version major 0 minor 0 | > > The corresponding |pp2| and |ppmmu2| interrupts are also registered: > > |GICv2 200 Level pp2 GICv2 201 Level ppmmu2 | > > The driver then initializes successfully: > > |[drm] Initialized lima 1.1.0 for d00c0000.gpu on minor 1 | > > So this particular S905L-based Mi Box 4 appears to use a Mali-450 MP3 configuration rather than MP2. I have not observed any initialization timeouts, reset errors, or SError failures with the third PP enabled. > > As Neil mentioned above, the Mali GPU is already defined in |meson-gx-mali450.dtsi|, so this redundant definition will be removed in v2. > > Thanks for the review. > Sashiko is right, is it _really_ a GXLX you're running ? The S905L/GXLX does not have the PP2 could you dump the soc info ? run: grep ^ /sys/bus/soc/devices/soc*/* on the device running mainline linux. Neil _______________________________________________ linux-amlogic mailing list linux-amlogic@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-amlogic ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 2/2] arm64: dts: amlogic: add Xiaomi Mi Box 4 support 2026-09-03 7:55 ` neil.armstrong @ 2026-09-03 8:07 ` Raspberry Kan 0 siblings, 0 replies; 8+ messages in thread From: Raspberry Kan @ 2026-09-03 8:07 UTC (permalink / raw) To: Neil Armstrong, sashiko-reviews; +Cc: devicetree, robh, linux-amlogic, conor+dt On 2026/9/3 15:55, neil.armstrong@linaro.org wrote: > Sashiko is right, is it _really_ a GXLX you're running ? The > S905L/GXLX does not have the PP2 > > could you dump the soc info ? > > run: > grep ^ /sys/bus/soc/devices/soc*/* > > on the device running mainline linux. > > Neil Of course. Here is the output from the device running mainline Linux: |LibreELEC:~ # uname -a Linux LibreELEC 7.3.0-rc1 #1 SMP PREEMPT Thu Sep 3 05:37:37 UTC 2026 aarch64 GNU/Linux LibreELEC:~ # grep ^ /sys/bus/soc/devices/soc*/* /sys/bus/soc/devices/soc0/family:Amlogic Meson /sys/bus/soc/devices/soc0/machine:Xiaomi Mi Box 4 (MDZ-21-AA) /sys/bus/soc/devices/soc0/revision:21:c - c4:2 /sys/bus/soc/devices/soc0/soc_id:GXL (S905L)| I also found a teardown photo of the Mi Box 4 which clearly shows the SoC marking as S905L-H: https://data.znds.com/attachment/forum/202106/07/172555ezz4nnyn4gln8yl8.jpg <https://data.znds.com/attachment/forum/202106/07/172555ezz4nnyn4gln8yl8.jpg> Best regards, YuChia _______________________________________________ linux-amlogic mailing list linux-amlogic@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-amlogic ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2026-09-03 8:07 UTC | newest] Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2026-09-03 7:09 [PATCH 0/2] Add initial device tree support for the Xiaomi Mi Box 4 (MDZ-21-AA), an Amlogic S905L based TV box YuChia-Kan 2026-09-03 7:09 ` [PATCH 1/2] dt-bindings: arm: amlogic: add Xiaomi Mi Box 4 YuChia-Kan 2026-09-03 7:09 ` [PATCH 2/2] arm64: dts: amlogic: add Xiaomi Mi Box 4 support YuChia-Kan 2026-09-03 7:20 ` Neil Armstrong 2026-09-03 7:36 ` sashiko-bot 2026-09-03 7:49 ` Raspberry Kan 2026-09-03 7:55 ` neil.armstrong 2026-09-03 8:07 ` Raspberry Kan
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®