On Wed Apr 23 18:31:07 2025 +0200, Niklas Söderlund wrote: > Some R-Car ISP instances have in addition to the channel selector (CS) > an ISP core (CORE) to perform operations on an image stream. The core > function is mapped to a different memory region and has a separate > interrupt than CS, extend the bindings to allow describing this. > > On the same SoC different instances of the ISP IP may have, or not have, > the CORE functionality. The CS function on all instances on the SoC are > the same and the documentation describes the full ISP (CS + CORE) as a > single IP block. Where instances not having the CORE function simply > lack the functionality to modify the image data. There are dependencies > on the CS functionality while operating the CORE functionality. > > In order for the ISP core to function in memory-to-memory mode it needs > to be feed input data from a Streaming Bridge interface. This interface > is provided thru the VSP-X device. Add an optional new property > "renesas,vspx" to provide a phandle to describe this relationship. > > While adding mandatory reg-names and interrupt-names breaks existing > bindings the driver itself remains backward compatible and provides CS > functionality if a single unnamed reg and interrupt property is present. > Furthermore all existing users of the bindings are updated in following > work to add these new mandatory properties. > > Signed-off-by: Niklas Söderlund <niklas.soderlund+rene...@ragnatech.se> > Reviewed-by: Laurent Pinchart <laurent.pinchart+rene...@ideasonboard.com> > Reviewed-by: Geert Uytterhoeven <geert+rene...@glider.be> > Reviewed-by: Rob Herring (Arm) <r...@kernel.org> > Link: > https://lore.kernel.org/r/20250423163113.2961049-2-niklas.soderlund+rene...@ragnatech.se > Signed-off-by: Laurent Pinchart <laurent.pinch...@ideasonboard.com> > Signed-off-by: Hans Verkuil <hverk...@xs4all.nl>
Patch committed. Thanks, Hans Verkuil .../devicetree/bindings/media/renesas,isp.yaml | 63 +++++++++++++++++++--- 1 file changed, 55 insertions(+), 8 deletions(-) --- diff --git a/Documentation/devicetree/bindings/media/renesas,isp.yaml b/Documentation/devicetree/bindings/media/renesas,isp.yaml index c4de4555b753..d25e020f5e5e 100644 --- a/Documentation/devicetree/bindings/media/renesas,isp.yaml +++ b/Documentation/devicetree/bindings/media/renesas,isp.yaml @@ -25,19 +25,55 @@ properties: - renesas,r8a779h0-isp # V4M - const: renesas,rcar-gen4-isp # Generic R-Car Gen4 reg: - maxItems: 1 + minItems: 1 + maxItems: 2 + + reg-names: + minItems: 1 + items: + - const: cs + - const: core interrupts: - maxItems: 1 + minItems: 1 + maxItems: 2 + + interrupt-names: + minItems: 1 + items: + - const: cs + - const: core clocks: - maxItems: 1 + minItems: 1 + maxItems: 2 + + clock-names: + minItems: 1 + items: + - const: cs + - const: core power-domains: maxItems: 1 resets: - maxItems: 1 + minItems: 1 + maxItems: 2 + + reset-names: + minItems: 1 + items: + - const: cs + - const: core + + renesas,vspx: + $ref: /schemas/types.yaml#/definitions/phandle + description: + A phandle to the companion VSPX responsible for the Streaming Bridge + functionality. The Streaming Bridge is responsible for feeding image + and configuration data to the ISP when operating in memory-to-memory + mode. ports: $ref: /schemas/graph.yaml#/properties/ports @@ -103,10 +139,14 @@ properties: required: - compatible - reg + - reg-names - interrupts + - interrupt-names - clocks + - clock-names - power-domains - resets + - reset-names - ports additionalProperties: false @@ -119,11 +159,18 @@ examples: isp1: isp@fed20000 { compatible = "renesas,r8a779a0-isp", "renesas,rcar-gen4-isp"; - reg = <0xfed20000 0x10000>; - interrupts = <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>; - clocks = <&cpg CPG_MOD 613>; + reg = <0xfed20000 0x10000>, <0xfee00000 0x100000>; + reg-names = "cs", "core"; + interrupts = <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>; + interrupt-names = "cs", "core"; + clocks = <&cpg CPG_MOD 613>, <&cpg CPG_MOD 17>; + clock-names = "cs", "core"; power-domains = <&sysc R8A779A0_PD_A3ISP01>; - resets = <&cpg 613>; + resets = <&cpg 613>, <&cpg 17>; + reset-names = "cs", "core"; + + renesas,vspx = <&vspx1>; ports { #address-cells = <1>;