On Tue Nov 25 15:29:54 2025 +0100, Michael Tretter wrote:
> Different variants of the ADV7280 chip have up to three register maps.
> The availability of the CSI and VPP register maps depends on the chip
> variant. The address of the additional register maps depends on the
> board design and other chips on the I2C but. They may be programmed via
> registers in the main register map.
>
> Allow to specify the addresses of the VPP and CSI register maps in the
> device tree to solve I2C address conflicts on a board level.
>
> The CSI and VPP register maps are always optional to allow backwards
> compatibility with existing device trees which may rely on the default
> address.
>
> Reviewed-by: Krzysztof Kozlowski <[email protected]>
> Signed-off-by: Michael Tretter <[email protected]>
> Signed-off-by: Hans Verkuil <[email protected]>
Patch committed.
Thanks,
Hans Verkuil
.../devicetree/bindings/media/i2c/adi,adv7180.yaml | 97 +++++++++++++++++++++-
1 file changed, 96 insertions(+), 1 deletion(-)
---
diff --git a/Documentation/devicetree/bindings/media/i2c/adi,adv7180.yaml
b/Documentation/devicetree/bindings/media/i2c/adi,adv7180.yaml
index dee8ce7cb7ba..5f8f3b3dea76 100644
--- a/Documentation/devicetree/bindings/media/i2c/adi,adv7180.yaml
+++ b/Documentation/devicetree/bindings/media/i2c/adi,adv7180.yaml
@@ -30,7 +30,27 @@ properties:
- adi,adv7282-m
reg:
- maxItems: 1
+ minItems: 1
+ items:
+ - description: main register map
+ - description: VPP or CSI register map
+ - description: CSI register map
+ description:
+ The ADV7180 family may have up to three register maps. All chips have
+ the main register map. The availability of the CSI and VPP register maps
+ depends on the chip variant.
+
+ The addresses of the CSI and VPP register maps are programmable by
+ software. They depend on the board layout and other devices on the I2C
+ bus and are determined by the hardware designer to avoid address
+ conflicts on the I2C bus.
+
+ reg-names:
+ minItems: 1
+ items:
+ - const: main
+ - enum: [ csi, vpp ]
+ - const: csi
powerdown-gpios:
maxItems: 1
@@ -138,6 +158,62 @@ allOf:
required:
- ports
+ - if:
+ properties:
+ compatible:
+ contains:
+ enum:
+ - adi,adv7180
+ - adi,adv7180cp
+ - adi,adv7180st
+ - adi,adv7182
+ then:
+ properties:
+ reg:
+ maxItems: 1
+
+ reg-names:
+ maxItems: 1
+
+ - if:
+ properties:
+ compatible:
+ contains:
+ enum:
+ - adi,adv7281
+ - adi,adv7281-m
+ - adi,adv7281-ma
+ then:
+ properties:
+ reg:
+ minItems: 1
+ maxItems: 2
+
+ reg-names:
+ minItems: 1
+ items:
+ - const: main
+ - const: csi
+
+ - if:
+ properties:
+ compatible:
+ contains:
+ enum:
+ - adi,adv7280
+ - adi,adv7282
+ then:
+ properties:
+ reg:
+ minItems: 1
+ maxItems: 2
+
+ reg-names:
+ minItems: 1
+ items:
+ - const: main
+ - const: vpp
+
examples:
- |
i2c {
@@ -187,3 +263,22 @@ examples:
};
};
};
+
+ - |
+ i2c {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ composite-in@20 {
+ compatible = "adi,adv7280-m";
+ reg = <0x20>, <0x42>, <0x44>;
+ reg-names = "main", "vpp", "csi";
+
+ port {
+ adv7280_out: endpoint {
+ bus-width = <8>;
+ remote-endpoint = <&vin1ep>;
+ };
+ };
+ };
+ };
_______________________________________________
linuxtv-commits mailing list -- [email protected]
To unsubscribe send an email to [email protected]