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