From: Andre Przywara <andre.przywara@arm.com>
To: Samuel Holland <samuel@sholland.org>
Cc: Chen-Yu Tsai <wens@csie.org>,
Jernej Skrabec <jernej.skrabec@gmail.com>,
Rob Herring <robh+dt@kernel.org>,
Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>,
Linus Walleij <linus.walleij@linaro.org>,
devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
linux-sunxi@lists.linux.dev, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v12 7/7] arm64: dts: allwinner: h616: Add X96 Mate TV box support
Date: Fri, 8 Jul 2022 10:48:56 +0100 [thread overview]
Message-ID: <20220708104856.70a40730@donnerap.cambridge.arm.com> (raw)
In-Reply-To: <22aa3412-2dc2-4d7e-1c61-c5d35b25fe6d@sholland.org>
On Mon, 4 Jul 2022 20:29:45 -0500
Samuel Holland <samuel@sholland.org> wrote:
Hi,
> On 7/1/22 6:24 AM, Andre Przywara wrote:
> > The X96 Mate is an Allwinner H616 based TV box, featuring:
> > - Four ARM Cortex-A53 cores, Mali-G31 MP2 GPU
> > - 2GiB/4GiB RAM (fully usable!)
> > - 16/32/64GiB eMMC
> > - 100Mbps Ethernet (via embedded AC200 EPHY, not yet supported)
> > - Unsupported Allwinner WiFi chip
> > - 2 x USB 2.0 host ports
> > - HDMI port
> > - IR receiver
> > - 5V/2A DC power supply via barrel plug
> >
> > Add a basic devicetree for it, with SD card and eMMC working, as
> > well as serial and the essential peripherals, like the AXP PMIC.
> >
> > This DT is somewhat minimal, and should work on many other similar TV
> > boxes with the Allwinner H616 chip.
> >
> > Signed-off-by: Andre Przywara <andre.przywara@arm.com>
>
> Looks good to me, with one question below.
>
> Reviewed-by: Samuel Holland <samuel@sholland.org>
Thanks!
> > ---
> > arch/arm64/boot/dts/allwinner/Makefile | 1 +
> > .../dts/allwinner/sun50i-h616-x96-mate.dts | 177 ++++++++++++++++++
> > 2 files changed, 178 insertions(+)
> > create mode 100644 arch/arm64/boot/dts/allwinner/sun50i-h616-x96-mate.dts
> >
> > diff --git a/arch/arm64/boot/dts/allwinner/Makefile b/arch/arm64/boot/dts/allwinner/Makefile
> > index df2214e6d946a..6a96494a2e0a3 100644
> > --- a/arch/arm64/boot/dts/allwinner/Makefile
> > +++ b/arch/arm64/boot/dts/allwinner/Makefile
> > @@ -39,3 +39,4 @@ dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h6-pine-h64-model-b.dtb
> > dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h6-tanix-tx6.dtb
> > dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h6-tanix-tx6-mini.dtb
> > dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h616-orangepi-zero2.dtb
> > +dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h616-x96-mate.dtb
> > diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h616-x96-mate.dts b/arch/arm64/boot/dts/allwinner/sun50i-h616-x96-mate.dts
> > new file mode 100644
> > index 0000000000000..30b76140b9c8a
> > --- /dev/null
> > +++ b/arch/arm64/boot/dts/allwinner/sun50i-h616-x96-mate.dts
> > @@ -0,0 +1,177 @@
> > +// SPDX-License-Identifier: (GPL-2.0+ or MIT)
> > +/*
> > + * Copyright (C) 2021 Arm Ltd.
> > + */
> > +
> > +/dts-v1/;
> > +
> > +#include "sun50i-h616.dtsi"
> > +
> > +#include <dt-bindings/gpio/gpio.h>
> > +#include <dt-bindings/interrupt-controller/arm-gic.h>
> > +
> > +/ {
> > + model = "X96 Mate";
> > + compatible = "hechuang,x96-mate", "allwinner,sun50i-h616";
> > +
> > + 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;
> > + };
> > +};
> > +
> > +&ir {
> > + status = "okay";
> > +};
> > +
> > +&mmc0 {
> > + vmmc-supply = <®_dcdce>;
> > + cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; /* PF6 */
> > + bus-width = <4>;
> > + status = "okay";
> > +};
> > +
> > +&mmc2 {
> > + vmmc-supply = <®_dcdce>;
> > + vqmmc-supply = <®_bldo1>;
> > + bus-width = <8>;
> > + non-removable;
> > + cap-mmc-hw-reset;
> > + mmc-ddr-1_8v;
> > + mmc-hs200-1_8v;
> > + status = "okay";
> > +};
> > +
> > +&r_rsb {
> > + status = "okay";
> > +
> > + axp305: pmic@745 {
> > + compatible = "x-powers,axp305", "x-powers,axp805",
> > + "x-powers,axp806";
> > + interrupt-controller;
> > + #interrupt-cells = <1>;
> > + reg = <0x745>;
> > +
> > + x-powers,self-working-mode;
> > + vina-supply = <®_vcc5v>;
> > + vinb-supply = <®_vcc5v>;
> > + vinc-supply = <®_vcc5v>;
> > + vind-supply = <®_vcc5v>;
> > + vine-supply = <®_vcc5v>;
> > + aldoin-supply = <®_vcc5v>;
> > + bldoin-supply = <®_vcc5v>;
> > + cldoin-supply = <®_vcc5v>;
> > +
> > + regulators {
> > + reg_aldo1: aldo1 {
> > + regulator-always-on;
> > + regulator-min-microvolt = <3300000>;
> > + regulator-max-microvolt = <3300000>;
> > + regulator-name = "vcc-sys";
> > + };
> > +
> > + /* Enabled by the Android BSP */
> > + reg_aldo2: aldo2 {
> > + regulator-min-microvolt = <3300000>;
> > + regulator-max-microvolt = <3300000>;
> > + regulator-name = "vcc3v3-ext";
> > + status = "disabled";
>
> If you disable these nodes, the regulator core will ignore them and not apply
> the voltages. Is that what you want?
It's what works ;-)
ALDO2 was enabled and set to 3.3V by Android, also set in their DTB.
However I figured it's not needed for our operation, at least not with
the peripherals we support (including USB): turning it on or off didn't
change anything. I just kept this in as documentation and a guide for
future enablement, as this may drive *something*.
Cheers,
Andre
>
> Regards,
> Samuel
>
> > + };
> > +
> > + /* Enabled by the Android BSP */
> > + reg_aldo3: aldo3 {
> > + regulator-min-microvolt = <3300000>;
> > + regulator-max-microvolt = <3300000>;
> > + regulator-name = "vcc3v3-ext2";
> > + status = "disabled";
> > + };
> > +
> > + reg_bldo1: bldo1 {
> > + regulator-always-on;
> > + regulator-min-microvolt = <1800000>;
> > + regulator-max-microvolt = <1800000>;
> > + regulator-name = "vcc1v8";
> > + };
> > +
> > + /* Enabled by the Android BSP */
> > + reg_bldo2: bldo2 {
> > + regulator-min-microvolt = <1800000>;
> > + regulator-max-microvolt = <1800000>;
> > + regulator-name = "vcc1v8-2";
> > + status = "disabled";
> > + };
> > +
> > + bldo3 {
> > + /* unused */
> > + };
> > +
> > + bldo4 {
> > + /* unused */
> > + };
> > +
> > + cldo1 {
> > + regulator-min-microvolt = <2500000>;
> > + regulator-max-microvolt = <2500000>;
> > + regulator-name = "vcc2v5";
> > + };
> > +
> > + cldo2 {
> > + /* unused */
> > + };
> > +
> > + cldo3 {
> > + /* unused */
> > + };
> > +
> > + reg_dcdca: dcdca {
> > + regulator-always-on;
> > + regulator-min-microvolt = <810000>;
> > + regulator-max-microvolt = <1080000>;
> > + regulator-name = "vdd-cpu";
> > + };
> > +
> > + reg_dcdcc: dcdcc {
> > + regulator-always-on;
> > + regulator-min-microvolt = <810000>;
> > + regulator-max-microvolt = <1080000>;
> > + regulator-name = "vdd-gpu-sys";
> > + };
> > +
> > + reg_dcdcd: dcdcd {
> > + regulator-always-on;
> > + regulator-min-microvolt = <1360000>;
> > + regulator-max-microvolt = <1360000>;
> > + regulator-name = "vdd-dram";
> > + };
> > +
> > + reg_dcdce: dcdce {
> > + regulator-always-on;
> > + regulator-min-microvolt = <3300000>;
> > + regulator-max-microvolt = <3300000>;
> > + regulator-name = "vcc-eth-mmc";
> > + };
> > +
> > + sw {
> > + /* unused */
> > + };
> > + };
> > + };
> > +};
> > +
> > +&uart0 {
> > + pinctrl-names = "default";
> > + pinctrl-0 = <&uart0_ph_pins>;
> > + status = "okay";
> > +};
> >
>
WARNING: multiple messages have this Message-ID (diff)
From: Andre Przywara <andre.przywara@arm.com>
To: Samuel Holland <samuel@sholland.org>
Cc: Chen-Yu Tsai <wens@csie.org>,
Jernej Skrabec <jernej.skrabec@gmail.com>,
Rob Herring <robh+dt@kernel.org>,
Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>,
Linus Walleij <linus.walleij@linaro.org>,
devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
linux-sunxi@lists.linux.dev, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v12 7/7] arm64: dts: allwinner: h616: Add X96 Mate TV box support
Date: Fri, 8 Jul 2022 10:48:56 +0100 [thread overview]
Message-ID: <20220708104856.70a40730@donnerap.cambridge.arm.com> (raw)
In-Reply-To: <22aa3412-2dc2-4d7e-1c61-c5d35b25fe6d@sholland.org>
On Mon, 4 Jul 2022 20:29:45 -0500
Samuel Holland <samuel@sholland.org> wrote:
Hi,
> On 7/1/22 6:24 AM, Andre Przywara wrote:
> > The X96 Mate is an Allwinner H616 based TV box, featuring:
> > - Four ARM Cortex-A53 cores, Mali-G31 MP2 GPU
> > - 2GiB/4GiB RAM (fully usable!)
> > - 16/32/64GiB eMMC
> > - 100Mbps Ethernet (via embedded AC200 EPHY, not yet supported)
> > - Unsupported Allwinner WiFi chip
> > - 2 x USB 2.0 host ports
> > - HDMI port
> > - IR receiver
> > - 5V/2A DC power supply via barrel plug
> >
> > Add a basic devicetree for it, with SD card and eMMC working, as
> > well as serial and the essential peripherals, like the AXP PMIC.
> >
> > This DT is somewhat minimal, and should work on many other similar TV
> > boxes with the Allwinner H616 chip.
> >
> > Signed-off-by: Andre Przywara <andre.przywara@arm.com>
>
> Looks good to me, with one question below.
>
> Reviewed-by: Samuel Holland <samuel@sholland.org>
Thanks!
> > ---
> > arch/arm64/boot/dts/allwinner/Makefile | 1 +
> > .../dts/allwinner/sun50i-h616-x96-mate.dts | 177 ++++++++++++++++++
> > 2 files changed, 178 insertions(+)
> > create mode 100644 arch/arm64/boot/dts/allwinner/sun50i-h616-x96-mate.dts
> >
> > diff --git a/arch/arm64/boot/dts/allwinner/Makefile b/arch/arm64/boot/dts/allwinner/Makefile
> > index df2214e6d946a..6a96494a2e0a3 100644
> > --- a/arch/arm64/boot/dts/allwinner/Makefile
> > +++ b/arch/arm64/boot/dts/allwinner/Makefile
> > @@ -39,3 +39,4 @@ dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h6-pine-h64-model-b.dtb
> > dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h6-tanix-tx6.dtb
> > dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h6-tanix-tx6-mini.dtb
> > dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h616-orangepi-zero2.dtb
> > +dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h616-x96-mate.dtb
> > diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h616-x96-mate.dts b/arch/arm64/boot/dts/allwinner/sun50i-h616-x96-mate.dts
> > new file mode 100644
> > index 0000000000000..30b76140b9c8a
> > --- /dev/null
> > +++ b/arch/arm64/boot/dts/allwinner/sun50i-h616-x96-mate.dts
> > @@ -0,0 +1,177 @@
> > +// SPDX-License-Identifier: (GPL-2.0+ or MIT)
> > +/*
> > + * Copyright (C) 2021 Arm Ltd.
> > + */
> > +
> > +/dts-v1/;
> > +
> > +#include "sun50i-h616.dtsi"
> > +
> > +#include <dt-bindings/gpio/gpio.h>
> > +#include <dt-bindings/interrupt-controller/arm-gic.h>
> > +
> > +/ {
> > + model = "X96 Mate";
> > + compatible = "hechuang,x96-mate", "allwinner,sun50i-h616";
> > +
> > + 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;
> > + };
> > +};
> > +
> > +&ir {
> > + status = "okay";
> > +};
> > +
> > +&mmc0 {
> > + vmmc-supply = <®_dcdce>;
> > + cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; /* PF6 */
> > + bus-width = <4>;
> > + status = "okay";
> > +};
> > +
> > +&mmc2 {
> > + vmmc-supply = <®_dcdce>;
> > + vqmmc-supply = <®_bldo1>;
> > + bus-width = <8>;
> > + non-removable;
> > + cap-mmc-hw-reset;
> > + mmc-ddr-1_8v;
> > + mmc-hs200-1_8v;
> > + status = "okay";
> > +};
> > +
> > +&r_rsb {
> > + status = "okay";
> > +
> > + axp305: pmic@745 {
> > + compatible = "x-powers,axp305", "x-powers,axp805",
> > + "x-powers,axp806";
> > + interrupt-controller;
> > + #interrupt-cells = <1>;
> > + reg = <0x745>;
> > +
> > + x-powers,self-working-mode;
> > + vina-supply = <®_vcc5v>;
> > + vinb-supply = <®_vcc5v>;
> > + vinc-supply = <®_vcc5v>;
> > + vind-supply = <®_vcc5v>;
> > + vine-supply = <®_vcc5v>;
> > + aldoin-supply = <®_vcc5v>;
> > + bldoin-supply = <®_vcc5v>;
> > + cldoin-supply = <®_vcc5v>;
> > +
> > + regulators {
> > + reg_aldo1: aldo1 {
> > + regulator-always-on;
> > + regulator-min-microvolt = <3300000>;
> > + regulator-max-microvolt = <3300000>;
> > + regulator-name = "vcc-sys";
> > + };
> > +
> > + /* Enabled by the Android BSP */
> > + reg_aldo2: aldo2 {
> > + regulator-min-microvolt = <3300000>;
> > + regulator-max-microvolt = <3300000>;
> > + regulator-name = "vcc3v3-ext";
> > + status = "disabled";
>
> If you disable these nodes, the regulator core will ignore them and not apply
> the voltages. Is that what you want?
It's what works ;-)
ALDO2 was enabled and set to 3.3V by Android, also set in their DTB.
However I figured it's not needed for our operation, at least not with
the peripherals we support (including USB): turning it on or off didn't
change anything. I just kept this in as documentation and a guide for
future enablement, as this may drive *something*.
Cheers,
Andre
>
> Regards,
> Samuel
>
> > + };
> > +
> > + /* Enabled by the Android BSP */
> > + reg_aldo3: aldo3 {
> > + regulator-min-microvolt = <3300000>;
> > + regulator-max-microvolt = <3300000>;
> > + regulator-name = "vcc3v3-ext2";
> > + status = "disabled";
> > + };
> > +
> > + reg_bldo1: bldo1 {
> > + regulator-always-on;
> > + regulator-min-microvolt = <1800000>;
> > + regulator-max-microvolt = <1800000>;
> > + regulator-name = "vcc1v8";
> > + };
> > +
> > + /* Enabled by the Android BSP */
> > + reg_bldo2: bldo2 {
> > + regulator-min-microvolt = <1800000>;
> > + regulator-max-microvolt = <1800000>;
> > + regulator-name = "vcc1v8-2";
> > + status = "disabled";
> > + };
> > +
> > + bldo3 {
> > + /* unused */
> > + };
> > +
> > + bldo4 {
> > + /* unused */
> > + };
> > +
> > + cldo1 {
> > + regulator-min-microvolt = <2500000>;
> > + regulator-max-microvolt = <2500000>;
> > + regulator-name = "vcc2v5";
> > + };
> > +
> > + cldo2 {
> > + /* unused */
> > + };
> > +
> > + cldo3 {
> > + /* unused */
> > + };
> > +
> > + reg_dcdca: dcdca {
> > + regulator-always-on;
> > + regulator-min-microvolt = <810000>;
> > + regulator-max-microvolt = <1080000>;
> > + regulator-name = "vdd-cpu";
> > + };
> > +
> > + reg_dcdcc: dcdcc {
> > + regulator-always-on;
> > + regulator-min-microvolt = <810000>;
> > + regulator-max-microvolt = <1080000>;
> > + regulator-name = "vdd-gpu-sys";
> > + };
> > +
> > + reg_dcdcd: dcdcd {
> > + regulator-always-on;
> > + regulator-min-microvolt = <1360000>;
> > + regulator-max-microvolt = <1360000>;
> > + regulator-name = "vdd-dram";
> > + };
> > +
> > + reg_dcdce: dcdce {
> > + regulator-always-on;
> > + regulator-min-microvolt = <3300000>;
> > + regulator-max-microvolt = <3300000>;
> > + regulator-name = "vcc-eth-mmc";
> > + };
> > +
> > + sw {
> > + /* unused */
> > + };
> > + };
> > + };
> > +};
> > +
> > +&uart0 {
> > + pinctrl-names = "default";
> > + pinctrl-0 = <&uart0_ph_pins>;
> > + status = "okay";
> > +};
> >
>
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2022-07-08 9:49 UTC|newest]
Thread overview: 48+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-07-01 11:24 [PATCH v12 0/7] arm64: sunxi: Allwinner H616 SoC DT support Andre Przywara
2022-07-01 11:24 ` Andre Przywara
2022-07-01 11:24 ` [PATCH v12 1/7] dt-bindings: arm: sunxi: Add H616 EMAC compatible Andre Przywara
2022-07-01 11:24 ` Andre Przywara
2022-07-01 20:56 ` Rob Herring
2022-07-01 20:56 ` Rob Herring
2022-07-04 23:53 ` Samuel Holland
2022-07-04 23:53 ` Samuel Holland
2022-07-05 10:19 ` Andre Przywara
2022-07-05 10:19 ` Andre Przywara
2022-07-06 3:55 ` Samuel Holland
2022-07-06 3:55 ` Samuel Holland
2022-07-11 0:16 ` Andre Przywara
2022-07-11 0:16 ` Andre Przywara
2022-07-01 11:24 ` [PATCH v12 2/7] dt-bindings: pinctrl: sunxi: Make interrupts optional Andre Przywara
2022-07-01 11:24 ` Andre Przywara
2022-07-01 20:57 ` Rob Herring
2022-07-01 20:57 ` Rob Herring
2022-07-04 23:55 ` Samuel Holland
2022-07-04 23:55 ` Samuel Holland
2022-07-01 11:24 ` [PATCH v12 3/7] arm64: dts: allwinner: Add Allwinner H616 .dtsi file Andre Przywara
2022-07-01 11:24 ` Andre Przywara
2022-07-05 1:16 ` Samuel Holland
2022-07-05 1:16 ` Samuel Holland
2022-07-05 10:42 ` Andre Przywara
2022-07-05 10:42 ` Andre Przywara
2022-07-07 6:36 ` Samuel Holland
2022-07-07 6:36 ` Samuel Holland
2022-07-01 11:24 ` [PATCH v12 4/7] dt-bindings: pinctrl: sunxi: allow vcc-pi-supply Andre Przywara
2022-07-01 11:24 ` Andre Przywara
2022-07-01 20:57 ` Rob Herring
2022-07-01 20:57 ` Rob Herring
2022-07-05 1:18 ` Samuel Holland
2022-07-05 1:18 ` Samuel Holland
2022-07-01 11:24 ` [PATCH v12 5/7] dt-bindings: arm: sunxi: Add two H616 board compatible strings Andre Przywara
2022-07-01 11:24 ` Andre Przywara
2022-07-01 11:24 ` [PATCH v12 6/7] arm64: dts: allwinner: h616: Add OrangePi Zero 2 board support Andre Przywara
2022-07-01 11:24 ` Andre Przywara
2022-07-05 1:45 ` Samuel Holland
2022-07-05 1:45 ` Samuel Holland
2022-07-08 9:49 ` Andre Przywara
2022-07-08 9:49 ` Andre Przywara
2022-07-01 11:24 ` [PATCH v12 7/7] arm64: dts: allwinner: h616: Add X96 Mate TV box support Andre Przywara
2022-07-01 11:24 ` Andre Przywara
2022-07-05 1:29 ` Samuel Holland
2022-07-05 1:29 ` Samuel Holland
2022-07-08 9:48 ` Andre Przywara [this message]
2022-07-08 9:48 ` Andre Przywara
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20220708104856.70a40730@donnerap.cambridge.arm.com \
--to=andre.przywara@arm.com \
--cc=devicetree@vger.kernel.org \
--cc=jernej.skrabec@gmail.com \
--cc=krzysztof.kozlowski+dt@linaro.org \
--cc=linus.walleij@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-sunxi@lists.linux.dev \
--cc=robh+dt@kernel.org \
--cc=samuel@sholland.org \
--cc=wens@csie.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.