sysmmu,tlb_property =
<(SYSMMU_PORT_NO_PREFETCH_READ(0x0) | SYSMMU_BL8) SYSMMU_NOID>;
#iommu-cells = <0>;
+ samsung,power-domain = <&pd_vipx2>;
};
sysmmu_vipx2: sysmmu@10E50000 {
sysmmu,tlb_property =
<(SYSMMU_PORT_NO_PREFETCH_READ(0x0) | SYSMMU_BL8) SYSMMU_NOID>;
#iommu-cells = <0>;
+ samsung,power-domain = <&pd_vipx2>;
};
sysmmu_mfc0: sysmmu@12C70000 {
sysmmu,tlb_property =
<(SYSMMU_PORT_NO_PREFETCH_READ(0x0) | SYSMMU_BL8) SYSMMU_NOID>;
#iommu-cells = <0>;
+ samsung,power-domain = <&pd_mfc>;
};
sysmmu_mfc1: sysmmu@12C90000 {
<(SYSMMU_PORT_NO_PREFETCH_READ(0x0) | SYSMMU_BL8) SYSMMU_NOID>,
<(SYSMMU_PORT_NO_PREFETCH_READWRITE(0x1) | SYSMMU_BL2) SYSMMU_ID_MASK(0x1, 0x1)>;
#iommu-cells = <0>;
+ samsung,power-domain = <&pd_mfc>;
};
sysmmu_g2d: sysmmu@12E70000 {
<(SYSMMU_PORT_NO_PREFETCH_READ(0x1) | SYSMMU_BL32) SYSMMU_ID_MASK(0x1, 0x3)>,
<(SYSMMU_PORT_PREFETCH_PREDICTION_READ(0x1) | SYSMMU_BL8) SYSMMU_ID_MASK(0x2, 0x3)>;
#iommu-cells = <0>;
+ samsung,power-domain = <&pd_g2d>;
};
sysmmu_cam: sysmmu@14550000 {
<(SYSMMU_PORT_PREFETCH_PREDICTION_WRITE(0x1) | SYSMMU_BL1) SYSMMU_ID_MASK(0x19, 0x1F)>,
<(SYSMMU_PORT_PREFETCH_PREDICTION_WRITE(0x1) | SYSMMU_BL1) SYSMMU_ID_MASK(0x1B, 0x1F)>;
#iommu-cells = <0>;
+ samsung,power-domain = <&pd_cam>;
};
sysmmu_isp0: sysmmu@14740000 {
<(SYSMMU_PORT_PREFETCH_PREDICTION_WRITE(0x1) | SYSMMU_BL32) SYSMMU_ID_MASK(0x2, 0x7)>,
<(SYSMMU_PORT_PREFETCH_PREDICTION_WRITE(0x1) | SYSMMU_BL32) SYSMMU_ID_MASK(0x6, 0x7)>;
#iommu-cells = <0>;
+ samsung,power-domain = <&pd_isp>;
};
sysmmu_isp1: sysmmu@14770000 {
<(SYSMMU_PORT_PREFETCH_PREDICTION_WRITE(0x1) | SYSMMU_BL1) SYSMMU_ID_MASK(0x21, 0x3F)>,
<(SYSMMU_PORT_PREFETCH_PREDICTION_WRITE(0x1) | SYSMMU_BL1) SYSMMU_ID_MASK(0x22, 0x3F)>;
#iommu-cells = <0>;
+ samsung,power-domain = <&pd_isp>;
};
sysmmu_dpu: sysmmu@14820000 {
<(SYSMMU_PORT_PREFETCH_PREDICTION_READ(0x1) | SYSMMU_BL1) SYSMMU_ID_MASK(0x16, 0x1F)>,
<(SYSMMU_PORT_PREFETCH_PREDICTION_READ(0x1) | SYSMMU_BL1) SYSMMU_ID_MASK(0x17, 0x1F)>;
#iommu-cells = <0>;
+ samsung,power-domain = <&pd_dispaud>;
};
sysmmu_abox: sysmmu@14920000 {
sysmmu,tlb_property =
<(SYSMMU_PORT_NO_PREFETCH_READ(0x0) | SYSMMU_BL1) SYSMMU_NOID>;
#iommu-cells = <0>;
+ samsung,power-domain = <&pd_dispaud>;
};
};
static int sysmmu_get_hw_info(struct sysmmu_drvdata *data)
{
- int ret;
struct tlb_props *tlb_props = &data->tlb_props;
- ret = pm_runtime_get_sync(data->sysmmu);
- if (ret < 0) {
- dev_err(data->sysmmu, "Failed to runtime pm get(%d)\n", ret);
- return ret;
- }
-
data->version = __sysmmu_get_hw_version(data);
/*
else if (__sysmmu_get_capa_type(data) == 0)
tlb_props->flags |= TLB_TYPE_PORT;
- pm_runtime_put(data->sysmmu);
-
return 0;
}
kmem_cache_destroy(lv2table_kmem_cache);
return ret;
}
-core_initcall(exynos_iommu_init);
+subsys_initcall_sync(exynos_iommu_init);
IOMMU_OF_DECLARE(exynos_iommu_of, "samsung,exynos-sysmmu", NULL);