d1: add new target
[openwrt/staging/nbd.git] / target / linux / d1 / patches-6.1 / 0108-drm-panel-cwd686-Add-regulators.patch
1 From 979271f803c1578087a965a2a4b845c87e7d922f Mon Sep 17 00:00:00 2001
2 From: Samuel Holland <samuel@sholland.org>
3 Date: Sun, 7 Aug 2022 19:14:21 -0500
4 Subject: [PATCH 108/117] drm: panel: cwd686: Add regulators
5
6 Signed-off-by: Samuel Holland <samuel@sholland.org>
7 ---
8 .../gpu/drm/panel/panel-clockwork-cwd686.c | 26 ++++++++++++++++++-
9 1 file changed, 25 insertions(+), 1 deletion(-)
10
11 --- a/drivers/gpu/drm/panel/panel-clockwork-cwd686.c
12 +++ b/drivers/gpu/drm/panel/panel-clockwork-cwd686.c
13 @@ -20,7 +20,8 @@
14 struct cwd686 {
15 struct device *dev;
16 struct drm_panel panel;
17 - struct regulator *supply;
18 + struct regulator *iovcc;
19 + struct regulator *vci;
20 struct gpio_desc *enable_gpio;
21 struct gpio_desc *reset_gpio;
22 struct backlight_device *backlight;
23 @@ -279,6 +280,9 @@ static int cwd686_unprepare(struct drm_p
24
25 gpiod_set_value_cansleep(ctx->reset_gpio, 1);
26
27 + regulator_disable(ctx->vci);
28 + regulator_disable(ctx->iovcc);
29 +
30 ctx->prepared = false;
31
32 return 0;
33 @@ -293,6 +297,18 @@ static int cwd686_prepare(struct drm_pan
34 if (ctx->prepared)
35 return 0;
36
37 + err = regulator_enable(ctx->iovcc);
38 + if (err) {
39 + dev_err(ctx->dev, "failed to enable iovcc (%d)\n", err);
40 + return err;
41 + }
42 +
43 + err = regulator_enable(ctx->vci);
44 + if (err) {
45 + dev_err(ctx->dev, "failed to enable vci (%d)\n", err);
46 + return err;
47 + }
48 +
49 gpiod_set_value_cansleep(ctx->reset_gpio, 1);
50 /* T2 */
51 msleep(10);
52 @@ -402,6 +418,14 @@ static int cwd686_probe(struct mipi_dsi_
53 return err;
54 }
55
56 + ctx->iovcc = devm_regulator_get(dev, "iovcc");
57 + if (IS_ERR(ctx->iovcc))
58 + return PTR_ERR(ctx->iovcc);
59 +
60 + ctx->vci = devm_regulator_get(dev, "vci");
61 + if (IS_ERR(ctx->vci))
62 + return PTR_ERR(ctx->vci);
63 +
64 ctx->backlight = devm_of_find_backlight(dev);
65 if (IS_ERR(ctx->backlight))
66 return PTR_ERR(ctx->backlight);