15437b281SAngeloGioacchino Del Regno /* SPDX-License-Identifier: GPL-2.0-only */ 25437b281SAngeloGioacchino Del Regno /* 35437b281SAngeloGioacchino Del Regno * Copyright (c) 2025 Collabora Ltd 45437b281SAngeloGioacchino Del Regno * AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com> 55437b281SAngeloGioacchino Del Regno */ 65437b281SAngeloGioacchino Del Regno 75437b281SAngeloGioacchino Del Regno #ifndef __SOC_MEDIATEK_MT8196_PM_DOMAINS_H 85437b281SAngeloGioacchino Del Regno #define __SOC_MEDIATEK_MT8196_PM_DOMAINS_H 95437b281SAngeloGioacchino Del Regno 105437b281SAngeloGioacchino Del Regno #include "mtk-pm-domains.h" 115437b281SAngeloGioacchino Del Regno #include <dt-bindings/power/mediatek,mt8196-power.h> 125437b281SAngeloGioacchino Del Regno 135437b281SAngeloGioacchino Del Regno /* 145437b281SAngeloGioacchino Del Regno * MT8196 and MT6991 power domain support 155437b281SAngeloGioacchino Del Regno */ 165437b281SAngeloGioacchino Del Regno 175437b281SAngeloGioacchino Del Regno /* INFRA TOP_AXI registers */ 185437b281SAngeloGioacchino Del Regno #define MT8196_TOP_AXI_PROT_EN_SET 0x4 195437b281SAngeloGioacchino Del Regno #define MT8196_TOP_AXI_PROT_EN_CLR 0x8 205437b281SAngeloGioacchino Del Regno #define MT8196_TOP_AXI_PROT_EN_STA 0xc 215437b281SAngeloGioacchino Del Regno #define MT8196_TOP_AXI_PROT_EN_SLEEP0_MD BIT(29) 225437b281SAngeloGioacchino Del Regno 235437b281SAngeloGioacchino Del Regno #define MT8196_TOP_AXI_PROT_EN_1_SET 0x24 245437b281SAngeloGioacchino Del Regno #define MT8196_TOP_AXI_PROT_EN_1_CLR 0x28 255437b281SAngeloGioacchino Del Regno #define MT8196_TOP_AXI_PROT_EN_1_STA 0x2c 265437b281SAngeloGioacchino Del Regno #define MT8196_TOP_AXI_PROT_EN_1_SLEEP1_MD BIT(0) 275437b281SAngeloGioacchino Del Regno 285437b281SAngeloGioacchino Del Regno /* SPM BUS_PROTECT registers */ 295437b281SAngeloGioacchino Del Regno #define MT8196_SPM_BUS_PROTECT_CON_SET 0xdc 305437b281SAngeloGioacchino Del Regno #define MT8196_SPM_BUS_PROTECT_CON_CLR 0xe0 315437b281SAngeloGioacchino Del Regno #define MT8196_SPM_BUS_PROTECT_RDY 0x208 325437b281SAngeloGioacchino Del Regno #define MT8196_SPM_PROT_EN_BUS_CONN BIT(1) 335437b281SAngeloGioacchino Del Regno #define MT8196_SPM_PROT_EN_BUS_SSUSB_DP_PHY_P0 BIT(6) 345437b281SAngeloGioacchino Del Regno #define MT8196_SPM_PROT_EN_BUS_SSUSB_P0 BIT(7) 355437b281SAngeloGioacchino Del Regno #define MT8196_SPM_PROT_EN_BUS_SSUSB_P1 BIT(8) 365437b281SAngeloGioacchino Del Regno #define MT8196_SPM_PROT_EN_BUS_SSUSB_P23 BIT(9) 375437b281SAngeloGioacchino Del Regno #define MT8196_SPM_PROT_EN_BUS_SSUSB_PHY_P2 BIT(10) 385437b281SAngeloGioacchino Del Regno #define MT8196_SPM_PROT_EN_BUS_PEXTP_MAC0 BIT(13) 395437b281SAngeloGioacchino Del Regno #define MT8196_SPM_PROT_EN_BUS_PEXTP_MAC1 BIT(14) 405437b281SAngeloGioacchino Del Regno #define MT8196_SPM_PROT_EN_BUS_PEXTP_MAC2 BIT(15) 415437b281SAngeloGioacchino Del Regno #define MT8196_SPM_PROT_EN_BUS_PEXTP_PHY0 BIT(16) 425437b281SAngeloGioacchino Del Regno #define MT8196_SPM_PROT_EN_BUS_PEXTP_PHY1 BIT(17) 435437b281SAngeloGioacchino Del Regno #define MT8196_SPM_PROT_EN_BUS_PEXTP_PHY2 BIT(18) 445437b281SAngeloGioacchino Del Regno #define MT8196_SPM_PROT_EN_BUS_AUDIO BIT(19) 455437b281SAngeloGioacchino Del Regno #define MT8196_SPM_PROT_EN_BUS_ADSP_TOP BIT(21) 465437b281SAngeloGioacchino Del Regno #define MT8196_SPM_PROT_EN_BUS_ADSP_INFRA BIT(22) 475437b281SAngeloGioacchino Del Regno #define MT8196_SPM_PROT_EN_BUS_ADSP_AO BIT(23) 485437b281SAngeloGioacchino Del Regno #define MT8196_SPM_PROT_EN_BUS_MM_PROC BIT(24) 495437b281SAngeloGioacchino Del Regno 505437b281SAngeloGioacchino Del Regno /* PWR_CON registers */ 515437b281SAngeloGioacchino Del Regno #define MT8196_PWR_ACK BIT(30) 525437b281SAngeloGioacchino Del Regno #define MT8196_PWR_ACK_2ND BIT(31) 535437b281SAngeloGioacchino Del Regno 545437b281SAngeloGioacchino Del Regno static enum scpsys_bus_prot_block scpsys_bus_prot_blocks_mt8196[] = { 555437b281SAngeloGioacchino Del Regno BUS_PROT_BLOCK_INFRA, BUS_PROT_BLOCK_SPM 565437b281SAngeloGioacchino Del Regno }; 575437b281SAngeloGioacchino Del Regno 585437b281SAngeloGioacchino Del Regno static const struct scpsys_domain_data scpsys_domain_data_mt8196[] = { 595437b281SAngeloGioacchino Del Regno [MT8196_POWER_DOMAIN_MD] = { 605437b281SAngeloGioacchino Del Regno .name = "md", 615437b281SAngeloGioacchino Del Regno .sta_mask = MT8196_PWR_ACK, 625437b281SAngeloGioacchino Del Regno .sta2nd_mask = MT8196_PWR_ACK_2ND, 635437b281SAngeloGioacchino Del Regno .ctl_offs = 0xe00, 645437b281SAngeloGioacchino Del Regno .pwr_sta_offs = 0xe00, 655437b281SAngeloGioacchino Del Regno .pwr_sta2nd_offs = 0xe00, 665437b281SAngeloGioacchino Del Regno .ext_buck_iso_offs = 0xefc, 675437b281SAngeloGioacchino Del Regno .ext_buck_iso_mask = GENMASK(1, 0), 685437b281SAngeloGioacchino Del Regno .bp_cfg = { 695437b281SAngeloGioacchino Del Regno BUS_PROT_WR_IGN(INFRA, MT8196_TOP_AXI_PROT_EN_SLEEP0_MD, 705437b281SAngeloGioacchino Del Regno MT8196_TOP_AXI_PROT_EN_SET, 715437b281SAngeloGioacchino Del Regno MT8196_TOP_AXI_PROT_EN_CLR, 725437b281SAngeloGioacchino Del Regno MT8196_TOP_AXI_PROT_EN_STA), 735437b281SAngeloGioacchino Del Regno BUS_PROT_WR_IGN(INFRA, MT8196_TOP_AXI_PROT_EN_1_SLEEP1_MD, 745437b281SAngeloGioacchino Del Regno MT8196_TOP_AXI_PROT_EN_1_SET, 755437b281SAngeloGioacchino Del Regno MT8196_TOP_AXI_PROT_EN_1_CLR, 765437b281SAngeloGioacchino Del Regno MT8196_TOP_AXI_PROT_EN_1_STA), 775437b281SAngeloGioacchino Del Regno }, 785437b281SAngeloGioacchino Del Regno .caps = MTK_SCPD_MODEM_PWRSEQ | MTK_SCPD_EXT_BUCK_ISO | 795437b281SAngeloGioacchino Del Regno MTK_SCPD_SKIP_RESET_B | MTK_SCPD_KEEP_DEFAULT_OFF, 805437b281SAngeloGioacchino Del Regno }, 815437b281SAngeloGioacchino Del Regno [MT8196_POWER_DOMAIN_CONN] = { 825437b281SAngeloGioacchino Del Regno .name = "conn", 835437b281SAngeloGioacchino Del Regno .sta_mask = MT8196_PWR_ACK, 845437b281SAngeloGioacchino Del Regno .sta2nd_mask = MT8196_PWR_ACK_2ND, 855437b281SAngeloGioacchino Del Regno .ctl_offs = 0xe04, 865437b281SAngeloGioacchino Del Regno .pwr_sta_offs = 0xe04, 875437b281SAngeloGioacchino Del Regno .pwr_sta2nd_offs = 0xe04, 885437b281SAngeloGioacchino Del Regno .bp_cfg = { 895437b281SAngeloGioacchino Del Regno BUS_PROT_WR_IGN(SPM, MT8196_SPM_PROT_EN_BUS_CONN, 905437b281SAngeloGioacchino Del Regno MT8196_SPM_BUS_PROTECT_CON_SET, 915437b281SAngeloGioacchino Del Regno MT8196_SPM_BUS_PROTECT_CON_CLR, 925437b281SAngeloGioacchino Del Regno MT8196_SPM_BUS_PROTECT_RDY), 935437b281SAngeloGioacchino Del Regno }, 945437b281SAngeloGioacchino Del Regno .caps = MTK_SCPD_KEEP_DEFAULT_OFF, 955437b281SAngeloGioacchino Del Regno .rtff_type = SCPSYS_RTFF_TYPE_GENERIC, 965437b281SAngeloGioacchino Del Regno }, 975437b281SAngeloGioacchino Del Regno [MT8196_POWER_DOMAIN_SSUSB_DP_PHY_P0] = { 985437b281SAngeloGioacchino Del Regno .name = "ssusb-dp-phy-p0", 995437b281SAngeloGioacchino Del Regno .sta_mask = MT8196_PWR_ACK, 1005437b281SAngeloGioacchino Del Regno .sta2nd_mask = MT8196_PWR_ACK_2ND, 1015437b281SAngeloGioacchino Del Regno .ctl_offs = 0xe18, 1025437b281SAngeloGioacchino Del Regno .pwr_sta_offs = 0xe18, 1035437b281SAngeloGioacchino Del Regno .pwr_sta2nd_offs = 0xe18, 1045437b281SAngeloGioacchino Del Regno .bp_cfg = { 1055437b281SAngeloGioacchino Del Regno BUS_PROT_WR_IGN(SPM, MT8196_SPM_PROT_EN_BUS_SSUSB_DP_PHY_P0, 1065437b281SAngeloGioacchino Del Regno MT8196_SPM_BUS_PROTECT_CON_SET, 1075437b281SAngeloGioacchino Del Regno MT8196_SPM_BUS_PROTECT_CON_CLR, 1085437b281SAngeloGioacchino Del Regno MT8196_SPM_BUS_PROTECT_RDY), 1095437b281SAngeloGioacchino Del Regno }, 1105437b281SAngeloGioacchino Del Regno .caps = MTK_SCPD_ALWAYS_ON, 1115437b281SAngeloGioacchino Del Regno .rtff_type = SCPSYS_RTFF_TYPE_GENERIC, 1125437b281SAngeloGioacchino Del Regno }, 1135437b281SAngeloGioacchino Del Regno [MT8196_POWER_DOMAIN_SSUSB_P0] = { 1145437b281SAngeloGioacchino Del Regno .name = "ssusb-p0", 1155437b281SAngeloGioacchino Del Regno .sta_mask = MT8196_PWR_ACK, 1165437b281SAngeloGioacchino Del Regno .sta2nd_mask = MT8196_PWR_ACK_2ND, 1175437b281SAngeloGioacchino Del Regno .ctl_offs = 0xe1c, 1185437b281SAngeloGioacchino Del Regno .pwr_sta_offs = 0xe1c, 1195437b281SAngeloGioacchino Del Regno .pwr_sta2nd_offs = 0xe1c, 1205437b281SAngeloGioacchino Del Regno .sram_pdn_bits = BIT(8), 1215437b281SAngeloGioacchino Del Regno .sram_pdn_ack_bits = BIT(12), 1225437b281SAngeloGioacchino Del Regno .bp_cfg = { 1235437b281SAngeloGioacchino Del Regno BUS_PROT_WR_IGN(SPM, MT8196_SPM_PROT_EN_BUS_SSUSB_P0, 1245437b281SAngeloGioacchino Del Regno MT8196_SPM_BUS_PROTECT_CON_SET, 1255437b281SAngeloGioacchino Del Regno MT8196_SPM_BUS_PROTECT_CON_CLR, 1265437b281SAngeloGioacchino Del Regno MT8196_SPM_BUS_PROTECT_RDY), 1275437b281SAngeloGioacchino Del Regno }, 1285437b281SAngeloGioacchino Del Regno .caps = MTK_SCPD_ALWAYS_ON, 1295437b281SAngeloGioacchino Del Regno .rtff_type = SCPSYS_RTFF_TYPE_GENERIC, 1305437b281SAngeloGioacchino Del Regno }, 1315437b281SAngeloGioacchino Del Regno [MT8196_POWER_DOMAIN_SSUSB_P1] = { 1325437b281SAngeloGioacchino Del Regno .name = "ssusb-p1", 1335437b281SAngeloGioacchino Del Regno .sta_mask = MT8196_PWR_ACK, 1345437b281SAngeloGioacchino Del Regno .sta2nd_mask = MT8196_PWR_ACK_2ND, 1355437b281SAngeloGioacchino Del Regno .ctl_offs = 0xe20, 1365437b281SAngeloGioacchino Del Regno .pwr_sta_offs = 0xe20, 1375437b281SAngeloGioacchino Del Regno .pwr_sta2nd_offs = 0xe20, 1385437b281SAngeloGioacchino Del Regno .sram_pdn_bits = BIT(8), 1395437b281SAngeloGioacchino Del Regno .sram_pdn_ack_bits = BIT(12), 1405437b281SAngeloGioacchino Del Regno .bp_cfg = { 1415437b281SAngeloGioacchino Del Regno BUS_PROT_WR_IGN(SPM, MT8196_SPM_PROT_EN_BUS_SSUSB_P1, 1425437b281SAngeloGioacchino Del Regno MT8196_SPM_BUS_PROTECT_CON_SET, 1435437b281SAngeloGioacchino Del Regno MT8196_SPM_BUS_PROTECT_CON_CLR, 1445437b281SAngeloGioacchino Del Regno MT8196_SPM_BUS_PROTECT_RDY), 1455437b281SAngeloGioacchino Del Regno }, 1465437b281SAngeloGioacchino Del Regno .caps = MTK_SCPD_ALWAYS_ON, 1475437b281SAngeloGioacchino Del Regno .rtff_type = SCPSYS_RTFF_TYPE_GENERIC, 1485437b281SAngeloGioacchino Del Regno }, 1495437b281SAngeloGioacchino Del Regno [MT8196_POWER_DOMAIN_SSUSB_P23] = { 1505437b281SAngeloGioacchino Del Regno .name = "ssusb-p23", 1515437b281SAngeloGioacchino Del Regno .sta_mask = MT8196_PWR_ACK, 1525437b281SAngeloGioacchino Del Regno .sta2nd_mask = MT8196_PWR_ACK_2ND, 1535437b281SAngeloGioacchino Del Regno .ctl_offs = 0xe24, 1545437b281SAngeloGioacchino Del Regno .pwr_sta_offs = 0xe24, 1555437b281SAngeloGioacchino Del Regno .pwr_sta2nd_offs = 0xe24, 1565437b281SAngeloGioacchino Del Regno .bp_cfg = { 1575437b281SAngeloGioacchino Del Regno BUS_PROT_WR_IGN(SPM, MT8196_SPM_PROT_EN_BUS_SSUSB_P23, 1585437b281SAngeloGioacchino Del Regno MT8196_SPM_BUS_PROTECT_CON_SET, 1595437b281SAngeloGioacchino Del Regno MT8196_SPM_BUS_PROTECT_CON_CLR, 1605437b281SAngeloGioacchino Del Regno MT8196_SPM_BUS_PROTECT_RDY), 1615437b281SAngeloGioacchino Del Regno }, 1625437b281SAngeloGioacchino Del Regno .caps = MTK_SCPD_KEEP_DEFAULT_OFF, 1635437b281SAngeloGioacchino Del Regno .rtff_type = SCPSYS_RTFF_TYPE_GENERIC, 1645437b281SAngeloGioacchino Del Regno }, 1655437b281SAngeloGioacchino Del Regno [MT8196_POWER_DOMAIN_SSUSB_PHY_P2] = { 1665437b281SAngeloGioacchino Del Regno .name = "ssusb-phy-p2", 1675437b281SAngeloGioacchino Del Regno .sta_mask = MT8196_PWR_ACK, 1685437b281SAngeloGioacchino Del Regno .sta2nd_mask = MT8196_PWR_ACK_2ND, 1695437b281SAngeloGioacchino Del Regno .ctl_offs = 0xe28, 1705437b281SAngeloGioacchino Del Regno .pwr_sta_offs = 0xe28, 1715437b281SAngeloGioacchino Del Regno .pwr_sta2nd_offs = 0xe28, 1725437b281SAngeloGioacchino Del Regno .sram_pdn_bits = BIT(8), 1735437b281SAngeloGioacchino Del Regno .sram_pdn_ack_bits = BIT(12), 1745437b281SAngeloGioacchino Del Regno .bp_cfg = { 1755437b281SAngeloGioacchino Del Regno BUS_PROT_WR_IGN(SPM, MT8196_SPM_PROT_EN_BUS_SSUSB_PHY_P2, 1765437b281SAngeloGioacchino Del Regno MT8196_SPM_BUS_PROTECT_CON_SET, 1775437b281SAngeloGioacchino Del Regno MT8196_SPM_BUS_PROTECT_CON_CLR, 1785437b281SAngeloGioacchino Del Regno MT8196_SPM_BUS_PROTECT_RDY), 1795437b281SAngeloGioacchino Del Regno }, 1805437b281SAngeloGioacchino Del Regno .caps = MTK_SCPD_KEEP_DEFAULT_OFF, 1815437b281SAngeloGioacchino Del Regno .rtff_type = SCPSYS_RTFF_TYPE_GENERIC, 1825437b281SAngeloGioacchino Del Regno }, 1835437b281SAngeloGioacchino Del Regno [MT8196_POWER_DOMAIN_PEXTP_MAC0] = { 1845437b281SAngeloGioacchino Del Regno .name = "pextp-mac0", 1855437b281SAngeloGioacchino Del Regno .sta_mask = MT8196_PWR_ACK, 1865437b281SAngeloGioacchino Del Regno .sta2nd_mask = MT8196_PWR_ACK_2ND, 1875437b281SAngeloGioacchino Del Regno .ctl_offs = 0xe34, 1885437b281SAngeloGioacchino Del Regno .pwr_sta_offs = 0xe34, 1895437b281SAngeloGioacchino Del Regno .pwr_sta2nd_offs = 0xe34, 1905437b281SAngeloGioacchino Del Regno .sram_pdn_bits = BIT(8), 1915437b281SAngeloGioacchino Del Regno .sram_pdn_ack_bits = BIT(12), 1925437b281SAngeloGioacchino Del Regno .bp_cfg = { 1935437b281SAngeloGioacchino Del Regno BUS_PROT_WR_IGN(SPM, MT8196_SPM_PROT_EN_BUS_PEXTP_MAC0, 1945437b281SAngeloGioacchino Del Regno MT8196_SPM_BUS_PROTECT_CON_SET, 1955437b281SAngeloGioacchino Del Regno MT8196_SPM_BUS_PROTECT_CON_CLR, 1965437b281SAngeloGioacchino Del Regno MT8196_SPM_BUS_PROTECT_RDY), 1975437b281SAngeloGioacchino Del Regno }, 1985437b281SAngeloGioacchino Del Regno .rtff_type = SCPSYS_RTFF_TYPE_PCIE_PHY, 1995437b281SAngeloGioacchino Del Regno }, 2005437b281SAngeloGioacchino Del Regno [MT8196_POWER_DOMAIN_PEXTP_MAC1] = { 2015437b281SAngeloGioacchino Del Regno .name = "pextp-mac1", 2025437b281SAngeloGioacchino Del Regno .sta_mask = MT8196_PWR_ACK, 2035437b281SAngeloGioacchino Del Regno .sta2nd_mask = MT8196_PWR_ACK_2ND, 2045437b281SAngeloGioacchino Del Regno .ctl_offs = 0xe38, 2055437b281SAngeloGioacchino Del Regno .pwr_sta_offs = 0xe38, 2065437b281SAngeloGioacchino Del Regno .pwr_sta2nd_offs = 0xe38, 2075437b281SAngeloGioacchino Del Regno .sram_pdn_bits = BIT(8), 2085437b281SAngeloGioacchino Del Regno .sram_pdn_ack_bits = BIT(12), 2095437b281SAngeloGioacchino Del Regno .bp_cfg = { 2105437b281SAngeloGioacchino Del Regno BUS_PROT_WR_IGN(SPM, MT8196_SPM_PROT_EN_BUS_PEXTP_MAC1, 2115437b281SAngeloGioacchino Del Regno MT8196_SPM_BUS_PROTECT_CON_SET, 2125437b281SAngeloGioacchino Del Regno MT8196_SPM_BUS_PROTECT_CON_CLR, 2135437b281SAngeloGioacchino Del Regno MT8196_SPM_BUS_PROTECT_RDY), 2145437b281SAngeloGioacchino Del Regno }, 2155437b281SAngeloGioacchino Del Regno .rtff_type = SCPSYS_RTFF_TYPE_PCIE_PHY, 2165437b281SAngeloGioacchino Del Regno }, 2175437b281SAngeloGioacchino Del Regno [MT8196_POWER_DOMAIN_PEXTP_MAC2] = { 2185437b281SAngeloGioacchino Del Regno .name = "pextp-mac2", 2195437b281SAngeloGioacchino Del Regno .sta_mask = MT8196_PWR_ACK, 2205437b281SAngeloGioacchino Del Regno .sta2nd_mask = MT8196_PWR_ACK_2ND, 2215437b281SAngeloGioacchino Del Regno .ctl_offs = 0xe3c, 2225437b281SAngeloGioacchino Del Regno .pwr_sta_offs = 0xe3c, 2235437b281SAngeloGioacchino Del Regno .pwr_sta2nd_offs = 0xe3c, 2245437b281SAngeloGioacchino Del Regno .sram_pdn_bits = BIT(8), 2255437b281SAngeloGioacchino Del Regno .sram_pdn_ack_bits = BIT(12), 2265437b281SAngeloGioacchino Del Regno .bp_cfg = { 2275437b281SAngeloGioacchino Del Regno BUS_PROT_WR_IGN(SPM, MT8196_SPM_PROT_EN_BUS_PEXTP_MAC2, 2285437b281SAngeloGioacchino Del Regno MT8196_SPM_BUS_PROTECT_CON_SET, 2295437b281SAngeloGioacchino Del Regno MT8196_SPM_BUS_PROTECT_CON_CLR, 2305437b281SAngeloGioacchino Del Regno MT8196_SPM_BUS_PROTECT_RDY), 2315437b281SAngeloGioacchino Del Regno }, 2325437b281SAngeloGioacchino Del Regno .rtff_type = SCPSYS_RTFF_TYPE_PCIE_PHY, 2335437b281SAngeloGioacchino Del Regno }, 2345437b281SAngeloGioacchino Del Regno [MT8196_POWER_DOMAIN_PEXTP_PHY0] = { 2355437b281SAngeloGioacchino Del Regno .name = "pextp-phy0", 2365437b281SAngeloGioacchino Del Regno .sta_mask = MT8196_PWR_ACK, 2375437b281SAngeloGioacchino Del Regno .sta2nd_mask = MT8196_PWR_ACK_2ND, 2385437b281SAngeloGioacchino Del Regno .ctl_offs = 0xe40, 2395437b281SAngeloGioacchino Del Regno .pwr_sta_offs = 0xe40, 2405437b281SAngeloGioacchino Del Regno .pwr_sta2nd_offs = 0xe40, 2415437b281SAngeloGioacchino Del Regno .bp_cfg = { 2425437b281SAngeloGioacchino Del Regno BUS_PROT_WR_IGN(SPM, MT8196_SPM_PROT_EN_BUS_PEXTP_PHY0, 2435437b281SAngeloGioacchino Del Regno MT8196_SPM_BUS_PROTECT_CON_SET, 2445437b281SAngeloGioacchino Del Regno MT8196_SPM_BUS_PROTECT_CON_CLR, 2455437b281SAngeloGioacchino Del Regno MT8196_SPM_BUS_PROTECT_RDY), 2465437b281SAngeloGioacchino Del Regno }, 2475437b281SAngeloGioacchino Del Regno .rtff_type = SCPSYS_RTFF_TYPE_PCIE_PHY, 2485437b281SAngeloGioacchino Del Regno }, 2495437b281SAngeloGioacchino Del Regno [MT8196_POWER_DOMAIN_PEXTP_PHY1] = { 2505437b281SAngeloGioacchino Del Regno .name = "pextp-phy1", 2515437b281SAngeloGioacchino Del Regno .sta_mask = MT8196_PWR_ACK, 2525437b281SAngeloGioacchino Del Regno .sta2nd_mask = MT8196_PWR_ACK_2ND, 2535437b281SAngeloGioacchino Del Regno .ctl_offs = 0xe44, 2545437b281SAngeloGioacchino Del Regno .pwr_sta_offs = 0xe44, 2555437b281SAngeloGioacchino Del Regno .pwr_sta2nd_offs = 0xe44, 2565437b281SAngeloGioacchino Del Regno .bp_cfg = { 2575437b281SAngeloGioacchino Del Regno BUS_PROT_WR_IGN(SPM, MT8196_SPM_PROT_EN_BUS_PEXTP_PHY1, 2585437b281SAngeloGioacchino Del Regno MT8196_SPM_BUS_PROTECT_CON_SET, 2595437b281SAngeloGioacchino Del Regno MT8196_SPM_BUS_PROTECT_CON_CLR, 2605437b281SAngeloGioacchino Del Regno MT8196_SPM_BUS_PROTECT_RDY), 2615437b281SAngeloGioacchino Del Regno }, 2625437b281SAngeloGioacchino Del Regno .rtff_type = SCPSYS_RTFF_TYPE_PCIE_PHY, 2635437b281SAngeloGioacchino Del Regno }, 2645437b281SAngeloGioacchino Del Regno [MT8196_POWER_DOMAIN_PEXTP_PHY2] = { 2655437b281SAngeloGioacchino Del Regno .name = "pextp-phy2", 2665437b281SAngeloGioacchino Del Regno .sta_mask = MT8196_PWR_ACK, 2675437b281SAngeloGioacchino Del Regno .sta2nd_mask = MT8196_PWR_ACK_2ND, 2685437b281SAngeloGioacchino Del Regno .ctl_offs = 0xe48, 2695437b281SAngeloGioacchino Del Regno .pwr_sta_offs = 0xe48, 2705437b281SAngeloGioacchino Del Regno .pwr_sta2nd_offs = 0xe48, 2715437b281SAngeloGioacchino Del Regno .bp_cfg = { 2725437b281SAngeloGioacchino Del Regno BUS_PROT_WR_IGN(SPM, MT8196_SPM_PROT_EN_BUS_PEXTP_PHY2, 2735437b281SAngeloGioacchino Del Regno MT8196_SPM_BUS_PROTECT_CON_SET, 2745437b281SAngeloGioacchino Del Regno MT8196_SPM_BUS_PROTECT_CON_CLR, 2755437b281SAngeloGioacchino Del Regno MT8196_SPM_BUS_PROTECT_RDY), 2765437b281SAngeloGioacchino Del Regno }, 2775437b281SAngeloGioacchino Del Regno .rtff_type = SCPSYS_RTFF_TYPE_PCIE_PHY, 2785437b281SAngeloGioacchino Del Regno }, 2795437b281SAngeloGioacchino Del Regno [MT8196_POWER_DOMAIN_AUDIO] = { 2805437b281SAngeloGioacchino Del Regno .name = "audio", 2815437b281SAngeloGioacchino Del Regno .sta_mask = MT8196_PWR_ACK, 2825437b281SAngeloGioacchino Del Regno .sta2nd_mask = MT8196_PWR_ACK_2ND, 2835437b281SAngeloGioacchino Del Regno .ctl_offs = 0xe4c, 2845437b281SAngeloGioacchino Del Regno .pwr_sta_offs = 0xe4c, 2855437b281SAngeloGioacchino Del Regno .pwr_sta2nd_offs = 0xe4c, 2865437b281SAngeloGioacchino Del Regno .sram_pdn_bits = BIT(8), 2875437b281SAngeloGioacchino Del Regno .sram_pdn_ack_bits = BIT(12), 2885437b281SAngeloGioacchino Del Regno .bp_cfg = { 2895437b281SAngeloGioacchino Del Regno BUS_PROT_WR_IGN(SPM, MT8196_SPM_PROT_EN_BUS_AUDIO, 2905437b281SAngeloGioacchino Del Regno MT8196_SPM_BUS_PROTECT_CON_SET, 2915437b281SAngeloGioacchino Del Regno MT8196_SPM_BUS_PROTECT_CON_CLR, 2925437b281SAngeloGioacchino Del Regno MT8196_SPM_BUS_PROTECT_RDY), 2935437b281SAngeloGioacchino Del Regno }, 2945437b281SAngeloGioacchino Del Regno .rtff_type = SCPSYS_RTFF_TYPE_GENERIC, 2955437b281SAngeloGioacchino Del Regno }, 2965437b281SAngeloGioacchino Del Regno [MT8196_POWER_DOMAIN_ADSP_TOP_DORMANT] = { 2975437b281SAngeloGioacchino Del Regno .name = "adsp-top-dormant", 2985437b281SAngeloGioacchino Del Regno .sta_mask = MT8196_PWR_ACK, 2995437b281SAngeloGioacchino Del Regno .sta2nd_mask = MT8196_PWR_ACK_2ND, 3005437b281SAngeloGioacchino Del Regno .ctl_offs = 0xe54, 3015437b281SAngeloGioacchino Del Regno .pwr_sta_offs = 0xe54, 3025437b281SAngeloGioacchino Del Regno .pwr_sta2nd_offs = 0xe54, 3035437b281SAngeloGioacchino Del Regno /* Note: This is not managing powerdown (pdn), but sleep instead (slp) */ 3045437b281SAngeloGioacchino Del Regno .sram_pdn_bits = BIT(9), 3055437b281SAngeloGioacchino Del Regno .sram_pdn_ack_bits = BIT(13), 3065437b281SAngeloGioacchino Del Regno .bp_cfg = { 3075437b281SAngeloGioacchino Del Regno BUS_PROT_WR_IGN(SPM, MT8196_SPM_PROT_EN_BUS_ADSP_TOP, 3085437b281SAngeloGioacchino Del Regno MT8196_SPM_BUS_PROTECT_CON_SET, 3095437b281SAngeloGioacchino Del Regno MT8196_SPM_BUS_PROTECT_CON_CLR, 3105437b281SAngeloGioacchino Del Regno MT8196_SPM_BUS_PROTECT_RDY), 3115437b281SAngeloGioacchino Del Regno }, 3125437b281SAngeloGioacchino Del Regno .caps = MTK_SCPD_SRAM_ISO | MTK_SCPD_SRAM_PDN_INVERTED, 3135437b281SAngeloGioacchino Del Regno }, 3145437b281SAngeloGioacchino Del Regno [MT8196_POWER_DOMAIN_ADSP_INFRA] = { 3155437b281SAngeloGioacchino Del Regno .name = "adsp-infra", 3165437b281SAngeloGioacchino Del Regno .sta_mask = MT8196_PWR_ACK, 3175437b281SAngeloGioacchino Del Regno .sta2nd_mask = MT8196_PWR_ACK_2ND, 3185437b281SAngeloGioacchino Del Regno .ctl_offs = 0xe58, 3195437b281SAngeloGioacchino Del Regno .pwr_sta_offs = 0xe58, 3205437b281SAngeloGioacchino Del Regno .pwr_sta2nd_offs = 0xe58, 3215437b281SAngeloGioacchino Del Regno .bp_cfg = { 3225437b281SAngeloGioacchino Del Regno BUS_PROT_WR_IGN(SPM, MT8196_SPM_PROT_EN_BUS_ADSP_INFRA, 3235437b281SAngeloGioacchino Del Regno MT8196_SPM_BUS_PROTECT_CON_SET, 3245437b281SAngeloGioacchino Del Regno MT8196_SPM_BUS_PROTECT_CON_CLR, 3255437b281SAngeloGioacchino Del Regno MT8196_SPM_BUS_PROTECT_RDY), 3265437b281SAngeloGioacchino Del Regno }, 3275437b281SAngeloGioacchino Del Regno .caps = MTK_SCPD_ALWAYS_ON, 3285437b281SAngeloGioacchino Del Regno .rtff_type = SCPSYS_RTFF_TYPE_GENERIC, 3295437b281SAngeloGioacchino Del Regno }, 3305437b281SAngeloGioacchino Del Regno [MT8196_POWER_DOMAIN_ADSP_AO] = { 3315437b281SAngeloGioacchino Del Regno .name = "adsp-ao", 3325437b281SAngeloGioacchino Del Regno .sta_mask = MT8196_PWR_ACK, 3335437b281SAngeloGioacchino Del Regno .sta2nd_mask = MT8196_PWR_ACK_2ND, 3345437b281SAngeloGioacchino Del Regno .ctl_offs = 0xe5c, 3355437b281SAngeloGioacchino Del Regno .pwr_sta_offs = 0xe5c, 3365437b281SAngeloGioacchino Del Regno .pwr_sta2nd_offs = 0xe5c, 3375437b281SAngeloGioacchino Del Regno .bp_cfg = { 3385437b281SAngeloGioacchino Del Regno BUS_PROT_WR_IGN(SPM, MT8196_SPM_PROT_EN_BUS_ADSP_AO, 3395437b281SAngeloGioacchino Del Regno MT8196_SPM_BUS_PROTECT_CON_SET, 3405437b281SAngeloGioacchino Del Regno MT8196_SPM_BUS_PROTECT_CON_CLR, 3415437b281SAngeloGioacchino Del Regno MT8196_SPM_BUS_PROTECT_RDY), 3425437b281SAngeloGioacchino Del Regno }, 3435437b281SAngeloGioacchino Del Regno .caps = MTK_SCPD_ALWAYS_ON, 3445437b281SAngeloGioacchino Del Regno .rtff_type = SCPSYS_RTFF_TYPE_GENERIC, 3455437b281SAngeloGioacchino Del Regno }, 3465437b281SAngeloGioacchino Del Regno }; 3475437b281SAngeloGioacchino Del Regno 3485437b281SAngeloGioacchino Del Regno static const struct scpsys_hwv_domain_data scpsys_hwv_domain_data_mt8196[] = { 3495437b281SAngeloGioacchino Del Regno [MT8196_POWER_DOMAIN_MM_PROC_DORMANT] = { 3505437b281SAngeloGioacchino Del Regno .name = "mm-proc-dormant", 3515437b281SAngeloGioacchino Del Regno .set = 0x0218, 3525437b281SAngeloGioacchino Del Regno .clr = 0x021c, 3535437b281SAngeloGioacchino Del Regno .done = 0x141c, 3545437b281SAngeloGioacchino Del Regno .en = 0x1410, 3555437b281SAngeloGioacchino Del Regno .set_sta = 0x146c, 3565437b281SAngeloGioacchino Del Regno .clr_sta = 0x1470, 3575437b281SAngeloGioacchino Del Regno .setclr_bit = 0, 3585437b281SAngeloGioacchino Del Regno .caps = MTK_SCPD_ALWAYS_ON, 3595437b281SAngeloGioacchino Del Regno }, 3605437b281SAngeloGioacchino Del Regno [MT8196_POWER_DOMAIN_SSR] = { 3615437b281SAngeloGioacchino Del Regno .name = "ssrsys", 3625437b281SAngeloGioacchino Del Regno .set = 0x0218, 3635437b281SAngeloGioacchino Del Regno .clr = 0x021c, 3645437b281SAngeloGioacchino Del Regno .done = 0x141c, 3655437b281SAngeloGioacchino Del Regno .en = 0x1410, 3665437b281SAngeloGioacchino Del Regno .set_sta = 0x146c, 3675437b281SAngeloGioacchino Del Regno .clr_sta = 0x1470, 3685437b281SAngeloGioacchino Del Regno .setclr_bit = 1, 3695437b281SAngeloGioacchino Del Regno }, 3705437b281SAngeloGioacchino Del Regno }; 3715437b281SAngeloGioacchino Del Regno 372*56b0d230SAngeloGioacchino Del Regno static const struct scpsys_hwv_domain_data hfrpsys_hwv_domain_data_mt8196[] = { 373*56b0d230SAngeloGioacchino Del Regno [MT8196_POWER_DOMAIN_VDE0] = { 374*56b0d230SAngeloGioacchino Del Regno .name = "vde0", 375*56b0d230SAngeloGioacchino Del Regno .set = 0x0218, 376*56b0d230SAngeloGioacchino Del Regno .clr = 0x021C, 377*56b0d230SAngeloGioacchino Del Regno .done = 0x141C, 378*56b0d230SAngeloGioacchino Del Regno .en = 0x1410, 379*56b0d230SAngeloGioacchino Del Regno .set_sta = 0x146C, 380*56b0d230SAngeloGioacchino Del Regno .clr_sta = 0x1470, 381*56b0d230SAngeloGioacchino Del Regno .setclr_bit = 7, 382*56b0d230SAngeloGioacchino Del Regno }, 383*56b0d230SAngeloGioacchino Del Regno [MT8196_POWER_DOMAIN_VDE1] = { 384*56b0d230SAngeloGioacchino Del Regno .name = "vde1", 385*56b0d230SAngeloGioacchino Del Regno .set = 0x0218, 386*56b0d230SAngeloGioacchino Del Regno .clr = 0x021C, 387*56b0d230SAngeloGioacchino Del Regno .done = 0x141C, 388*56b0d230SAngeloGioacchino Del Regno .en = 0x1410, 389*56b0d230SAngeloGioacchino Del Regno .set_sta = 0x146C, 390*56b0d230SAngeloGioacchino Del Regno .clr_sta = 0x1470, 391*56b0d230SAngeloGioacchino Del Regno .setclr_bit = 8, 392*56b0d230SAngeloGioacchino Del Regno }, 393*56b0d230SAngeloGioacchino Del Regno [MT8196_POWER_DOMAIN_VDE_VCORE0] = { 394*56b0d230SAngeloGioacchino Del Regno .name = "vde-vcore0", 395*56b0d230SAngeloGioacchino Del Regno .set = 0x0218, 396*56b0d230SAngeloGioacchino Del Regno .clr = 0x021C, 397*56b0d230SAngeloGioacchino Del Regno .done = 0x141C, 398*56b0d230SAngeloGioacchino Del Regno .en = 0x1410, 399*56b0d230SAngeloGioacchino Del Regno .set_sta = 0x146C, 400*56b0d230SAngeloGioacchino Del Regno .clr_sta = 0x1470, 401*56b0d230SAngeloGioacchino Del Regno .setclr_bit = 9, 402*56b0d230SAngeloGioacchino Del Regno }, 403*56b0d230SAngeloGioacchino Del Regno [MT8196_POWER_DOMAIN_VEN0] = { 404*56b0d230SAngeloGioacchino Del Regno .name = "ven0", 405*56b0d230SAngeloGioacchino Del Regno .set = 0x0218, 406*56b0d230SAngeloGioacchino Del Regno .clr = 0x021C, 407*56b0d230SAngeloGioacchino Del Regno .done = 0x141C, 408*56b0d230SAngeloGioacchino Del Regno .en = 0x1410, 409*56b0d230SAngeloGioacchino Del Regno .set_sta = 0x146C, 410*56b0d230SAngeloGioacchino Del Regno .clr_sta = 0x1470, 411*56b0d230SAngeloGioacchino Del Regno .setclr_bit = 10, 412*56b0d230SAngeloGioacchino Del Regno }, 413*56b0d230SAngeloGioacchino Del Regno [MT8196_POWER_DOMAIN_VEN1] = { 414*56b0d230SAngeloGioacchino Del Regno .name = "ven1", 415*56b0d230SAngeloGioacchino Del Regno .set = 0x0218, 416*56b0d230SAngeloGioacchino Del Regno .clr = 0x021C, 417*56b0d230SAngeloGioacchino Del Regno .done = 0x141C, 418*56b0d230SAngeloGioacchino Del Regno .en = 0x1410, 419*56b0d230SAngeloGioacchino Del Regno .set_sta = 0x146C, 420*56b0d230SAngeloGioacchino Del Regno .clr_sta = 0x1470, 421*56b0d230SAngeloGioacchino Del Regno .setclr_bit = 11, 422*56b0d230SAngeloGioacchino Del Regno }, 423*56b0d230SAngeloGioacchino Del Regno [MT8196_POWER_DOMAIN_VEN2] = { 424*56b0d230SAngeloGioacchino Del Regno .name = "ven2", 425*56b0d230SAngeloGioacchino Del Regno .set = 0x0218, 426*56b0d230SAngeloGioacchino Del Regno .clr = 0x021C, 427*56b0d230SAngeloGioacchino Del Regno .done = 0x141C, 428*56b0d230SAngeloGioacchino Del Regno .en = 0x1410, 429*56b0d230SAngeloGioacchino Del Regno .set_sta = 0x146C, 430*56b0d230SAngeloGioacchino Del Regno .clr_sta = 0x1470, 431*56b0d230SAngeloGioacchino Del Regno .setclr_bit = 12, 432*56b0d230SAngeloGioacchino Del Regno }, 433*56b0d230SAngeloGioacchino Del Regno [MT8196_POWER_DOMAIN_DISP_VCORE] = { 434*56b0d230SAngeloGioacchino Del Regno .name = "disp-vcore", 435*56b0d230SAngeloGioacchino Del Regno .set = 0x0218, 436*56b0d230SAngeloGioacchino Del Regno .clr = 0x021C, 437*56b0d230SAngeloGioacchino Del Regno .done = 0x141C, 438*56b0d230SAngeloGioacchino Del Regno .en = 0x1410, 439*56b0d230SAngeloGioacchino Del Regno .set_sta = 0x146C, 440*56b0d230SAngeloGioacchino Del Regno .clr_sta = 0x1470, 441*56b0d230SAngeloGioacchino Del Regno .setclr_bit = 24, 442*56b0d230SAngeloGioacchino Del Regno }, 443*56b0d230SAngeloGioacchino Del Regno [MT8196_POWER_DOMAIN_DIS0_DORMANT] = { 444*56b0d230SAngeloGioacchino Del Regno .name = "dis0-dormant", 445*56b0d230SAngeloGioacchino Del Regno .set = 0x0218, 446*56b0d230SAngeloGioacchino Del Regno .clr = 0x021C, 447*56b0d230SAngeloGioacchino Del Regno .done = 0x141C, 448*56b0d230SAngeloGioacchino Del Regno .en = 0x1410, 449*56b0d230SAngeloGioacchino Del Regno .set_sta = 0x146C, 450*56b0d230SAngeloGioacchino Del Regno .clr_sta = 0x1470, 451*56b0d230SAngeloGioacchino Del Regno .setclr_bit = 25, 452*56b0d230SAngeloGioacchino Del Regno }, 453*56b0d230SAngeloGioacchino Del Regno [MT8196_POWER_DOMAIN_DIS1_DORMANT] = { 454*56b0d230SAngeloGioacchino Del Regno .name = "dis1-dormant", 455*56b0d230SAngeloGioacchino Del Regno .set = 0x0218, 456*56b0d230SAngeloGioacchino Del Regno .clr = 0x021C, 457*56b0d230SAngeloGioacchino Del Regno .done = 0x141C, 458*56b0d230SAngeloGioacchino Del Regno .en = 0x1410, 459*56b0d230SAngeloGioacchino Del Regno .set_sta = 0x146C, 460*56b0d230SAngeloGioacchino Del Regno .clr_sta = 0x1470, 461*56b0d230SAngeloGioacchino Del Regno .setclr_bit = 26, 462*56b0d230SAngeloGioacchino Del Regno }, 463*56b0d230SAngeloGioacchino Del Regno [MT8196_POWER_DOMAIN_OVL0_DORMANT] = { 464*56b0d230SAngeloGioacchino Del Regno .name = "ovl0-dormant", 465*56b0d230SAngeloGioacchino Del Regno .set = 0x0218, 466*56b0d230SAngeloGioacchino Del Regno .clr = 0x021C, 467*56b0d230SAngeloGioacchino Del Regno .done = 0x141C, 468*56b0d230SAngeloGioacchino Del Regno .en = 0x1410, 469*56b0d230SAngeloGioacchino Del Regno .set_sta = 0x146C, 470*56b0d230SAngeloGioacchino Del Regno .clr_sta = 0x1470, 471*56b0d230SAngeloGioacchino Del Regno .setclr_bit = 27, 472*56b0d230SAngeloGioacchino Del Regno }, 473*56b0d230SAngeloGioacchino Del Regno [MT8196_POWER_DOMAIN_OVL1_DORMANT] = { 474*56b0d230SAngeloGioacchino Del Regno .name = "ovl1-dormant", 475*56b0d230SAngeloGioacchino Del Regno .set = 0x0218, 476*56b0d230SAngeloGioacchino Del Regno .clr = 0x021C, 477*56b0d230SAngeloGioacchino Del Regno .done = 0x141C, 478*56b0d230SAngeloGioacchino Del Regno .en = 0x1410, 479*56b0d230SAngeloGioacchino Del Regno .set_sta = 0x146C, 480*56b0d230SAngeloGioacchino Del Regno .clr_sta = 0x1470, 481*56b0d230SAngeloGioacchino Del Regno .setclr_bit = 28, 482*56b0d230SAngeloGioacchino Del Regno }, 483*56b0d230SAngeloGioacchino Del Regno [MT8196_POWER_DOMAIN_DISP_EDPTX_DORMANT] = { 484*56b0d230SAngeloGioacchino Del Regno .name = "disp-edptx-dormant", 485*56b0d230SAngeloGioacchino Del Regno .set = 0x0218, 486*56b0d230SAngeloGioacchino Del Regno .clr = 0x021C, 487*56b0d230SAngeloGioacchino Del Regno .done = 0x141C, 488*56b0d230SAngeloGioacchino Del Regno .en = 0x1410, 489*56b0d230SAngeloGioacchino Del Regno .set_sta = 0x146C, 490*56b0d230SAngeloGioacchino Del Regno .clr_sta = 0x1470, 491*56b0d230SAngeloGioacchino Del Regno .setclr_bit = 29, 492*56b0d230SAngeloGioacchino Del Regno }, 493*56b0d230SAngeloGioacchino Del Regno [MT8196_POWER_DOMAIN_DISP_DPTX_DORMANT] = { 494*56b0d230SAngeloGioacchino Del Regno .name = "disp-dptx-dormant", 495*56b0d230SAngeloGioacchino Del Regno .set = 0x0218, 496*56b0d230SAngeloGioacchino Del Regno .clr = 0x021C, 497*56b0d230SAngeloGioacchino Del Regno .done = 0x141C, 498*56b0d230SAngeloGioacchino Del Regno .en = 0x1410, 499*56b0d230SAngeloGioacchino Del Regno .set_sta = 0x146C, 500*56b0d230SAngeloGioacchino Del Regno .clr_sta = 0x1470, 501*56b0d230SAngeloGioacchino Del Regno .setclr_bit = 30, 502*56b0d230SAngeloGioacchino Del Regno }, 503*56b0d230SAngeloGioacchino Del Regno [MT8196_POWER_DOMAIN_MML0_SHUTDOWN] = { 504*56b0d230SAngeloGioacchino Del Regno .name = "mml0-shutdown", 505*56b0d230SAngeloGioacchino Del Regno .set = 0x0218, 506*56b0d230SAngeloGioacchino Del Regno .clr = 0x021C, 507*56b0d230SAngeloGioacchino Del Regno .done = 0x141C, 508*56b0d230SAngeloGioacchino Del Regno .en = 0x1410, 509*56b0d230SAngeloGioacchino Del Regno .set_sta = 0x146C, 510*56b0d230SAngeloGioacchino Del Regno .clr_sta = 0x1470, 511*56b0d230SAngeloGioacchino Del Regno .setclr_bit = 31, 512*56b0d230SAngeloGioacchino Del Regno }, 513*56b0d230SAngeloGioacchino Del Regno [MT8196_POWER_DOMAIN_MML1_SHUTDOWN] = { 514*56b0d230SAngeloGioacchino Del Regno .name = "mml1-shutdown", 515*56b0d230SAngeloGioacchino Del Regno .set = 0x0220, 516*56b0d230SAngeloGioacchino Del Regno .clr = 0x0224, 517*56b0d230SAngeloGioacchino Del Regno .done = 0x142C, 518*56b0d230SAngeloGioacchino Del Regno .en = 0x1420, 519*56b0d230SAngeloGioacchino Del Regno .set_sta = 0x1474, 520*56b0d230SAngeloGioacchino Del Regno .clr_sta = 0x1478, 521*56b0d230SAngeloGioacchino Del Regno .setclr_bit = 0, 522*56b0d230SAngeloGioacchino Del Regno }, 523*56b0d230SAngeloGioacchino Del Regno [MT8196_POWER_DOMAIN_MM_INFRA0] = { 524*56b0d230SAngeloGioacchino Del Regno .name = "mm-infra0", 525*56b0d230SAngeloGioacchino Del Regno .set = 0x0220, 526*56b0d230SAngeloGioacchino Del Regno .clr = 0x0224, 527*56b0d230SAngeloGioacchino Del Regno .done = 0x142C, 528*56b0d230SAngeloGioacchino Del Regno .en = 0x1420, 529*56b0d230SAngeloGioacchino Del Regno .set_sta = 0x1474, 530*56b0d230SAngeloGioacchino Del Regno .clr_sta = 0x1478, 531*56b0d230SAngeloGioacchino Del Regno .setclr_bit = 1, 532*56b0d230SAngeloGioacchino Del Regno }, 533*56b0d230SAngeloGioacchino Del Regno [MT8196_POWER_DOMAIN_MM_INFRA1] = { 534*56b0d230SAngeloGioacchino Del Regno .name = "mm-infra1", 535*56b0d230SAngeloGioacchino Del Regno .set = 0x0220, 536*56b0d230SAngeloGioacchino Del Regno .clr = 0x0224, 537*56b0d230SAngeloGioacchino Del Regno .done = 0x142C, 538*56b0d230SAngeloGioacchino Del Regno .en = 0x1420, 539*56b0d230SAngeloGioacchino Del Regno .set_sta = 0x1474, 540*56b0d230SAngeloGioacchino Del Regno .clr_sta = 0x1478, 541*56b0d230SAngeloGioacchino Del Regno .setclr_bit = 2, 542*56b0d230SAngeloGioacchino Del Regno }, 543*56b0d230SAngeloGioacchino Del Regno [MT8196_POWER_DOMAIN_MM_INFRA_AO] = { 544*56b0d230SAngeloGioacchino Del Regno .name = "mm-infra-ao", 545*56b0d230SAngeloGioacchino Del Regno .set = 0x0220, 546*56b0d230SAngeloGioacchino Del Regno .clr = 0x0224, 547*56b0d230SAngeloGioacchino Del Regno .done = 0x142C, 548*56b0d230SAngeloGioacchino Del Regno .en = 0x1420, 549*56b0d230SAngeloGioacchino Del Regno .set_sta = 0x1474, 550*56b0d230SAngeloGioacchino Del Regno .clr_sta = 0x1478, 551*56b0d230SAngeloGioacchino Del Regno .setclr_bit = 3, 552*56b0d230SAngeloGioacchino Del Regno }, 553*56b0d230SAngeloGioacchino Del Regno [MT8196_POWER_DOMAIN_CSI_BS_RX] = { 554*56b0d230SAngeloGioacchino Del Regno .name = "csi-bs-rx", 555*56b0d230SAngeloGioacchino Del Regno .set = 0x0220, 556*56b0d230SAngeloGioacchino Del Regno .clr = 0x0224, 557*56b0d230SAngeloGioacchino Del Regno .done = 0x142C, 558*56b0d230SAngeloGioacchino Del Regno .en = 0x1420, 559*56b0d230SAngeloGioacchino Del Regno .set_sta = 0x1474, 560*56b0d230SAngeloGioacchino Del Regno .clr_sta = 0x1478, 561*56b0d230SAngeloGioacchino Del Regno .setclr_bit = 5, 562*56b0d230SAngeloGioacchino Del Regno }, 563*56b0d230SAngeloGioacchino Del Regno [MT8196_POWER_DOMAIN_CSI_LS_RX] = { 564*56b0d230SAngeloGioacchino Del Regno .name = "csi-ls-rx", 565*56b0d230SAngeloGioacchino Del Regno .set = 0x0220, 566*56b0d230SAngeloGioacchino Del Regno .clr = 0x0224, 567*56b0d230SAngeloGioacchino Del Regno .done = 0x142C, 568*56b0d230SAngeloGioacchino Del Regno .en = 0x1420, 569*56b0d230SAngeloGioacchino Del Regno .set_sta = 0x1474, 570*56b0d230SAngeloGioacchino Del Regno .clr_sta = 0x1478, 571*56b0d230SAngeloGioacchino Del Regno .setclr_bit = 6, 572*56b0d230SAngeloGioacchino Del Regno }, 573*56b0d230SAngeloGioacchino Del Regno [MT8196_POWER_DOMAIN_DSI_PHY0] = { 574*56b0d230SAngeloGioacchino Del Regno .name = "dsi-phy0", 575*56b0d230SAngeloGioacchino Del Regno .set = 0x0220, 576*56b0d230SAngeloGioacchino Del Regno .clr = 0x0224, 577*56b0d230SAngeloGioacchino Del Regno .done = 0x142C, 578*56b0d230SAngeloGioacchino Del Regno .en = 0x1420, 579*56b0d230SAngeloGioacchino Del Regno .set_sta = 0x1474, 580*56b0d230SAngeloGioacchino Del Regno .clr_sta = 0x1478, 581*56b0d230SAngeloGioacchino Del Regno .setclr_bit = 7, 582*56b0d230SAngeloGioacchino Del Regno }, 583*56b0d230SAngeloGioacchino Del Regno [MT8196_POWER_DOMAIN_DSI_PHY1] = { 584*56b0d230SAngeloGioacchino Del Regno .name = "dsi-phy1", 585*56b0d230SAngeloGioacchino Del Regno .set = 0x0220, 586*56b0d230SAngeloGioacchino Del Regno .clr = 0x0224, 587*56b0d230SAngeloGioacchino Del Regno .done = 0x142C, 588*56b0d230SAngeloGioacchino Del Regno .en = 0x1420, 589*56b0d230SAngeloGioacchino Del Regno .set_sta = 0x1474, 590*56b0d230SAngeloGioacchino Del Regno .clr_sta = 0x1478, 591*56b0d230SAngeloGioacchino Del Regno .setclr_bit = 8, 592*56b0d230SAngeloGioacchino Del Regno }, 593*56b0d230SAngeloGioacchino Del Regno [MT8196_POWER_DOMAIN_DSI_PHY2] = { 594*56b0d230SAngeloGioacchino Del Regno .name = "dsi-phy2", 595*56b0d230SAngeloGioacchino Del Regno .set = 0x0220, 596*56b0d230SAngeloGioacchino Del Regno .clr = 0x0224, 597*56b0d230SAngeloGioacchino Del Regno .done = 0x142C, 598*56b0d230SAngeloGioacchino Del Regno .en = 0x1420, 599*56b0d230SAngeloGioacchino Del Regno .set_sta = 0x1474, 600*56b0d230SAngeloGioacchino Del Regno .clr_sta = 0x1478, 601*56b0d230SAngeloGioacchino Del Regno .setclr_bit = 9, 602*56b0d230SAngeloGioacchino Del Regno }, 603*56b0d230SAngeloGioacchino Del Regno }; 604*56b0d230SAngeloGioacchino Del Regno 6055437b281SAngeloGioacchino Del Regno static const struct scpsys_soc_data mt8196_scpsys_data = { 6065437b281SAngeloGioacchino Del Regno .domains_data = scpsys_domain_data_mt8196, 6075437b281SAngeloGioacchino Del Regno .num_domains = ARRAY_SIZE(scpsys_domain_data_mt8196), 6085437b281SAngeloGioacchino Del Regno .bus_prot_blocks = scpsys_bus_prot_blocks_mt8196, 6095437b281SAngeloGioacchino Del Regno .num_bus_prot_blocks = ARRAY_SIZE(scpsys_bus_prot_blocks_mt8196), 6105437b281SAngeloGioacchino Del Regno .type = SCPSYS_MTCMOS_TYPE_DIRECT_CTL, 6115437b281SAngeloGioacchino Del Regno }; 6125437b281SAngeloGioacchino Del Regno 6135437b281SAngeloGioacchino Del Regno static const struct scpsys_soc_data mt8196_scpsys_hwv_data = { 6145437b281SAngeloGioacchino Del Regno .hwv_domains_data = scpsys_hwv_domain_data_mt8196, 6155437b281SAngeloGioacchino Del Regno .num_hwv_domains = ARRAY_SIZE(scpsys_hwv_domain_data_mt8196), 6165437b281SAngeloGioacchino Del Regno .type = SCPSYS_MTCMOS_TYPE_HW_VOTER, 6175437b281SAngeloGioacchino Del Regno }; 6185437b281SAngeloGioacchino Del Regno 619*56b0d230SAngeloGioacchino Del Regno static const struct scpsys_soc_data mt8196_hfrpsys_hwv_data = { 620*56b0d230SAngeloGioacchino Del Regno .hwv_domains_data = hfrpsys_hwv_domain_data_mt8196, 621*56b0d230SAngeloGioacchino Del Regno .num_hwv_domains = ARRAY_SIZE(hfrpsys_hwv_domain_data_mt8196), 622*56b0d230SAngeloGioacchino Del Regno .type = SCPSYS_MTCMOS_TYPE_HW_VOTER, 623*56b0d230SAngeloGioacchino Del Regno }; 624*56b0d230SAngeloGioacchino Del Regno 6255437b281SAngeloGioacchino Del Regno #endif /* __SOC_MEDIATEK_MT8196_PM_DOMAINS_H */ 626