[PATCH v3 2/2] arm64: dts: rockchip: Enable regulators for Radxa E20C
Jonas Karlman
jonas at kwiboo.se
Mon May 5 16:12:54 PDT 2025
On 2025-04-01 14:00, Chukun Pan wrote:
> Enable pwm and fixed regulators for Radxa E20C. The pwm regulator is
> used to power the CPU and GPU. Note that the LPDDR4 voltage is 1.1V.
>
> Signed-off-by: Chukun Pan <amadeus at jmu.edu.cn>
This seem to match the schematics of the E20C and the regulators work on
my E20C:
regulator use open bypass opmode voltage current min max
---------------------------------------------------------------------------------------
regulator-dummy 1 0 0 unknown 0mV 0mA 0mV 0mV
vcc5v0_sys 7 6 0 unknown 5000mV 0mA 5000mV 5000mV
vdd_0v9 1 0 0 unknown 900mV 0mA 900mV 900mV
vcc_ddr 1 0 0 unknown 1100mV 0mA 1100mV 1100mV
vcc_3v3 5 5 0 unknown 3300mV 0mA 3300mV 3300mV
ffbf0000.mmc-vmmc 1 0mA 3300mV 3400mV
ffc30000.mmc-vmmc 1 0mA 3300mV 3400mV
1-0050-vcc 0 0mA 0mV 0mV
ffbe0000.ethernet-phy 1 0mA 0mV 0mV
vcc_1v8 3 2 0 unknown 1800mV 0mA 1800mV 1800mV
ffbf0000.mmc-vqmmc 1 0mA 0mV 0mV
ffae0000.adc-vref 1 0mA 0mV 0mV
vccio_sd 2 1 0 unknown 1800mV 0mA 1800mV 3300mV
ffc30000.mmc-vqmmc 1 0mA 1800mV 1950mV
vdd_arm 1 0 0 unknown 1201mV 0mA 746mV 1201mV
vdd_logic 1 0 0 unknown 1006mV 0mA 705mV 1006mV
Without any opp table or the pwm-regulators not being initialized in
U-Boot they seem to default to max voltage, should be fine so this is:
Reviewed-by: Jonas Karlman <jonas at kwiboo.se>
Regards,
Jonas
> ---
> .../boot/dts/rockchip/rk3528-radxa-e20c.dts | 73 +++++++++++++++++++
> 1 file changed, 73 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/rockchip/rk3528-radxa-e20c.dts b/arch/arm64/boot/dts/rockchip/rk3528-radxa-e20c.dts
> index 57a446b5cbd6..14770bd63ae7 100644
> --- a/arch/arm64/boot/dts/rockchip/rk3528-radxa-e20c.dts
> +++ b/arch/arm64/boot/dts/rockchip/rk3528-radxa-e20c.dts
> @@ -9,6 +9,7 @@
>
> #include <dt-bindings/input/input.h>
> #include <dt-bindings/leds/common.h>
> +#include <dt-bindings/pwm/pwm.h>
> #include "rk3528.dtsi"
>
> / {
> @@ -80,6 +81,26 @@ led-wan {
> };
> };
>
> + vdd_0v9: regulator-0v9-vdd {
> + compatible = "regulator-fixed";
> + regulator-name = "vdd_0v9";
> + regulator-always-on;
> + regulator-boot-on;
> + regulator-min-microvolt = <900000>;
> + regulator-max-microvolt = <900000>;
> + vin-supply = <&vcc5v0_sys>;
> + };
> +
> + vcc_ddr: regulator-1v1-vcc-ddr {
> + compatible = "regulator-fixed";
> + regulator-name = "vcc_ddr";
> + regulator-always-on;
> + regulator-boot-on;
> + regulator-min-microvolt = <1100000>;
> + regulator-max-microvolt = <1100000>;
> + vin-supply = <&vcc5v0_sys>;
> + };
> +
> vcc_1v8: regulator-1v8-vcc {
> compatible = "regulator-fixed";
> regulator-name = "vcc_1v8";
> @@ -108,6 +129,46 @@ vcc5v0_sys: regulator-5v0-vcc-sys {
> regulator-min-microvolt = <5000000>;
> regulator-max-microvolt = <5000000>;
> };
> +
> + vdd_arm: regulator-vdd-arm {
> + compatible = "pwm-regulator";
> + pwms = <&pwm1 0 5000 PWM_POLARITY_INVERTED>;
> + pwm-supply = <&vcc5v0_sys>;
> + regulator-name = "vdd_arm";
> + regulator-always-on;
> + regulator-boot-on;
> + regulator-min-microvolt = <746000>;
> + regulator-max-microvolt = <1201000>;
> + regulator-settling-time-up-us = <250>;
> + };
> +
> + vdd_logic: regulator-vdd-logic {
> + compatible = "pwm-regulator";
> + pwms = <&pwm2 0 5000 PWM_POLARITY_INVERTED>;
> + pwm-supply = <&vcc5v0_sys>;
> + regulator-name = "vdd_logic";
> + regulator-always-on;
> + regulator-boot-on;
> + regulator-min-microvolt = <705000>;
> + regulator-max-microvolt = <1006000>;
> + regulator-settling-time-up-us = <250>;
> + };
> +};
> +
> +&cpu0 {
> + cpu-supply = <&vdd_arm>;
> +};
> +
> +&cpu1 {
> + cpu-supply = <&vdd_arm>;
> +};
> +
> +&cpu2 {
> + cpu-supply = <&vdd_arm>;
> +};
> +
> +&cpu3 {
> + cpu-supply = <&vdd_arm>;
> };
>
> &pinctrl {
> @@ -132,6 +193,18 @@ wan_led_g: wan-led-g {
> };
> };
>
> +&pwm1 {
> + pinctrl-names = "default";
> + pinctrl-0 = <&pwm1m0_pins>;
> + status = "okay";
> +};
> +
> +&pwm2 {
> + pinctrl-names = "default";
> + pinctrl-0 = <&pwm2m0_pins>;
> + status = "okay";
> +};
> +
> &saradc {
> vref-supply = <&vcc_1v8>;
> status = "okay";
More information about the linux-arm-kernel
mailing list