power: domain: mediatek: use MT2701 naming instead of MT7623
Upstream DT bindings define "mediatek,mt7623-scpsys" to fall back to "mediatek,mt2701-scpsys". Align the driver with this convention by using MT2701 naming throughout. This also allows the driver to use the upstream dts/upstream/include/dt-bindings/power/mt2701-power.h header instead of the local include/dt-bindings/power/mt7623-power.h, since both expose equivalent power domain definitions. Rename scp_domain_mt7623 to scp_domain_mt2701, replace SCPSYS_MT7623 enum by SCPSYS_MT2701, and switch all MT7623 power domain defines to their MT2701 equivalents. Note: we intentionally keep the explicit "mediatek,mt7623-scpsys" compatible entry to avoid breaking legacy boards (mt7623a_unielec_u7623_02 and mt7623n_bpir2_defconfig) that didn't switched yet to OF_UPSTREAM. Same for include/dt-bindings/power/mt7623-power.h that is only used in these boards. Signed-off-by: Julien Stephan <jstephan@baylibre.com> Link: https://patch.msgid.link/20260709-mt8188-add-power-domain-v2-4-589ace7d30e2@baylibre.com Signed-off-by: David Lechner <dlechner@baylibre.com>
This commit is contained in:
committed by
David Lechner
parent
0b4bfb0c97
commit
bd1621d61a
@@ -16,8 +16,8 @@
|
||||
#include <linux/err.h>
|
||||
#include <linux/iopoll.h>
|
||||
|
||||
#include <dt-bindings/power/mt2701-power.h>
|
||||
#include <dt-bindings/power/mt7622-power.h>
|
||||
#include <dt-bindings/power/mt7623-power.h>
|
||||
|
||||
#define SPM_EN (0xb16 << 16 | 0x1)
|
||||
#define SPM_VDE_PWR_CON 0x0210
|
||||
@@ -62,8 +62,8 @@
|
||||
#define DCM_TOP_EN BIT(0)
|
||||
|
||||
enum scp_domain_type {
|
||||
SCPSYS_MT2701,
|
||||
SCPSYS_MT7622,
|
||||
SCPSYS_MT7623,
|
||||
};
|
||||
|
||||
struct scp_domain;
|
||||
@@ -84,54 +84,54 @@ struct scp_domain {
|
||||
struct scp_domain_data *data;
|
||||
};
|
||||
|
||||
static struct scp_domain_data scp_domain_mt7623[] = {
|
||||
[MT7623_POWER_DOMAIN_CONN] = {
|
||||
static struct scp_domain_data scp_domain_mt2701[] = {
|
||||
[MT2701_POWER_DOMAIN_CONN] = {
|
||||
.sta_mask = PWR_STATUS_CONN,
|
||||
.ctl_offs = SPM_CONN_PWR_CON,
|
||||
.bus_prot_mask = BIT(8) | BIT(2),
|
||||
},
|
||||
[MT7623_POWER_DOMAIN_DISP] = {
|
||||
[MT2701_POWER_DOMAIN_DISP] = {
|
||||
.sta_mask = PWR_STATUS_DISP,
|
||||
.ctl_offs = SPM_DIS_PWR_CON,
|
||||
.sram_pdn_bits = GENMASK(11, 8),
|
||||
.bus_prot_mask = BIT(2),
|
||||
},
|
||||
[MT7623_POWER_DOMAIN_MFG] = {
|
||||
[MT2701_POWER_DOMAIN_MFG] = {
|
||||
.sta_mask = PWR_STATUS_MFG,
|
||||
.ctl_offs = SPM_MFG_PWR_CON,
|
||||
.sram_pdn_bits = GENMASK(11, 8),
|
||||
.sram_pdn_ack_bits = GENMASK(12, 12),
|
||||
},
|
||||
[MT7623_POWER_DOMAIN_VDEC] = {
|
||||
[MT2701_POWER_DOMAIN_VDEC] = {
|
||||
.sta_mask = PWR_STATUS_VDEC,
|
||||
.ctl_offs = SPM_VDE_PWR_CON,
|
||||
.sram_pdn_bits = GENMASK(11, 8),
|
||||
.sram_pdn_ack_bits = GENMASK(12, 12),
|
||||
},
|
||||
[MT7623_POWER_DOMAIN_ISP] = {
|
||||
[MT2701_POWER_DOMAIN_ISP] = {
|
||||
.sta_mask = PWR_STATUS_ISP,
|
||||
.ctl_offs = SPM_ISP_PWR_CON,
|
||||
.sram_pdn_bits = GENMASK(11, 8),
|
||||
.sram_pdn_ack_bits = GENMASK(13, 12),
|
||||
},
|
||||
[MT7623_POWER_DOMAIN_BDP] = {
|
||||
[MT2701_POWER_DOMAIN_BDP] = {
|
||||
.sta_mask = PWR_STATUS_BDP,
|
||||
.ctl_offs = SPM_BDP_PWR_CON,
|
||||
.sram_pdn_bits = GENMASK(11, 8),
|
||||
},
|
||||
[MT7623_POWER_DOMAIN_ETH] = {
|
||||
[MT2701_POWER_DOMAIN_ETH] = {
|
||||
.sta_mask = PWR_STATUS_ETH,
|
||||
.ctl_offs = SPM_ETH_PWR_CON,
|
||||
.sram_pdn_bits = GENMASK(11, 8),
|
||||
.sram_pdn_ack_bits = GENMASK(15, 12),
|
||||
},
|
||||
[MT7623_POWER_DOMAIN_HIF] = {
|
||||
[MT2701_POWER_DOMAIN_HIF] = {
|
||||
.sta_mask = PWR_STATUS_HIF,
|
||||
.ctl_offs = SPM_HIF_PWR_CON,
|
||||
.sram_pdn_bits = GENMASK(11, 8),
|
||||
.sram_pdn_ack_bits = GENMASK(15, 12),
|
||||
},
|
||||
[MT7623_POWER_DOMAIN_IFR_MSC] = {
|
||||
[MT2701_POWER_DOMAIN_IFR_MSC] = {
|
||||
.sta_mask = PWR_STATUS_IFR_MSC,
|
||||
.ctl_offs = SPM_IFR_MSC_PWR_CON,
|
||||
},
|
||||
@@ -322,12 +322,12 @@ static int mtk_power_domain_hook(struct udevice *dev)
|
||||
scpd->type = (enum scp_domain_type)dev_get_driver_data(dev);
|
||||
|
||||
switch (scpd->type) {
|
||||
case SCPSYS_MT2701:
|
||||
scpd->data = scp_domain_mt2701;
|
||||
break;
|
||||
case SCPSYS_MT7622:
|
||||
scpd->data = scp_domain_mt7622;
|
||||
break;
|
||||
case SCPSYS_MT7623:
|
||||
scpd->data = scp_domain_mt7623;
|
||||
break;
|
||||
default:
|
||||
return -EINVAL;
|
||||
}
|
||||
@@ -375,13 +375,17 @@ static int mtk_power_domain_probe(struct udevice *dev)
|
||||
}
|
||||
|
||||
static const struct udevice_id mtk_power_domain_ids[] = {
|
||||
{
|
||||
.compatible = "mediatek,mt2701-scpsys",
|
||||
.data = SCPSYS_MT2701,
|
||||
},
|
||||
{
|
||||
.compatible = "mediatek,mt7622-scpsys",
|
||||
.data = SCPSYS_MT7622,
|
||||
},
|
||||
{
|
||||
.compatible = "mediatek,mt7623-scpsys",
|
||||
.data = SCPSYS_MT7623,
|
||||
.data = SCPSYS_MT2701,
|
||||
},
|
||||
{ /* sentinel */ }
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user