]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
arm64: dts: amlogic: Add Ugoos AM3
authorJ. Neuschäfer <j.ne@posteo.net>
Fri, 13 Jun 2025 13:39:14 +0000 (15:39 +0200)
committerNeil Armstrong <neil.armstrong@linaro.org>
Fri, 4 Jul 2025 15:07:43 +0000 (17:07 +0200)
The Ugoos AM3 is a small set-top box based on the Amlogic S912 SoC,
with a board design that is very close to the Q20x development boards.
The MMC max-frequency properties are copied from the downstream device
tree.

  https://ugoos.com/ugoos-am3-16g

The following functionality has been tested and is known to work:
 - debug serial port
 - "update" button inside the case
 - USB host mode, on all three ports
 - HDMI video/audio output
 - eMMC, MicroSD, and SDIO WLAN
 - S/PDIF audio output
 - Ethernet
 - Infrared remote control input

The following functionality doesn't seem to work:
 - USB role switching and device mode on the "OTG" port
 - case LED

Reviewed-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Signed-off-by: J. Neuschäfer <j.ne@posteo.net>
Link: https://lore.kernel.org/r/20250613-ugoos-am3-v3-2-f8a43e6bbfdb@posteo.net
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
arch/arm64/boot/dts/amlogic/Makefile
arch/arm64/boot/dts/amlogic/meson-gx-p23x-q20x.dtsi
arch/arm64/boot/dts/amlogic/meson-gxm-ugoos-am3.dts [new file with mode: 0644]

index 15e7901c126876964b858d2afaaaa5a5c86f1c22..619dce79b0204d286d1f45443fd681c9b58e7f2d 100644 (file)
@@ -80,6 +80,7 @@ dtb-$(CONFIG_ARCH_MESON) += meson-gxm-q200.dtb
 dtb-$(CONFIG_ARCH_MESON) += meson-gxm-q201.dtb
 dtb-$(CONFIG_ARCH_MESON) += meson-gxm-rbox-pro.dtb
 dtb-$(CONFIG_ARCH_MESON) += meson-gxm-s912-libretech-pc.dtb
+dtb-$(CONFIG_ARCH_MESON) += meson-gxm-ugoos-am3.dtb
 dtb-$(CONFIG_ARCH_MESON) += meson-gxm-vega-s96.dtb
 dtb-$(CONFIG_ARCH_MESON) += meson-gxm-wetek-core2.dtb
 dtb-$(CONFIG_ARCH_MESON) += meson-s4-s805x2-aq222.dtb
index 6da1316d97c60c8445477375bddb161fc0c6a7f4..b4f88ed6273b8f0db956d163451ea6855c45fe48 100644 (file)
@@ -97,7 +97,7 @@
                clock-names = "ext_clock";
        };
 
-       cvbs-connector {
+       cvbs_connector: cvbs-connector {
                compatible = "composite-video-connector";
 
                port {
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxm-ugoos-am3.dts b/arch/arm64/boot/dts/amlogic/meson-gxm-ugoos-am3.dts
new file mode 100644 (file)
index 0000000..ba871f3
--- /dev/null
@@ -0,0 +1,91 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (C) 2025 J. Neuschäfer <j.ne@posteo.net>
+ *
+ * Debug UART (3.3V, 115200 baud) at the corner of the board:
+ *   (4) (3) (2) [1]
+ *   Vcc RXD TXD GND
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/interrupt-controller/amlogic,meson-g12a-gpio-intc.h>
+
+#include "meson-gxm.dtsi"
+#include "meson-gx-p23x-q20x.dtsi"
+
+/ {
+       compatible = "ugoos,am3", "amlogic,s912", "amlogic,meson-gxm";
+       model = "Ugoos AM3";
+
+       adc-keys {
+               compatible = "adc-keys";
+               io-channels = <&saradc 0>;
+               io-channel-names = "buttons";
+               keyup-threshold-microvolt = <1710000>;
+
+               button-function {
+                       label = "Update";
+                       linux,code = <KEY_VENDOR>;
+                       press-threshold-microvolt = <10000>;
+               };
+       };
+};
+
+&cvbs_connector {
+       /* Not used on this board */
+       status = "disabled";
+};
+
+&ethmac {
+       pinctrl-0 = <&eth_pins>;
+       pinctrl-names = "default";
+
+       /* Select external PHY by default */
+       phy-handle = <&external_phy>;
+
+       amlogic,tx-delay-ns = <2>;
+
+       /* External PHY is in RGMII */
+       phy-mode = "rgmii";
+
+       status = "okay";
+};
+
+&external_mdio {
+       external_phy: ethernet-phy@0 {
+               /* Realtek RTL8211F (0x001cc916) */
+               reg = <0>;
+
+               reset-assert-us = <10000>;
+               reset-deassert-us = <80000>;
+               reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>;
+
+               interrupt-parent = <&gpio_intc>;
+               /* MAC_INTR on GPIOZ_15 */
+               interrupts = <25 IRQ_TYPE_LEVEL_LOW>;
+       };
+};
+
+&i2c_B {
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c_b_pins>;
+
+       rtc: rtc@51 {
+               compatible = "haoyu,hym8563";
+               reg = <0x51>;
+               #clock-cells = <0>;
+       };
+};
+
+/* WLAN: Atheros 10k (QCA9377) */
+&sd_emmc_a {
+       max-frequency = <200000000>;
+};
+
+/* eMMC */
+&sd_emmc_c {
+       max-frequency = <100000000>;
+};