From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id F1BEECD37AC for ; Mon, 11 May 2026 11:44:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Content-Transfer-Encoding: Content-Type:In-Reply-To:From:References:Cc:To:Subject:MIME-Version:Date: Message-ID:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=kPETYTRZlF/AgPIWckvz1qW/lXSh6sbf93yNk7fklSA=; b=x0MhD3AVH8bqUvjqhtwf9xR8/W F/JiPSttjGESEt4RmEo7GrGZgXTK7nCd+E9QUghK4oYL1URGZPhw8i87Zh5dDgvH3ZPjGso2LDakP WaBOkQfotiLpKLptBMWa+rB+f1SoM9YztBTyqCfCXfbmCVQ7N4EV7v9n6NqrA5PQSieAgiJs8asYK /Om2hJlACTC8OjX5R91ssWyRjkdwrTA3siiZnm8euqmH6pX5oCTMPubKZ7k2ejOPdIuwmDG63nIIB qaoPFHTZiI2zlV802V7fg5cpwGCtpwRxfsXnVsCOdC+D5JjxBD5+7lcy1F1WQiQh0F982zxtmydD2 zfHxYv4w==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1wMP41-0000000DNWx-49h1; Mon, 11 May 2026 11:44:46 +0000 Received: from desiato.infradead.org ([2001:8b0:10b:1:d65d:64ff:fe57:4e05]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wMP40-0000000DNWV-1vjW for linux-arm-kernel@bombadil.infradead.org; Mon, 11 May 2026 11:44:44 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=desiato.20200630; h=Content-Transfer-Encoding:Content-Type :In-Reply-To:From:References:Cc:To:Subject:MIME-Version:Date:Message-ID: Sender:Reply-To:Content-ID:Content-Description; bh=kPETYTRZlF/AgPIWckvz1qW/lXSh6sbf93yNk7fklSA=; b=BM5d0HojjAU0WweoowQHDgz+Cn rYkh2vNe+r1boNFRqpfQHnr6xG3yqRQIA7kdv2jPYKX8g+t2+nrUQGcKki1P+RYFor6ekqwQnyWGg qSzGlMYVo2Y+dVJjyXfi9Fw2BeGL1RAjhYPIWquvNqxtTyuBZ0eyq9q2IqwKOZ6iraTyfBminMSpQ LEe+3RTHfdtCA3EKRiiFQC8/Nj6qQhwa4Fg2i9ZcqST3unUXc6pX0XAjJZ4U7Mqr+RancDjXqtGes gSXwCgvh/D6+0+bWDY8L91JXTQnfV2zyDsbpENZ/g4qS/0AzjBSY56Zku0Q3faO5/+FwIPSSbij1o m0zxKL1A==; Received: from foss.arm.com ([217.140.110.172]) by desiato.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1wMP3v-0000000BW2s-2Fjh for linux-arm-kernel@lists.infradead.org; Mon, 11 May 2026 11:44:42 +0000 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 53240168F; Mon, 11 May 2026 04:44:31 -0700 (PDT) Received: from [192.168.178.24] (usa-sjc-mx-foss1.foss.arm.com [172.31.20.19]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 9F2173F85F; Mon, 11 May 2026 04:44:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=arm.com; s=foss; t=1778499876; bh=FmI0vsrvNe/6DVotkiJFm/j8bwILNB7Il9+Ec5W7eAY=; h=Date:Subject:To:Cc:References:From:In-Reply-To:From; b=KSajZbulVQ5l95tK7sCbWPu2J0qEnsao6CijBuDa3hmhTkUWZ1/l88v87M0HikQlU ojKdQHEJZktE1yYM1Y3bVNcyP+AzZIbSbD+E2UxPKAOoJ52qCG0fVx74zgWn/+drxI ueE0B5FxnPjzIX1icX9YxxIRM8jLazkMalSh8gno= Message-ID: <2306dd3c-6362-40ee-8d9f-77f89be3a502@arm.com> Date: Mon, 11 May 2026 13:44:31 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v2 3/3] arm64: dts: allwinner: A133: add support for Baijie Helper A133 board To: Alexander Sverdlin , linux-sunxi@lists.linux.dev Cc: Rob Herring , Krzysztof Kozlowski , Conor Dooley , Chen-Yu Tsai , Jernej Skrabec , Samuel Holland , devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org References: <20260510201644.4143710-1-alexander.sverdlin@gmail.com> <20260510201644.4143710-4-alexander.sverdlin@gmail.com> Content-Language: en-US From: Andre Przywara In-Reply-To: <20260510201644.4143710-4-alexander.sverdlin@gmail.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.9.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260511_124440_751144_62BAAED9 X-CRM114-Status: GOOD ( 32.62 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Hi Alexander, thanks for upstreaming the DTs! On 5/10/26 22:16, Alexander Sverdlin wrote: > Baijie Helper A133 board is a development board around Baijie A133 Core > SBC. Features: > > - 1/2/4GiB LPDDR4 DRAM > - 8/16/32GiB eMMC > - AXP707 PMIC > - 2 USB 2.0 ports > - MicroSD slot and on-board eMMC module > - Gigabit Ethernet > - Bluetooth > - WiFi > > Add initial support for both the Helper and Core boards, including UART, > PMU, eMMC, USB, Ethernet. > > Signed-off-by: Alexander Sverdlin > --- > > Changelog: > v2: > - introduced baijie,helper-a133-core compatible for the Core (SoM) board > > arch/arm64/boot/dts/allwinner/Makefile | 1 + > .../dts/allwinner/sun50i-a133-baije-core.dtsi | 162 ++++++++++++++++++ > .../allwinner/sun50i-a133-baijie-helper.dts | 94 ++++++++++ > 3 files changed, 257 insertions(+) > create mode 100644 arch/arm64/boot/dts/allwinner/sun50i-a133-baije-core.dtsi > create mode 100644 arch/arm64/boot/dts/allwinner/sun50i-a133-baijie-helper.dts > > diff --git a/arch/arm64/boot/dts/allwinner/Makefile b/arch/arm64/boot/dts/allwinner/Makefile > index d116864b6c2b..926dfa851100 100644 > --- a/arch/arm64/boot/dts/allwinner/Makefile > +++ b/arch/arm64/boot/dts/allwinner/Makefile > @@ -18,6 +18,7 @@ dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-sopine-baseboard.dtb > dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-teres-i.dtb > dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h64-remix-mini-pc.dtb > dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a100-allwinner-perf1.dtb > +dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a133-baijie-helper.dtb > dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a133-liontron-h-a133l.dtb > dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-bananapi-m2-plus.dtb > dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-bananapi-m2-plus-v1.2.dtb > diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a133-baije-core.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-a133-baije-core.dtsi > new file mode 100644 > index 000000000000..65b094f30bf5 > --- /dev/null > +++ b/arch/arm64/boot/dts/allwinner/sun50i-a133-baije-core.dtsi > @@ -0,0 +1,162 @@ > +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) > +/* > + * Copyright (c) 2025 Arm Ltd. Please put your own copyright here, even if that has been largely copied from an existing file. > + */ > + > +/dts-v1/; > + > +#include "sun50i-a100.dtsi" > +#include "sun50i-a100-cpu-opp.dtsi" > + > +/{ > + compatible = "baijie,helper-a133-core", > + "allwinner,sun50i-a100"; > + > + aliases { > + serial1 = &uart1; /* BT module */ Do we really need an alias for the BT UART? And is the BT module supported already? Then please add a child node to the UART node. > + }; > +}; > + > +&cpu0 { > + cpu-supply = <®_dcdc2>; > +}; > + > +&pio { The order of those referenced nodes is alphabetically by the label name. So this one goes further down. > + vcc-pb-supply = <®_dcdc1>; > + vcc-pc-supply = <®_eldo1>; > + vcc-pd-supply = <®_dcdc1>; > + vcc-pe-supply = <®_dldo2>; > + vcc-pf-supply = <®_dcdc1>; > + vcc-pg-supply = <®_dldo1>; > + vcc-ph-supply = <®_dcdc1>; > +}; > + Isn't the WiFi/BT module on the SoM? Then please mention and enable MMC1 here. Provide the child node for the WiFi chip, even if there is no upstream support in the kernel for it yet. > +&mmc2 { > + vmmc-supply = <®_dcdc1>; > + vqmmc-supply = <®_eldo1>; > + cap-mmc-hw-reset; > + non-removable; > + bus-width = <8>; > + mmc-ddr-1_8v; > + mmc-hs200-1_8v; > + status = "okay"; > +}; > + > +&r_i2c0 { > + status = "okay"; > + > + axp803: pmic@34 { > + compatible = "x-powers,axp803"; > + reg = <0x34>; > + interrupt-parent = <&r_intc>; > + interrupts = <0 IRQ_TYPE_LEVEL_LOW>; > + }; > +}; > + > +#include "axp803.dtsi" > + > +&ac_power_supply { > + status = "okay"; > +}; > + > +®_aldo1 { What is aldo1 used for, actually? I don't see this referenced anywhere. I guess the kernel turns that off after booting? If you have access to the schematic, please check that. If that's for some peripheral not yet supported, please note the user anyway, ideally by an explaining regulator-name, or by a comment. Also if it's used for any of the required SoC VDD pins. See the Liontron .dts for comparison. > + regulator-always-on; > + regulator-min-microvolt = <700000>; > + regulator-max-microvolt = <3300000>; Please don't provide ranges here (those are in the driver already), the point of this entry is to set the voltage required by the board. (And yes, the vendor DTBs alway get this wrong). Typically there are fixed requirements, so use the same value for min and max. Same for the others below. > +}; > + > +®_aldo2 { > + regulator-always-on; For always-on regulators we definitely need an explanation. Does the board stop booting if you remove this line? Maybe it's for DRAM? Can you say what voltage it is, either from the reset default, or set by the bootloader? > + regulator-min-microvolt = <700000>; > + regulator-max-microvolt = <3300000>; > +}; > + > +®_aldo3 { > + regulator-always-on; > + regulator-min-microvolt = <700000>; > + regulator-max-microvolt = <3300000>; > + regulator-enable-ramp-delay = <1000>; > +}; > + > +®_dcdc1 { > + regulator-always-on; > + regulator-min-microvolt = <1600000>; > + regulator-max-microvolt = <3400000>; > + regulator-name = "vcc-3v3"; > +}; > + > +®_dcdc2 { > + regulator-always-on; > + regulator-min-microvolt = <500000>; > + regulator-max-microvolt = <1300000>; This one is an exception, because the voltage is to be adjusted at runtime. But the voltage range needs to be tighter, the A133 datasheet puts the valid VDD_CPU range between 810mV and 1200mV. Compare to the Liontron dts file here. > + regulator-name = "vdd-cpu"; > +}; > + > +®_dcdc3 { > + regulator-always-on; > + regulator-min-microvolt = <500000>; > + regulator-max-microvolt = <1300000>; > +}; > + > +®_dcdc4 { > + regulator-always-on; > + regulator-min-microvolt = <500000>; > + regulator-max-microvolt = <1300000>; > + regulator-name = "vdd-sys"; > +}; > + > +®_dcdc5 { > + regulator-always-on; > + regulator-min-microvolt = <800000>; > + regulator-max-microvolt = <1840000>; > + regulator-name = "vcc-dram"; > +}; > + > +/* DCDC6 unused */ > + > +®_dldo1 { > + regulator-min-microvolt = <700000>; > + regulator-max-microvolt = <3300000>; > + regulator-enable-ramp-delay = <1000>; > +}; > + > +®_dldo2 { > + regulator-min-microvolt = <700000>; > + regulator-max-microvolt = <3400000>; > + regulator-enable-ramp-delay = <1000>; > +}; > + > +®_dldo3 { > + regulator-min-microvolt = <700000>; > + regulator-max-microvolt = <3300000>; > + regulator-enable-ramp-delay = <1000>; > + regulator-name = "avdd-csi"; > +}; > + > +®_dldo4 { > + regulator-min-microvolt = <700000>; > + regulator-max-microvolt = <3300000>; > + regulator-enable-ramp-delay = <1000>; > +}; > + > +®_eldo1 { > + regulator-min-microvolt = <700000>; > + regulator-max-microvolt = <1900000>; > + regulator-enable-ramp-delay = <1000>; > +}; > + > +®_eldo2 { > + regulator-min-microvolt = <700000>; > + regulator-max-microvolt = <1900000>; > + regulator-enable-ramp-delay = <1000>; > + regulator-name = "dvdd-csi"; > +}; > + > +/* ELDO3 unused */ > + > +®_fldo1 { > + regulator-always-on; > + regulator-min-microvolt = <700000>; > + regulator-max-microvolt = <1450000>; > + regulator-name = "vdd-cpus-usb"; > +}; > diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a133-baijie-helper.dts b/arch/arm64/boot/dts/allwinner/sun50i-a133-baijie-helper.dts > new file mode 100644 > index 000000000000..ccbca5d0a40c > --- /dev/null > +++ b/arch/arm64/boot/dts/allwinner/sun50i-a133-baijie-helper.dts > @@ -0,0 +1,94 @@ > +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) > +/* > + * Copyright (c) 2025 Arm Ltd. Your own copyright, please. > + */ > + > +/dts-v1/; > + > +#include "sun50i-a133-baije-core.dtsi" > + > +#include > +#include > + > +/{ > + model = "HelperBoard A133"; > + compatible = "baijie,helper-a133", > + "baijie,helper-a133-core", > + "allwinner,sun50i-a100"; > + > + aliases { > + serial0 = &uart0; > + }; > + > + chosen { > + stdout-path = "serial0:115200n8"; > + }; > + > + leds { > + compatible = "gpio-leds"; > + > + led { > + function = LED_FUNCTION_INDICATOR; > + color = ; > + gpios = <&pio 7 13 GPIO_ACTIVE_LOW>; /* PH13 */ > + }; > + }; I see quite some buttons on the board. I guess they are connected to GPIOs? Can you please describe them then, using gpio-keys? Look at sun50i-h5-orangepi-pc2.dts for an example. And you should provide a top level 5V regulator here, to be the root of the regulator tree. Look at reg_vcc5v in the Liontron .dts. > +}; > + > +&mmc0 { > + vmmc-supply = <®_dcdc1>; > + cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; /* PF6 */ > + bus-width = <4>; > + status = "okay"; > +}; > + > +&uart0 { > + pinctrl-names = "default"; > + pinctrl-0 = <&uart0_pb_pins>; > + status = "okay"; > +}; > + > +&rgmii0_pins { > + drive-strength = <30>; > +}; > + > +&emac0 { > + pinctrl-names = "default"; > + pinctrl-0 = <&rgmii0_pins>; > + phy-handle = <ð_phy>; > + phy-mode = "rgmii-id"; > + allwinner,rx-delay-ps = <200>; > + allwinner,tx-delay-ps = <200>; > + status = "okay"; > +}; > + > +&mdio0 { > + reset-gpios = <&pio 7 11 GPIO_ACTIVE_LOW>; /* PH11 */ > + reset-delay-us = <10000>; > + reset-post-delay-us = <150000>; > + > + eth_phy: ethernet-phy@1 { The typical label here would be rgmii_phy. The node name is correct, though. > + compatible = "ethernet-phy-ieee802.3-c22"; > + reg = <1>; > + }; > +}; > + So from the pictures I found online it looks like there is an USB-C port labelled "OTG", so can you please add an &usbotg reference here and describe that port. > +&usbphy { Are the two USB ports always powered? And anyway, I see a *dual* USB-A socket on the pictures online, in addition to the USB-OTG port. So where does the third USB come from? The A133 only supports one host USB port plus the one OTG port. So is there an USB hub chip on the board? > + status = "okay"; > +}; > + > +&ehci0 { (and again, please order those nodes alphabetically) Cheers, Andre. > + status = "okay"; > +}; > + > +&ohci0 { > + status = "okay"; > +}; > + > +&ehci1 { > + status = "okay"; > +}; > + > +&ohci1 { > + status = "okay"; > +};