bcm27xx: update 6.1 patches to latest version
[openwrt/openwrt.git] / target / linux / bcm27xx / patches-6.1 / 950-1223-overlays-Add-always-on-parameter-to-imx477-and-imx29.patch
1 From 3ed57f25f3074f6abfe570fc11aa7d370fdc499a Mon Sep 17 00:00:00 2001
2 From: Nick Hollinghurst <nick.hollinghurst@raspberrypi.com>
3 Date: Wed, 6 Dec 2023 14:38:03 +0000
4 Subject: [PATCH] overlays: Add "always-on" parameter to imx477 and imx296
5
6 Leave the camera's power supplies up, to prevent the camera
7 clamping its 1.8V digital I/Os to ground. This may be useful
8 when synchronizing multiple camera systems using XVS or XTRIG.
9
10 Signed-off-by: Nick Hollinghurst <nick.hollinghurst@raspberrypi.com>
11 ---
12 arch/arm/boot/dts/overlays/README | 6 ++++++
13 arch/arm/boot/dts/overlays/imx296-overlay.dts | 9 +++++++++
14 arch/arm/boot/dts/overlays/imx477_378-overlay.dtsi | 9 +++++++++
15 3 files changed, 24 insertions(+)
16
17 --- a/arch/arm/boot/dts/overlays/README
18 +++ b/arch/arm/boot/dts/overlays/README
19 @@ -2520,6 +2520,8 @@ Params: rotation Mounting
20 clock-frequency Sets the clock frequency to match that used on
21 the board, which should be one of 54000000
22 (the default), 37125000 or 74250000.
23 + always-on Leave the regulator powered up, to stop the
24 + camera clamping I/Os such as XTRIG to 0V.
25
26
27 Name: imx327
28 @@ -2558,6 +2560,8 @@ Params: rotation Mounting
29 configuring the sensor (default on)
30 cam0 Adopt the default configuration for CAM0 on a
31 Compute Module (CSI0, i2c_vc, and cam0_reg).
32 + always-on Leave the regulator powered up, to stop the
33 + camera clamping I/Os such as XVS to 0V.
34
35
36 Name: imx462
37 @@ -2596,6 +2600,8 @@ Params: rotation Mounting
38 configuring the sensor (default on)
39 cam0 Adopt the default configuration for CAM0 on a
40 Compute Module (CSI0, i2c_vc, and cam0_reg).
41 + always-on Leave the regulator powered up, to stop the
42 + camera clamping I/Os such as XVS to 0V.
43
44
45 Name: imx519
46 --- a/arch/arm/boot/dts/overlays/imx296-overlay.dts
47 +++ b/arch/arm/boot/dts/overlays/imx296-overlay.dts
48 @@ -37,6 +37,13 @@
49 };
50 };
51
52 + reg_alwayson_frag: fragment@99 {
53 + target = <&cam1_reg>;
54 + __dormant__ {
55 + regulator-always-on;
56 + };
57 + };
58 +
59 i2c_frag: fragment@100 {
60 target = <&i2c_csi_dsi>;
61 __overlay__ {
62 @@ -98,8 +105,10 @@
63 <&csi_frag>, "target:0=",<&csi0>,
64 <&clk_frag>, "target:0=",<&cam0_clk>,
65 <&reg_frag>, "target:0=",<&cam0_reg>,
66 + <&reg_alwayson_frag>, "target:0=",<&cam0_reg>,
67 <&imx296>, "clocks:0=",<&cam0_clk>,
68 <&imx296>, "avdd-supply:0=",<&cam0_reg>;
69 clock-frequency = <&clk_over>, "clock-frequency:0";
70 + always-on = <0>, "+99";
71 };
72 };
73 --- a/arch/arm/boot/dts/overlays/imx477_378-overlay.dtsi
74 +++ b/arch/arm/boot/dts/overlays/imx477_378-overlay.dtsi
75 @@ -33,6 +33,13 @@
76 };
77 };
78
79 + reg_alwayson_frag: fragment@99 {
80 + target = <&cam1_reg>;
81 + __dormant__ {
82 + regulator-always-on;
83 + };
84 + };
85 +
86 i2c_frag: fragment@100 {
87 target = <&i2c_csi_dsi>;
88 __overlay__ {
89 @@ -69,8 +76,10 @@
90 <&csi_frag>, "target:0=",<&csi0>,
91 <&clk_frag>, "target:0=",<&cam0_clk>,
92 <&reg_frag>, "target:0=",<&cam0_reg>,
93 + <&reg_alwayson_frag>, "target:0=",<&cam0_reg>,
94 <&cam_node>, "clocks:0=",<&cam0_clk>,
95 <&cam_node>, "VANA-supply:0=",<&cam0_reg>;
96 + always-on = <0>, "+99";
97 };
98 };
99