aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorweiyi.lu@mediatek.com <weiyi.lu@mediatek.com>2018-03-12 03:03:39 -0400
committerMatthias Brugger <matthias.bgg@gmail.com>2018-03-18 21:29:05 -0400
commit9f9971266110add19b512f7b10a6d922e741368e (patch)
treea3fd6ad7d7777717132bf5fb3ac23f91fadc44ab
parent1390515aed5e5eea8d6c2c5c08ef6d04ba4a4a50 (diff)
soc: mediatek: update power domain data of MT2712
1. split MFG power domain into MFG/MFG_SC1/MFG_SC2/MFG_SC3 according to MT2712 ECO design change 2. add subdomain support for MT2712 Signed-off-by: Weiyi Lu <weiyi.lu@mediatek.com> Signed-off-by: Matthias Brugger <matthias.bgg@gmail.com>
-rw-r--r--drivers/soc/mediatek/mtk-scpsys.c42
1 files changed, 40 insertions, 2 deletions
diff --git a/drivers/soc/mediatek/mtk-scpsys.c b/drivers/soc/mediatek/mtk-scpsys.c
index 9de801e9e0e0..d762a46d434f 100644
--- a/drivers/soc/mediatek/mtk-scpsys.c
+++ b/drivers/soc/mediatek/mtk-scpsys.c
@@ -666,12 +666,48 @@ static const struct scp_domain_data scp_domain_data_mt2712[] = {
666 .name = "mfg", 666 .name = "mfg",
667 .sta_mask = PWR_STATUS_MFG, 667 .sta_mask = PWR_STATUS_MFG,
668 .ctl_offs = SPM_MFG_PWR_CON, 668 .ctl_offs = SPM_MFG_PWR_CON,
669 .sram_pdn_bits = GENMASK(11, 8), 669 .sram_pdn_bits = GENMASK(8, 8),
670 .sram_pdn_ack_bits = GENMASK(19, 16), 670 .sram_pdn_ack_bits = GENMASK(16, 16),
671 .clk_id = {CLK_MFG}, 671 .clk_id = {CLK_MFG},
672 .bus_prot_mask = BIT(14) | BIT(21) | BIT(23), 672 .bus_prot_mask = BIT(14) | BIT(21) | BIT(23),
673 .active_wakeup = true, 673 .active_wakeup = true,
674 }, 674 },
675 [MT2712_POWER_DOMAIN_MFG_SC1] = {
676 .name = "mfg_sc1",
677 .sta_mask = BIT(22),
678 .ctl_offs = 0x02c0,
679 .sram_pdn_bits = GENMASK(8, 8),
680 .sram_pdn_ack_bits = GENMASK(16, 16),
681 .clk_id = {CLK_NONE},
682 .active_wakeup = true,
683 },
684 [MT2712_POWER_DOMAIN_MFG_SC2] = {
685 .name = "mfg_sc2",
686 .sta_mask = BIT(23),
687 .ctl_offs = 0x02c4,
688 .sram_pdn_bits = GENMASK(8, 8),
689 .sram_pdn_ack_bits = GENMASK(16, 16),
690 .clk_id = {CLK_NONE},
691 .active_wakeup = true,
692 },
693 [MT2712_POWER_DOMAIN_MFG_SC3] = {
694 .name = "mfg_sc3",
695 .sta_mask = BIT(30),
696 .ctl_offs = 0x01f8,
697 .sram_pdn_bits = GENMASK(8, 8),
698 .sram_pdn_ack_bits = GENMASK(16, 16),
699 .clk_id = {CLK_NONE},
700 .active_wakeup = true,
701 },
702};
703
704static const struct scp_subdomain scp_subdomain_mt2712[] = {
705 {MT2712_POWER_DOMAIN_MM, MT2712_POWER_DOMAIN_VDEC},
706 {MT2712_POWER_DOMAIN_MM, MT2712_POWER_DOMAIN_VENC},
707 {MT2712_POWER_DOMAIN_MM, MT2712_POWER_DOMAIN_ISP},
708 {MT2712_POWER_DOMAIN_MFG, MT2712_POWER_DOMAIN_MFG_SC1},
709 {MT2712_POWER_DOMAIN_MFG_SC1, MT2712_POWER_DOMAIN_MFG_SC2},
710 {MT2712_POWER_DOMAIN_MFG_SC2, MT2712_POWER_DOMAIN_MFG_SC3},
675}; 711};
676 712
677/* 713/*
@@ -948,6 +984,8 @@ static const struct scp_soc_data mt2701_data = {
948static const struct scp_soc_data mt2712_data = { 984static const struct scp_soc_data mt2712_data = {
949 .domains = scp_domain_data_mt2712, 985 .domains = scp_domain_data_mt2712,
950 .num_domains = ARRAY_SIZE(scp_domain_data_mt2712), 986 .num_domains = ARRAY_SIZE(scp_domain_data_mt2712),
987 .subdomains = scp_subdomain_mt2712,
988 .num_subdomains = ARRAY_SIZE(scp_subdomain_mt2712),
951 .regs = { 989 .regs = {
952 .pwr_sta_offs = SPM_PWR_STATUS, 990 .pwr_sta_offs = SPM_PWR_STATUS,
953 .pwr_sta2nd_offs = SPM_PWR_STATUS_2ND 991 .pwr_sta2nd_offs = SPM_PWR_STATUS_2ND