mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-13 19:59:34 -04:00
arm64: dts: mediatek: mt8188: Add SMI/LARB/IOMMU support
Local Arbiter (LARB) is a component of Smart Multimedia Interface (SMI) that supports IOMMU on the MediaTek SoCs. Add the following nodes for memory management support on MT8188 SoC: - one Infra IOMMU - two Multimedia (MM) IOMMUs of VDO and VPP - corresponding SMI common and LARB nodes of the MM IOMMUs Signed-off-by: Fei Shao <fshao@chromium.org> Link: https://lore.kernel.org/r/20240911143429.850071-5-fshao@chromium.org Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
This commit is contained in:
committed by
AngeloGioacchino Del Regno
parent
3bbae49ea0
commit
43fc1bd08e
@@ -9,6 +9,7 @@
|
||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
#include <dt-bindings/mailbox/mediatek,mt8188-gce.h>
|
||||
#include <dt-bindings/memory/mediatek,mt8188-memory-port.h>
|
||||
#include <dt-bindings/phy/phy.h>
|
||||
#include <dt-bindings/pinctrl/mediatek,mt8188-pinfunc.h>
|
||||
#include <dt-bindings/power/mediatek,mt8188-power.h>
|
||||
@@ -1308,6 +1309,13 @@ pwrap: pwrap@10024000 {
|
||||
clock-names = "spi", "wrap";
|
||||
};
|
||||
|
||||
infra_iommu: iommu@10315000 {
|
||||
compatible = "mediatek,mt8188-iommu-infra";
|
||||
reg = <0 0x10315000 0 0x1000>;
|
||||
interrupts = <GIC_SPI 795 IRQ_TYPE_LEVEL_HIGH 0>;
|
||||
#iommu-cells = <1>;
|
||||
};
|
||||
|
||||
gce0: mailbox@10320000 {
|
||||
compatible = "mediatek,mt8188-gce";
|
||||
reg = <0 0x10320000 0 0x4000>;
|
||||
@@ -1803,6 +1811,37 @@ vppsys0: syscon@14000000 {
|
||||
#clock-cells = <1>;
|
||||
};
|
||||
|
||||
vpp_smi_common: smi@14012000 {
|
||||
compatible = "mediatek,mt8188-smi-common-vpp";
|
||||
reg = <0 0x14012000 0 0x1000>;
|
||||
clocks = <&vppsys0 CLK_VPP0_SMI_COMMON_LARB4>,
|
||||
<&vppsys0 CLK_VPP0_SMI_SUB_COMMON_REORDER>;
|
||||
clock-names = "apb", "smi";
|
||||
power-domains = <&spm MT8188_POWER_DOMAIN_VPPSYS0>;
|
||||
};
|
||||
|
||||
larb4: smi@14013000 {
|
||||
compatible = "mediatek,mt8188-smi-larb";
|
||||
reg = <0 0x14013000 0 0x1000>;
|
||||
clocks = <&vppsys0 CLK_VPP0_SMI_COMMON_LARB4>,
|
||||
<&vppsys0 CLK_VPP0_SMI_COMMON_LARB4>;
|
||||
clock-names = "apb", "smi";
|
||||
power-domains = <&spm MT8188_POWER_DOMAIN_VPPSYS0>;
|
||||
mediatek,larb-id = <SMI_L4_ID>;
|
||||
mediatek,smi = <&vpp_smi_common>;
|
||||
};
|
||||
|
||||
vpp_iommu: iommu@14018000 {
|
||||
compatible = "mediatek,mt8188-iommu-vpp";
|
||||
reg = <0 0x14018000 0 0x5000>;
|
||||
clocks = <&vppsys0 CLK_VPP0_SMI_IOMMU>;
|
||||
clock-names = "bclk";
|
||||
interrupts = <GIC_SPI 594 IRQ_TYPE_LEVEL_HIGH 0>;
|
||||
power-domains = <&spm MT8188_POWER_DOMAIN_VPPSYS0>;
|
||||
#iommu-cells = <1>;
|
||||
mediatek,larbs = <&larb1 &larb3 &larb4 &larb6 &larb7 &larb23>;
|
||||
};
|
||||
|
||||
wpesys: clock-controller@14e00000 {
|
||||
compatible = "mediatek,mt8188-wpesys";
|
||||
reg = <0 0x14e00000 0 0x1000>;
|
||||
@@ -1815,12 +1854,45 @@ wpesys_vpp0: clock-controller@14e02000 {
|
||||
#clock-cells = <1>;
|
||||
};
|
||||
|
||||
larb7: smi@14e04000 {
|
||||
compatible = "mediatek,mt8188-smi-larb";
|
||||
reg = <0 0x14e04000 0 0x1000>;
|
||||
clocks = <&wpesys CLK_WPE_TOP_SMI_LARB7>,
|
||||
<&wpesys CLK_WPE_TOP_SMI_LARB7>;
|
||||
clock-names = "apb", "smi";
|
||||
power-domains = <&spm MT8188_POWER_DOMAIN_WPE>;
|
||||
mediatek,larb-id = <SMI_L7_ID>;
|
||||
mediatek,smi = <&vpp_smi_common>;
|
||||
};
|
||||
|
||||
vppsys1: syscon@14f00000 {
|
||||
compatible = "mediatek,mt8188-vppsys1", "syscon";
|
||||
reg = <0 0x14f00000 0 0x1000>;
|
||||
#clock-cells = <1>;
|
||||
};
|
||||
|
||||
larb5: smi@14f02000 {
|
||||
compatible = "mediatek,mt8188-smi-larb";
|
||||
reg = <0 0x14f02000 0 0x1000>;
|
||||
clocks = <&vppsys1 CLK_VPP1_GALS5>,
|
||||
<&vppsys1 CLK_VPP1_LARB5>;
|
||||
clock-names = "apb", "smi";
|
||||
power-domains = <&spm MT8188_POWER_DOMAIN_VPPSYS1>;
|
||||
mediatek,larb-id = <SMI_L5_ID>;
|
||||
mediatek,smi = <&vdo_smi_common>;
|
||||
};
|
||||
|
||||
larb6: smi@14f03000 {
|
||||
compatible = "mediatek,mt8188-smi-larb";
|
||||
reg = <0 0x14f03000 0 0x1000>;
|
||||
clocks = <&vppsys1 CLK_VPP1_GALS6>,
|
||||
<&vppsys1 CLK_VPP1_LARB6>;
|
||||
clock-names = "apb", "smi";
|
||||
power-domains = <&spm MT8188_POWER_DOMAIN_VPPSYS1>;
|
||||
mediatek,larb-id = <SMI_L6_ID>;
|
||||
mediatek,smi = <&vpp_smi_common>;
|
||||
};
|
||||
|
||||
imgsys: clock-controller@15000000 {
|
||||
compatible = "mediatek,mt8188-imgsys";
|
||||
reg = <0 0x15000000 0 0x1000>;
|
||||
@@ -1899,12 +1971,34 @@ ccusys: clock-controller@17200000 {
|
||||
#clock-cells = <1>;
|
||||
};
|
||||
|
||||
larb23: smi@1800d000 {
|
||||
compatible = "mediatek,mt8188-smi-larb";
|
||||
reg = <0 0x1800d000 0 0x1000>;
|
||||
clocks = <&vdecsys_soc CLK_VDEC1_SOC_LARB1>,
|
||||
<&vdecsys_soc CLK_VDEC1_SOC_LARB1>;
|
||||
clock-names = "apb", "smi";
|
||||
power-domains = <&spm MT8188_POWER_DOMAIN_VDEC0>;
|
||||
mediatek,larb-id = <SMI_L23_ID>;
|
||||
mediatek,smi = <&vpp_smi_common>;
|
||||
};
|
||||
|
||||
vdecsys_soc: clock-controller@1800f000 {
|
||||
compatible = "mediatek,mt8188-vdecsys-soc";
|
||||
reg = <0 0x1800f000 0 0x1000>;
|
||||
#clock-cells = <1>;
|
||||
};
|
||||
|
||||
larb21: smi@1802e000 {
|
||||
compatible = "mediatek,mt8188-smi-larb";
|
||||
reg = <0 0x1802e000 0 0x1000>;
|
||||
clocks = <&vdecsys CLK_VDEC2_LARB1>,
|
||||
<&vdecsys CLK_VDEC2_LARB1>;
|
||||
clock-names = "apb", "smi";
|
||||
power-domains = <&spm MT8188_POWER_DOMAIN_VDEC1>;
|
||||
mediatek,larb-id = <SMI_L21_ID>;
|
||||
mediatek,smi = <&vdo_smi_common>;
|
||||
};
|
||||
|
||||
vdecsys: clock-controller@1802f000 {
|
||||
compatible = "mediatek,mt8188-vdecsys";
|
||||
reg = <0 0x1802f000 0 0x1000>;
|
||||
@@ -1917,6 +2011,17 @@ vencsys: clock-controller@1a000000 {
|
||||
#clock-cells = <1>;
|
||||
};
|
||||
|
||||
larb19: smi@1a010000 {
|
||||
compatible = "mediatek,mt8188-smi-larb";
|
||||
reg = <0 0x1a010000 0 0x1000>;
|
||||
clocks = <&vencsys CLK_VENC1_VENC>,
|
||||
<&vencsys CLK_VENC1_VENC>;
|
||||
clock-names = "apb", "smi";
|
||||
power-domains = <&spm MT8188_POWER_DOMAIN_VENC>;
|
||||
mediatek,larb-id = <SMI_L19_ID>;
|
||||
mediatek,smi = <&vdo_smi_common>;
|
||||
};
|
||||
|
||||
vdosys0: syscon@1c01d000 {
|
||||
compatible = "mediatek,mt8188-vdosys0", "syscon";
|
||||
reg = <0 0x1c01d000 0 0x1000>;
|
||||
@@ -1925,6 +2030,48 @@ vdosys0: syscon@1c01d000 {
|
||||
mediatek,gce-client-reg = <&gce0 SUBSYS_1c01XXXX 0xd000 0x1000>;
|
||||
};
|
||||
|
||||
larb0: smi@1c022000 {
|
||||
compatible = "mediatek,mt8188-smi-larb";
|
||||
reg = <0 0x1c022000 0 0x1000>;
|
||||
clocks = <&vdosys0 CLK_VDO0_SMI_LARB>,
|
||||
<&vdosys0 CLK_VDO0_SMI_LARB>;
|
||||
clock-names = "apb", "smi";
|
||||
power-domains = <&spm MT8188_POWER_DOMAIN_VDOSYS0>;
|
||||
mediatek,larb-id = <SMI_L0_ID>;
|
||||
mediatek,smi = <&vdo_smi_common>;
|
||||
};
|
||||
|
||||
larb1: smi@1c023000 {
|
||||
compatible = "mediatek,mt8188-smi-larb";
|
||||
reg = <0 0x1c023000 0 0x1000>;
|
||||
clocks = <&vdosys0 CLK_VDO0_SMI_LARB>,
|
||||
<&vdosys0 CLK_VDO0_SMI_LARB>;
|
||||
clock-names = "apb", "smi";
|
||||
power-domains = <&spm MT8188_POWER_DOMAIN_VDOSYS0>;
|
||||
mediatek,larb-id = <SMI_L1_ID>;
|
||||
mediatek,smi = <&vpp_smi_common>;
|
||||
};
|
||||
|
||||
vdo_smi_common: smi@1c024000 {
|
||||
compatible = "mediatek,mt8188-smi-common-vdo";
|
||||
reg = <0 0x1c024000 0 0x1000>;
|
||||
clocks = <&vdosys0 CLK_VDO0_SMI_COMMON>,
|
||||
<&vdosys0 CLK_VDO0_SMI_GALS>;
|
||||
clock-names = "apb", "smi";
|
||||
power-domains = <&spm MT8188_POWER_DOMAIN_VDOSYS0>;
|
||||
};
|
||||
|
||||
vdo_iommu: iommu@1c028000 {
|
||||
compatible = "mediatek,mt8188-iommu-vdo";
|
||||
reg = <0 0x1c028000 0 0x5000>;
|
||||
clocks = <&vdosys0 CLK_VDO0_SMI_IOMMU>;
|
||||
clock-names = "bclk";
|
||||
interrupts = <GIC_SPI 673 IRQ_TYPE_LEVEL_HIGH 0>;
|
||||
power-domains = <&spm MT8188_POWER_DOMAIN_VDOSYS0>;
|
||||
#iommu-cells = <1>;
|
||||
mediatek,larbs = <&larb0 &larb2 &larb5 &larb19 &larb21>;
|
||||
};
|
||||
|
||||
vdosys1: syscon@1c100000 {
|
||||
compatible = "mediatek,mt8188-vdosys1", "syscon";
|
||||
reg = <0 0x1c100000 0 0x1000>;
|
||||
@@ -1933,5 +2080,27 @@ vdosys1: syscon@1c100000 {
|
||||
mboxes = <&gce0 1 CMDQ_THR_PRIO_4>;
|
||||
mediatek,gce-client-reg = <&gce0 SUBSYS_1c10XXXX 0 0x1000>;
|
||||
};
|
||||
|
||||
larb2: smi@1c102000 {
|
||||
compatible = "mediatek,mt8188-smi-larb";
|
||||
reg = <0 0x1c102000 0 0x1000>;
|
||||
clocks = <&vdosys1 CLK_VDO1_SMI_LARB2>,
|
||||
<&vdosys1 CLK_VDO1_SMI_LARB2>;
|
||||
clock-names = "apb", "smi";
|
||||
power-domains = <&spm MT8188_POWER_DOMAIN_VDOSYS1>;
|
||||
mediatek,larb-id = <SMI_L2_ID>;
|
||||
mediatek,smi = <&vdo_smi_common>;
|
||||
};
|
||||
|
||||
larb3: smi@1c103000 {
|
||||
compatible = "mediatek,mt8188-smi-larb";
|
||||
reg = <0 0x1c103000 0 0x1000>;
|
||||
clocks = <&vdosys1 CLK_VDO1_SMI_LARB3>,
|
||||
<&vdosys1 CLK_VDO1_SMI_LARB3>;
|
||||
clock-names = "apb", "smi";
|
||||
power-domains = <&spm MT8188_POWER_DOMAIN_VDOSYS1>;
|
||||
mediatek,larb-id = <SMI_L3_ID>;
|
||||
mediatek,smi = <&vpp_smi_common>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user