2020-10-30 12:36:08 +01:00
/* SPDX-License-Identifier: GPL-2.0-only */
# ifndef __SOC_MEDIATEK_MT8173_PM_DOMAINS_H
# define __SOC_MEDIATEK_MT8173_PM_DOMAINS_H
# include "mtk-pm-domains.h"
# include <dt-bindings/power/mt8173-power.h>
/*
* MT8173 power domain support
*/
static const struct scpsys_domain_data scpsys_domain_data_mt8173 [ ] = {
[ MT8173_POWER_DOMAIN_VDEC ] = {
2021-02-25 18:49:57 +01:00
. name = " vdec " ,
2020-10-30 12:36:08 +01:00
. sta_mask = PWR_STATUS_VDEC ,
. ctl_offs = SPM_VDE_PWR_CON ,
2022-01-30 09:21:03 +08:00
. pwr_sta_offs = SPM_PWR_STATUS ,
. pwr_sta2nd_offs = SPM_PWR_STATUS_2ND ,
2020-10-30 12:36:08 +01:00
. sram_pdn_bits = GENMASK ( 11 , 8 ) ,
. sram_pdn_ack_bits = GENMASK ( 12 , 12 ) ,
} ,
[ MT8173_POWER_DOMAIN_VENC ] = {
2021-02-25 18:49:57 +01:00
. name = " venc " ,
2020-10-30 12:36:08 +01:00
. sta_mask = PWR_STATUS_VENC ,
. ctl_offs = SPM_VEN_PWR_CON ,
2022-01-30 09:21:03 +08:00
. pwr_sta_offs = SPM_PWR_STATUS ,
. pwr_sta2nd_offs = SPM_PWR_STATUS_2ND ,
2020-10-30 12:36:08 +01:00
. sram_pdn_bits = GENMASK ( 11 , 8 ) ,
. sram_pdn_ack_bits = GENMASK ( 15 , 12 ) ,
} ,
[ MT8173_POWER_DOMAIN_ISP ] = {
2021-02-25 18:49:57 +01:00
. name = " isp " ,
2020-10-30 12:36:08 +01:00
. sta_mask = PWR_STATUS_ISP ,
. ctl_offs = SPM_ISP_PWR_CON ,
2022-01-30 09:21:03 +08:00
. pwr_sta_offs = SPM_PWR_STATUS ,
. pwr_sta2nd_offs = SPM_PWR_STATUS_2ND ,
2020-10-30 12:36:08 +01:00
. sram_pdn_bits = GENMASK ( 11 , 8 ) ,
. sram_pdn_ack_bits = GENMASK ( 13 , 12 ) ,
} ,
[ MT8173_POWER_DOMAIN_MM ] = {
2021-02-25 18:49:57 +01:00
. name = " mm " ,
2020-10-30 12:36:08 +01:00
. sta_mask = PWR_STATUS_DISP ,
. ctl_offs = SPM_DIS_PWR_CON ,
2022-01-30 09:21:03 +08:00
. pwr_sta_offs = SPM_PWR_STATUS ,
. pwr_sta2nd_offs = SPM_PWR_STATUS_2ND ,
2020-10-30 12:36:08 +01:00
. sram_pdn_bits = GENMASK ( 11 , 8 ) ,
. sram_pdn_ack_bits = GENMASK ( 12 , 12 ) ,
2020-10-30 12:36:12 +01:00
. bp_infracfg = {
BUS_PROT_UPDATE_TOPAXI ( MT8173_TOP_AXI_PROT_EN_MM_M0 |
MT8173_TOP_AXI_PROT_EN_MM_M1 ) ,
2020-10-30 12:36:08 +01:00
} ,
} ,
[ MT8173_POWER_DOMAIN_VENC_LT ] = {
2021-02-25 18:49:57 +01:00
. name = " venc_lt " ,
2020-10-30 12:36:08 +01:00
. sta_mask = PWR_STATUS_VENC_LT ,
. ctl_offs = SPM_VEN2_PWR_CON ,
2022-01-30 09:21:03 +08:00
. pwr_sta_offs = SPM_PWR_STATUS ,
. pwr_sta2nd_offs = SPM_PWR_STATUS_2ND ,
2020-10-30 12:36:08 +01:00
. sram_pdn_bits = GENMASK ( 11 , 8 ) ,
. sram_pdn_ack_bits = GENMASK ( 15 , 12 ) ,
} ,
[ MT8173_POWER_DOMAIN_AUDIO ] = {
2021-02-25 18:49:57 +01:00
. name = " audio " ,
2020-10-30 12:36:08 +01:00
. sta_mask = PWR_STATUS_AUDIO ,
. ctl_offs = SPM_AUDIO_PWR_CON ,
2022-01-30 09:21:03 +08:00
. pwr_sta_offs = SPM_PWR_STATUS ,
. pwr_sta2nd_offs = SPM_PWR_STATUS_2ND ,
2020-10-30 12:36:08 +01:00
. sram_pdn_bits = GENMASK ( 11 , 8 ) ,
. sram_pdn_ack_bits = GENMASK ( 15 , 12 ) ,
} ,
[ MT8173_POWER_DOMAIN_USB ] = {
2021-02-25 18:49:57 +01:00
. name = " usb " ,
2020-10-30 12:36:08 +01:00
. sta_mask = PWR_STATUS_USB ,
. ctl_offs = SPM_USB_PWR_CON ,
2022-01-30 09:21:03 +08:00
. pwr_sta_offs = SPM_PWR_STATUS ,
. pwr_sta2nd_offs = SPM_PWR_STATUS_2ND ,
2020-10-30 12:36:08 +01:00
. sram_pdn_bits = GENMASK ( 11 , 8 ) ,
. sram_pdn_ack_bits = GENMASK ( 15 , 12 ) ,
. caps = MTK_SCPD_ACTIVE_WAKEUP ,
} ,
[ MT8173_POWER_DOMAIN_MFG_ASYNC ] = {
2021-02-25 18:49:57 +01:00
. name = " mfg_async " ,
2020-10-30 12:36:08 +01:00
. sta_mask = PWR_STATUS_MFG_ASYNC ,
. ctl_offs = SPM_MFG_ASYNC_PWR_CON ,
2022-01-30 09:21:03 +08:00
. pwr_sta_offs = SPM_PWR_STATUS ,
. pwr_sta2nd_offs = SPM_PWR_STATUS_2ND ,
2020-10-30 12:36:08 +01:00
. sram_pdn_bits = GENMASK ( 11 , 8 ) ,
. sram_pdn_ack_bits = 0 ,
2021-07-01 11:40:23 +02:00
. caps = MTK_SCPD_DOMAIN_SUPPLY ,
2020-10-30 12:36:08 +01:00
} ,
[ MT8173_POWER_DOMAIN_MFG_2D ] = {
2021-02-25 18:49:57 +01:00
. name = " mfg_2d " ,
2020-10-30 12:36:08 +01:00
. sta_mask = PWR_STATUS_MFG_2D ,
. ctl_offs = SPM_MFG_2D_PWR_CON ,
2022-01-30 09:21:03 +08:00
. pwr_sta_offs = SPM_PWR_STATUS ,
. pwr_sta2nd_offs = SPM_PWR_STATUS_2ND ,
2020-10-30 12:36:08 +01:00
. sram_pdn_bits = GENMASK ( 11 , 8 ) ,
. sram_pdn_ack_bits = GENMASK ( 13 , 12 ) ,
} ,
[ MT8173_POWER_DOMAIN_MFG ] = {
2021-02-25 18:49:57 +01:00
. name = " mfg " ,
2020-10-30 12:36:08 +01:00
. sta_mask = PWR_STATUS_MFG ,
. ctl_offs = SPM_MFG_PWR_CON ,
2022-01-30 09:21:03 +08:00
. pwr_sta_offs = SPM_PWR_STATUS ,
. pwr_sta2nd_offs = SPM_PWR_STATUS_2ND ,
2020-10-30 12:36:08 +01:00
. sram_pdn_bits = GENMASK ( 13 , 8 ) ,
. sram_pdn_ack_bits = GENMASK ( 21 , 16 ) ,
2020-10-30 12:36:12 +01:00
. bp_infracfg = {
BUS_PROT_UPDATE_TOPAXI ( MT8173_TOP_AXI_PROT_EN_MFG_S |
MT8173_TOP_AXI_PROT_EN_MFG_M0 |
MT8173_TOP_AXI_PROT_EN_MFG_M1 |
MT8173_TOP_AXI_PROT_EN_MFG_SNOOP_OUT ) ,
2020-10-30 12:36:08 +01:00
} ,
} ,
} ;
static const struct scpsys_soc_data mt8173_scpsys_data = {
. domains_data = scpsys_domain_data_mt8173 ,
. num_domains = ARRAY_SIZE ( scpsys_domain_data_mt8173 ) ,
} ;
# endif /* __SOC_MEDIATEK_MT8173_PM_DOMAINS_H */