In the code, the default polarity is set to positive/positive, which is neither normal polarity or inverted polarity. It's only the hardware default. This leads to booting linux with wrong polarity setting.
Update the code to use PWM_DUTY_POSTIVE | PWM_INACTIVE_NEGATIVE by default instead. Signed-off-by: Arnaud Patard <arnaud.pat...@rtp-net.org> Index: u-boot/drivers/pwm/rk_pwm.c =================================================================== --- u-boot.orig/drivers/pwm/rk_pwm.c +++ u-boot/drivers/pwm/rk_pwm.c @@ -146,7 +146,7 @@ static int rk_pwm_probe(struct udevice * priv->data = (struct rockchip_pwm_data *)dev_get_driver_data(dev); if (priv->data->supports_polarity) - priv->conf_polarity = PWM_DUTY_POSTIVE | PWM_INACTIVE_POSTIVE; + priv->conf_polarity = PWM_DUTY_POSTIVE | PWM_INACTIVE_NEGATIVE; return 0; }