Re: [PATCH 2/5] dt-bindings: iommu: verisilicon: Add binding for VSI IOMMU
From: Benjamin Gaignard <benjamin.gaignard@collabora.com>
Date: 2025-06-16 15:31:20
Also in:
linux-devicetree, linux-iommu, linux-media, linux-rockchip, lkml
Le 16/06/2025 à 17:14, Conor Dooley a écrit :
On Mon, Jun 16, 2025 at 04:55:50PM +0200, Benjamin Gaignard wrote:quoted
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 <benjamin.gaignard@collabora.com> --- .../bindings/iommu/verisilicon,iommu.yaml | 71 +++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 Documentation/devicetree/bindings/iommu/verisilicon,iommu.yamldiff --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 <benjamin.gaignard@collabora.com> + +description: |+ + A Versilicon iommu translates io virtual addresses to physical addresses for + its associated video decoder. + +properties: + compatible: + oneOf: + - items: + - const: verisilicon,iommuYou'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.
I only aware this version of the iommu for the moment. Does adding verisilicon,rk3588-iommu sound good for you ?
quoted
+ + reg: + maxItems: 1 + + interrupts: + maxItems: 1 + + clocks: + items: + - description: Core clock + - description: Interface clock + + clock-names: + items: + - const: aclk + - const: ifaceWhy "aclk" rather than core, to match the description?
I will change that, the driver doesn't care of the clock name anyway
quoted
+ + "#iommu-cells": + const: 0 + + power-domains: + maxItems: 1 + +required: + - compatible + - reg + - interrupts + - clocks + - clock-names + - "#iommu-cells" + +additionalProperties: false + +examples: + - | + #include <dt-bindings/clock/rockchip,rk3588-cru.h> + #include <dt-bindings/interrupt-controller/arm-gic.h> + + bus { + #address-cells = <2>; + #size-cells = <2>; + + vsi_mmu: iommu@fdca0000 {The "vsi_mmu" label can be dropped here, it has no users.
ok. Thanks, Benjamin
Cheers, Conor.quoted
+ compatible = "verisilicon,iommu"; + reg = <0x0 0xfdca0000 0x0 0x600>; + interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH 0>; + clocks = <&cru ACLK_AV1>, <&cru PCLK_AV1>; + clock-names = "aclk", "iface"; + #iommu-cells = <0>; + }; + }; -- 2.43.0