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 phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id E2DA8C54791 for ; Sun, 10 Mar 2024 22:00:24 +0000 (UTC) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id BD25587E3F; Sun, 10 Mar 2024 23:00:22 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=fail (p=none dis=none) header.from=arm.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Received: by phobos.denx.de (Postfix, from userid 109) id AB58A87E88; Sun, 10 Mar 2024 23:00:21 +0100 (CET) Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by phobos.denx.de (Postfix) with ESMTP id 1491287E3F for ; Sun, 10 Mar 2024 23:00:19 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=fail (p=none dis=none) header.from=arm.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=andre.przywara@arm.com 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 B89C9DA7; Sun, 10 Mar 2024 15:00:54 -0700 (PDT) Received: from minigeek.lan (unknown [172.31.20.19]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id B35B63F73F; Sun, 10 Mar 2024 15:00:17 -0700 (PDT) Date: Sun, 10 Mar 2024 22:00:04 +0000 From: Andre Przywara To: Kamil Kasperski Cc: u-boot@lists.denx.de, linux-sunxi Subject: Re: [PATCH] sunxi: h616: add initial support for T95 AXP313 TV Box Message-ID: <20240310220004.0965e2ca@minigeek.lan> In-Reply-To: <20240309192425.40282-1-ressetkk@gmail.com> References: <20240309192425.40282-1-ressetkk@gmail.com> Organization: Arm Ltd. X-Mailer: Claws Mail 4.2.0 (GTK 3.24.31; x86_64-slackware-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.103.8 at phobos.denx.de X-Virus-Status: Clean On Sat, 9 Mar 2024 19:24:26 +0000 Kamil Kasperski wrote: Hi Kamil, many thanks for sending a patch, that looks mostly good from the technical point of view, only some smaller comments. But please note that the devicetree needs to go through the Linux mailing lists and repo first, and we automatically copy it from the Linux tree once it has been merged there. This is to ensure proper review and checks with the Linux tooling. So can you please send just the .dts file to the DT and sunxi maintainers the respective lists, as reported by get_maintainer.pl? Then we can take it from there. > T95 is a most commonly known for being a box with a pre-installed malware. > It uses Allwinner H616 and comes with eMMC and DDR3 memory. > This device comes with two versions - one with AXP305 PMIC and another with AXP313 PMIC. > The AXP313 version comes with Secure Boot enabled and locked bootloader, so the u-boot has to be built with TOC0. > DRAM settings are taken from Allwinner's boot0 for this box. Ah, thanks for figuring those out, that's very helpful. > > Cc: Andre Przywara > > Signed-off-by: Kamil Kasperski > --- > arch/arm/dts/Makefile | 3 +- > arch/arm/dts/sun50i-h616-t95-axp313.dts | 148 ++++++++++++++++++++++++ > configs/t95_axp313_defconfig | 27 +++++ > 3 files changed, 177 insertions(+), 1 deletion(-) > create mode 100644 arch/arm/dts/sun50i-h616-t95-axp313.dts > create mode 100644 configs/t95_axp313_defconfig > > diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile > index b102ffb5f6..144daf6c48 100644 > --- a/arch/arm/dts/Makefile > +++ b/arch/arm/dts/Makefile > @@ -842,7 +842,8 @@ dtb-$(CONFIG_MACH_SUN50I_H616) += \ > sun50i-h618-orangepi-zero2w.dtb \ > sun50i-h618-orangepi-zero3.dtb \ > sun50i-h618-transpeed-8k618-t.dtb \ > - sun50i-h616-x96-mate.dtb > + sun50i-h616-x96-mate.dtb \ > + sun50i-h616-t95-axp313.dtb > dtb-$(CONFIG_MACH_SUN50I) += \ > sun50i-a64-amarula-relic.dtb \ > sun50i-a64-bananapi-m64.dtb \ > diff --git a/arch/arm/dts/sun50i-h616-t95-axp313.dts b/arch/arm/dts/sun50i-h616-t95-axp313.dts > new file mode 100644 > index 0000000000..b006f363d5 > --- /dev/null > +++ b/arch/arm/dts/sun50i-h616-t95-axp313.dts > @@ -0,0 +1,148 @@ > +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) > +/* > + * Copyright (C) 2021 Arm Ltd. Please change this copyright you and this year. > + */ > + > +/dts-v1/; > + > +#include "sun50i-h616.dtsi" > + > +#include > +#include > + > +/ { > + model = "T95 (AXP313)"; > + compatible = "mbox,t95-axp313", "allwinner,sun50i-h616"; What is "mbox"? Do you have any more information about this vendor? In any case a new vendor would need to be added to Documentation/devicetree/bindings/vendor-prefixes.yaml, in a separate patch. Also you need a patch to add this compatible combination to Documentation/devicetree/bindings/arm/sunxi.yaml. Cheers, Andre > + > + aliases { > + serial0 = &uart0; > + }; > + > + chosen { > + stdout-path = "serial0:115200n8"; > + }; > + > + reg_vcc5v: vcc5v { > + /* board wide 5V supply directly from the DC input */ > + compatible = "regulator-fixed"; > + regulator-name = "vcc-5v"; > + regulator-min-microvolt = <5000000>; > + regulator-max-microvolt = <5000000>; > + regulator-always-on; > + }; > +}; > + > +&ehci0 { > + status = "okay"; > +}; > + > +&ehci2 { > + status = "okay"; > +}; > + > +&ir { > + status = "okay"; > +}; > + > +&mmc0 { > + cd-gpios = <&pio 8 16 GPIO_ACTIVE_LOW>; /* PI16 */ > + vmmc-supply = <®_dldo1>; > + status = "okay"; > +}; > + > +&mmc2 { > + vmmc-supply = <®_dldo1>; > + vqmmc-supply = <®_aldo1>; > + bus-width = <8>; > + non-removable; > + cap-mmc-hw-reset; > + mmc-ddr-1_8v; > + mmc-hs200-1_8v; > + status = "okay"; > +}; > + > +&ohci0 { > + status = "okay"; > +}; > + > +&ohci2 { > + status = "okay"; > +}; > + > +&r_i2c { > + status = "okay"; > + > + axp313: pmic@36 { > + compatible = "x-powers,axp313a"; > + reg = <0x36>; > + #interrupt-cells = <1>; > + interrupt-controller; > + interrupt-parent = <&pio>; > + interrupts = <2 9 IRQ_TYPE_LEVEL_LOW>; /* PC9 */ > + > + vin1-supply = <®_vcc5v>; > + vin2-supply = <®_vcc5v>; > + vin3-supply = <®_vcc5v>; > + > + regulators { > + /* Supplies VCC-PLL, so needs to be always on. */ > + reg_aldo1: aldo1 { > + regulator-always-on; > + regulator-min-microvolt = <1800000>; > + regulator-max-microvolt = <1800000>; > + regulator-name = "vcc1v8"; > + }; > + > + /* Supplies VCC-IO, so needs to be always on. */ > + reg_dldo1: dldo1 { > + regulator-always-on; > + regulator-min-microvolt = <3300000>; > + regulator-max-microvolt = <3300000>; > + regulator-name = "vcc3v3"; > + }; > + > + reg_dcdc1: dcdc1 { > + regulator-always-on; > + regulator-min-microvolt = <810000>; > + regulator-max-microvolt = <990000>; > + regulator-name = "vdd-gpu-sys"; > + }; > + > + reg_dcdc2: dcdc2 { > + regulator-always-on; > + regulator-min-microvolt = <810000>; > + regulator-max-microvolt = <1100000>; > + regulator-name = "vdd-cpu"; > + }; > + > + reg_dcdc3: dcdc3 { > + regulator-always-on; > + regulator-min-microvolt = <1360000>; > + regulator-max-microvolt = <1360000>; > + regulator-name = "vdd-dram"; > + }; > + }; > + }; > +}; > + > +&pio { > + vcc-pc-supply = <®_aldo1>; > + vcc-pg-supply = <®_dldo1>; > + vcc-ph-supply = <®_dldo1>; > + vcc-pi-supply = <®_dldo1>; > +}; > + > +&uart0 { > + pinctrl-names = "default"; > + pinctrl-0 = <&uart0_ph_pins>; > + status = "okay"; > +}; > + > +&usbotg { > + dr_mode = "host"; /* USB A type receptable */ > + status = "okay"; > +}; > + > +&usbphy { > + status = "okay"; > +}; > diff --git a/configs/t95_axp313_defconfig b/configs/t95_axp313_defconfig > new file mode 100644 > index 0000000000..6542b5bc88 > --- /dev/null > +++ b/configs/t95_axp313_defconfig > @@ -0,0 +1,27 @@ > +CONFIG_ARM=y > +CONFIG_ARCH_SUNXI=y > +CONFIG_DEFAULT_DEVICE_TREE="sun50i-h616-t95-axp313" > +CONFIG_SPL=y > +CONFIG_MACH_SUN50I_H616=y > +CONFIG_DRAM_CLK=648 > +CONFIG_DRAM_SUN50I_H616_ODT_EN=0x1 > +CONFIG_DRAM_SUN50I_H616_DX_ODT=0x03030303 > +CONFIG_DRAM_SUN50I_H616_DX_DRI=0x0e0e0e0e > +CONFIG_DRAM_SUN50I_H616_CA_DRI=0x1c1c > +CONFIG_DRAM_SUN50I_H616_TPR10=0x2f0006 > +CONFIG_DRAM_SUN50I_H616_TPR11=0xffffdddd > +CONFIG_DRAM_SUN50I_H616_TPR12=0xfedf7657 > +CONFIG_SUNXI_DRAM_H616_DDR3_1333=y > +CONFIG_R_I2C_ENABLE=y > +CONFIG_SPL_I2C=y > +CONFIG_SPL_SYS_I2C_LEGACY=y > +CONFIG_SYS_I2C_MVTWSI=y > +CONFIG_SYS_I2C_SLAVE=0x7f > +CONFIG_SYS_I2C_SPEED=400000 > +CONFIG_SUPPORT_EMMC_BOOT=y > +CONFIG_AXP313_POWER=y > +CONFIG_AXP_DCDC3_VOLT=1360 > +CONFIG_USB_EHCI_HCD=y > +CONFIG_USB_OHCI_HCD=y > +CONFIG_SUN8I_EMAC=y > +CONFIG_SPL_IMAGE_TYPE_SUNXI_TOC0=y