aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/bcm27xx/patches-5.15/950-0609-dtoverlays-Convert-the-camera-sensor-overlays-to-use.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/bcm27xx/patches-5.15/950-0609-dtoverlays-Convert-the-camera-sensor-overlays-to-use.patch')
-rw-r--r--target/linux/bcm27xx/patches-5.15/950-0609-dtoverlays-Convert-the-camera-sensor-overlays-to-use.patch474
1 files changed, 474 insertions, 0 deletions
diff --git a/target/linux/bcm27xx/patches-5.15/950-0609-dtoverlays-Convert-the-camera-sensor-overlays-to-use.patch b/target/linux/bcm27xx/patches-5.15/950-0609-dtoverlays-Convert-the-camera-sensor-overlays-to-use.patch
new file mode 100644
index 0000000000..6d7203b3bc
--- /dev/null
+++ b/target/linux/bcm27xx/patches-5.15/950-0609-dtoverlays-Convert-the-camera-sensor-overlays-to-use.patch
@@ -0,0 +1,474 @@
+From f8b75a1bcdbf2b5cc591079cafad3b94cc74ff48 Mon Sep 17 00:00:00 2001
+From: Dave Stevenson <dave.stevenson@raspberrypi.com>
+Date: Sat, 20 Nov 2021 14:43:29 +0000
+Subject: [PATCH] dtoverlays: Convert the camera sensor overlays to use
+ the new regs and clks.
+
+Now that we have regulators and clocks defined in the base DT for
+image sensors, switch the overlays to use them.
+
+Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
+---
+ arch/arm/boot/dts/overlays/imx219-overlay.dts | 40 ++++---------------
+ .../boot/dts/overlays/imx290_327-overlay.dtsi | 40 ++++---------------
+ .../boot/dts/overlays/imx477_378-overlay.dtsi | 31 +++-----------
+ arch/arm/boot/dts/overlays/imx519-overlay.dts | 38 +++---------------
+ arch/arm/boot/dts/overlays/ov5647-overlay.dts | 18 +++++----
+ arch/arm/boot/dts/overlays/ov7251-overlay.dts | 37 +++--------------
+ arch/arm/boot/dts/overlays/ov9281-overlay.dts | 39 ++++--------------
+ 7 files changed, 50 insertions(+), 193 deletions(-)
+
+--- a/arch/arm/boot/dts/overlays/imx219-overlay.dts
++++ b/arch/arm/boot/dts/overlays/imx219-overlay.dts
+@@ -20,12 +20,12 @@
+ reg = <0x10>;
+ status = "okay";
+
+- clocks = <&imx219_clk>;
++ clocks = <&cam1_clk>;
+ clock-names = "xclk";
+
+ VANA-supply = <&cam1_reg>; /* 2.8v */
+- VDIG-supply = <&imx219_vdig>; /* 1.8v */
+- VDDL-supply = <&imx219_vddl>; /* 1.2v */
++ VDIG-supply = <&cam_dummy_reg>; /* 1.8v */
++ VDDL-supply = <&cam_dummy_reg>; /* 1.2v */
+
+ rotation = <180>;
+ orientation = <2>;
+@@ -68,26 +68,10 @@
+ };
+
+ fragment@3 {
+- target-path="/";
++ target = <&cam1_clk>;
+ __overlay__ {
+- imx219_vdig: fixedregulator@1 {
+- compatible = "regulator-fixed";
+- regulator-name = "imx219_vdig";
+- regulator-min-microvolt = <1800000>;
+- regulator-max-microvolt = <1800000>;
+- };
+- imx219_vddl: fixedregulator@2 {
+- compatible = "regulator-fixed";
+- regulator-name = "imx219_vddl";
+- regulator-min-microvolt = <1200000>;
+- regulator-max-microvolt = <1200000>;
+- };
+-
+- imx219_clk: camera-clk {
+- compatible = "fixed-clock";
+- #clock-cells = <0>;
+- clock-frequency = <24000000>;
+- };
++ status = "okay";
++ clock-frequency = <24000000>;
+ };
+ };
+
+@@ -99,16 +83,6 @@
+ };
+
+ fragment@5 {
+- target = <&cam1_reg>;
+- __overlay__ {
+- status = "okay";
+- regulator-name = "imx219_vana";
+- regulator-min-microvolt = <2800000>;
+- regulator-max-microvolt = <2800000>;
+- };
+- };
+-
+- fragment@6 {
+ target = <&csi1>;
+ __overlay__ {
+ brcm,media-controller;
+@@ -118,6 +92,6 @@
+ __overrides__ {
+ rotation = <&imx219>,"rotation:0";
+ orientation = <&imx219>,"orientation:0";
+- media-controller = <0>,"=6";
++ media-controller = <0>,"=5";
+ };
+ };
+--- a/arch/arm/boot/dts/overlays/imx290_327-overlay.dtsi
++++ b/arch/arm/boot/dts/overlays/imx290_327-overlay.dtsi
+@@ -20,7 +20,7 @@
+ reg = <0x1a>;
+ status = "okay";
+
+- clocks = <&imx290_clk>;
++ clocks = <&cam1_clk>;
+ clock-names = "xclk";
+ clock-frequency = <37125000>;
+
+@@ -28,8 +28,8 @@
+ orientation = <2>;
+
+ vdda-supply = <&cam1_reg>; /* 2.8v */
+- vdddo-supply = <&imx290_vdddo>; /* 1.8v */
+- vddd-supply = <&imx290_vddd>; /* 1.5v */
++ vdddo-supply = <&cam_dummy_reg>; /* 1.8v */
++ vddd-supply = <&cam_dummy_reg>; /* 1.5v */
+
+ port {
+ imx290_0: endpoint {
+@@ -62,26 +62,10 @@
+ };
+
+ fragment@3 {
+- target-path="/";
++ target = <&cam1_clk>;
+ __overlay__ {
+- imx290_vdddo: fixedregulator@1 {
+- compatible = "regulator-fixed";
+- regulator-name = "imx290_vdddo";
+- regulator-min-microvolt = <1800000>;
+- regulator-max-microvolt = <1800000>;
+- };
+- imx290_vddd: fixedregulator@2 {
+- compatible = "regulator-fixed";
+- regulator-name = "imx290_vddd";
+- regulator-min-microvolt = <1500000>;
+- regulator-max-microvolt = <1500000>;
+- };
+-
+- imx290_clk: camera-clk {
+- compatible = "fixed-clock";
+- #clock-cells = <0>;
+- clock-frequency = <37125000>;
+- };
++ status = "okay";
++ clock-frequency = <37125000>;
+ };
+ };
+
+@@ -92,16 +76,6 @@
+ };
+ };
+
+- fragment@5 {
+- target = <&cam1_reg>;
+- __overlay__ {
+- status = "okay";
+- regulator-name = "imx290_vdda";
+- regulator-min-microvolt = <2800000>;
+- regulator-max-microvolt = <2800000>;
+- };
+- };
+-
+ fragment@6 {
+ target = <&imx290_0>;
+ __overlay__ {
+@@ -143,7 +117,7 @@
+
+ __overrides__ {
+ 4lane = <0>, "-6+7-8+9";
+- clock-frequency = <&imx290_clk>,"clock-frequency:0",
++ clock-frequency = <&cam1_clk>,"clock-frequency:0",
+ <&imx290>,"clock-frequency:0";
+ rotation = <&imx290>,"rotation:0";
+ orientation = <&imx290>,"orientation:0";
+--- a/arch/arm/boot/dts/overlays/imx477_378-overlay.dtsi
++++ b/arch/arm/boot/dts/overlays/imx477_378-overlay.dtsi
+@@ -15,12 +15,12 @@
+ reg = <0x1a>;
+ status = "okay";
+
+- clocks = <&imx477_clk>;
++ clocks = <&cam1_clk>;
+ clock-names = "xclk";
+
+ VANA-supply = <&cam1_reg>; /* 2.8v */
+- VDIG-supply = <&imx477_vdig>; /* 1.05v */
+- VDDL-supply = <&imx477_vddl>; /* 1.8v */
++ VDIG-supply = <&cam_dummy_reg>; /* 1.05v */
++ VDDL-supply = <&cam_dummy_reg>; /* 1.8v */
+
+ rotation = <180>;
+ orientation = <2>;
+@@ -63,25 +63,10 @@
+ };
+
+ fragment@3 {
+- target-path="/";
++ target = <&cam1_clk>;
+ __overlay__ {
+- imx477_vdig: fixedregulator@0 {
+- compatible = "regulator-fixed";
+- regulator-name = "imx477_vdig";
+- regulator-min-microvolt = <1050000>;
+- regulator-max-microvolt = <1050000>;
+- };
+- imx477_vddl: fixedregulator@1 {
+- compatible = "regulator-fixed";
+- regulator-name = "imx477_vddl";
+- regulator-min-microvolt = <1800000>;
+- regulator-max-microvolt = <1800000>;
+- };
+- imx477_clk: camera-clk {
+- compatible = "fixed-clock";
+- #clock-cells = <0>;
+- clock-frequency = <24000000>;
+- };
++ clock-frequency = <24000000>;
++ status = "okay";
+ };
+ };
+
+@@ -95,11 +80,7 @@
+ fragment@5 {
+ target = <&cam1_reg>;
+ __overlay__ {
+- status = "okay";
+- regulator-name = "imx477_vana";
+ startup-delay-us = <300000>;
+- regulator-min-microvolt = <2800000>;
+- regulator-max-microvolt = <2800000>;
+ };
+ };
+
+--- a/arch/arm/boot/dts/overlays/imx519-overlay.dts
++++ b/arch/arm/boot/dts/overlays/imx519-overlay.dts
+@@ -20,12 +20,12 @@
+ reg = <0x1a>;
+ status = "okay";
+
+- clocks = <&imx519_clk>;
++ clocks = <&cam1_clk>;
+ clock-names = "xclk";
+
+ VANA-supply = <&cam1_reg>; /* 2.8v */
+- VDIG-supply = <&imx519_vdig>; /* 1.8v */
+- VDDL-supply = <&imx519_vddl>; /* 1.2v */
++ VDIG-supply = <&cam_dummy_reg>; /* 1.8v */
++ VDDL-supply = <&cam_dummy_reg>; /* 1.2v */
+
+ rotation = <0>;
+ orientation = <2>;
+@@ -68,26 +68,10 @@
+ };
+
+ fragment@3 {
+- target-path="/";
++ target = <&cam1_clk>;
+ __overlay__ {
+- imx519_vdig: fixedregulator@1 {
+- compatible = "regulator-fixed";
+- regulator-name = "imx519_vdig";
+- regulator-min-microvolt = <1800000>;
+- regulator-max-microvolt = <1800000>;
+- };
+- imx519_vddl: fixedregulator@2 {
+- compatible = "regulator-fixed";
+- regulator-name = "imx519_vddl";
+- regulator-min-microvolt = <1200000>;
+- regulator-max-microvolt = <1200000>;
+- };
+-
+- imx519_clk: camera-clk {
+- compatible = "fixed-clock";
+- #clock-cells = <0>;
+- clock-frequency = <24000000>;
+- };
++ clock-frequency = <24000000>;
++ status = "okay";
+ };
+ };
+
+@@ -98,16 +82,6 @@
+ };
+ };
+
+- fragment@5 {
+- target = <&cam1_reg>;
+- __overlay__ {
+- status = "okay";
+- regulator-name = "imx519_vana";
+- regulator-min-microvolt = <2800000>;
+- regulator-max-microvolt = <2800000>;
+- };
+- };
+-
+ fragment@6 {
+ target = <&csi1>;
+ __overlay__ {
+--- a/arch/arm/boot/dts/overlays/ov5647-overlay.dts
++++ b/arch/arm/boot/dts/overlays/ov5647-overlay.dts
+@@ -19,7 +19,7 @@
+ status = "okay";
+
+ pwdn-gpios = <&gpio 41 1>, <&gpio 32 1>;
+- clocks = <&ov5647_clk>;
++ clocks = <&cam1_clk>;
+
+ rotation = <0>;
+ orientation = <2>;
+@@ -77,13 +77,10 @@
+ };
+
+ fragment@5 {
+- target-path = "/";
++ target = <&cam1_clk>;
+ __overlay__ {
+- ov5647_clk: camera-clk {
+- compatible = "fixed-clock";
+- #clock-cells = <0>;
+- clock-frequency = <25000000>;
+- };
++ status = "okay";
++ clock-frequency = <25000000>;
+ };
+ };
+
+@@ -94,6 +91,13 @@
+ };
+ };
+
++ fragment@7 {
++ target = <&cam1_reg>;
++ __overlay__ {
++ status = "disabled";
++ };
++ };
++
+ __overrides__ {
+ rotation = <&ov5647>,"rotation:0";
+ orientation = <&ov5647>,"orientation:0";
+--- a/arch/arm/boot/dts/overlays/ov7251-overlay.dts
++++ b/arch/arm/boot/dts/overlays/ov7251-overlay.dts
+@@ -20,13 +20,13 @@
+ reg = <0x60>;
+ status = "okay";
+
+- clocks = <&ov7251_clk>;
++ clocks = <&cam1_clk>;
+ clock-names = "xclk";
+ clock-frequency = <24000000>;
+
+- vdddo-supply = <&ov7251_dovdd>;
++ vdddo-supply = <&cam_dummy_reg>;
+ vdda-supply = <&cam1_reg>;
+- vddd-supply = <&ov7251_dvdd>;
++ vddd-supply = <&cam_dummy_reg>;
+
+ rotation = <0>;
+ orientation = <2>;
+@@ -67,25 +67,10 @@
+ };
+
+ fragment@3 {
+- target-path="/";
++ target = <&cam1_clk>;
+ __overlay__ {
+- ov7251_dovdd: fixedregulator@1 {
+- compatible = "regulator-fixed";
+- regulator-name = "ov7251_dovdd";
+- regulator-min-microvolt = <1800000>;
+- regulator-max-microvolt = <1800000>;
+- };
+- ov7251_dvdd: fixedregulator@2 {
+- compatible = "regulator-fixed";
+- regulator-name = "ov7251_dvdd";
+- regulator-min-microvolt = <1200000>;
+- regulator-max-microvolt = <1200000>;
+- };
+- ov7251_clk: ov7251-clk {
+- compatible = "fixed-clock";
+- #clock-cells = <0>;
+- clock-frequency = <24000000>;
+- };
++ status = "okay";
++ clock-frequency = <24000000>;
+ };
+ };
+
+@@ -96,16 +81,6 @@
+ };
+ };
+
+- fragment@5 {
+- target = <&cam1_reg>;
+- __overlay__ {
+- status = "okay";
+- regulator-name = "ov7251_avdd";
+- regulator-min-microvolt = <2800000>;
+- regulator-max-microvolt = <2800000>;
+- };
+- };
+-
+ fragment@6 {
+ target = <&csi1>;
+ __dormant__ {
+--- a/arch/arm/boot/dts/overlays/ov9281-overlay.dts
++++ b/arch/arm/boot/dts/overlays/ov9281-overlay.dts
+@@ -20,12 +20,12 @@
+ reg = <0x60>;
+ status = "okay";
+
+- clocks = <&ov9281_clk>;
++ clocks = <&cam1_clk>;
+ clock-names = "xvclk";
+
+ avdd-supply = <&cam1_reg>;
+- dovdd-supply = <&ov9281_dovdd>;
+- dvdd-supply = <&ov9281_dvdd>;
++ dovdd-supply = <&cam_dummy_reg>;
++ dvdd-supply = <&cam_dummy_reg>;
+
+ rotation = <0>;
+ orientation = <2>;
+@@ -67,25 +67,10 @@
+ };
+
+ fragment@3 {
+- target-path="/";
++ target = <&cam1_clk>;
+ __overlay__ {
+- ov9281_dovdd: fixedregulator@1 {
+- compatible = "regulator-fixed";
+- regulator-name = "ov9281_dovdd";
+- regulator-min-microvolt = <1800000>;
+- regulator-max-microvolt = <1800000>;
+- };
+- ov9281_dvdd: fixedregulator@2 {
+- compatible = "regulator-fixed";
+- regulator-name = "ov9281_dvdd";
+- regulator-min-microvolt = <1200000>;
+- regulator-max-microvolt = <1200000>;
+- };
+- ov9281_clk: ov9281-clk {
+- compatible = "fixed-clock";
+- #clock-cells = <0>;
+- clock-frequency = <24000000>;
+- };
++ status = "okay";
++ clock-frequency = <24000000>;
+ };
+ };
+
+@@ -97,16 +82,6 @@
+ };
+
+ fragment@5 {
+- target = <&cam1_reg>;
+- __overlay__ {
+- status = "okay";
+- regulator-name = "ov9281_avdd";
+- regulator-min-microvolt = <2800000>;
+- regulator-max-microvolt = <2800000>;
+- };
+- };
+-
+- fragment@6 {
+ target = <&csi1>;
+ __overlay__ {
+ brcm,media-controller;
+@@ -116,6 +91,6 @@
+ __overrides__ {
+ rotation = <&ov9281>,"rotation:0";
+ orientation = <&ov9281>,"orientation:0";
+- media-controller = <0>,"=6";
++ media-controller = <0>,"=5";
+ };
+ };