Hi, > Interesting, good that it works with the updated U-Boot. Main change > compared to v1 is that it now use clock/reset id and DT closer to what > has been merged in mainline Linux. It also has DT params to help > initialize the two pwm regulators used by these boards. > > I will try with the old v1 U-Boot series and see if I can replicated > your issue. Hi, I found the reason. I did some experiments today: pwm-regulator pwm1 | pwm2 | pwm3 ----------------------------------- ArmSoM Sige1 | | work | work | Radxa E20C | work | hang | | other 3528 | work | hang | | This looks weird, so I tested it further: In the new series of u-boot: ``` --- a/arch/arm/dts/rk3528-radxa-e20c-u-boot.dtsi +++ b/arch/arm/dts/rk3528-radxa-e20c-u-boot.dtsi @@ -8,9 +8,9 @@ }; &vdd_arm { - regulator-init-microvolt = <953000>; + status = "disabled"; # Cancel changes, pwm works }; &vdd_logic { - regulator-init-microvolt = <900000>; + status = "disabled"; # Cancel changes, kernel hang }; ``` I looked at schematic and found an interesting thing: 1. ArmSoM Sige1 schematic: VDD_LOGIC Default 0.901V 2. Radxa E20C schematic: VDD_LOGIC No default voltage Therefore, the default voltage of VDD_LOGIC (supply to GPU and LOGIC) needs to be set to 0.9V when initializing. This can be done by hardware or software (such as u-boot) Should we support this in the kernel driver of regulator? Thanks, Chukun -- 2.25.1