testing/device-amlogic-tvbox: add Ugoos AM3 support

Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6276
This commit is contained in:
J. Neuschäfer 2025-03-01 16:42:34 +01:00 committed by Robert Eckelmann
parent 6cc823e729
commit a8fa909bb7
No known key found for this signature in database
GPG key ID: 30C0D50BEF63BF54
4 changed files with 179 additions and 3 deletions

View file

@ -2,7 +2,7 @@
# Maintainer: Ferass El Hafidi <funderscore@postmarketos.org>
pkgname=device-amlogic-tvbox
pkgdesc="Amlogic TV box"
pkgver=3
pkgver=4
pkgrel=0
url="https://postmarketos.org"
license="MIT"
@ -22,6 +22,7 @@ subpackages="
$pkgname-kernel-p201:kernel_p201
$pkgname-kernel-p212:kernel_p212
$pkgname-kernel-p241:kernel_p241
$pkgname-kernel-ugoos-am3:kernel_ugoos_am3
$pkgname-kernel-videostrong-kii-pro:kernel_videostrong_kii_pro
$pkgname-kernel-xiaomi-once:kernel_xiaomi_once
"
@ -52,6 +53,12 @@ kernel_p241() {
devicepkg_subpackage_kernel $startdir $pkgname $subpkgname
}
kernel_ugoos_am3() {
pkgdesc="Kernel for Ugoos AM3 (S912)"
depends="linux-postmarketos-amlogic"
devicepkg_subpackage_kernel $startdir $pkgname $subpkgname
}
kernel_videostrong_kii_pro() {
pkgdesc="Kernel for Videostrong KII Pro (S905)"
depends="linux-postmarketos-amlogic u-boot-amlogic-s905-tv"
@ -66,6 +73,6 @@ kernel_xiaomi_once() {
}
sha512sums="
023525ee19a406b07eaea846a6c291d2e93c191c15c907a23f0d16cc17bb71e7e9b3b912d9f07b4010068202d3ca6c85c740beb451f24dadf3c7481c3bb4295e deviceinfo
9f1463d37a2f9099a0324197310b672ea16aa5f8f946f33d86f927fc6d10f7495695c41ef6e9fdda7371b5825d74ead9993da268ba817a597ea834811b6e3c51 deviceinfo
52948c2884a6f6384e12b7a598f70878526d0d3293c214425170145231144ec7de805c038641741a4a5d75b50e554f6a3fa3769784a674217ed032f9b6a233c8 modules-initfs
"

View file

@ -12,6 +12,7 @@ deviceinfo_dtb_p212="amlogic/meson-gxl-p212"
deviceinfo_dtb_p241="amlogic/meson-gxl-s805x-p241"
deviceinfo_dtb_videostrong_kii_pro="amlogic/meson-gxbb-kii-pro"
deviceinfo_dtb_xiaomi_once="amlogic/meson-gxl-s905x-xiaomi-once"
deviceinfo_dtb_ugoos_am3="amlogic/meson-gxm-ugoos-am3"
deviceinfo_arch="aarch64"
deviceinfo_partition_type="msdos"

View file

@ -0,0 +1,166 @@
From 0cd647ad564d95733f6ae33f449226ba71392163 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=2E=20Neusch=C3=A4fer?= <j.ne@posteo.net>
Date: Sat, 22 Feb 2025 03:24:54 +0100
Subject: [PATCH] arm64: dts: amlogic: Add Ugoos AM3
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
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
Signed-off-by: J. Neuschäfer <j.ne@posteo.net>
---
arch/arm64/boot/dts/amlogic/Makefile | 1 +
.../boot/dts/amlogic/meson-gx-p23x-q20x.dtsi | 2 +-
.../boot/dts/amlogic/meson-gxm-ugoos-am3.dts | 95 +++++++++++++++++++
3 files changed, 97 insertions(+), 1 deletion(-)
create mode 100644 arch/arm64/boot/dts/amlogic/meson-gxm-ugoos-am3.dts
diff --git a/arch/arm64/boot/dts/amlogic/Makefile b/arch/arm64/boot/dts/amlogic/Makefile
index 2fbda8419c65a3..bf2bc14528bfa2 100644
--- a/arch/arm64/boot/dts/amlogic/Makefile
+++ b/arch/arm64/boot/dts/amlogic/Makefile
@@ -76,6 +76,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
diff --git a/arch/arm64/boot/dts/amlogic/meson-gx-p23x-q20x.dtsi b/arch/arm64/boot/dts/amlogic/meson-gx-p23x-q20x.dtsi
index 45ccddd1aaf054..4223b26f7d0f3a 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gx-p23x-q20x.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-gx-p23x-q20x.dtsi
@@ -97,7 +97,7 @@ sdio_pwrseq: sdio-pwrseq {
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
index 00000000000000..c413736f4096df
--- /dev/null
+++ b/arch/arm64/boot/dts/amlogic/meson-gxm-ugoos-am3.dts
@@ -0,0 +1,95 @@
+// 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>;
+};
+
+&sdio_pwrseq {
+ reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_HIGH>;
+};
+
+/* eMMC */
+&sd_emmc_c {
+ max-frequency = <100000000>;
+};
--
2.48.0.rc1.219.gb6b6757d772

View file

@ -4,7 +4,7 @@
# Co-Maintainer: exkc <exxxxkc@getgoogleoff.me>
pkgname=linux-postmarketos-amlogic
pkgver=6.10.8
pkgrel=3
pkgrel=4
pkgdesc="Mainline kernel for Amlogic devices"
arch="aarch64"
_carch="arm64"
@ -37,6 +37,7 @@ source="
0001-ARM64-dts-meson-gxl-add-support-for-the-Xiaomi-Mi-Bo.patch
0002-add-x96-mini-support.patch
0003-add-initial-support-for-zte-b860hv5.patch
0004-arm64-dts-amlogic-Add-Ugoos-AM3.patch
"
builddir="$srcdir/linux-$pkgver"
@ -70,4 +71,5 @@ fc18d3402801860ffb1ac4bc897cfa3298b42ad1144c0d0466ead40f5e07e757f9a304e0fcce65f2
2c40c1c32eec37c33034f7c11a0423ce6a752cfb98bab38198a64c20f24545436c3a53f0d50c60236518585d42489314123636395242b3d013d51d65f1977a51 0001-ARM64-dts-meson-gxl-add-support-for-the-Xiaomi-Mi-Bo.patch
4538994c7d3bbb0c4740e8ce108b6838618be239a549e407ca239f3ceca8eed29b5a9ca75d162567dbc06b13ac7caacc61ebf55b247ce6fe122fecc7e5b275d5 0002-add-x96-mini-support.patch
222e7c12dbeb931f325b7d4a306c2f1e835992b5503ba3ab387a0b006e0fb2226291d93f32aec8ac7b2f6cf15704f20ef3285bb9bafe7374b11a034639d786ef 0003-add-initial-support-for-zte-b860hv5.patch
90602f3158408c81a072e868abf3d752624a14b3d0aacde7ec410a2fbb13d7d400e75e9c657ee85ffdc48d79928986f580d0ad343e6392d6b32efb1e4530f302 0004-arm64-dts-amlogic-Add-Ugoos-AM3.patch
"