diff options
author | Álvaro Fernández Rojas <noltari@gmail.com> | 2021-02-18 18:04:33 +0100 |
---|---|---|
committer | Álvaro Fernández Rojas <noltari@gmail.com> | 2021-02-18 23:42:32 +0100 |
commit | f07e572f6447465d8938679533d604e402b0f066 (patch) | |
tree | cb333bd2a67e59e7c07659514850a0fd55fc825e /target/linux/bcm27xx/patches-5.4/950-0151-media-ov5647-Add-support-for-PWDN-GPIO.patch | |
parent | 5d3a6fd970619dfc55f8259035c3027d7613a2a6 (diff) | |
download | upstream-f07e572f6447465d8938679533d604e402b0f066.tar.gz upstream-f07e572f6447465d8938679533d604e402b0f066.tar.bz2 upstream-f07e572f6447465d8938679533d604e402b0f066.zip |
bcm27xx: import latest patches from the RPi foundation
bcm2708: boot tested on RPi B+ v1.2
bcm2709: boot tested on RPi 3B v1.2 and RPi 4B v1.1 4G
bcm2710: boot tested on RPi 3B v1.2
bcm2711: boot tested on RPi 4B v1.1 4G
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
Diffstat (limited to 'target/linux/bcm27xx/patches-5.4/950-0151-media-ov5647-Add-support-for-PWDN-GPIO.patch')
-rw-r--r-- | target/linux/bcm27xx/patches-5.4/950-0151-media-ov5647-Add-support-for-PWDN-GPIO.patch | 92 |
1 files changed, 0 insertions, 92 deletions
diff --git a/target/linux/bcm27xx/patches-5.4/950-0151-media-ov5647-Add-support-for-PWDN-GPIO.patch b/target/linux/bcm27xx/patches-5.4/950-0151-media-ov5647-Add-support-for-PWDN-GPIO.patch deleted file mode 100644 index 24b678f858..0000000000 --- a/target/linux/bcm27xx/patches-5.4/950-0151-media-ov5647-Add-support-for-PWDN-GPIO.patch +++ /dev/null @@ -1,92 +0,0 @@ -From 877bbff2bf6d53104efd1da9caf1e9cfff6f6ef4 Mon Sep 17 00:00:00 2001 -From: Dave Stevenson <dave.stevenson@raspberrypi.org> -Date: Wed, 31 Oct 2018 14:56:33 +0000 -Subject: [PATCH] media: ov5647: Add support for PWDN GPIO. - -Add support for an optional GPIO connected to PWDN on the sensor. - -Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org> ---- - drivers/media/i2c/ov5647.c | 28 ++++++++++++++++++++++++++++ - 1 file changed, 28 insertions(+) - ---- a/drivers/media/i2c/ov5647.c -+++ b/drivers/media/i2c/ov5647.c -@@ -21,6 +21,7 @@ - - #include <linux/clk.h> - #include <linux/delay.h> -+#include <linux/gpio/consumer.h> - #include <linux/i2c.h> - #include <linux/init.h> - #include <linux/io.h> -@@ -35,6 +36,13 @@ - - #define SENSOR_NAME "ov5647" - -+/* -+ * From the datasheet, "20ms after PWDN goes low or 20ms after RESETB goes -+ * high if reset is inserted after PWDN goes high, host can access sensor's -+ * SCCB to initialize sensor." -+ */ -+#define PWDN_ACTIVE_DELAY_MS 20 -+ - #define MIPI_CTRL00_CLOCK_LANE_GATE BIT(5) - #define MIPI_CTRL00_BUS_IDLE BIT(2) - #define MIPI_CTRL00_CLOCK_LANE_DISABLE BIT(0) -@@ -86,6 +94,7 @@ struct ov5647 { - unsigned int height; - int power_count; - struct clk *xclk; -+ struct gpio_desc *pwdn; - }; - - static inline struct ov5647 *to_state(struct v4l2_subdev *sd) -@@ -355,6 +364,11 @@ static int ov5647_sensor_power(struct v4 - if (on && !ov5647->power_count) { - dev_dbg(&client->dev, "OV5647 power on\n"); - -+ if (ov5647->pwdn) { -+ gpiod_set_value(ov5647->pwdn, 0); -+ msleep(PWDN_ACTIVE_DELAY_MS); -+ } -+ - ret = clk_prepare_enable(ov5647->xclk); - if (ret < 0) { - dev_err(&client->dev, "clk prepare enable failed\n"); -@@ -392,6 +406,8 @@ static int ov5647_sensor_power(struct v4 - dev_dbg(&client->dev, "soft stby failed\n"); - - clk_disable_unprepare(ov5647->xclk); -+ -+ gpiod_set_value(ov5647->pwdn, 1); - } - - /* Update the power count. */ -@@ -603,6 +619,10 @@ static int ov5647_probe(struct i2c_clien - return -EINVAL; - } - -+ /* Request the power down GPIO asserted */ -+ sensor->pwdn = devm_gpiod_get_optional(&client->dev, "pwdn", -+ GPIOD_OUT_HIGH); -+ - mutex_init(&sensor->lock); - - sd = &sensor->sd; -@@ -616,7 +636,15 @@ static int ov5647_probe(struct i2c_clien - if (ret < 0) - goto mutex_remove; - -+ if (sensor->pwdn) { -+ gpiod_set_value(sensor->pwdn, 0); -+ msleep(PWDN_ACTIVE_DELAY_MS); -+ } -+ - ret = ov5647_detect(sd); -+ -+ gpiod_set_value(sensor->pwdn, 1); -+ - if (ret < 0) - goto error; - |