From nobody Thu Oct 2 19:28:32 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C90222D2489; Thu, 11 Sep 2025 23:52:12 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757634732; cv=none; b=U9uUxQ3ZPuKa4+UBaQQcbAXY14VHsryMQIacM2LIY6KogHAjVzx53pNu7DWK+1RTum0260d2hc8mDJroaGg/E8+OTR+OX7Z3YieaGdF/FZW1mLptvBf3CHjK3ONl5A2oRzICjHLac5Em7cjqTu0/PpyHQFBQf9LgJh5LQhdwnaU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757634732; c=relaxed/simple; bh=4LFV1aHLarA4np76ZFMKJQ2eFSAdju8E2jQoi5tSsOM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=dt+CRuDquFqv/Ozs0bIB2R6BP1P08/bShJDSBUWeHVMfnE4jtShFoJa1c6KlntCGxEIr4Rzy2bkP3Kni/MjwagpzYeTs4DlziP8TYq+AuJ3KL8XgSChurqxkGj3/3YPaHhAHpi762R6nouebFLgQVCntsb/AKu59SOxrsbJdFJ8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=rl/zhTvO; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="rl/zhTvO" Received: by smtp.kernel.org (Postfix) with ESMTPS id 6C675C4CEF0; Thu, 11 Sep 2025 23:52:12 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1757634732; bh=4LFV1aHLarA4np76ZFMKJQ2eFSAdju8E2jQoi5tSsOM=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=rl/zhTvOOB/4ps9TniOup8Gsd0MohfhWY281Tg98+TXikzsMDvjfzU00KnnDPK+br uioT+n4Ztk+cQ2TaB6td62jWd+e29tYiaS1GZluCF+abarEdH0xp1/PeWdyLrs9whD JvR2lDIWqWfKcmpuuguuGty/KmZm9FBgDl5s4nmJQkjqBSQ0tX8NFmKAux60T79g67 7dpzPgLWNvCUdU7d6bUzmpFC2T81kubFJ2oDR50YF5HB4cTOLAKJIsQ/et/OOj0s8H hiawAZSPa97+zq71b3eycj4/gP1l29uMLJuX+EidUt0A6HVhNZ2WoUJDFrInufszaV Jh42PTNpBtLzw== Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 5C931CAC58E; Thu, 11 Sep 2025 23:52:12 +0000 (UTC) From: =?utf-8?q?J=2E_Neusch=C3=A4fer_via_B4_Relay?= Date: Fri, 12 Sep 2025 01:52:09 +0200 Subject: [PATCH 1/2] dt-bindings: arm: sunxi: Add Amediatech X96Q Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250912-x96q-v1-1-8471daaf39db@posteo.net> References: <20250912-x96q-v1-0-8471daaf39db@posteo.net> In-Reply-To: <20250912-x96q-v1-0-8471daaf39db@posteo.net> To: Rob Herring , Krzysztof Kozlowski , Conor Dooley , Chen-Yu Tsai , Jernej Skrabec , Samuel Holland , Maxime Ripard Cc: devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-sunxi@lists.linux.dev, linux-kernel@vger.kernel.org, =?utf-8?q?J=2E_Neusch=C3=A4fer?= X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1757634731; l=1100; i=j.ne@posteo.net; s=20240329; h=from:subject:message-id; bh=4vwduiIPx4gIZNv7o5hxBa5Uq0ID3f0a+4J6CQ7VeRs=; b=u4hR9YAItZhZw9wjTyrYUtnXOHA5ksrnXQXlt/qdfsKd6Q58sNeQQfGFd8zR+5MJLO2FunhNn 5dxn69HNd10CN720fFMNoytLp+8zyr0dhTndceuRPrFAzulIRKeB2aV X-Developer-Key: i=j.ne@posteo.net; a=ed25519; pk=NIe0bK42wNaX/C4bi6ezm7NJK0IQE+8MKBm7igFMIS4= X-Endpoint-Received: by B4 Relay for j.ne@posteo.net/20240329 with auth_id=156 X-Original-From: =?utf-8?q?J=2E_Neusch=C3=A4fer?= Reply-To: j.ne@posteo.net From: "J. Neusch=C3=A4fer" The X96Q is a set-top box with an H313 SoC, AXP305 PMIC, 1 or 2 GiB RAM, 8 or 16 GiB eMMC flash, 2x USB A, Micro-SD, HDMI, Ethernet, audio/video output, and infrared input. https://x96mini.com/products/x96q-tv-box-android-10-set-top-box Signed-off-by: J. Neusch=C3=A4fer Acked-by: Rob Herring (Arm) Reviewed-by: Andre Przywara --- Documentation/devicetree/bindings/arm/sunxi.yaml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Documentation/devicetree/bindings/arm/sunxi.yaml b/Documentati= on/devicetree/bindings/arm/sunxi.yaml index c25a22fe4d25cbd8a8132689f1326548f7f43f2c..c9940b44bc888f7ab81ace67104= 0bd663556c113 100644 --- a/Documentation/devicetree/bindings/arm/sunxi.yaml +++ b/Documentation/devicetree/bindings/arm/sunxi.yaml @@ -963,6 +963,11 @@ properties: - const: hechuang,x96-mate - const: allwinner,sun50i-h616 =20 + - description: X96Q + items: + - const: amediatech,x96q + - const: allwinner,sun50i-h616 + - description: X96Q Pro+ items: - const: amediatech,x96q-pro-plus --=20 2.48.0.rc1.219.gb6b6757d772 From nobody Thu Oct 2 19:28:32 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C8F232D0C7B; Thu, 11 Sep 2025 23:52:12 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757634732; cv=none; b=EhBwLXKN7/zvRKCRQ+OQfc++u0isl4eb0dEwYlF0snlBVqLn4/jLIE2ZqrrRdSRvhmyabx9jZumL9FbFzP0EpXr/WsUy1vf/dXynZdiOm7WhnjZN/PxqHHASyng8MmjMUkgh3arkKnwXDtLWW8Ll9RWXb9an5KGsZZ/xNWwhAQM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757634732; c=relaxed/simple; bh=h/jtlcQP6dxt5AXXkjpgAA85nbV3awGZg9MiPorU3Zk=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=loknylq7mReZUQjEPOy6B9nBHma10GhGfdlTf70JRzNWMss5ojt4mvinNXqjFVR2+3EKh671qBIK2ZTjNi/Bk3iK7ICxBec/r7T/+VsYSw/bAmDKkmuo6osx3Tjuuf38EjBo99tZrzLc/V0TyLDAPieDgXxIaDGW1WPQqHxknik= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=GU9grEF5; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="GU9grEF5" Received: by smtp.kernel.org (Postfix) with ESMTPS id 7DAA5C4CEF8; Thu, 11 Sep 2025 23:52:12 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1757634732; bh=h/jtlcQP6dxt5AXXkjpgAA85nbV3awGZg9MiPorU3Zk=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=GU9grEF5P1VCrdcMwZeSM6WFlJcso8w4ZAw+R1SesvOp8BfXuvkP2v1r5YkOcrkL9 dwltbz3wj9yHCgxlbaZrGlKntGygxykY5XyOOChvavrpjnANUaMamcpbZV0iIn0RcA l0dpFF/BrJHimKoonDpzPDm6c0wRYvoYtqoSeqOrLhTwYp3FKVy9lbhsq9rpVzbBQI cqtFSSu3O+XYMa+erF7tR7I/NvYU0hvFsh2Pe0Dt1l3KH9uxkga60+6b+4diHvn5sx +6EKD4kFehmtqjCK2WQ1yvUzx9w6AahhlIiZ3MN5FRYaGQyssWMFXoxhDi5zqt22vJ TRBNYU2R5AhVw== Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 6A562CAC587; Thu, 11 Sep 2025 23:52:12 +0000 (UTC) From: =?utf-8?q?J=2E_Neusch=C3=A4fer_via_B4_Relay?= Date: Fri, 12 Sep 2025 01:52:10 +0200 Subject: [PATCH 2/2] arm64: dts: allwinner: h313: Add Amediatech X96Q Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250912-x96q-v1-2-8471daaf39db@posteo.net> References: <20250912-x96q-v1-0-8471daaf39db@posteo.net> In-Reply-To: <20250912-x96q-v1-0-8471daaf39db@posteo.net> To: Rob Herring , Krzysztof Kozlowski , Conor Dooley , Chen-Yu Tsai , Jernej Skrabec , Samuel Holland , Maxime Ripard Cc: devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-sunxi@lists.linux.dev, linux-kernel@vger.kernel.org, =?utf-8?q?J=2E_Neusch=C3=A4fer?= X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1757634731; l=7483; i=j.ne@posteo.net; s=20240329; h=from:subject:message-id; bh=yL82j4z4vPXiCzLYTueKfwn+Z802nasSWVsK16fQRU4=; b=fr2Y7KV+LY2ybRfaZOP4SZcRg3JxcszvMdnEj5w5NNmb9VuQlTieWM82IRk8JER/RIHvCpmni aEVyfuCJDnDCgqAfYGeWZRWajHGnJSeVRPamYCR45bh84iveBmpBwVf X-Developer-Key: i=j.ne@posteo.net; a=ed25519; pk=NIe0bK42wNaX/C4bi6ezm7NJK0IQE+8MKBm7igFMIS4= X-Endpoint-Received: by B4 Relay for j.ne@posteo.net/20240329 with auth_id=156 X-Original-From: =?utf-8?q?J=2E_Neusch=C3=A4fer?= Reply-To: j.ne@posteo.net From: "J. Neusch=C3=A4fer" The X96Q is a set-top box with an H313 SoC, AXP305 PMIC, 1 or 2 GiB RAM, 8 or 16 GiB eMMC flash, 2x USB A, Micro-SD, HDMI, Ethernet, audio/video output, and infrared input. https://x96mini.com/products/x96q-tv-box-android-10-set-top-box Tested, works: - debug UART - status LED - USB ports in host mode - MicroSD - eMMC - recovery button hidden behind audio/video port - analog audio (line out) Does not work: - Ethernet (requires AC200 MFD/EPHY driver) - analog video output (requires AC200 driver) - HDMI audio/video output Untested: - "OTG" USB port in device mode - built-in IR receiver - external IR receiver - WLAN (requires out-of-tree XRadio driver) Table of regulators on the downstream kernel, for reference: vcc-5v 1 15 0 unknown 5000mV 0mA 5000mV 5000mV dcdca 0 0 0 unknown 900mV 0mA 0mV 0mV dcdcb 0 0 0 unknown 1350mV 0mA 0mV 0mV dcdcc 0 0 0 unknown 900mV 0mA 0mV 0mV dcdcd 0 0 0 unknown 1500mV 0mA 0mV 0mV dcdce 0 0 0 unknown 3300mV 0mA 0mV 0mV aldo1 0 0 0 unknown 3300mV 0mA 0mV 0mV aldo2 0 0 0 unknown 700mV 0mA 0mV 0mV aldo3 0 0 0 unknown 700mV 0mA 0mV 0mV bldo1 0 0 0 unknown 1800mV 0mA 0mV 0mV bldo2 0 0 0 unknown 1800mV 0mA 0mV 0mV bldo3 0 0 0 unknown 700mV 0mA 0mV 0mV bldo4 0 0 0 unknown 700mV 0mA 0mV 0mV cldo1 0 0 0 unknown 2500mV 0mA 0mV 0mV cldo2 0 0 0 unknown 700mV 0mA 0mV 0mV cldo3 0 0 0 unknown 700mV 0mA 0mV 0mV Signed-off-by: J. Neusch=C3=A4fer --- arch/arm64/boot/dts/allwinner/Makefile | 1 + arch/arm64/boot/dts/allwinner/sun50i-h313-x96q.dts | 235 +++++++++++++++++= ++++ 2 files changed, 236 insertions(+) diff --git a/arch/arm64/boot/dts/allwinner/Makefile b/arch/arm64/boot/dts/a= llwinner/Makefile index 780aeba0f3a4e14d69c9602e37b8d299165507b9..2edfa7bf4ab31c4aa934da98e5e= 042edc9aaf600 100644 --- a/arch/arm64/boot/dts/allwinner/Makefile +++ b/arch/arm64/boot/dts/allwinner/Makefile @@ -41,6 +41,7 @@ dtb-$(CONFIG_ARCH_SUNXI) +=3D sun50i-h6-pine-h64-model-b.= dtb dtb-$(CONFIG_ARCH_SUNXI) +=3D sun50i-h6-tanix-tx6.dtb dtb-$(CONFIG_ARCH_SUNXI) +=3D sun50i-h6-tanix-tx6-mini.dtb dtb-$(CONFIG_ARCH_SUNXI) +=3D sun50i-h313-tanix-tx1.dtb +dtb-$(CONFIG_ARCH_SUNXI) +=3D sun50i-h313-x96q.dtb dtb-$(CONFIG_ARCH_SUNXI) +=3D sun50i-h616-bigtreetech-cb1-manta.dtb dtb-$(CONFIG_ARCH_SUNXI) +=3D sun50i-h616-bigtreetech-pi.dtb dtb-$(CONFIG_ARCH_SUNXI) +=3D sun50i-h616-orangepi-zero2.dtb diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h313-x96q.dts b/arch/arm6= 4/boot/dts/allwinner/sun50i-h313-x96q.dts new file mode 100644 index 0000000000000000000000000000000000000000..9534eb03b89557f2545af5af7cf= 43390be722cf0 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/sun50i-h313-x96q.dts @@ -0,0 +1,235 @@ +// SPDX-License-Identifier: (GPL-2.0-or-later OR MIT) +/* + * Copyright (C) 2025 J. Neusch=C3=A4fer + */ + +/dts-v1/; + +#include "sun50i-h616.dtsi" +#include "sun50i-h616-cpu-opp.dtsi" + +#include +#include +#include +#include + +/ { + model =3D "X96Q"; + compatible =3D "amediatech,x96q", "allwinner,sun50i-h616"; + + aliases { + mmc0 =3D &mmc0; + mmc1 =3D &mmc1; + mmc2 =3D &mmc2; + serial0 =3D &uart0; + }; + + chosen { + stdout-path =3D "serial0:115200n8"; + }; + + reg_vcc5v: vcc5v { + /* board wide 5V supply directly from the DC input */ + compatible =3D "regulator-fixed"; + regulator-name =3D "vcc-5v"; + regulator-min-microvolt =3D <5000000>; + regulator-max-microvolt =3D <5000000>; + regulator-always-on; + }; + + gpio-keys { + compatible =3D "gpio-keys"; + + key-recovery { + label =3D "Recovery"; + linux,code =3D ; + gpios =3D <&pio 7 9 GPIO_ACTIVE_LOW>; + }; + }; + + leds { + compatible =3D "gpio-leds"; + + led-0 { + color =3D ; + gpios =3D <&pio 7 6 GPIO_ACTIVE_LOW>; + default-state =3D "on"; + }; + }; +}; + +&codec { + allwinner,audio-routing =3D "Line Out", "LINEOUT"; + status =3D "okay"; +}; + +&cpu0 { + cpu-supply =3D <®_dcdca>; +}; + +&ehci0 { + status =3D "okay"; +}; + +&ehci3 { + status =3D "okay"; +}; + +/* TODO: EMAC1 connected to AC200 PHY */ + +&gpu { + mali-supply =3D <®_dcdcc>; + status =3D "okay"; +}; + +&ir { + status =3D "okay"; +}; + +&mmc0 { + vmmc-supply =3D <®_aldo1>; + cd-gpios =3D <&pio 5 6 GPIO_ACTIVE_LOW>; /* PF6 */ + disable-wp; + bus-width =3D <4>; + max-frequency =3D <150000000>; + status =3D "okay"; + /* =C2=B5SD */ +}; + +&mmc1 { + /* TODO: XRadio XR819 WLAN */ +}; + +&mmc2 { + vmmc-supply =3D <®_aldo1>; + vqmmc-supply =3D <®_bldo1>; + non-removable; + cap-mmc-hw-reset; + mmc-ddr-1_8v; + mmc-hs200-1_8v; + bus-width =3D <8>; + max-frequency =3D <100000000>; + status =3D "okay"; + /* eMMC */ +}; + +&ohci0 { + status =3D "okay"; +}; + +&ohci3 { + status =3D "okay"; +}; + +&r_i2c { + status =3D "okay"; + + axp305: pmic@36 { + compatible =3D "x-powers,axp305", "x-powers,axp805", + "x-powers,axp806"; + interrupt-controller; + #interrupt-cells =3D <1>; + reg =3D <0x36>; + + x-powers,self-working-mode; + vina-supply =3D <®_vcc5v>; + vinb-supply =3D <®_vcc5v>; + vinc-supply =3D <®_vcc5v>; + vind-supply =3D <®_vcc5v>; + vine-supply =3D <®_vcc5v>; + aldoin-supply =3D <®_vcc5v>; + bldoin-supply =3D <®_vcc5v>; + cldoin-supply =3D <®_vcc5v>; + + regulators { + reg_dcdca: dcdca { + regulator-always-on; + regulator-min-microvolt =3D <810000>; + regulator-max-microvolt =3D <1100000>; + regulator-name =3D "vdd-cpu"; + }; + + dcdcb { + /* unused */ + }; + + reg_dcdcc: dcdcc { + regulator-always-on; + regulator-min-microvolt =3D <810000>; + regulator-max-microvolt =3D <990000>; + regulator-name =3D "vdd-gpu-sys"; + }; + + dcdcd { + regulator-always-on; + regulator-min-microvolt =3D <1500000>; + regulator-max-microvolt =3D <1500000>; + }; + + dcdce { + /* unused */ + }; + + reg_aldo1: aldo1 { + regulator-always-on; + regulator-min-microvolt =3D <3300000>; + regulator-max-microvolt =3D <3300000>; + regulator-name =3D "vcc3v3"; + }; + + aldo2 { + /* unused */ + }; + + aldo3 { + /* unused */ + }; + + reg_bldo1: bldo1 { + regulator-always-on; + regulator-min-microvolt =3D <1800000>; + regulator-max-microvolt =3D <1800000>; + regulator-name =3D "vcc1v8"; + }; + + bldo2 { + /* unused */ + }; + + bldo3 { + /* unused */ + }; + + bldo4 { + /* unused */ + }; + + cldo1 { + /* unused */ + }; + + cldo2 { + /* unused */ + }; + + cldo3 { + /* unused */ + }; + }; + }; +}; + +&uart0 { + pinctrl-names =3D "default"; + pinctrl-0 =3D <&uart0_ph_pins>; + status =3D "okay"; +}; + +&usbotg { + dr_mode =3D "host"; /* USB A type receptacle */ + status =3D "okay"; +}; + +&usbphy { + status =3D "okay"; +}; --=20 2.48.0.rc1.219.gb6b6757d772