Commit ed2b818a authored by David Heidelberg's avatar David Heidelberg Committed by Neil Armstrong
Browse files

drm/panel: sw43408: 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.

Cosmetic: adjust comment for regulator from 1.88V to 1.8 V.

Reviewed-by: default avatarDmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Signed-off-by: default avatarDavid Heidelberg <david@ixit.cz>
Signed-off-by: default avatarNeil Armstrong <neil.armstrong@linaro.org>
Link: https://patch.msgid.link/20251214-pixel-3-v7-6-b1c0cf6f224d@ixit.cz
parent cbc1e99a
Loading
Loading
Loading
Loading
+14 −12
Original line number Diff line number Diff line
@@ -20,13 +20,18 @@
#include <drm/display/drm_dsc.h>
#include <drm/display/drm_dsc_helper.h>

#define NUM_SUPPLIES 2
static const struct regulator_bulk_data sw43408_supplies[] = {
	{ .supply = "vddi", /* 1.8 V */
	  .init_load_uA = 62000 },
	{ .supply = "vpnl", /* 3.0 V */
	  .init_load_uA = 857000 },
};

struct sw43408_panel {
	struct drm_panel base;
	struct mipi_dsi_device *link;

	struct regulator_bulk_data supplies[NUM_SUPPLIES];
	struct regulator_bulk_data *supplies;

	struct gpio_desc *reset_gpio;

@@ -52,7 +57,7 @@ static int sw43408_unprepare(struct drm_panel *panel)

	gpiod_set_value(sw43408->reset_gpio, 1);

	ret = regulator_bulk_disable(ARRAY_SIZE(sw43408->supplies), sw43408->supplies);
	ret = regulator_bulk_disable(ARRAY_SIZE(sw43408_supplies), sw43408->supplies);

	return ret ? : ctx.accum_err;
}
@@ -134,7 +139,7 @@ static int sw43408_prepare(struct drm_panel *panel)
	struct sw43408_panel *ctx = to_panel_info(panel);
	int ret;

	ret = regulator_bulk_enable(ARRAY_SIZE(ctx->supplies), ctx->supplies);
	ret = regulator_bulk_enable(ARRAY_SIZE(sw43408_supplies), ctx->supplies);
	if (ret < 0)
		return ret;

@@ -150,7 +155,7 @@ static int sw43408_prepare(struct drm_panel *panel)

poweroff:
	gpiod_set_value(ctx->reset_gpio, 1);
	regulator_bulk_disable(ARRAY_SIZE(ctx->supplies), ctx->supplies);
	regulator_bulk_disable(ARRAY_SIZE(sw43408_supplies), ctx->supplies);
	return ret;
}

@@ -230,13 +235,10 @@ static int sw43408_add(struct sw43408_panel *ctx)
	struct device *dev = &ctx->link->dev;
	int ret;

	ctx->supplies[0].supply = "vddi"; /* 1.88 V */
	ctx->supplies[0].init_load_uA = 62000;
	ctx->supplies[1].supply = "vpnl"; /* 3.0 V */
	ctx->supplies[1].init_load_uA = 857000;

	ret = devm_regulator_bulk_get(dev, ARRAY_SIZE(ctx->supplies),
				      ctx->supplies);
	ret = devm_regulator_bulk_get_const(dev,
					    ARRAY_SIZE(sw43408_supplies),
					    sw43408_supplies,
					    &ctx->supplies);
	if (ret < 0)
		return ret;