Commit e0cb0c78 authored by Neil Armstrong's avatar Neil Armstrong

drm/panel: visionox-vtdr6130: switch to devm_regulator_bulk_get_const

Switch to devm_regulator_bulk_get_const() to stop setting the supplies
list in probe(), and move the regulator_bulk_data struct in static const.
Reviewed-by: default avatarDouglas Anderson <dianders@chromium.org>
Link: https://lore.kernel.org/r/20240828-topic-sm8x50-upstream-vtdr6130-multi-v1-2-0cae20d4c55d@linaro.orgSigned-off-by: default avatarNeil Armstrong <neil.armstrong@linaro.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20240828-topic-sm8x50-upstream-vtdr6130-multi-v1-2-0cae20d4c55d@linaro.org
parent 175d648b
...@@ -19,7 +19,13 @@ struct visionox_vtdr6130 { ...@@ -19,7 +19,13 @@ struct visionox_vtdr6130 {
struct drm_panel panel; struct drm_panel panel;
struct mipi_dsi_device *dsi; struct mipi_dsi_device *dsi;
struct gpio_desc *reset_gpio; struct gpio_desc *reset_gpio;
struct regulator_bulk_data supplies[3]; struct regulator_bulk_data *supplies;
};
static const struct regulator_bulk_data visionox_vtdr6130_supplies[] = {
{ .supply = "vddio" },
{ .supply = "vci" },
{ .supply = "vdd" },
}; };
static inline struct visionox_vtdr6130 *to_visionox_vtdr6130(struct drm_panel *panel) static inline struct visionox_vtdr6130 *to_visionox_vtdr6130(struct drm_panel *panel)
...@@ -139,7 +145,7 @@ static int visionox_vtdr6130_prepare(struct drm_panel *panel) ...@@ -139,7 +145,7 @@ static int visionox_vtdr6130_prepare(struct drm_panel *panel)
struct visionox_vtdr6130 *ctx = to_visionox_vtdr6130(panel); struct visionox_vtdr6130 *ctx = to_visionox_vtdr6130(panel);
int ret; int ret;
ret = regulator_bulk_enable(ARRAY_SIZE(ctx->supplies), ret = regulator_bulk_enable(ARRAY_SIZE(visionox_vtdr6130_supplies),
ctx->supplies); ctx->supplies);
if (ret < 0) if (ret < 0)
return ret; return ret;
...@@ -149,7 +155,8 @@ static int visionox_vtdr6130_prepare(struct drm_panel *panel) ...@@ -149,7 +155,8 @@ static int visionox_vtdr6130_prepare(struct drm_panel *panel)
ret = visionox_vtdr6130_on(ctx); ret = visionox_vtdr6130_on(ctx);
if (ret < 0) { if (ret < 0) {
gpiod_set_value_cansleep(ctx->reset_gpio, 1); gpiod_set_value_cansleep(ctx->reset_gpio, 1);
regulator_bulk_disable(ARRAY_SIZE(ctx->supplies), ctx->supplies); regulator_bulk_disable(ARRAY_SIZE(visionox_vtdr6130_supplies),
ctx->supplies);
return ret; return ret;
} }
...@@ -164,7 +171,8 @@ static int visionox_vtdr6130_unprepare(struct drm_panel *panel) ...@@ -164,7 +171,8 @@ static int visionox_vtdr6130_unprepare(struct drm_panel *panel)
gpiod_set_value_cansleep(ctx->reset_gpio, 1); gpiod_set_value_cansleep(ctx->reset_gpio, 1);
regulator_bulk_disable(ARRAY_SIZE(ctx->supplies), ctx->supplies); regulator_bulk_disable(ARRAY_SIZE(visionox_vtdr6130_supplies),
ctx->supplies);
return 0; return 0;
} }
...@@ -244,12 +252,10 @@ static int visionox_vtdr6130_probe(struct mipi_dsi_device *dsi) ...@@ -244,12 +252,10 @@ static int visionox_vtdr6130_probe(struct mipi_dsi_device *dsi)
if (!ctx) if (!ctx)
return -ENOMEM; return -ENOMEM;
ctx->supplies[0].supply = "vddio"; ret = devm_regulator_bulk_get_const(&dsi->dev,
ctx->supplies[1].supply = "vci"; ARRAY_SIZE(visionox_vtdr6130_supplies),
ctx->supplies[2].supply = "vdd"; visionox_vtdr6130_supplies,
&ctx->supplies);
ret = devm_regulator_bulk_get(&dsi->dev, ARRAY_SIZE(ctx->supplies),
ctx->supplies);
if (ret < 0) if (ret < 0)
return ret; return ret;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment