mirror of
https://github.com/torvalds/linux.git
synced 2026-03-08 02:44:41 +01:00
dt-bindings: iommu: Add NVIDIA Tegra CMDQV support
The Command Queue Virtualization (CMDQV) hardware is part of the SMMUv3 implementation on NVIDIA Tegra SoCs. It assists in virtualizing the command queue for the SMMU. Add a new device tree binding document for nvidia,tegra264-cmdqv. Also update the arm,smmu-v3 binding to include an optional nvidia,cmdqv property. This property is a phandle to the CMDQV device node, allowing the SMMU driver to associate with its corresponding CMDQV instance. Restrict this property usage to Nvidia Tegra264 only. Reviewed-by: Rob Herring (Arm) <robh@kernel.org> Acked-by: Nicolin Chen <nicolinc@nvidia.com> Signed-off-by: Ashish Mhetre <amhetre@nvidia.com> Reviewed-by: Jon Hunter <jonathanh@nvidia.com> Signed-off-by: Thierry Reding <treding@nvidia.com>
This commit is contained in:
parent
d3b9e6d5b4
commit
8a59954192
2 changed files with 68 additions and 1 deletions
|
|
@ -20,7 +20,12 @@ properties:
|
|||
$nodename:
|
||||
pattern: "^iommu@[0-9a-f]*"
|
||||
compatible:
|
||||
const: arm,smmu-v3
|
||||
oneOf:
|
||||
- const: arm,smmu-v3
|
||||
- items:
|
||||
- enum:
|
||||
- nvidia,tegra264-smmu
|
||||
- const: arm,smmu-v3
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
|
@ -58,6 +63,15 @@ properties:
|
|||
|
||||
msi-parent: true
|
||||
|
||||
nvidia,cmdqv:
|
||||
description: |
|
||||
A phandle to its pairing CMDQV extension for an implementation on NVIDIA
|
||||
Tegra SoC.
|
||||
|
||||
If this property is absent, CMDQ-Virtualization won't be used and SMMU
|
||||
will only use its own CMDQ.
|
||||
$ref: /schemas/types.yaml#/definitions/phandle
|
||||
|
||||
hisilicon,broken-prefetch-cmd:
|
||||
type: boolean
|
||||
description: Avoid sending CMD_PREFETCH_* commands to the SMMU.
|
||||
|
|
@ -69,6 +83,17 @@ properties:
|
|||
register access with page 0 offsets. Set for Cavium ThunderX2 silicon that
|
||||
doesn't support SMMU page1 register space.
|
||||
|
||||
allOf:
|
||||
- if:
|
||||
not:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
const: nvidia,tegra264-smmu
|
||||
then:
|
||||
properties:
|
||||
nvidia,cmdqv: false
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
|
|
|
|||
|
|
@ -0,0 +1,42 @@
|
|||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/iommu/nvidia,tegra264-cmdqv.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: NVIDIA Tegra264 CMDQV
|
||||
|
||||
description:
|
||||
The CMDQ-Virtualization hardware block is part of the SMMUv3 implementation
|
||||
on Tegra264 SoCs. It assists in virtualizing the command queue for the SMMU.
|
||||
|
||||
maintainers:
|
||||
- Nicolin Chen <nicolinc@nvidia.com>
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: nvidia,tegra264-cmdqv
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- interrupts
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
|
||||
cmdqv@5200000 {
|
||||
compatible = "nvidia,tegra264-cmdqv";
|
||||
reg = <0x5200000 0x830000>;
|
||||
interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
|
||||
};
|
||||
Loading…
Add table
Add a link
Reference in a new issue