pmdomain: mediatek: Add MT8188 buck isolation setting
authorJohnson Wang <johnson.wang@mediatek.com>
Fri, 29 Mar 2024 04:38:40 +0000 (12:38 +0800)
committerUlf Hansson <ulf.hansson@linaro.org>
Thu, 4 Apr 2024 09:45:36 +0000 (11:45 +0200)
Add buck isolation setting to ADSP_AO, CAM_VCORE and IMG_VCORE power
domains in MT8188 for proper buck isolation control in power domain
on/off.

Signed-off-by: Johnson Wang <johnson.wang@mediatek.com>
Signed-off-by: Fei Shao <fshao@chromium.org>
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Link: https://lore.kernel.org/r/20240329044142.3095193-1-fshao@chromium.org
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
drivers/pmdomain/mediatek/mt8188-pm-domains.h

index 06834ab6597c1106430f16624870797a3a1b22c9..007235be9efe59c98d34beee22bb74cfe7fc832b 100644 (file)
@@ -175,6 +175,8 @@ static const struct scpsys_domain_data scpsys_domain_data_mt8188[] = {
                .ctl_offs = 0x35C,
                .pwr_sta_offs = 0x16C,
                .pwr_sta2nd_offs = 0x170,
+               .ext_buck_iso_offs = 0x3EC,
+               .ext_buck_iso_mask = BIT(10),
                .bp_cfg = {
                        BUS_PROT_WR(INFRA,
                                    MT8188_TOP_AXI_PROT_EN_2_ADSP_AO_STEP1,
@@ -187,7 +189,7 @@ static const struct scpsys_domain_data scpsys_domain_data_mt8188[] = {
                                    MT8188_TOP_AXI_PROT_EN_2_CLR,
                                    MT8188_TOP_AXI_PROT_EN_2_STA),
                },
-               .caps = MTK_SCPD_ALWAYS_ON,
+               .caps = MTK_SCPD_ALWAYS_ON | MTK_SCPD_EXT_BUCK_ISO,
        },
        [MT8188_POWER_DOMAIN_ADSP_INFRA] = {
                .name = "adsp_infra",
@@ -524,6 +526,8 @@ static const struct scpsys_domain_data scpsys_domain_data_mt8188[] = {
                .ctl_offs = 0x3A4,
                .pwr_sta_offs = 0x16C,
                .pwr_sta2nd_offs = 0x170,
+               .ext_buck_iso_offs = 0x3EC,
+               .ext_buck_iso_mask = BIT(12),
                .bp_cfg = {
                        BUS_PROT_WR(INFRA,
                                    MT8188_TOP_AXI_PROT_EN_MM_IMG_VCORE_STEP1,
@@ -541,7 +545,8 @@ static const struct scpsys_domain_data scpsys_domain_data_mt8188[] = {
                                    MT8188_TOP_AXI_PROT_EN_MM_2_CLR,
                                    MT8188_TOP_AXI_PROT_EN_MM_2_STA),
                },
-               .caps = MTK_SCPD_KEEP_DEFAULT_OFF | MTK_SCPD_DOMAIN_SUPPLY,
+               .caps = MTK_SCPD_KEEP_DEFAULT_OFF | MTK_SCPD_DOMAIN_SUPPLY |
+                       MTK_SCPD_EXT_BUCK_ISO,
        },
        [MT8188_POWER_DOMAIN_IMG_MAIN] = {
                .name = "img_main",
@@ -591,6 +596,8 @@ static const struct scpsys_domain_data scpsys_domain_data_mt8188[] = {
                .ctl_offs = 0x3A0,
                .pwr_sta_offs = 0x16C,
                .pwr_sta2nd_offs = 0x170,
+               .ext_buck_iso_offs = 0x3EC,
+               .ext_buck_iso_mask = BIT(11),
                .bp_cfg = {
                        BUS_PROT_WR(INFRA,
                                    MT8188_TOP_AXI_PROT_EN_MM_CAM_VCORE_STEP1,
@@ -618,7 +625,8 @@ static const struct scpsys_domain_data scpsys_domain_data_mt8188[] = {
                                    MT8188_TOP_AXI_PROT_EN_MM_2_CLR,
                                    MT8188_TOP_AXI_PROT_EN_MM_2_STA),
                },
-               .caps = MTK_SCPD_KEEP_DEFAULT_OFF | MTK_SCPD_DOMAIN_SUPPLY,
+               .caps = MTK_SCPD_KEEP_DEFAULT_OFF | MTK_SCPD_DOMAIN_SUPPLY |
+                       MTK_SCPD_EXT_BUCK_ISO,
        },
        [MT8188_POWER_DOMAIN_CAM_MAIN] = {
                .name = "cam_main",