On Mon, Jun 16, 2025 at 04:55:50PM +0200, Benjamin Gaignard wrote: > Add a device tree binding for the Verisilicon (VSI) IOMMU. This IOMMU sits > in front of hardware encoder and decoder blocks on SoCs using Verisilicon IP, > such as the Rockchip RK3588. > > Signed-off-by: Benjamin Gaignard > --- > .../bindings/iommu/verisilicon,iommu.yaml | 71 +++++++++++++++++++ > 1 file changed, 71 insertions(+) > create mode 100644 Documentation/devicetree/bindings/iommu/verisilicon,iommu.yaml > > diff --git a/Documentation/devicetree/bindings/iommu/verisilicon,iommu.yaml b/Documentation/devicetree/bindings/iommu/verisilicon,iommu.yaml > new file mode 100644 > index 000000000000..acef855fc61d > --- /dev/null > +++ b/Documentation/devicetree/bindings/iommu/verisilicon,iommu.yaml > @@ -0,0 +1,71 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/iommu/verisilicon,iommu.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Verisilicon IOMMU > + > +maintainers: > + - Benjamin Gaignard > + > +description: |+ > + A Versilicon iommu translates io virtual addresses to physical addresses for > + its associated video decoder. > + > +properties: > + compatible: > + oneOf: > + - items: > + - const: verisilicon,iommu You're missing a soc-specific compatible at the very least here, but is there really no versioning on the IP at all? I'd be surprised if verisilicon only produced exactly one version of an iommu IP. > + > + reg: > + maxItems: 1 > + > + interrupts: > + maxItems: 1 > + > + clocks: > + items: > + - description: Core clock > + - description: Interface clock > + > + clock-names: > + items: > + - const: aclk > + - const: iface Why "aclk" rather than core, to match the description? > + > + "#iommu-cells": > + const: 0 > + > + power-domains: > + maxItems: 1 > + > +required: > + - compatible > + - reg > + - interrupts > + - clocks > + - clock-names > + - "#iommu-cells" > + > +additionalProperties: false > + > +examples: > + - | > + #include > + #include > + > + bus { > + #address-cells = <2>; > + #size-cells = <2>; > + > + vsi_mmu: iommu@fdca0000 { The "vsi_mmu" label can be dropped here, it has no users. Cheers, Conor. > + compatible = "verisilicon,iommu"; > + reg = <0x0 0xfdca0000 0x0 0x600>; > + interrupts = ; > + clocks = <&cru ACLK_AV1>, <&cru PCLK_AV1>; > + clock-names = "aclk", "iface"; > + #iommu-cells = <0>; > + }; > + }; > -- > 2.43.0 >