aboutsummaryrefslogtreecommitdiff
path: root/target/linux/bcm27xx/patches-6.1/950-0525-media-dt-bindings-Add-regulator-to-dw9807-vcm.patch
blob: 13d9175644065c7e7cd35e66bca5481dc56015c7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
From d2b7bb49d170cecb5c4f3e8df19b7b2a2891e4ce Mon Sep 17 00:00:00 2001
From: Dave Stevenson <dave.stevenson@raspberrypi.com>
Date: Tue, 3 Jan 2023 16:41:08 +0000
Subject: [PATCH] media: dt-bindings: Add regulator to dw9807-vcm

The VCM driver will often be controlled via a regulator,
therefore add in the relevant DT hooks.

Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
---
 .../devicetree/bindings/media/i2c/dongwoon,dw9807-vcm.yaml    | 4 ++++
 drivers/media/i2c/dw9807-vcm.c                                | 4 ++++
 2 files changed, 8 insertions(+)

--- a/Documentation/devicetree/bindings/media/i2c/dongwoon,dw9807-vcm.yaml
+++ b/Documentation/devicetree/bindings/media/i2c/dongwoon,dw9807-vcm.yaml
@@ -27,6 +27,10 @@ properties:
   reg:
     maxItems: 1
 
+  VDD-supply:
+    description:
+      Definition of the regulator used as VDD power supply to the driver.
+
 required:
   - compatible
   - reg
--- a/drivers/media/i2c/dw9807-vcm.c
+++ b/drivers/media/i2c/dw9807-vcm.c
@@ -301,6 +301,10 @@ static void dw9807_remove(struct i2c_cli
 	struct v4l2_subdev *sd = i2c_get_clientdata(client);
 	struct dw9807_device *dw9807_dev = sd_to_dw9807_vcm(sd);
 
+	if (dw9807_dev->vdd)
+		regulator_unregister_notifier(dw9807_dev->vdd,
+					      &dw9807_dev->notifier);
+
 	pm_runtime_disable(&client->dev);
 
 	dw9807_subdev_cleanup(dw9807_dev);