On Thu, Aug 27, 2026 at 07:48:33PM +0900, Paul Elder wrote: > Add documentation for the Rockchip rkisp2 bindings. This is meant to > support multiple versions of Rockchip ISPs going forward, including the > 2.x series and 3.x series. The current version only adds the compatible > for the RK3588, which is a 3.0. > > Signed-off-by: Paul Elder > > --- > Changes in v3: > - reorder patches > > No change in v2 > --- > .../devicetree/bindings/media/rockchip-isp2.yaml | 125 +++++++++++++++++++++ > 1 file changed, 125 insertions(+) > > diff --git a/Documentation/devicetree/bindings/media/rockchip-isp2.yaml b/Documentation/devicetree/bindings/media/rockchip-isp2.yaml > new file mode 100644 > index 0000000000000000000000000000000000000000..b85c28e4d7aa8ceb5db55b49b4de10ef8ed704ec > --- /dev/null > +++ b/Documentation/devicetree/bindings/media/rockchip-isp2.yaml Filename matching compatible please. > @@ -0,0 +1,125 @@ > +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/media/rockchip-isp2.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Rockchip SoC Image Signal Processing unit v2 > + > +maintainers: > + - Paul Elder > + > +description: | > + Rockchip ISP2 is the Camera interface for the Rockchip series of SoCs which > + contains image processing, scaling, and compression functions. > + > +properties: > + compatible: > + enum: > + - rockchip,rk3588-isp > + > + reg: > + maxItems: 1 > + > + interrupts: > + minItems: 2 > + maxItems: 2 When they match, you only need one. An items list however might be nice here to explain what the interrupts actually are. > + > + interrupt-names: > + items: > + - const: isp_irq > + - const: mi_irq They're interrupts by definition, having _irq is redundant. > + > + clocks: > + minItems: 3 You support one device, which has all 5. Drop this. > + items: > + - description: ISP AXI clock (aclk) > + - description: ISP AHB clock (hclk) > + - description: ISP core clock (isp) > + # for rk3588 Commentary like this is redundant, you have the explicit conditional below, and this will become a mess with many devices. > + - description: ISP core clock (marvin) > + - description: ISP core clock (vicap) > + > + clock-names: > + minItems: 3 > + items: > + - const: aclk > + - const: hclk > + - const: clk_core > + # for rk3588 > + - const: clk_core_marvin > + - const: clk_core_vicap isp, marvin, vicap. > + > + iommus: > + maxItems: 1 > + > + power-domains: > + items: > + - description: ISP power domain > + > + ports: > + $ref: /schemas/graph.yaml#/properties/ports > + > + properties: > + port@0: > + $ref: /schemas/graph.yaml#/$defs/port-base > + unevaluatedProperties: false > + description: connection point for VICAP in inline mode > + > + properties: > + endpoint: > + $ref: video-interfaces.yaml# > + unevaluatedProperties: false > + > + required: > + - port@0 > + > +required: > + - compatible > + - reg > + - interrupts If you want to ever be able to actually use interrupt-names, make it required too. > + - clocks > + - clock-names > + - power-domains > + > +allOf: > + - if: > + properties: > + compatible: > + contains: > + const: rockchip,rk3588-isp > + then: > + properties: > + clocks: > + minItems: 5 > + clock-names: > + minItems: 5 > + > +additionalProperties: false > + > +examples: > + - | > + > + #include > + #include > + #include > + > + parent0: parent { > + #address-cells = <2>; > + #size-cells = <2>; > + > + isp0: isp@fdcb0000 { Drop the unused label ehre please. pw-bot: changes-requested Thanks, Conor. > + compatible = "rockchip,rk3588-isp"; > + reg = <0x0 0xfdcb0000 0x0 0x7f00>; > + interrupts = , > + ; > + interrupt-names = "isp_irq", "mi_irq"; > + clocks = <&cru ACLK_ISP0>, <&cru HCLK_ISP0>, > + <&cru CLK_ISP0_CORE>, <&cru CLK_ISP0_CORE_MARVIN>, > + <&cru CLK_ISP0_CORE_VICAP>; > + clock-names = "aclk", "hclk", "clk_core", > + "clk_core_marvin", "clk_core_vicap"; > + power-domains = <&power RK3588_PD_VI>; > + iommus = <&isp0_mmu>; > + }; > + }; > > -- > 2.47.2 >