Commit 13bde169 authored by AngeloGioacchino Del Regno's avatar AngeloGioacchino Del Regno Committed by Matthias Brugger

soc: mediatek: mtk-pm-domains: Allow probing vreg supply on two MFGs

MediaTek SoCs have multiple MFG power-domains, exclusively used for
the GPU which, in turn, requires external power supplies: make sure
to have the MTK_SCPD_DOMAIN_SUPPLY cap on the two topmost MFGs to
allow voting for regulators on/off upon usage of these power domains.

This also ensures that the SRAM is actually powered and that we're
not relying on the bootloader leaving this supply on when performing
the first (and latter) poweron sequence for these domains' sram.
Signed-off-by: default avatarAngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Link: https://lore.kernel.org/r/20220623123850.110225-2-angelogioacchino.delregno@collabora.comSigned-off-by: default avatarMatthias Brugger <matthias.bgg@gmail.com>
parent a825d72f
...@@ -41,6 +41,7 @@ static const struct scpsys_domain_data scpsys_domain_data_mt8183[] = { ...@@ -41,6 +41,7 @@ static const struct scpsys_domain_data scpsys_domain_data_mt8183[] = {
.pwr_sta2nd_offs = 0x0184, .pwr_sta2nd_offs = 0x0184,
.sram_pdn_bits = 0, .sram_pdn_bits = 0,
.sram_pdn_ack_bits = 0, .sram_pdn_ack_bits = 0,
.caps = MTK_SCPD_DOMAIN_SUPPLY,
}, },
[MT8183_POWER_DOMAIN_MFG] = { [MT8183_POWER_DOMAIN_MFG] = {
.name = "mfg", .name = "mfg",
......
...@@ -51,7 +51,7 @@ static const struct scpsys_domain_data scpsys_domain_data_mt8186[] = { ...@@ -51,7 +51,7 @@ static const struct scpsys_domain_data scpsys_domain_data_mt8186[] = {
MT8186_TOP_AXI_PROT_EN_1_CLR, MT8186_TOP_AXI_PROT_EN_1_CLR,
MT8186_TOP_AXI_PROT_EN_1_STA), MT8186_TOP_AXI_PROT_EN_1_STA),
}, },
.caps = MTK_SCPD_KEEP_DEFAULT_OFF, .caps = MTK_SCPD_KEEP_DEFAULT_OFF | MTK_SCPD_DOMAIN_SUPPLY,
}, },
[MT8186_POWER_DOMAIN_MFG2] = { [MT8186_POWER_DOMAIN_MFG2] = {
.name = "mfg2", .name = "mfg2",
......
...@@ -58,6 +58,7 @@ static const struct scpsys_domain_data scpsys_domain_data_mt8192[] = { ...@@ -58,6 +58,7 @@ static const struct scpsys_domain_data scpsys_domain_data_mt8192[] = {
.pwr_sta2nd_offs = 0x0170, .pwr_sta2nd_offs = 0x0170,
.sram_pdn_bits = GENMASK(8, 8), .sram_pdn_bits = GENMASK(8, 8),
.sram_pdn_ack_bits = GENMASK(12, 12), .sram_pdn_ack_bits = GENMASK(12, 12),
.caps = MTK_SCPD_DOMAIN_SUPPLY,
}, },
[MT8192_POWER_DOMAIN_MFG1] = { [MT8192_POWER_DOMAIN_MFG1] = {
.name = "mfg1", .name = "mfg1",
...@@ -85,6 +86,7 @@ static const struct scpsys_domain_data scpsys_domain_data_mt8192[] = { ...@@ -85,6 +86,7 @@ static const struct scpsys_domain_data scpsys_domain_data_mt8192[] = {
MT8192_TOP_AXI_PROT_EN_2_CLR, MT8192_TOP_AXI_PROT_EN_2_CLR,
MT8192_TOP_AXI_PROT_EN_2_STA1), MT8192_TOP_AXI_PROT_EN_2_STA1),
}, },
.caps = MTK_SCPD_DOMAIN_SUPPLY,
}, },
[MT8192_POWER_DOMAIN_MFG2] = { [MT8192_POWER_DOMAIN_MFG2] = {
.name = "mfg2", .name = "mfg2",
......
...@@ -162,7 +162,7 @@ static const struct scpsys_domain_data scpsys_domain_data_mt8195[] = { ...@@ -162,7 +162,7 @@ static const struct scpsys_domain_data scpsys_domain_data_mt8195[] = {
MT8195_TOP_AXI_PROT_EN_SUB_INFRA_VDNR_CLR, MT8195_TOP_AXI_PROT_EN_SUB_INFRA_VDNR_CLR,
MT8195_TOP_AXI_PROT_EN_SUB_INFRA_VDNR_STA1), MT8195_TOP_AXI_PROT_EN_SUB_INFRA_VDNR_STA1),
}, },
.caps = MTK_SCPD_KEEP_DEFAULT_OFF, .caps = MTK_SCPD_KEEP_DEFAULT_OFF | MTK_SCPD_DOMAIN_SUPPLY,
}, },
[MT8195_POWER_DOMAIN_MFG2] = { [MT8195_POWER_DOMAIN_MFG2] = {
.name = "mfg2", .name = "mfg2",
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment