* [[PATCH v3] 2/6] [media] ad5820: DT new optional field enable-gpios
2018-09-20 20:45 [[PATCH v3] 1/6] [media] ad5820: Add support for enable pin Ricardo Ribalda Delgado
@ 2018-09-20 20:45 ` Ricardo Ribalda Delgado
2018-09-20 20:45 ` [[PATCH v3] 3/6] [media] ad5820: Add support for of-autoload Ricardo Ribalda Delgado
` (3 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: Ricardo Ribalda Delgado @ 2018-09-20 20:45 UTC (permalink / raw)
To: Pavel Machek, Sakari Ailus, Mauro Carvalho Chehab, linux-media,
linux-kernel, Hans Verkuil, Laurent Pinchart
Cc: Ricardo Ribalda Delgado, devicetree
Document new enable-gpio field. It can be used to disable the part
without turning down its regulator.
Cc: devicetree@vger.kernel.org
Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
Acked-by: Pavel Machek <pavel@ucw.cz>
---
Documentation/devicetree/bindings/media/i2c/ad5820.txt | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/Documentation/devicetree/bindings/media/i2c/ad5820.txt b/Documentation/devicetree/bindings/media/i2c/ad5820.txt
index 5940ca11c021..9ccd96d3d5f0 100644
--- a/Documentation/devicetree/bindings/media/i2c/ad5820.txt
+++ b/Documentation/devicetree/bindings/media/i2c/ad5820.txt
@@ -8,6 +8,12 @@ Required Properties:
- VANA-supply: supply of voltage for VANA pin
+Optional properties:
+
+ - enable-gpios : GPIO spec for the XSHUTDOWN pin. Note that the polarity of
+the enable GPIO is the opposite of the XSHUTDOWN pin (asserting the enable
+GPIO deasserts the XSHUTDOWN signal and vice versa).
+
Example:
ad5820: coil@c {
@@ -15,5 +21,6 @@ Example:
reg = <0x0c>;
VANA-supply = <&vaux4>;
+ enable-gpios = <&msmgpio 26 GPIO_ACTIVE_HIGH>;
};
--
2.18.0
^ permalink raw reply [flat|nested] 6+ messages in thread* [[PATCH v3] 3/6] [media] ad5820: Add support for of-autoload
2018-09-20 20:45 [[PATCH v3] 1/6] [media] ad5820: Add support for enable pin Ricardo Ribalda Delgado
2018-09-20 20:45 ` [[PATCH v3] 2/6] [media] ad5820: DT new optional field enable-gpios Ricardo Ribalda Delgado
@ 2018-09-20 20:45 ` Ricardo Ribalda Delgado
2018-09-20 20:45 ` [[PATCH v3] 4/6] [media] ad5820: Add support for acpi autoload Ricardo Ribalda Delgado
` (2 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: Ricardo Ribalda Delgado @ 2018-09-20 20:45 UTC (permalink / raw)
To: Pavel Machek, Sakari Ailus, Mauro Carvalho Chehab, linux-media,
linux-kernel, Hans Verkuil, Laurent Pinchart
Cc: Ricardo Ribalda Delgado
Since kernel 4.16, i2c devices with DT compatible tag are modprobed
using their DT modalias.
Without this patch, if this driver is build as module it would never
be autoprobed.
Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
Acked-by: Pavel Machek <pavel@ucw.cz>
---
drivers/media/i2c/ad5820.c | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/drivers/media/i2c/ad5820.c b/drivers/media/i2c/ad5820.c
index 625867472929..e461d36201a4 100644
--- a/drivers/media/i2c/ad5820.c
+++ b/drivers/media/i2c/ad5820.c
@@ -372,12 +372,21 @@ static const struct i2c_device_id ad5820_id_table[] = {
};
MODULE_DEVICE_TABLE(i2c, ad5820_id_table);
+#ifdef CONFIG_OF
+static const struct of_device_id ad5820_of_table[] = {
+ { .compatible = "adi,ad5820" },
+ { }
+};
+MODULE_DEVICE_TABLE(of, ad5820_of_table);
+#endif
+
static SIMPLE_DEV_PM_OPS(ad5820_pm, ad5820_suspend, ad5820_resume);
static struct i2c_driver ad5820_i2c_driver = {
.driver = {
.name = AD5820_NAME,
.pm = &ad5820_pm,
+ .of_match_table = of_match_ptr(ad5820_of_table),
},
.probe = ad5820_probe,
.remove = ad5820_remove,
--
2.18.0
^ permalink raw reply [flat|nested] 6+ messages in thread* [[PATCH v3] 4/6] [media] ad5820: Add support for acpi autoload
2018-09-20 20:45 [[PATCH v3] 1/6] [media] ad5820: Add support for enable pin Ricardo Ribalda Delgado
2018-09-20 20:45 ` [[PATCH v3] 2/6] [media] ad5820: DT new optional field enable-gpios Ricardo Ribalda Delgado
2018-09-20 20:45 ` [[PATCH v3] 3/6] [media] ad5820: Add support for of-autoload Ricardo Ribalda Delgado
@ 2018-09-20 20:45 ` Ricardo Ribalda Delgado
2018-09-20 20:45 ` [[PATCH v3] 5/6] [media] ad5820: Add support for ad5821 and ad5823 Ricardo Ribalda Delgado
2018-09-20 20:45 ` [[PATCH v3] 6/6] [media] ad5820: DT new compatible devices Ricardo Ribalda Delgado
4 siblings, 0 replies; 6+ messages in thread
From: Ricardo Ribalda Delgado @ 2018-09-20 20:45 UTC (permalink / raw)
To: Pavel Machek, Sakari Ailus, Mauro Carvalho Chehab, linux-media,
linux-kernel, Hans Verkuil, Laurent Pinchart
Cc: Ricardo Ribalda Delgado
Allow module autoloading of ad5820 ACPI devices.
Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
---
drivers/media/i2c/ad5820.c | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/drivers/media/i2c/ad5820.c b/drivers/media/i2c/ad5820.c
index e461d36201a4..5d1185e7f78d 100644
--- a/drivers/media/i2c/ad5820.c
+++ b/drivers/media/i2c/ad5820.c
@@ -22,6 +22,7 @@
* General Public License for more details.
*/
+#include <linux/acpi.h>
#include <linux/errno.h>
#include <linux/i2c.h>
#include <linux/kernel.h>
@@ -380,6 +381,15 @@ static const struct of_device_id ad5820_of_table[] = {
MODULE_DEVICE_TABLE(of, ad5820_of_table);
#endif
+#ifdef CONFIG_ACPI
+static const struct acpi_device_id ad5820_acpi_ids[] = {
+ { "AD5820" },
+ { }
+};
+
+MODULE_DEVICE_TABLE(acpi, ad5820_acpi_ids);
+#endif
+
static SIMPLE_DEV_PM_OPS(ad5820_pm, ad5820_suspend, ad5820_resume);
static struct i2c_driver ad5820_i2c_driver = {
@@ -387,6 +397,7 @@ static struct i2c_driver ad5820_i2c_driver = {
.name = AD5820_NAME,
.pm = &ad5820_pm,
.of_match_table = of_match_ptr(ad5820_of_table),
+ .acpi_match_table = ACPI_PTR(ad5820_acpi_ids),
},
.probe = ad5820_probe,
.remove = ad5820_remove,
--
2.18.0
^ permalink raw reply [flat|nested] 6+ messages in thread* [[PATCH v3] 5/6] [media] ad5820: Add support for ad5821 and ad5823
2018-09-20 20:45 [[PATCH v3] 1/6] [media] ad5820: Add support for enable pin Ricardo Ribalda Delgado
` (2 preceding siblings ...)
2018-09-20 20:45 ` [[PATCH v3] 4/6] [media] ad5820: Add support for acpi autoload Ricardo Ribalda Delgado
@ 2018-09-20 20:45 ` Ricardo Ribalda Delgado
2018-09-20 20:45 ` [[PATCH v3] 6/6] [media] ad5820: DT new compatible devices Ricardo Ribalda Delgado
4 siblings, 0 replies; 6+ messages in thread
From: Ricardo Ribalda Delgado @ 2018-09-20 20:45 UTC (permalink / raw)
To: Pavel Machek, Sakari Ailus, Mauro Carvalho Chehab, linux-media,
linux-kernel, Hans Verkuil, Laurent Pinchart
Cc: Ricardo Ribalda Delgado
According to the datasheet, both AD5821 and AD5820 share a compatible
register-set:
http://www.analog.com/media/en/technical-documentation/data-sheets/AD5821.pdf
Some camera modules also refer that AD5823 is a replacement of AD5820:
https://download.kamami.com/p564094-OV8865_DS.pdf
Suggested-by: Pavel Machek <pavel@ucw.cz>
Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
---
drivers/media/i2c/ad5820.c | 12 ++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)
diff --git a/drivers/media/i2c/ad5820.c b/drivers/media/i2c/ad5820.c
index 5d1185e7f78d..c52af302d516 100644
--- a/drivers/media/i2c/ad5820.c
+++ b/drivers/media/i2c/ad5820.c
@@ -34,8 +34,6 @@
#include <media/v4l2-device.h>
#include <media/v4l2-subdev.h>
-#define AD5820_NAME "ad5820"
-
/* Register definitions */
#define AD5820_POWER_DOWN (1 << 15)
#define AD5820_DAC_SHIFT 4
@@ -368,7 +366,9 @@ static int ad5820_remove(struct i2c_client *client)
}
static const struct i2c_device_id ad5820_id_table[] = {
- { AD5820_NAME, 0 },
+ { "ad5820", 0 },
+ { "ad5821", 0 },
+ { "ad5823", 0 },
{ }
};
MODULE_DEVICE_TABLE(i2c, ad5820_id_table);
@@ -376,6 +376,8 @@ MODULE_DEVICE_TABLE(i2c, ad5820_id_table);
#ifdef CONFIG_OF
static const struct of_device_id ad5820_of_table[] = {
{ .compatible = "adi,ad5820" },
+ { .compatible = "adi,ad5821" },
+ { .compatible = "adi,ad5823" },
{ }
};
MODULE_DEVICE_TABLE(of, ad5820_of_table);
@@ -384,6 +386,8 @@ MODULE_DEVICE_TABLE(of, ad5820_of_table);
#ifdef CONFIG_ACPI
static const struct acpi_device_id ad5820_acpi_ids[] = {
{ "AD5820" },
+ { "AD5821" },
+ { "AD5823" },
{ }
};
@@ -394,7 +398,7 @@ static SIMPLE_DEV_PM_OPS(ad5820_pm, ad5820_suspend, ad5820_resume);
static struct i2c_driver ad5820_i2c_driver = {
.driver = {
- .name = AD5820_NAME,
+ .name = "ad5820",
.pm = &ad5820_pm,
.of_match_table = of_match_ptr(ad5820_of_table),
.acpi_match_table = ACPI_PTR(ad5820_acpi_ids),
--
2.18.0
^ permalink raw reply [flat|nested] 6+ messages in thread* [[PATCH v3] 6/6] [media] ad5820: DT new compatible devices
2018-09-20 20:45 [[PATCH v3] 1/6] [media] ad5820: Add support for enable pin Ricardo Ribalda Delgado
` (3 preceding siblings ...)
2018-09-20 20:45 ` [[PATCH v3] 5/6] [media] ad5820: Add support for ad5821 and ad5823 Ricardo Ribalda Delgado
@ 2018-09-20 20:45 ` Ricardo Ribalda Delgado
4 siblings, 0 replies; 6+ messages in thread
From: Ricardo Ribalda Delgado @ 2018-09-20 20:45 UTC (permalink / raw)
To: Pavel Machek, Sakari Ailus, Mauro Carvalho Chehab, linux-media,
linux-kernel, Hans Verkuil, Laurent Pinchart
Cc: Ricardo Ribalda Delgado, devicetree
Document new compatible devices.
Cc: devicetree@vger.kernel.org
Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
---
Documentation/devicetree/bindings/media/i2c/ad5820.txt | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/Documentation/devicetree/bindings/media/i2c/ad5820.txt b/Documentation/devicetree/bindings/media/i2c/ad5820.txt
index 9ccd96d3d5f0..cc7b10fe0368 100644
--- a/Documentation/devicetree/bindings/media/i2c/ad5820.txt
+++ b/Documentation/devicetree/bindings/media/i2c/ad5820.txt
@@ -2,7 +2,10 @@
Required Properties:
- - compatible: Must contain "adi,ad5820"
+ - compatible: Must contain one of:
+ - "adi,ad5820"
+ - "adi,ad5821"
+ - "adi,ad5823"
- reg: I2C slave address
--
2.18.0
^ permalink raw reply [flat|nested] 6+ messages in thread