diff --git a/bindings/arm/msm/smmu-proxy.yaml b/bindings/arm/msm/smmu-proxy.yaml new file mode 100644 index 00000000..c442b3c5 --- /dev/null +++ b/bindings/arm/msm/smmu-proxy.yaml @@ -0,0 +1,54 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/arm/msm/smmu-proxy.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: SMMU Proxy Driver + +maintainers: + - Chris Goldsworthy + +description: |+ + The SMMU proxy driver allows DMA-BUFs on HLOS to be lent to the TVM and mapped + into an S1 context bank of the client's choosing on the TVM. The IOVA of the + mapped DMA-BUF is sent back to HLOS, which the client then passes to their + hardware as they did before. + + The driver is split between HLOS and the TVM. Communication between the two + sides is facilitated by a message queue, such that the TVM has a single + message handling thread. The proxy driver directly manages the context banks + of the client devices, as there is no client code to manage the mappings + of the devices on the TVM. + +properties: + compatible: + items: + - enum: + - smmu-proxy-sender + - smmu-proxy-receiver + - smmu-proxy-cb + iommus: + maxItems: 1 + description: iommus tag in form of <&apps_smmu [SID] [MASK]>, such that + [SID] will be for one of the relevant client context banks. + +required: + - compatible + +additionalProperties: false + +examples: + - | + smmu-proxy { + compatible = "smmu-proxy-sender"; + }; + - | + smmu-proxy { + compatible = "smmu-proxy-receiver"; + }; + smmu-proxy-camera-cb { + compatible = "smmu-proxy-cb"; + iommus = <&apps_smmu 0x1000 0x0>; + }; +