summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSvyatoslav Ryhel <clamor95@gmail.com>2025-02-21 17:22:47 +0200
committerSvyatoslav Ryhel <clamor95@gmail.com>2025-03-19 10:59:23 +0200
commit1d4e23d3d4fe90071b29a381f0ea04214d45b181 (patch)
tree3c169ebf91cd7fc5495e1329e4391d70f8ba6cc6
parentc3eb558288d1b3c4b9ebde3d08310622b63f7afe (diff)
video: backlight: lm3533: configure core in the probe
Configure core stuff in the probe. Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
-rw-r--r--drivers/video/lm3533_backlight.c31
1 files changed, 24 insertions, 7 deletions
diff --git a/drivers/video/lm3533_backlight.c b/drivers/video/lm3533_backlight.c
index a1a7397cbdc..f97f17fec4e 100644
--- a/drivers/video/lm3533_backlight.c
+++ b/drivers/video/lm3533_backlight.c
@@ -23,6 +23,10 @@
#define LM3533_CONTROL_BANK_A_FULLSCALE_CURRENT 0x1F
#define LM3533_CONTROL_BANK_ENABLE 0x27
#define LM3533_OVP_FREQUENCY_PWM_POLARITY 0x2C
+#define BOOST_OVP_MASK GENMASK(2, 1)
+#define BOOST_OVP_SHIFT 1
+#define BOOST_FREQ_MASK BIT(0)
+#define BOOST_FREQ_SHIFT 0
#define LM3533_BRIGHTNESS_REGISTER_A 0x40
#define LM3533_BOOST_OVP_16V 16000000UL
@@ -49,9 +53,6 @@ static int lm3533_backlight_enable(struct udevice *dev)
struct lm3533_backlight_priv *priv = dev_get_priv(dev);
int ret;
- dm_gpio_set_value(&priv->enable_gpio, 1);
- mdelay(5);
-
/* HVLED 1 & 2 are controlled by Bank A */
ret = dm_i2c_reg_write(dev, LM3533_SINK_OUTPUT_CONFIG_1, 0x00);
if (ret)
@@ -77,10 +78,6 @@ static int lm3533_backlight_enable(struct udevice *dev)
if (ret)
return ret;
- ret = dm_i2c_reg_write(dev, LM3533_OVP_FREQUENCY_PWM_POLARITY, 0x0A);
- if (ret)
- return ret;
-
return 0;
}
@@ -159,9 +156,29 @@ static int lm3533_backlight_of_to_plat(struct udevice *dev)
static int lm3533_backlight_probe(struct udevice *dev)
{
+ struct lm3533_backlight_priv *priv = dev_get_priv(dev);
+ int ret;
+
if (device_get_uclass_id(dev->parent) != UCLASS_I2C)
return -EPROTONOSUPPORT;
+ dm_gpio_set_value(&priv->enable_gpio, 1);
+ mdelay(5);
+
+ ret = dm_i2c_reg_clrset(dev, LM3533_OVP_FREQUENCY_PWM_POLARITY,
+ BOOST_FREQ_MASK, priv->boost_freq << BOOST_FREQ_SHIFT);
+ if (ret) {
+ log_debug("%s: freq config failed %d\n", __func__, ret);
+ return ret;
+ }
+
+ ret = dm_i2c_reg_clrset(dev, LM3533_OVP_FREQUENCY_PWM_POLARITY,
+ BOOST_OVP_MASK, priv->boost_ovp << BOOST_OVP_SHIFT);
+ if (ret) {
+ log_debug("%s: ovp config failed %d\n", __func__, ret);
+ return ret;
+ }
+
return 0;
}