From: Ferass El Hafidi <hidden> Date: 2025-03-19 19:02:53
This patch series aims to add initial support for the Xiaomi Mi TV
Stick.
Xiaomi Mi TV Stick is a small Amlogic-based Android TV stick released in
2020, and known as `xiaomi-aquaman` internally (in the downstream kernel,
u-boot, ...)
Its specifications are as follows:
* Amlogic S805Y SoC (believed to be mostly identical to S805X)
* 8 GB eMMC
* 1 GB of RAM
* Wi-Fi + Bluetooth
* Android TV 9, upgradable to Android TV 10
* Google-certified
There are multiple variants:
* 1. Green PCB, manufactured in 2020, known UART pinout (helpfully
labeled on the board)
* 2. Blue PCB, not much documentation about it, presumably manufactured
between 2021 and 2023
* 3. Green PCB, manufactured in 2023/2024, known UART pinout, some layout
changes compared to the 2020 variant
Among these variants, there are many boards using multiple different
Wi-Fi chips. Supporting all of them is out of scope for this patch
series. However, there has been some work identifying Wi-Fi/Bluetooth
since v4. Some variants use a Realtek module while others use an
Amlogic module.
As of the time of writing this has only been tested on the 3rd variant.
It is believed that software-wise all three work mostly the same (if we
don't count Wi-Fi/BT), but testing on the other variants would still be
appreciated. Sadly, booting Mainline linux is slightly more
challenging on some versions of the original firmware.
The devicetree is based on the Amlogic P241 DTS.
Changes since v4 [1]:
* add Acked-by from krzk
* Wi-Fi on sd_emmc_b
Changes since v3 [2]:
* typo fix (`vbus-supply` in `&usb`)
Changes since v2 [3]:
* fix SoB/From mismatch
Changes since v1 [4]:
* remove useless nodes: cvbs-connector, ethmac, internal_phy, ir
* add `amlogic,s805y` DT binding section
* add S805Y dtsi: meson-gxl-s805y.dtsi
* adjust DT `model` to "Xiaomi Mi TV Stick (Aquaman)"
* explain the changes being done a bit more in the commit message for
the DT patch
* drop `clocks` and `clock-names` from pwm_ef (background: [5])
* change sound `model` to "XIAOMI-AQUAMAN"
More information is available on the postmarketOS wiki page [6].
[1]: https://lore.kernel.org/all/20250203174346.13737-1-funderscore@postmarketos.org/
[2]: https://lore.kernel.org/all/20250203091453.15751-1-funderscore@postmarketos.org/
[3]: https://lore.kernel.org/all/20250201193044.28856-1-funderscore@postmarketos.org/
[4]: https://lore.kernel.org/all/20250131200319.19996-1-funderscore@postmarketos.org/
[5]: https://lore.kernel.org/linux-amlogic/20241227212514.1376682-1-martin.blumenstingl@googlemail.com/
Ferass El Hafidi (2):
dt-bindings: arm: amlogic: add S805Y and Mi TV Stick
arm64: dts: amlogic: add support for xiaomi-aquaman/Mi TV Stick
.../devicetree/bindings/arm/amlogic.yaml | 7 +
arch/arm64/boot/dts/amlogic/Makefile | 1 +
.../meson-gxl-s805y-xiaomi-aquaman.dts | 292 ++++++++++++++++++
.../boot/dts/amlogic/meson-gxl-s805y.dtsi | 10 +
4 files changed, 310 insertions(+)
create mode 100644 arch/arm64/boot/dts/amlogic/meson-gxl-s805y-xiaomi-aquaman.dts
create mode 100644 arch/arm64/boot/dts/amlogic/meson-gxl-s805y.dtsi
--
2.47.1
From: Ferass El Hafidi <hidden> Date: 2025-03-19 19:02:56
Add support for the Amlogic S805Y SoC and the Xiaomi Mi TV Stick (aka.
xiaomi-aquaman). The S805Y is very similar to the S805X, with just a
few minor differences.
Signed-off-by: Ferass El Hafidi <redacted>
Acked-by: Krzysztof Kozlowski <redacted>
---
Documentation/devicetree/bindings/arm/amlogic.yaml | 7 +++++++
1 file changed, 7 insertions(+)
@@ -73,6 +73,13 @@ properties:-const:amlogic,s805x-const:amlogic,meson-gxl+-description:Boards with the Amlogic Meson GXL S805Y SoC+items:+-enum:+-xiaomi,aquaman+-const:amlogic,s805y+-const:amlogic,meson-gxl+-description:Boards with the Amlogic Meson GXL S905W SoCitems:-enum:
From: Ferass El Hafidi <hidden> Date: 2025-03-19 19:03:00
Xiaomi Mi TV Stick is a small Amlogic-based Android TV stick released in
2020. It is known as `xiaomi-aquaman` internally. Specifications:
* Amlogic S805Y SoC
* Android TV 9, upgradable to Android TV 10
* 8 GB eMMC
* 1 GB of RAM
* Wi-Fi + Bluetooth
The devicetree is based on p241's DT, with some changes to better match
the Mi TV Stick:
* there is no Ethernet port, no IR, no CVBS connector on the stick
* a white LED is present
* adjust memory to have 1 GB of RAM available
Signed-off-by: Ferass El Hafidi <redacted>
---
arch/arm64/boot/dts/amlogic/Makefile | 1 +
.../meson-gxl-s805y-xiaomi-aquaman.dts | 292 ++++++++++++++++++
.../boot/dts/amlogic/meson-gxl-s805y.dtsi | 10 +
3 files changed, 303 insertions(+)
create mode 100644 arch/arm64/boot/dts/amlogic/meson-gxl-s805y-xiaomi-aquaman.dts
create mode 100644 arch/arm64/boot/dts/amlogic/meson-gxl-s805y.dtsi
@@ -0,0 +1,292 @@+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)+/*+*Copyright(c)2025FerassElHafidi<funderscore@postmarketos.org>+*Heavilybasedonmeson-gxl-s805x-p241.dtb:+*-Copyright(c)2018BayLibre,SAS.+*Author:NeilArmstrong<narmstrong@baylibre.com>+*Author:JeromeBrunet<jbrunet@baylibre.com>+*/++/dts-v1/;++#include<dt-bindings/input/input.h>+#include<dt-bindings/leds/common.h>+#include<dt-bindings/sound/meson-aiu.h>++#include"meson-gxl-s805y.dtsi"++/{+compatible="xiaomi,aquaman","amlogic,s805y","amlogic,meson-gxl";+model="Xiaomi Mi TV Stick (aquaman)";++aliases{+serial0=&uart_AO;+serial1=&uart_A;+};++au2:analog-amplifier{+compatible="simple-audio-amplifier";+sound-name-prefix="AU2";+VCC-supply=<&vcc_5v>;+enable-gpios=<&gpioGPIOH_5GPIO_ACTIVE_HIGH>;+};++chosen{+stdout-path="serial0:115200n8";+};++emmc_pwrseq:emmc-pwrseq{+compatible="mmc-pwrseq-emmc";+reset-gpios=<&gpioBOOT_9GPIO_ACTIVE_LOW>;+};++hdmi-connector{+compatible="hdmi-connector";+type="a";++port{+hdmi_connector_in:endpoint{+remote-endpoint=<&hdmi_tx_tmds_out>;+};+};+};++leds{+compatible="gpio-leds";++led-white{+color=<LED_COLOR_ID_WHITE>;+function=LED_FUNCTION_POWER;+gpios=<&gpioGPIODV_24GPIO_ACTIVE_HIGH>;+default-state="on";+panic-indicator;+};+};++memory@0{+device_type="memory";+reg=<0x00x00x00x40000000>;+};++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>;+};++vcc_5v:regulator-vcc-5v{+compatible="regulator-fixed";+regulator-name="VCC_5V";+regulator-min-microvolt=<5000000>;+regulator-max-microvolt=<5000000>;+};++emmc_pwrseq:emmc-pwrseq{+compatible="mmc-pwrseq-emmc";+reset-gpios=<&gpioBOOT_9GPIO_ACTIVE_LOW>;+};++wifi32k:wifi32k{+compatible="pwm-clock";+#clock-cells=<0>;+clock-frequency=<32768>;+pwms=<&pwm_ef0305180>;/* PWM_E at 32.768KHz */+};++sdio_pwrseq:sdio-pwrseq{+compatible="mmc-pwrseq-simple";+reset-gpios=<&gpioGPIOX_6GPIO_ACTIVE_LOW>;+clocks=<&wifi32k>;+clock-names="ext_clock";+};++sound{+compatible="amlogic,gx-sound-card";+model="XIAOMI-AQUAMAN";+audio-aux-devs=<&au2>;+audio-widgets="Line","Lineout";+audio-routing="AU2 INL","ACODEC LOLN",+"AU2 INR","ACODEC LORN",+"Lineout","AU2 OUTL",+"Lineout","AU2 OUTR";+clocks=<&clkcCLKID_MPLL0>,+<&clkcCLKID_MPLL1>,+<&clkcCLKID_MPLL2>;++assigned-clocks=<&clkcCLKID_MPLL0>,+<&clkcCLKID_MPLL1>,+<&clkcCLKID_MPLL2>;+assigned-clock-parents=<0>,<0>,<0>;+assigned-clock-rates=<294912000>,+<270950400>,+<393216000>;++dai-link-0{+sound-dai=<&aiuAIU_CPUCPU_I2S_FIFO>;+};++dai-link-1{+sound-dai=<&aiuAIU_CPUCPU_I2S_ENCODER>;+dai-format="i2s";+mclk-fs=<256>;++codec-0{+sound-dai=<&aiuAIU_HDMICTRL_I2S>;+};++codec-1{+sound-dai=<&aiuAIU_ACODECCTRL_I2S>;+};+};++dai-link-2{+sound-dai=<&aiuAIU_HDMICTRL_OUT>;++codec-0{+sound-dai=<&hdmi_tx>;+};+};++dai-link-3{+sound-dai=<&aiuAIU_ACODECCTRL_OUT>;++codec-0{+sound-dai=<&acodec>;+};+};+};+};++&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>;+};++&hdmi_tx{+status="okay";+pinctrl-0=<&hdmi_hpd_pins>,<&hdmi_i2c_pins>;+pinctrl-names="default";+hdmi-supply=<&vcc_5v>;+};++&hdmi_tx_tmds_port{+hdmi_tx_tmds_out:endpoint{+remote-endpoint=<&hdmi_connector_in>;+};+};++&saradc{+status="okay";+vref-supply=<&vddio_ao18>;+};++/* Wireless SDIO Module (Amlogic W155S1 / Realtek RTL8821CS) */+&sd_emmc_b{+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;+max-frequency=<50000000>;++non-removable;+disable-wp;++/* WiFi firmware requires power to be kept while in suspend */+keep-power-in-suspend;++mmc-pwrseq=<&sdio_pwrseq>;++vmmc-supply=<&vddao_3v3>;+vqmmc-supply=<&vddio_boot>;++sdio:wifi@1{+reg=<1>;+}+};++/* eMMC */+&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=<200000000>;+non-removable;+disable-wp;+mmc-ddr-1_8v;+mmc-hs200-1_8v;++mmc-pwrseq=<&emmc_pwrseq>;+vmmc-supply=<&vcc_3v3>;+vqmmc-supply=<&vddio_boot>;+};++&pwm_ef{+status="okay";+pinctrl-0=<&pwm_e_pins>;+pinctrl-names="default";+};++/*+*ThisisconnectedtotheBluetoothmodule+*Note:There'snodriverfortheBluetoothmoduleofsomevariantsyet.+*/+&uart_A{+status="okay";+pinctrl-0=<&uart_a_pins>,<&uart_a_cts_rts_pins>;+pinctrl-names="default";+uart-has-rtscts;+};++&uart_AO{+status="okay";+pinctrl-0=<&uart_ao_a_pins>;+pinctrl-names="default";+};++&usb{+status="okay";+dr_mode="otg";+vbus-supply=<&vcc_5v>;+};
From: Martin Blumenstingl <martin.blumenstingl@googlemail.com> Date: 2025-03-19 22:27:19
On Wed, Mar 19, 2025 at 8:02 PM Ferass El Hafidi
[off-list ref] wrote:
Add support for the Amlogic S805Y SoC and the Xiaomi Mi TV Stick (aka.
xiaomi-aquaman). The S805Y is very similar to the S805X, with just a
few minor differences.
Signed-off-by: Ferass El Hafidi <redacted>
Acked-by: Krzysztof Kozlowski <redacted>
Reviewed-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
question to Neil: since we know that there's two board variants out
there (with different wifi chipsets) - are dt overlays down the road
enough (to enable Bluetooth / wifi - depending on the chipset or board
revision) or do we need to split the whole .dts?
Best regards,
Martin
On Wed, 19 Mar 2025 19:01:48 +0000, Ferass El Hafidi wrote:
This patch series aims to add initial support for the Xiaomi Mi TV
Stick.
Xiaomi Mi TV Stick is a small Amlogic-based Android TV stick released in
2020, and known as `xiaomi-aquaman` internally (in the downstream kernel,
u-boot, ...)
Its specifications are as follows:
* Amlogic S805Y SoC (believed to be mostly identical to S805X)
* 8 GB eMMC
* 1 GB of RAM
* Wi-Fi + Bluetooth
* Android TV 9, upgradable to Android TV 10
* Google-certified
There are multiple variants:
* 1. Green PCB, manufactured in 2020, known UART pinout (helpfully
labeled on the board)
* 2. Blue PCB, not much documentation about it, presumably manufactured
between 2021 and 2023
* 3. Green PCB, manufactured in 2023/2024, known UART pinout, some layout
changes compared to the 2020 variant
Among these variants, there are many boards using multiple different
Wi-Fi chips. Supporting all of them is out of scope for this patch
series. However, there has been some work identifying Wi-Fi/Bluetooth
since v4. Some variants use a Realtek module while others use an
Amlogic module.
As of the time of writing this has only been tested on the 3rd variant.
It is believed that software-wise all three work mostly the same (if we
don't count Wi-Fi/BT), but testing on the other variants would still be
appreciated. Sadly, booting Mainline linux is slightly more
challenging on some versions of the original firmware.
The devicetree is based on the Amlogic P241 DTS.
Changes since v4 [1]:
* add Acked-by from krzk
* Wi-Fi on sd_emmc_b
Changes since v3 [2]:
* typo fix (`vbus-supply` in `&usb`)
Changes since v2 [3]:
* fix SoB/From mismatch
Changes since v1 [4]:
* remove useless nodes: cvbs-connector, ethmac, internal_phy, ir
* add `amlogic,s805y` DT binding section
* add S805Y dtsi: meson-gxl-s805y.dtsi
* adjust DT `model` to "Xiaomi Mi TV Stick (Aquaman)"
* explain the changes being done a bit more in the commit message for
the DT patch
* drop `clocks` and `clock-names` from pwm_ef (background: [5])
* change sound `model` to "XIAOMI-AQUAMAN"
More information is available on the postmarketOS wiki page [6].
[1]: https://lore.kernel.org/all/20250203174346.13737-1-funderscore@postmarketos.org/
[2]: https://lore.kernel.org/all/20250203091453.15751-1-funderscore@postmarketos.org/
[3]: https://lore.kernel.org/all/20250201193044.28856-1-funderscore@postmarketos.org/
[4]: https://lore.kernel.org/all/20250131200319.19996-1-funderscore@postmarketos.org/
[5]: https://lore.kernel.org/linux-amlogic/20241227212514.1376682-1-martin.blumenstingl@googlemail.com/
Ferass El Hafidi (2):
dt-bindings: arm: amlogic: add S805Y and Mi TV Stick
arm64: dts: amlogic: add support for xiaomi-aquaman/Mi TV Stick
.../devicetree/bindings/arm/amlogic.yaml | 7 +
arch/arm64/boot/dts/amlogic/Makefile | 1 +
.../meson-gxl-s805y-xiaomi-aquaman.dts | 292 ++++++++++++++++++
.../boot/dts/amlogic/meson-gxl-s805y.dtsi | 10 +
4 files changed, 310 insertions(+)
create mode 100644 arch/arm64/boot/dts/amlogic/meson-gxl-s805y-xiaomi-aquaman.dts
create mode 100644 arch/arm64/boot/dts/amlogic/meson-gxl-s805y.dtsi
--
2.47.1
My bot found new DTB warnings on the .dts files added or changed in this
series.
Some warnings may be from an existing SoC .dtsi. Or perhaps the warnings
are fixed by another series. Ultimately, it is up to the platform
maintainer whether these warnings are acceptable or not. No need to reply
unless the platform maintainer has comments.
If you already ran DT checks and didn't see these error(s), then
make sure dt-schema is up to date:
pip3 install dtschema --upgrade
New warnings running 'make CHECK_DTBS=y for arch/arm64/boot/dts/amlogic/' for 20250319190150.31529-2-funderscore@postmarketos.org:
Error: arch/arm64/boot/dts/amlogic/meson-gxl-s805y-xiaomi-aquaman.dts:243.1-2 syntax error
FATAL ERROR: Unable to parse input tree
make[3]: *** [scripts/Makefile.dtbs:131: arch/arm64/boot/dts/amlogic/meson-gxl-s805y-xiaomi-aquaman.dtb] Error 1
make[2]: *** [scripts/Makefile.build:461: arch/arm64/boot/dts/amlogic] Error 2
make[2]: Target 'arch/arm64/boot/dts/amlogic/meson-gxl-s805y-xiaomi-aquaman.dtb' not remade because of errors.
make[1]: *** [/home/rob/proj/linux-dt-testing/Makefile:1475: amlogic/meson-gxl-s805y-xiaomi-aquaman.dtb] Error 2
make: *** [Makefile:248: __sub-make] Error 2
make: Target 'amlogic/meson-gxl-s905x-hwacom-amazetv.dtb' not remade because of errors.
make: Target 'amlogic/meson-gxl-s905d-sml5442tw.dtb' not remade because of errors.
make: Target 'amlogic/meson-gxl-s905d-phicomm-n1.dtb' not remade because of errors.
make: Target 'amlogic/meson-s4-s805x2-aq222.dtb' not remade because of errors.
make: Target 'amlogic/meson-gxl-s905w-p281.dtb' not remade because of errors.
make: Target 'amlogic/meson-gxm-s912-libretech-pc.dtb' not remade because of errors.
make: Target 'amlogic/meson-g12a-sei510.dtb' not remade because of errors.
make: Target 'amlogic/meson-gxm-q200.dtb' not remade because of errors.
make: Target 'amlogic/meson-gxl-s905x-khadas-vim.dtb' not remade because of errors.
make: Target 'amlogic/meson-gxlx-s905l-p271.dtb' not remade because of errors.
make: Target 'amlogic/meson-gxm-mecool-kiii-pro.dtb' not remade because of errors.
make: Target 'amlogic/meson-gxm-vega-s96.dtb' not remade because of errors.
make: Target 'amlogic/meson-g12a-fbx8am.dtb' not remade because of errors.
make: Target 'amlogic/meson-g12b-bananapi-cm4-cm4io.dtb' not remade because of errors.
make: Target 'amlogic/amlogic-c3-c308l-aw419.dtb' not remade because of errors.
make: Target 'amlogic/meson-axg-s400.dtb' not remade because of errors.
make: Target 'amlogic/meson-gxm-nexbox-a1.dtb' not remade because of errors.
make: Target 'amlogic/meson-g12b-dreambox-one.dtb' not remade because of errors.
make: Target 'amlogic/meson-gxm-khadas-vim2.dtb' not remade because of errors.
make: Target 'amlogic/meson-gxm-wetek-core2.dtb' not remade because of errors.
make: Target 'amlogic/meson-g12a-radxa-zero.dtb' not remade because of errors.
make: Target 'amlogic/meson-gxbb-vega-s95-telos.dtb' not remade because of errors.
make: Target 'amlogic/meson-gxl-s905x-libretech-cc-v2.dtb' not remade because of errors.
make: Target 'amlogic/meson-g12b-a311d-khadas-vim3.dtb' not remade because of errors.
make: Target 'amlogic/meson-axg-jethome-jethub-j100.dtb' not remade because of errors.
make: Target 'amlogic/meson-g12b-gsking-x.dtb' not remade because of errors.
make: Target 'amlogic/meson-gxbb-vega-s95-pro.dtb' not remade because of errors.
make: Target 'amlogic/meson-gxm-q201.dtb' not remade because of errors.
make: Target 'amlogic/meson-gxl-s905d-p230.dtb' not remade because of errors.
make: Target 'amlogic/meson-g12b-a311d-bananapi-m2s.dtb' not remade because of errors.
make: Target 'amlogic/meson-gxbb-wetek-play2.dtb' not remade because of errors.
make: Target 'amlogic/meson-gxl-s905d-mecool-kii-pro.dtb' not remade because of errors.
make: Target 'amlogic/meson-axg-jethome-jethub-j110-rev-2.dtb' not remade because of errors.
make: Target 'amlogic/meson-gxbb-odroidc2.dtb' not remade because of errors.
make: Target 'amlogic/meson-gxm-gt1-ultimate.dtb' not remade because of errors.
make: Target 'amlogic/meson-g12a-x96-max.dtb' not remade because of errors.
make: Target 'amlogic/meson-gxl-s905d-libretech-pc.dtb' not remade because of errors.
make: Target 'amlogic/meson-gxl-s905d-p231.dtb' not remade because of errors.
make: Target 'amlogic/meson-sm1-x96-air.dtb' not remade because of errors.
make: Target 'amlogic/meson-gxl-s905x-vero4k.dtb' not remade because of errors.
make: Target 'amlogic/meson-gxbb-vega-s95-meta.dtb' not remade because of errors.
make: Target 'amlogic/meson-gxl-s905w-tx3-mini.dtb' not remade because of errors.
make: Target 'amlogic/meson-gxm-minix-neo-u9h.dtb' not remade because of errors.
make: Target 'amlogic/meson-gxl-s805x-libretech-ac.dtb' not remade because of errors.
make: Target 'amlogic/meson-sm1-a95xf3-air-gbit.dtb' not remade because of errors.
make: Target 'amlogic/meson-sm1-khadas-vim3l.dtb' not remade because of errors.
make: Target 'amlogic/meson-gxl-s905d-vero4k-plus.dtb' not remade because of errors.
make: Target 'amlogic/meson-sm1-h96-max.dtb' not remade because of errors.
make: Target 'amlogic/meson-g12b-bananapi-cm4-mnt-reform2.dtb' not remade because of errors.
make: Target 'amlogic/meson-gxl-s905x-p212.dtb' not remade because of errors.
make: Target 'amlogic/meson-a1-ad401.dtb' not remade because of errors.
make: Target 'amlogic/meson-g12b-odroid-go-ultra.dtb' not remade because of errors.
make: Target 'amlogic/meson-g12b-radxa-zero2.dtb' not remade because of errors.
make: Target 'amlogic/meson-sm1-x96-air-gbit.dtb' not remade because of errors.
make: Target 'amlogic/meson-g12b-dreambox-two.dtb' not remade because of errors.
make: Target 'amlogic/meson-sm1-bananapi-m5.dtb' not remade because of errors.
make: Target 'amlogic/meson-g12a-u200.dtb' not remade because of errors.
make: Target 'amlogic/meson-gxm-rbox-pro.dtb' not remade because of errors.
make: Target 'amlogic/meson-gxbb-p201.dtb' not remade because of errors.
make: Target 'amlogic/meson-sm1-a95xf3-air.dtb' not remade because of errors.
make: Target 'amlogic/amlogic-a4-a113l2-ba400.dtb' not remade because of errors.
make: Target 'amlogic/meson-gxl-s805y-xiaomi-aquaman.dtb' not remade because of errors.
make: Target 'amlogic/meson-sm1-bananapi-m2-pro.dtb' not remade because of errors.
make: Target 'amlogic/meson-gxbb-p200.dtb' not remade because of errors.
make: Target 'amlogic/meson-sm1-odroid-c4.dtb' not remade because of errors.
make: Target 'amlogic/meson-g12b-s922x-bananapi-m2s.dtb' not remade because of errors.
make: Target 'amlogic/meson-sm1-sei610.dtb' not remade because of errors.
make: Target 'amlogic/meson-sm1-odroid-hc4.dtb' not remade because of errors.
make: Target 'amlogic/meson-g12b-odroid-n2l.dtb' not remade because of errors.
make: Target 'amlogic/meson-gxl-s905x-libretech-cc.dtb' not remade because of errors.
make: Target 'amlogic/amlogic-c3-c302x-aw409.dtb' not remade because of errors.
make: Target 'amlogic/meson-gxl-s905x-nexbox-a95x.dtb' not remade because of errors.
make: Target 'amlogic/meson-g12b-a311d-libretech-cc.dtb' not remade because of errors.
make: Target 'amlogic/amlogic-t7-a311d2-khadas-vim4.dtb' not remade because of errors.
make: Target 'amlogic/meson-gxl-s905w-jethome-jethub-j80.dtb' not remade because of errors.
make: Target 'amlogic/meson-sm1-s905d3-libretech-cc.dtb' not remade because of errors.
make: Target 'amlogic/amlogic-a5-a113x2-av400.dtb' not remade because of errors.
make: Target 'amlogic/meson-gxbb-wetek-hub.dtb' not remade because of errors.
make: Target 'amlogic/meson-g12b-s922x-khadas-vim3.dtb' not remade because of errors.
make: Target 'amlogic/amlogic-t7-a311d2-an400.dtb' not remade because of errors.
make: Target 'amlogic/meson-gxbb-kii-pro.dtb' not remade because of errors.
make: Target 'amlogic/meson-g12b-odroid-n2.dtb' not remade because of errors.
make: Target 'amlogic/meson-a1-ad402.dtb' not remade because of errors.
make: Target 'amlogic/meson-gxbb-nexbox-a95x.dtb' not remade because of errors.
make: Target 'amlogic/meson-axg-jethome-jethub-j110-rev-3.dtb' not remade because of errors.
make: Target 'amlogic/meson-g12b-odroid-n2-plus.dtb' not remade because of errors.
make: Target 'amlogic/meson-g12b-gtking-pro.dtb' not remade because of errors.
make: Target 'amlogic/meson-g12b-ugoos-am6.dtb' not remade because of errors.
make: Target 'amlogic/meson-gxl-s805x-p241.dtb' not remade because of errors.
make: Target 'amlogic/meson-g12b-gtking.dtb' not remade because of errors.
make: Target 'amlogic/meson-gxbb-nanopi-k2.dtb' not remade because of errors.
question to Neil: since we know that there's two board variants out
there (with different wifi chipsets) - are dt overlays down the road
enough (to enable Bluetooth / wifi - depending on the chipset or board
revision) or do we need to split the whole .dts?
So far W155S1 and RTL8821CS are the *known* chipsets used, but there may
be others. Right now it's not my main concern, as W155S1 is not
supported in Mainline, as far as I know, and I can't test RTL8821CS
because my variant seems to have the former.
From: Neil Armstrong <neil.armstrong@linaro.org> Date: 2025-03-24 07:02:58
On 19/03/2025 20:01, Ferass El Hafidi wrote:
quoted hunk
Xiaomi Mi TV Stick is a small Amlogic-based Android TV stick released in
2020. It is known as `xiaomi-aquaman` internally. Specifications:
* Amlogic S805Y SoC
* Android TV 9, upgradable to Android TV 10
* 8 GB eMMC
* 1 GB of RAM
* Wi-Fi + Bluetooth
The devicetree is based on p241's DT, with some changes to better match
the Mi TV Stick:
* there is no Ethernet port, no IR, no CVBS connector on the stick
* a white LED is present
* adjust memory to have 1 GB of RAM available
Signed-off-by: Ferass El Hafidi <redacted>
---
arch/arm64/boot/dts/amlogic/Makefile | 1 +
.../meson-gxl-s805y-xiaomi-aquaman.dts | 292 ++++++++++++++++++
.../boot/dts/amlogic/meson-gxl-s805y.dtsi | 10 +
3 files changed, 303 insertions(+)
create mode 100644 arch/arm64/boot/dts/amlogic/meson-gxl-s805y-xiaomi-aquaman.dts
create mode 100644 arch/arm64/boot/dts/amlogic/meson-gxl-s805y.dtsi
@@ -0,0 +1,292 @@+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)+/*+*Copyright(c)2025FerassElHafidi<funderscore@postmarketos.org>+*Heavilybasedonmeson-gxl-s805x-p241.dtb:+*-Copyright(c)2018BayLibre,SAS.+*Author:NeilArmstrong<narmstrong@baylibre.com>+*Author:JeromeBrunet<jbrunet@baylibre.com>+*/++/dts-v1/;++#include<dt-bindings/input/input.h>+#include<dt-bindings/leds/common.h>+#include<dt-bindings/sound/meson-aiu.h>++#include"meson-gxl-s805y.dtsi"++/{+compatible="xiaomi,aquaman","amlogic,s805y","amlogic,meson-gxl";+model="Xiaomi Mi TV Stick (aquaman)";++aliases{+serial0=&uart_AO;+serial1=&uart_A;+};++au2:analog-amplifier{+compatible="simple-audio-amplifier";+sound-name-prefix="AU2";+VCC-supply=<&vcc_5v>;+enable-gpios=<&gpioGPIOH_5GPIO_ACTIVE_HIGH>;+};++chosen{+stdout-path="serial0:115200n8";+};++emmc_pwrseq:emmc-pwrseq{+compatible="mmc-pwrseq-emmc";+reset-gpios=<&gpioBOOT_9GPIO_ACTIVE_LOW>;+};++hdmi-connector{+compatible="hdmi-connector";+type="a";++port{+hdmi_connector_in:endpoint{+remote-endpoint=<&hdmi_tx_tmds_out>;+};+};+};++leds{+compatible="gpio-leds";++led-white{+color=<LED_COLOR_ID_WHITE>;+function=LED_FUNCTION_POWER;+gpios=<&gpioGPIODV_24GPIO_ACTIVE_HIGH>;+default-state="on";+panic-indicator;+};+};++memory@0{+device_type="memory";+reg=<0x00x00x00x40000000>;+};++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>;+};++vcc_5v:regulator-vcc-5v{+compatible="regulator-fixed";+regulator-name="VCC_5V";+regulator-min-microvolt=<5000000>;+regulator-max-microvolt=<5000000>;+};++emmc_pwrseq:emmc-pwrseq{+compatible="mmc-pwrseq-emmc";+reset-gpios=<&gpioBOOT_9GPIO_ACTIVE_LOW>;+};++wifi32k:wifi32k{+compatible="pwm-clock";+#clock-cells=<0>;+clock-frequency=<32768>;+pwms=<&pwm_ef0305180>;/* PWM_E at 32.768KHz */+};++sdio_pwrseq:sdio-pwrseq{+compatible="mmc-pwrseq-simple";+reset-gpios=<&gpioGPIOX_6GPIO_ACTIVE_LOW>;+clocks=<&wifi32k>;+clock-names="ext_clock";+};++sound{+compatible="amlogic,gx-sound-card";+model="XIAOMI-AQUAMAN";+audio-aux-devs=<&au2>;+audio-widgets="Line","Lineout";+audio-routing="AU2 INL","ACODEC LOLN",+"AU2 INR","ACODEC LORN",+"Lineout","AU2 OUTL",+"Lineout","AU2 OUTR";+clocks=<&clkcCLKID_MPLL0>,+<&clkcCLKID_MPLL1>,+<&clkcCLKID_MPLL2>;++assigned-clocks=<&clkcCLKID_MPLL0>,+<&clkcCLKID_MPLL1>,+<&clkcCLKID_MPLL2>;+assigned-clock-parents=<0>,<0>,<0>;+assigned-clock-rates=<294912000>,+<270950400>,+<393216000>;++dai-link-0{+sound-dai=<&aiuAIU_CPUCPU_I2S_FIFO>;+};++dai-link-1{+sound-dai=<&aiuAIU_CPUCPU_I2S_ENCODER>;+dai-format="i2s";+mclk-fs=<256>;++codec-0{+sound-dai=<&aiuAIU_HDMICTRL_I2S>;+};++codec-1{+sound-dai=<&aiuAIU_ACODECCTRL_I2S>;+};+};++dai-link-2{+sound-dai=<&aiuAIU_HDMICTRL_OUT>;++codec-0{+sound-dai=<&hdmi_tx>;+};+};++dai-link-3{+sound-dai=<&aiuAIU_ACODECCTRL_OUT>;++codec-0{+sound-dai=<&acodec>;+};+};+};+};++&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>;+};++&hdmi_tx{+status="okay";+pinctrl-0=<&hdmi_hpd_pins>,<&hdmi_i2c_pins>;+pinctrl-names="default";+hdmi-supply=<&vcc_5v>;+};++&hdmi_tx_tmds_port{+hdmi_tx_tmds_out:endpoint{+remote-endpoint=<&hdmi_connector_in>;+};+};++&saradc{+status="okay";+vref-supply=<&vddio_ao18>;+};++/* Wireless SDIO Module (Amlogic W155S1 / Realtek RTL8821CS) */+&sd_emmc_b{+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;+max-frequency=<50000000>;++non-removable;+disable-wp;++/* WiFi firmware requires power to be kept while in suspend */+keep-power-in-suspend;++mmc-pwrseq=<&sdio_pwrseq>;++vmmc-supply=<&vddao_3v3>;+vqmmc-supply=<&vddio_boot>;++sdio:wifi@1{+reg=<1>;+}+};++/* eMMC */+&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=<200000000>;+non-removable;+disable-wp;+mmc-ddr-1_8v;+mmc-hs200-1_8v;++mmc-pwrseq=<&emmc_pwrseq>;+vmmc-supply=<&vcc_3v3>;+vqmmc-supply=<&vddio_boot>;+};++&pwm_ef{+status="okay";+pinctrl-0=<&pwm_e_pins>;+pinctrl-names="default";+};++/*+*ThisisconnectedtotheBluetoothmodule+*Note:There'snodriverfortheBluetoothmoduleofsomevariantsyet.+*/+&uart_A{+status="okay";+pinctrl-0=<&uart_a_pins>,<&uart_a_cts_rts_pins>;+pinctrl-names="default";+uart-has-rtscts;+};++&uart_AO{+status="okay";+pinctrl-0=<&uart_ao_a_pins>;+pinctrl-names="default";+};++&usb{+status="okay";+dr_mode="otg";+vbus-supply=<&vcc_5v>;+};
@@ -0,0 +1,10 @@+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)+/*+*Copyright(c)2025FerassElHafidi<funderscore@postmarketos.org>+*/++#include"meson-gxl-s805x.dtsi"++/{+compatible="amlogic,s805y","amlogic,meson-gxl";+};
I get:
Error: arch/arm64/boot/dts/amlogic/meson-gxl-s805y-xiaomi-aquaman.dts:243.1-2 syntax error
FATAL ERROR: Unable to parse input tree
whil building, could you fix that ?
Neil
question to Neil: since we know that there's two board variants out
there (with different wifi chipsets) - are dt overlays down the road
enough (to enable Bluetooth / wifi - depending on the chipset or board
revision) or do we need to split the whole .dts?
From: Neil Armstrong <neil.armstrong@linaro.org> Date: 2025-05-05 12:36:36
Hi,
On Wed, 19 Mar 2025 19:01:48 +0000, Ferass El Hafidi wrote:
This patch series aims to add initial support for the Xiaomi Mi TV
Stick.
Xiaomi Mi TV Stick is a small Amlogic-based Android TV stick released in
2020, and known as `xiaomi-aquaman` internally (in the downstream kernel,
u-boot, ...)
Its specifications are as follows:
* Amlogic S805Y SoC (believed to be mostly identical to S805X)
* 8 GB eMMC
* 1 GB of RAM
* Wi-Fi + Bluetooth
* Android TV 9, upgradable to Android TV 10
* Google-certified
[...]