2020-02-22 21:46:07

by Ondřej Jirman

[permalink] [raw]
Subject: [PATCH] arm64: dts: sun50i-h5-orange-pi-pc2: Add CPUX voltage regulator

Orange Pi PC2 features sy8106a regulator just like Orange Pi PC.

Signed-off-by: Ondrej Jirman <[email protected]>
---
.../dts/allwinner/sun50i-h5-orangepi-pc2.dts | 29 +++++++++++++++++++
1 file changed, 29 insertions(+)

diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-pc2.dts b/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-pc2.dts
index 70b5f09984218..5feedde95b5fc 100644
--- a/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-pc2.dts
+++ b/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-pc2.dts
@@ -85,6 +85,10 @@ reg_usb0_vbus: usb0-vbus {
};
};

+&cpu0 {
+ cpu-supply = <&reg_vdd_cpux>;
+};
+
&codec {
allwinner,audio-routing =
"Line Out", "LINEOUT",
@@ -180,6 +184,31 @@ flash@0 {
};
};

+&r_i2c {
+ status = "okay";
+
+ reg_vdd_cpux: regulator@65 {
+ compatible = "silergy,sy8106a";
+ reg = <0x65>;
+ regulator-name = "vdd-cpux";
+ silergy,fixed-microvolt = <1200000>;
+ /*
+ * The datasheet uses 1.1V as the minimum value of VDD-CPUX,
+ * however both the Armbian DVFS table and the official one
+ * have operating points with voltage under 1.1V, and both
+ * DVFS table are known to work properly at the lowest
+ * operating point.
+ *
+ * Use 1.0V as the minimum voltage instead.
+ */
+ regulator-min-microvolt = <1000000>;
+ regulator-max-microvolt = <1400000>;
+ regulator-ramp-delay = <200>;
+ regulator-boot-on;
+ regulator-always-on;
+ };
+};
+
&uart0 {
pinctrl-names = "default";
pinctrl-0 = <&uart0_pa_pins>;
--
2.25.1


2020-02-23 03:26:50

by Samuel Holland

[permalink] [raw]
Subject: Re: [linux-sunxi] [PATCH] arm64: dts: sun50i-h5-orange-pi-pc2: Add CPUX voltage regulator

Hi Ondrej,

On 2/22/20 3:45 PM, Ondrej Jirman wrote:
> Orange Pi PC2 features sy8106a regulator just like Orange Pi PC.
>
> Signed-off-by: Ondrej Jirman <[email protected]>
> ---
> .../dts/allwinner/sun50i-h5-orangepi-pc2.dts | 29 +++++++++++++++++++
> 1 file changed, 29 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-pc2.dts b/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-pc2.dts
> index 70b5f09984218..5feedde95b5fc 100644
> --- a/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-pc2.dts
> +++ b/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-pc2.dts
> @@ -85,6 +85,10 @@ reg_usb0_vbus: usb0-vbus {
> };
> };
>
> +&cpu0 {
> + cpu-supply = <&reg_vdd_cpux>;
> +};
> +

This should go alphabetically after "codec".

> &codec {
> allwinner,audio-routing =
> "Line Out", "LINEOUT",
> @@ -180,6 +184,31 @@ flash@0 {
> };
> };
>
> +&r_i2c {

This should go alphabetically before "spi0".

> + status = "okay";
> +
> + reg_vdd_cpux: regulator@65 {
> + compatible = "silergy,sy8106a";
> + reg = <0x65>;
> + regulator-name = "vdd-cpux";
> + silergy,fixed-microvolt = <1200000>;

The resistors in the datasheet (10k/11.8k) make this 1.1V.

> + /*
> + * The datasheet uses 1.1V as the minimum value of VDD-CPUX,
> + * however both the Armbian DVFS table and the official one
> + * have operating points with voltage under 1.1V, and both
> + * DVFS table are known to work properly at the lowest
> + * operating point.
> + *
> + * Use 1.0V as the minimum voltage instead.
> + */

The datasheet I have for H5 has "TBD" for the VDD-CPUX volatage range. I think
this comment only applies to H3 and is not necessary here.

> + regulator-min-microvolt = <1000000>;
> + regulator-max-microvolt = <1400000>;
> + regulator-ramp-delay = <200>;
> + regulator-boot-on;
> + regulator-always-on;
> + };
> +};
> +
> &uart0 {
> pinctrl-names = "default";
> pinctrl-0 = <&uart0_pa_pins>;
>

Otherwise,
Reviewed-by: Samuel Holland <[email protected]>

Regards,
Samuel

2020-02-23 10:38:26

by Ondřej Jirman

[permalink] [raw]
Subject: Re: [linux-sunxi] [PATCH] arm64: dts: sun50i-h5-orange-pi-pc2: Add CPUX voltage regulator

Hi Samuel,

On Sat, Feb 22, 2020 at 09:26:30PM -0600, Samuel Holland wrote:
> Hi Ondrej,
>
> On 2/22/20 3:45 PM, Ondrej Jirman wrote:
> > Orange Pi PC2 features sy8106a regulator just like Orange Pi PC.
> >
> > Signed-off-by: Ondrej Jirman <[email protected]>
> > ---
> > .../dts/allwinner/sun50i-h5-orangepi-pc2.dts | 29 +++++++++++++++++++
> > 1 file changed, 29 insertions(+)
> >
> > diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-pc2.dts b/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-pc2.dts
> > index 70b5f09984218..5feedde95b5fc 100644
> > --- a/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-pc2.dts
> > +++ b/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-pc2.dts
> > @@ -85,6 +85,10 @@ reg_usb0_vbus: usb0-vbus {
> > };
> > };
> >
> > +&cpu0 {
> > + cpu-supply = <&reg_vdd_cpux>;
> > +};
> > +
>
> This should go alphabetically after "codec".
>
> > &codec {
> > allwinner,audio-routing =
> > "Line Out", "LINEOUT",
> > @@ -180,6 +184,31 @@ flash@0 {
> > };
> > };
> >
> > +&r_i2c {
>
> This should go alphabetically before "spi0".
>
> > + status = "okay";
> > +
> > + reg_vdd_cpux: regulator@65 {
> > + compatible = "silergy,sy8106a";
> > + reg = <0x65>;
> > + regulator-name = "vdd-cpux";
> > + silergy,fixed-microvolt = <1200000>;
>
> The resistors in the datasheet (10k/11.8k) make this 1.1V.

Ah, you're right. I didn't notice the fine print bellow:

https://megous.com/dl/tmp/e696b6042b80bf2e.png

only the big number above. Hehe.

> > + /*
> > + * The datasheet uses 1.1V as the minimum value of VDD-CPUX,
> > + * however both the Armbian DVFS table and the official one
> > + * have operating points with voltage under 1.1V, and both
> > + * DVFS table are known to work properly at the lowest
> > + * operating point.
> > + *
> > + * Use 1.0V as the minimum voltage instead.
> > + */
>
> The datasheet I have for H5 has "TBD" for the VDD-CPUX volatage range. I think
> this comment only applies to H3 and is not necessary here.

Ok.

> > + regulator-min-microvolt = <1000000>;
> > + regulator-max-microvolt = <1400000>;
> > + regulator-ramp-delay = <200>;
> > + regulator-boot-on;
> > + regulator-always-on;
> > + };
> > +};
> > +
> > &uart0 {
> > pinctrl-names = "default";
> > pinctrl-0 = <&uart0_pa_pins>;
> >
>
> Otherwise,
> Reviewed-by: Samuel Holland <[email protected]>

Thanks for the feedback.

regards,
o.

> Regards,
> Samuel