+ return log_ret(ret);
+
+ ret = pwm_set_invert(priv->pwm, priv->channel, priv->polarity);
+ return log_ret(ret);
+}
+
+static int enable_sequence(struct udevice *dev, int seq)
+{
+ struct pwm_backlight_priv *priv = dev_get_priv(dev);
+ int ret;
+
+ switch (seq) {
+ case 0:
+ if (priv->reg) {
+ __maybe_unused struct dm_regulator_uclass_platdata
+ *plat;
+
+ plat = dev_get_uclass_platdata(priv->reg);
+ log_debug("Enable '%s', regulator '%s'/'%s'\n",
+ dev->name, priv->reg->name, plat->name);
+ ret = regulator_set_enable(priv->reg, true);
+ if (ret) {
+ log_debug("Cannot enable regulator for PWM '%s'\n",
+ dev->name);
+ return log_ret(ret);
+ }
+ mdelay(120);
+ }
+ break;
+ case 1:
+ mdelay(10);
+ dm_gpio_set_value(&priv->enable, 1);
+ break;
+ }
+
+ return 0;
+}
+
+static int pwm_backlight_enable(struct udevice *dev)
+{
+ struct pwm_backlight_priv *priv = dev_get_priv(dev);
+ int ret;
+
+ ret = enable_sequence(dev, 0);
+ if (ret)
+ return log_ret(ret);
+ ret = set_pwm(priv);
+ if (ret)
+ return log_ret(ret);