On 2023-01-30 10:27, Alexandre Bailon wrote:
Currently, the only way to have an unmanaged domain for a device
is having a dedicated iova region or bank.
This adds a new bit to MTK_M4U_ID that allows defining devices
that needs unmanaged iommu domain.
These are details of Linux-specific usage policy, so don't belong in DT
bindings. I believe the driver already has some internal data to make
its own assignment of particular devices into particular groups, so
please just add to that.
Thanks,
Robin.
Signed-off-by: Alexandre Bailon <abailon@xxxxxxxxxxxx>
---
include/dt-bindings/memory/mtk-memory-port.h | 3 +++
1 file changed, 3 insertions(+)
diff --git a/include/dt-bindings/memory/mtk-memory-port.h b/include/dt-bindings/memory/mtk-memory-port.h
index 2f68a0511a257..86896c776691a 100644
--- a/include/dt-bindings/memory/mtk-memory-port.h
+++ b/include/dt-bindings/memory/mtk-memory-port.h
@@ -7,11 +7,14 @@
#define __DT_BINDINGS_MEMORY_MTK_MEMORY_PORT_H_
#define MTK_LARB_NR_MAX 32
+#define MTK_UNMANAGED_DEVICE (1 << 31)
#define MTK_M4U_ID(larb, port) (((larb) << 5) | (port))
#define MTK_M4U_TO_LARB(id) (((id) >> 5) & 0x1f)
#define MTK_M4U_TO_PORT(id) ((id) & 0x1f)
+#define MTK_M4U_UNMANAGED(id) ((id) & MTK_UNMANAGED_DEVICE)
#define MTK_IFAIOMMU_PERI_ID(port) MTK_M4U_ID(0, port)
+#define MTK_M4U_UNMANAGED_ID(larb, port) (MTK_M4U_ID(larb, port) | MTK_UNMANAGED_DEVICE)
#endif