Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

pmdomain: mediatek: Convert all SoCs to new style regmap retrieval

Add the bus_prot_blocks handle and declare num_bus_prot_blocks to
allow all of the currently supported AArch64 MediaTek SoCs to use
the new style regmap retrieval in the driver when a new style
devicetree declaring the mediatek,bus-protection phandle(s) in
the main power controller node is found.

Reviewed-by: Nícolas F. R. A. Prado <nfraprado@collabora.com>
Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Link: https://lore.kernel.org/r/20250805074746.29457-10-angelogioacchino.delregno@collabora.com
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>

authored by

AngeloGioacchino Del Regno and committed by
Ulf Hansson
ffeebf75 9d02c943

+47
+5
drivers/pmdomain/mediatek/mt6795-pm-domains.h
··· 9 9 /* 10 10 * MT6795 power domain support 11 11 */ 12 + static enum scpsys_bus_prot_block scpsys_bus_prot_blocks_mt6795[] = { 13 + BUS_PROT_BLOCK_INFRA 14 + }; 12 15 13 16 static const struct scpsys_domain_data scpsys_domain_data_mt6795[] = { 14 17 [MT6795_POWER_DOMAIN_VDEC] = { ··· 110 107 static const struct scpsys_soc_data mt6795_scpsys_data = { 111 108 .domains_data = scpsys_domain_data_mt6795, 112 109 .num_domains = ARRAY_SIZE(scpsys_domain_data_mt6795), 110 + .bus_prot_blocks = scpsys_bus_prot_blocks_mt6795, 111 + .num_bus_prot_blocks = ARRAY_SIZE(scpsys_bus_prot_blocks_mt6795), 113 112 }; 114 113 115 114 #endif /* __SOC_MEDIATEK_MT6795_PM_DOMAINS_H */
+5
drivers/pmdomain/mediatek/mt8167-pm-domains.h
··· 12 12 /* 13 13 * MT8167 power domain support 14 14 */ 15 + static enum scpsys_bus_prot_block scpsys_bus_prot_blocks_mt8167[] = { 16 + BUS_PROT_BLOCK_INFRA 17 + }; 15 18 16 19 static const struct scpsys_domain_data scpsys_domain_data_mt8167[] = { 17 20 [MT8167_POWER_DOMAIN_MM] = { ··· 102 99 static const struct scpsys_soc_data mt8167_scpsys_data = { 103 100 .domains_data = scpsys_domain_data_mt8167, 104 101 .num_domains = ARRAY_SIZE(scpsys_domain_data_mt8167), 102 + .bus_prot_blocks = scpsys_bus_prot_blocks_mt8167, 103 + .num_bus_prot_blocks = ARRAY_SIZE(scpsys_bus_prot_blocks_mt8167), 105 104 }; 106 105 107 106 #endif /* __SOC_MEDIATEK_MT8167_PM_DOMAINS_H */
+5
drivers/pmdomain/mediatek/mt8173-pm-domains.h
··· 9 9 /* 10 10 * MT8173 power domain support 11 11 */ 12 + static enum scpsys_bus_prot_block scpsys_bus_prot_blocks_mt8173[] = { 13 + BUS_PROT_BLOCK_INFRA 14 + }; 12 15 13 16 static const struct scpsys_domain_data scpsys_domain_data_mt8173[] = { 14 17 [MT8173_POWER_DOMAIN_VDEC] = { ··· 121 118 static const struct scpsys_soc_data mt8173_scpsys_data = { 122 119 .domains_data = scpsys_domain_data_mt8173, 123 120 .num_domains = ARRAY_SIZE(scpsys_domain_data_mt8173), 121 + .bus_prot_blocks = scpsys_bus_prot_blocks_mt8173, 122 + .num_bus_prot_blocks = ARRAY_SIZE(scpsys_bus_prot_blocks_mt8173), 124 123 }; 125 124 126 125 #endif /* __SOC_MEDIATEK_MT8173_PM_DOMAINS_H */
+5
drivers/pmdomain/mediatek/mt8183-pm-domains.h
··· 9 9 /* 10 10 * MT8183 power domain support 11 11 */ 12 + static enum scpsys_bus_prot_block scpsys_bus_prot_blocks_mt8183[] = { 13 + BUS_PROT_BLOCK_INFRA, BUS_PROT_BLOCK_SMI 14 + }; 12 15 13 16 static const struct scpsys_domain_data scpsys_domain_data_mt8183[] = { 14 17 [MT8183_POWER_DOMAIN_AUDIO] = { ··· 293 290 static const struct scpsys_soc_data mt8183_scpsys_data = { 294 291 .domains_data = scpsys_domain_data_mt8183, 295 292 .num_domains = ARRAY_SIZE(scpsys_domain_data_mt8183), 293 + .bus_prot_blocks = scpsys_bus_prot_blocks_mt8183, 294 + .num_bus_prot_blocks = ARRAY_SIZE(scpsys_bus_prot_blocks_mt8183), 296 295 }; 297 296 298 297 #endif /* __SOC_MEDIATEK_MT8183_PM_DOMAINS_H */
+5
drivers/pmdomain/mediatek/mt8186-pm-domains.h
··· 13 13 /* 14 14 * MT8186 power domain support 15 15 */ 16 + static enum scpsys_bus_prot_block scpsys_bus_prot_blocks_mt8186[] = { 17 + BUS_PROT_BLOCK_INFRA 18 + }; 16 19 17 20 static const struct scpsys_domain_data scpsys_domain_data_mt8186[] = { 18 21 [MT8186_POWER_DOMAIN_MFG0] = { ··· 364 361 static const struct scpsys_soc_data mt8186_scpsys_data = { 365 362 .domains_data = scpsys_domain_data_mt8186, 366 363 .num_domains = ARRAY_SIZE(scpsys_domain_data_mt8186), 364 + .bus_prot_blocks = scpsys_bus_prot_blocks_mt8186, 365 + .num_bus_prot_blocks = ARRAY_SIZE(scpsys_bus_prot_blocks_mt8186), 367 366 }; 368 367 369 368 #endif /* __SOC_MEDIATEK_MT8186_PM_DOMAINS_H */
+6
drivers/pmdomain/mediatek/mt8188-pm-domains.h
··· 14 14 * MT8188 power domain support 15 15 */ 16 16 17 + static enum scpsys_bus_prot_block scpsys_bus_prot_blocks_mt8188[] = { 18 + BUS_PROT_BLOCK_INFRA 19 + }; 20 + 17 21 static const struct scpsys_domain_data scpsys_domain_data_mt8188[] = { 18 22 [MT8188_POWER_DOMAIN_MFG0] = { 19 23 .name = "mfg0", ··· 689 685 static const struct scpsys_soc_data mt8188_scpsys_data = { 690 686 .domains_data = scpsys_domain_data_mt8188, 691 687 .num_domains = ARRAY_SIZE(scpsys_domain_data_mt8188), 688 + .bus_prot_blocks = scpsys_bus_prot_blocks_mt8188, 689 + .num_bus_prot_blocks = ARRAY_SIZE(scpsys_bus_prot_blocks_mt8188), 692 690 }; 693 691 694 692 #endif /* __SOC_MEDIATEK_MT8188_PM_DOMAINS_H */
+5
drivers/pmdomain/mediatek/mt8192-pm-domains.h
··· 9 9 /* 10 10 * MT8192 power domain support 11 11 */ 12 + static enum scpsys_bus_prot_block scpsys_bus_prot_blocks_mt8192[] = { 13 + BUS_PROT_BLOCK_INFRA 14 + }; 12 15 13 16 static const struct scpsys_domain_data scpsys_domain_data_mt8192[] = { 14 17 [MT8192_POWER_DOMAIN_AUDIO] = { ··· 383 380 static const struct scpsys_soc_data mt8192_scpsys_data = { 384 381 .domains_data = scpsys_domain_data_mt8192, 385 382 .num_domains = ARRAY_SIZE(scpsys_domain_data_mt8192), 383 + .bus_prot_blocks = scpsys_bus_prot_blocks_mt8192, 384 + .num_bus_prot_blocks = ARRAY_SIZE(scpsys_bus_prot_blocks_mt8192), 386 385 }; 387 386 388 387 #endif /* __SOC_MEDIATEK_MT8192_PM_DOMAINS_H */
+5
drivers/pmdomain/mediatek/mt8195-pm-domains.h
··· 13 13 /* 14 14 * MT8195 power domain support 15 15 */ 16 + static enum scpsys_bus_prot_block scpsys_bus_prot_blocks_mt8195[] = { 17 + BUS_PROT_BLOCK_INFRA 18 + }; 16 19 17 20 static const struct scpsys_domain_data scpsys_domain_data_mt8195[] = { 18 21 [MT8195_POWER_DOMAIN_PCIE_MAC_P0] = { ··· 664 661 static const struct scpsys_soc_data mt8195_scpsys_data = { 665 662 .domains_data = scpsys_domain_data_mt8195, 666 663 .num_domains = ARRAY_SIZE(scpsys_domain_data_mt8195), 664 + .bus_prot_blocks = scpsys_bus_prot_blocks_mt8195, 665 + .num_bus_prot_blocks = ARRAY_SIZE(scpsys_bus_prot_blocks_mt8195), 667 666 }; 668 667 669 668 #endif /* __SOC_MEDIATEK_MT8195_PM_DOMAINS_H */
+6
drivers/pmdomain/mediatek/mt8365-pm-domains.h
··· 33 33 _sta_mask, _sta, \ 34 34 BUS_PROT_INVERTED | BUS_PROT_REG_UPDATE) 35 35 36 + static enum scpsys_bus_prot_block scpsys_bus_prot_blocks_mt8365[] = { 37 + BUS_PROT_BLOCK_INFRA, BUS_PROT_BLOCK_INFRA_NAO, BUS_PROT_BLOCK_SMI 38 + }; 39 + 36 40 static const struct scpsys_domain_data scpsys_domain_data_mt8365[] = { 37 41 [MT8365_POWER_DOMAIN_MM] = { 38 42 .name = "mm", ··· 194 190 static const struct scpsys_soc_data mt8365_scpsys_data = { 195 191 .domains_data = scpsys_domain_data_mt8365, 196 192 .num_domains = ARRAY_SIZE(scpsys_domain_data_mt8365), 193 + .bus_prot_blocks = scpsys_bus_prot_blocks_mt8365, 194 + .num_bus_prot_blocks = ARRAY_SIZE(scpsys_bus_prot_blocks_mt8365), 197 195 }; 198 196 199 197 #endif /* __SOC_MEDIATEK_MT8365_PM_DOMAINS_H */