On 2016年09月19日 17:25, Boris Brezillon wrote:
On Mon, 19 Sep 2016 16:44:56 +0800
Andy Yan <[email protected]> wrote:
The current rk3066a based boards(Rayeager, Bqcurie2, Marsboard) use
pwm modulate vdd_logic voltage, but the pwm is default disabled and
the pwm pin acts as a gpio before pwm regulator probed, so the pwm
regulator driver will get a zero dutycycle at probe time, so change
the initial dutycycle to zero to match pwm_regulator_init_state check.
Signed-off-by: Andy Yan <[email protected]>
---
arch/arm/boot/dts/rk3066a-bqcurie2.dts | 2 +-
arch/arm/boot/dts/rk3066a-marsboard.dts | 2 +-
arch/arm/boot/dts/rk3066a-rayeager.dts | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/arch/arm/boot/dts/rk3066a-bqcurie2.dts
b/arch/arm/boot/dts/rk3066a-bqcurie2.dts
index bc674ee..618450d 100644
--- a/arch/arm/boot/dts/rk3066a-bqcurie2.dts
+++ b/arch/arm/boot/dts/rk3066a-bqcurie2.dts
@@ -61,7 +61,7 @@
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1200000>;
regulator-always-on;
- voltage-table = <1000000 100>,
+ voltage-table = <1000000 0>,
<1200000 42>;
So, it seems you are reversing the PWM polarity here. Are you sure you
shouldn't change the 2nd entry of this table (<1200000 58>)?
no, 42% duty cycle give a stable 1.2v vdd_logic voltage on my
board. As i explained in the commit, the pwm was default at a disabled
state before regulator_register success at pwm_regulator probe, so
pwm_regulator_init_state function will get a zero dutycycle from
pwm_get_relative_dutycycle. I have to change the dutycycle of fist
table to zero to match the following check, other wise the function will
return defualt value(-EINVAL), then the pwm regulator register failed.
status = "okay";
};
diff --git a/arch/arm/boot/dts/rk3066a-marsboard.dts
b/arch/arm/boot/dts/rk3066a-marsboard.dts
index a2b763e..ddc680b 100644
--- a/arch/arm/boot/dts/rk3066a-marsboard.dts
+++ b/arch/arm/boot/dts/rk3066a-marsboard.dts
@@ -59,7 +59,7 @@
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1200000>;
regulator-always-on;
- voltage-table = <1000000 100>,
+ voltage-table = <1000000 0>,
<1200000 42>;
status = "okay";
};
diff --git a/arch/arm/boot/dts/rk3066a-rayeager.dts
b/arch/arm/boot/dts/rk3066a-rayeager.dts
index 2536b3a..30aee99 100644
--- a/arch/arm/boot/dts/rk3066a-rayeager.dts
+++ b/arch/arm/boot/dts/rk3066a-rayeager.dts
@@ -84,7 +84,7 @@
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1200000>;
regulator-always-on;
- voltage-table = <1000000 100>,
+ voltage-table = <1000000 0>,
<1200000 42>;
status = "okay";
};