diff options
author | weiyi.lu@mediatek.com <weiyi.lu@mediatek.com> | 2018-03-12 03:03:39 -0400 |
---|---|---|
committer | Matthias Brugger <matthias.bgg@gmail.com> | 2018-03-18 21:29:05 -0400 |
commit | 9f9971266110add19b512f7b10a6d922e741368e (patch) | |
tree | a3fd6ad7d7777717132bf5fb3ac23f91fadc44ab | |
parent | 1390515aed5e5eea8d6c2c5c08ef6d04ba4a4a50 (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.c | 42 |
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 | |||
704 | static 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 = { | |||
948 | static const struct scp_soc_data mt2712_data = { | 984 | static 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 |