[PATCH 2/5] dt-bindings: iommu: verisilicon: Add binding for VSI IOMMU
Benjamin Gaignard
benjamin.gaignard at collabora.com
Mon Jun 16 08:30:44 PDT 2025
Le 16/06/2025 à 17:14, Conor Dooley a écrit :
> 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 <benjamin.gaignard at collabora.com>
>> ---
>> .../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 <benjamin.gaignard at collabora.com>
>> +
>> +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.
I only aware this version of the iommu for the moment.
Does adding verisilicon,rk3588-iommu sound good for you ?
>
>> +
>> + 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?
I will change that, the driver doesn't care of the clock name anyway
>
>> +
>> + "#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 at fdca0000 {
> The "vsi_mmu" label can be dropped here, it has no users.
ok.
Thanks,
Benjamin
>
> Cheers,
> Conor.
>
>> + 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
>>
More information about the linux-arm-kernel
mailing list