brcm2708: organize kernel patches
[openwrt/staging/chunkeey.git] / target / linux / brcm2708 / patches-4.19 / 950-0294-dtoverlays-Correct-DT-handling-camera-GPIOs.patch
diff --git a/target/linux/brcm2708/patches-4.19/950-0294-dtoverlays-Correct-DT-handling-camera-GPIOs.patch b/target/linux/brcm2708/patches-4.19/950-0294-dtoverlays-Correct-DT-handling-camera-GPIOs.patch
new file mode 100644 (file)
index 0000000..9d64710
--- /dev/null
@@ -0,0 +1,85 @@
+From 5c0dfdba54fdaeb813d8535283aa8f75080e1055 Mon Sep 17 00:00:00 2001
+From: Dave Stevenson <dave.stevenson@raspberrypi.org>
+Date: Tue, 18 Sep 2018 10:47:38 +0100
+Subject: [PATCH] dtoverlays: Correct DT handling camera GPIOs
+
+The firmware has support for updating overrides with the correct
+GPIO settings for the camera GPIOs, but the wrong device tree
+setup ended up being merged.
+Correct the DT configuration so that the firmware does set it
+up correctly.
+
+Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
+---
+ arch/arm/boot/dts/bcm270x.dtsi                |  7 +++++++
+ arch/arm/boot/dts/overlays/README             | 10 +---------
+ arch/arm/boot/dts/overlays/ov5647-overlay.dts | 14 +++++++++++---
+ 3 files changed, 19 insertions(+), 12 deletions(-)
+
+--- a/arch/arm/boot/dts/bcm270x.dtsi
++++ b/arch/arm/boot/dts/bcm270x.dtsi
+@@ -152,6 +152,13 @@
+               regulator-max-microvolt = <3300000>;
+               regulator-always-on;
+       };
++
++      __overrides__ {
++              cam0-pwdn-ctrl;
++              cam0-pwdn;
++              cam0-led-ctrl;
++              cam0-led;
++      };
+ };
+ &vc4 {
+--- a/arch/arm/boot/dts/overlays/README
++++ b/arch/arm/boot/dts/overlays/README
+@@ -1366,15 +1366,7 @@ Info:   Omnivision OV5647 camera module.
+         Uses Unicam 1, which is the standard camera connector on most Pi
+         variants.
+ Load:   dtoverlay=ov5647,<param>=<val>
+-Params: cam0-pwdn               GPIO used to control the sensor powerdown line.
+-
+-        cam0-led                GPIO used to control the sensor led
+-                                Both these fields should be automatically filled
+-                                in by the firmware to reflect the default GPIO
+-                                configuration of the particular Pi variant in
+-                                use.
+-
+-        i2c_pins_0_1            Use pins 0&1 for the I2C instead of 44&45.
++Params: i2c_pins_0_1            Use pins 0&1 for the I2C instead of 44&45.
+                                 Useful on Compute Modules.
+         i2c_pins_28_29          Use pins 28&29 for the I2C instead of 44&45.
+--- a/arch/arm/boot/dts/overlays/ov5647-overlay.dts
++++ b/arch/arm/boot/dts/overlays/ov5647-overlay.dts
+@@ -14,7 +14,7 @@
+                       status = "okay";
+                       ov5647: ov5647@36 {
+-                              compatible = "ov5647";
++                              compatible = "ovti,ov5647";
+                               reg = <0x36>;
+                               status = "okay";
+@@ -82,10 +82,18 @@
+               };
+       };
++      fragment@6 {
++              target-path="/__overrides__";
++              __overlay__ {
++                      cam0-pwdn-ctrl = <&ov5647>,"pwdn-gpios:0";
++                      cam0-pwdn      = <&ov5647>,"pwdn-gpios:4";
++                      cam0-led-ctrl  = <&ov5647>,"pwdn-gpios:12";
++                      cam0-led       = <&ov5647>,"pwdn-gpios:16";
++              };
++      };
++
+       __overrides__ {
+               i2c_pins_0_1 = <0>,"-2-3+4";
+               i2c_pins_28_29 = <0>,"+2-3-4";
+-              cam0-pwdn = <&ov5647>,"pwdn-gpios:4";
+-              cam0-led = <&ov5647>,"pwdn-gpios:16";
+       };
+ };