bcm27xx: add support for linux v5.15
[openwrt/openwrt.git] / target / linux / bcm27xx / patches-5.15 / 950-0886-overlays-Add-arducam-pivariety-overlay.dts.patch
1 From 2027e24ef1d143526bfd596294cf8e18fd5dfe49 Mon Sep 17 00:00:00 2001
2 From: Lee Jackson <info@arducam.com>
3 Date: Thu, 21 Apr 2022 13:15:34 +0800
4 Subject: [PATCH] overlays: Add arducam-pivariety-overlay.dts
5
6 Added overlays for enabling Arducam Pivariety and add the
7 relevant information to the README.
8
9 Signed-off-by: Lee Jackson <info@arducam.com>
10 ---
11 arch/arm/boot/dts/overlays/Makefile | 1 +
12 arch/arm/boot/dts/overlays/README | 15 +++
13 .../overlays/arducam-pivariety-overlay.dts | 94 +++++++++++++++++++
14 3 files changed, 110 insertions(+)
15 create mode 100644 arch/arm/boot/dts/overlays/arducam-pivariety-overlay.dts
16
17 --- a/arch/arm/boot/dts/overlays/Makefile
18 +++ b/arch/arm/boot/dts/overlays/Makefile
19 @@ -23,6 +23,7 @@ dtbo-$(CONFIG_ARCH_BCM2835) += \
20 anyspi.dtbo \
21 apds9960.dtbo \
22 applepi-dac.dtbo \
23 + arducam-pivariety.dtbo \
24 at86rf233.dtbo \
25 audioinjector-addons.dtbo \
26 audioinjector-bare-i2s.dtbo \
27 --- a/arch/arm/boot/dts/overlays/README
28 +++ b/arch/arm/boot/dts/overlays/README
29 @@ -582,6 +582,21 @@ Load: dtoverlay=applepi-dac
30 Params: <None>
31
32
33 +Name: arducam-pivariety
34 +Info: Arducam Pivariety camera module.
35 + Uses Unicam 1, which is the standard camera connector on most Pi
36 + variants.
37 +Load: dtoverlay=arducam-pivariety,<param>=<val>
38 +Params: rotation Mounting rotation of the camera sensor (0 or
39 + 180, default 0)
40 + orientation Sensor orientation (0 = front, 1 = rear,
41 + 2 = external, default external)
42 + media-controller Configure use of Media Controller API for
43 + configuring the sensor (default on)
44 + cam0 Adopt the default configuration for CAM0 on a
45 + Compute Module (CSI0, i2c_vc, and cam0_reg).
46 +
47 +
48 Name: at86rf233
49 Info: Configures the Atmel AT86RF233 802.15.4 low-power WPAN transceiver,
50 connected to spi0.0
51 --- /dev/null
52 +++ b/arch/arm/boot/dts/overlays/arducam-pivariety-overlay.dts
53 @@ -0,0 +1,94 @@
54 +// SPDX-License-Identifier: GPL-2.0-only
55 +// Definitions for Arducam Pivariety camera module on VC I2C bus
56 +/dts-v1/;
57 +/plugin/;
58 +
59 +/{
60 + compatible = "brcm,bcm2835";
61 +
62 + i2c_frag: fragment@0 {
63 + target = <&i2c_csi_dsi>;
64 + __overlay__ {
65 + #address-cells = <1>;
66 + #size-cells = <0>;
67 + status = "okay";
68 +
69 + arducam_pivariety: arducam_pivariety@0c {
70 + compatible = "arducam,arducam-pivariety";
71 + reg = <0x0c>;
72 + status = "okay";
73 +
74 + clocks = <&cam1_clk>;
75 + clock-names = "xclk";
76 +
77 + VANA-supply = <&cam1_reg>; /* 2.8v */
78 + VDIG-supply = <&cam_dummy_reg>; /* 1.8v */
79 + VDDL-supply = <&cam_dummy_reg>; /* 1.2v */
80 +
81 + rotation = <0>;
82 + orientation = <2>;
83 +
84 + port {
85 + arducam_pivariety_0: endpoint {
86 + remote-endpoint = <&csi1_ep>;
87 + clock-lanes = <0>;
88 + data-lanes = <1 2>;
89 + clock-noncontinuous;
90 + link-frequencies =
91 + /bits/ 64 <493500000>;
92 + };
93 + };
94 + };
95 + };
96 + };
97 +
98 + csi_frag: fragment@1 {
99 + target = <&csi1>;
100 + csi: __overlay__ {
101 + status = "okay";
102 + brcm,media-controller;
103 +
104 + port{
105 + csi1_ep: endpoint{
106 + remote-endpoint = <&arducam_pivariety_0>;
107 + clock-lanes = <0>;
108 + data-lanes = <1 2>;
109 + clock-noncontinuous;
110 + };
111 + };
112 + };
113 + };
114 +
115 + fragment@2 {
116 + target = <&i2c0if>;
117 + __overlay__ {
118 + status = "okay";
119 + };
120 + };
121 +
122 + clk_frag: fragment@3 {
123 + target = <&cam1_clk>;
124 + __overlay__ {
125 + clock-frequency = <24000000>;
126 + status = "okay";
127 + };
128 + };
129 +
130 + fragment@4 {
131 + target = <&i2c0mux>;
132 + __overlay__ {
133 + status = "okay";
134 + };
135 + };
136 +
137 + __overrides__ {
138 + rotation = <&arducam_pivariety>,"rotation:0";
139 + orientation = <&arducam_pivariety>,"orientation:0";
140 + media-controller = <&csi>,"brcm,media-controller?";
141 + cam0 = <&i2c_frag>, "target:0=",<&i2c_vc>,
142 + <&csi_frag>, "target:0=",<&csi0>,
143 + <&clk_frag>, "target:0=",<&cam0_clk>,
144 + <&arducam_pivariety>, "clocks:0=",<&cam0_clk>,
145 + <&arducam_pivariety>, "VANA-supply:0=",<&cam0_reg>;
146 + };
147 +};