dt-bindings: media: renesas,isp: Add ISP core function block

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+renesas@ragnatech.se>
Reviewed-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Reviewed-by: Rob Herring (Arm) <robh@kernel.org>
Link: https://lore.kernel.org/r/20250423163113.2961049-2-niklas.soderlund+renesas@ragnatech.se
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
This commit is contained in:
Niklas Söderlund 2025-04-23 18:31:07 +02:00 committed by Hans Verkuil
parent 94bf847ae5
commit 63fd40f672

View File

@ -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>;