1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
|
From 8ea13a43a77dfb45c836de2d6c747f630dd75275 Mon Sep 17 00:00:00 2001
From: Dave Stevenson <dave.stevenson@raspberrypi.org>
Date: Wed, 31 Oct 2018 15:02:18 +0000
Subject: [PATCH] dtoverlays: Add support for ADV7280-M, ADV7281-M and
ADV7281-MA chips.
The driver that supports the ADV7282-M also supports the ADV7280-M,
ADV7281-M, and ADV7281-MA.
The 7280-M exposes 8 analogue inputs. The 7281-M doesn't have the
I2P deinterlacing block. The 7281-MA has 8 inputs but no I2P.
Otherwise they are the same as ADV7282-M.
Adds a new overlay "adv728x" that includes the existing adv7282
overlay but adds several parameters to modify the behaviour.
Adds a new addr parameter to allow the I2C address to be changed.
(the chip has an address select pin to change between 0x20 and 0x21).
Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
---
arch/arm/boot/dts/overlays/Makefile | 1 +
arch/arm/boot/dts/overlays/README | 13 +++++++
.../boot/dts/overlays/adv7282m-overlay.dts | 9 +++--
.../boot/dts/overlays/adv728x-m-overlay.dts | 37 +++++++++++++++++++
4 files changed, 56 insertions(+), 4 deletions(-)
create mode 100644 arch/arm/boot/dts/overlays/adv728x-m-overlay.dts
--- a/arch/arm/boot/dts/overlays/Makefile
+++ b/arch/arm/boot/dts/overlays/Makefile
@@ -7,6 +7,7 @@ dtbo-$(CONFIG_ARCH_BCM2835) += \
ads1115.dtbo \
ads7846.dtbo \
adv7282m.dtbo \
+ adv728x-m.dtbo \
akkordion-iqdacplus.dtbo \
allo-boss-dac-pcm512x-audio.dtbo \
allo-digione.dtbo \
--- a/arch/arm/boot/dts/overlays/README
+++ b/arch/arm/boot/dts/overlays/README
@@ -274,6 +274,19 @@ Info: Analog Devices ADV7282M analogue
Load: dtoverlay=adv7282m,<param>=<val>
Params: i2c_pins_28_29 Use pins 28&29 for the I2C instead of 44&45.
This is required for Pi B+, 2, 0, and 0W.
+ addr Overrides the I2C address (default 0x21)
+
+
+Name: adv728x-m
+Info: Analog Devices ADV728[0|1|2]-M analogue video to CSI2 bridges.
+ This is a wrapper for adv7282m, and defaults to ADV7282M.
+Load: dtoverlay=adv728x-m,<param>=<val>
+Params: i2c_pins_28_29 Use pins 28&29 for the I2C instead of 44&45.
+ This is required for Pi B+, 2, 0, and 0W.
+ addr Overrides the I2C address (default 0x21)
+ adv7280m Select ADV7280-M.
+ adv7281m Select ADV7281-M.
+ adv7281ma Select ADV7281-MA.
Name: akkordion-iqdacplus
--- a/arch/arm/boot/dts/overlays/adv7282m-overlay.dts
+++ b/arch/arm/boot/dts/overlays/adv7282m-overlay.dts
@@ -13,13 +13,13 @@
#size-cells = <0>;
status = "okay";
- adv7282: adv7282@21 {
+ adv728x: adv728x@21 {
compatible = "adi,adv7282-m";
reg = <0x21>;
status = "okay";
clock-frequency = <24000000>;
port {
- adv7282_0: endpoint {
+ adv728x_0: endpoint {
remote-endpoint = <&csi1_ep>;
clock-lanes = <0>;
data-lanes = <1>;
@@ -43,7 +43,7 @@
#address-cells = <1>;
#size-cells = <0>;
csi1_ep: endpoint {
- remote-endpoint = <&adv7282_0>;
+ remote-endpoint = <&adv728x_0>;
};
};
};
@@ -71,6 +71,7 @@
};
__overrides__ {
- i2c_pins_28_29 = <0>,"+2-3";
+ i2c_pins_28_29 = <0>,"+2-3";
+ addr = <&adv728x>,"reg:0";
};
};
--- /dev/null
+++ b/arch/arm/boot/dts/overlays/adv728x-m-overlay.dts
@@ -0,0 +1,37 @@
+// SPDX-License-Identifier: GPL-2.0-only
+// Definitions for Analog Devices ADV728[0|1|2]-M video to CSI2 bridges on VC
+// I2C bus
+
+#include "adv7282m-overlay.dts"
+
+/{
+ compatible = "brcm,bcm2708";
+
+ // Fragment numbers deliberately high to avoid conflicts with the
+ // included adv7282m overlay file.
+
+ fragment@101 {
+ target = <&adv728x>;
+ __dormant__ {
+ compatible = "adi,adv7280-m";
+ };
+ };
+ fragment@102 {
+ target = <&adv728x>;
+ __dormant__ {
+ compatible = "adi,adv7281-m";
+ };
+ };
+ fragment@103 {
+ target = <&adv728x>;
+ __dormant__ {
+ compatible = "adi,adv7281-ma";
+ };
+ };
+
+ __overrides__ {
+ adv7280m = <0>, "+101";
+ adv7281m = <0>, "+102";
+ adv7281ma = <0>, "+103";
+ };
+};
|