soc: mediatek: pwrap: add mt6351 driver for mt6797 SoCs

MT6351 is a new power management IC and it is used for mt6797 SoCs. To define
mt6351_regs for pmic register mapping and pmic_mt6351 for
accessing register.

Signed-off-by: Argus Lin <argus.lin@mediatek.com>
Signed-off-by: Matthias Brugger <matthias.bgg@gmail.com>
This commit is contained in:
Argus Lin 2018-06-11 18:50:00 +08:00 committed by Matthias Brugger
parent 8e62ac4bad
commit 00673189b8
1 changed files with 29 additions and 0 deletions

View File

@ -146,6 +146,21 @@ static const u32 mt6397_regs[] = {
[PWRAP_DEW_CIPHER_SWRST] = 0xbc24, [PWRAP_DEW_CIPHER_SWRST] = 0xbc24,
}; };
static const u32 mt6351_regs[] = {
[PWRAP_DEW_DIO_EN] = 0x02F2,
[PWRAP_DEW_READ_TEST] = 0x02F4,
[PWRAP_DEW_WRITE_TEST] = 0x02F6,
[PWRAP_DEW_CRC_EN] = 0x02FA,
[PWRAP_DEW_CRC_VAL] = 0x02FC,
[PWRAP_DEW_CIPHER_KEY_SEL] = 0x0300,
[PWRAP_DEW_CIPHER_IV_SEL] = 0x0302,
[PWRAP_DEW_CIPHER_EN] = 0x0304,
[PWRAP_DEW_CIPHER_RDY] = 0x0306,
[PWRAP_DEW_CIPHER_MODE] = 0x0308,
[PWRAP_DEW_CIPHER_SWRST] = 0x030A,
[PWRAP_DEW_RDDMY_NO] = 0x030C,
};
enum pwrap_regs { enum pwrap_regs {
PWRAP_MUX_SEL, PWRAP_MUX_SEL,
PWRAP_WRAP_EN, PWRAP_WRAP_EN,
@ -668,6 +683,7 @@ static int mt8135_regs[] = {
enum pmic_type { enum pmic_type {
PMIC_MT6323, PMIC_MT6323,
PMIC_MT6351,
PMIC_MT6380, PMIC_MT6380,
PMIC_MT6397, PMIC_MT6397,
}; };
@ -1124,6 +1140,7 @@ static int pwrap_init_cipher(struct pmic_wrapper *wrp)
0x1); 0x1);
break; break;
case PMIC_MT6323: case PMIC_MT6323:
case PMIC_MT6351:
pwrap_write(wrp, wrp->slave->dew_regs[PWRAP_DEW_CIPHER_EN], pwrap_write(wrp, wrp->slave->dew_regs[PWRAP_DEW_CIPHER_EN],
0x1); 0x1);
break; break;
@ -1400,6 +1417,15 @@ static const struct pwrap_slv_type pmic_mt6397 = {
.pwrap_write = pwrap_write16, .pwrap_write = pwrap_write16,
}; };
static const struct pwrap_slv_type pmic_mt6351 = {
.dew_regs = mt6351_regs,
.type = PMIC_MT6351,
.regmap = &pwrap_regmap_config16,
.caps = 0,
.pwrap_read = pwrap_read16,
.pwrap_write = pwrap_write16,
};
static const struct of_device_id of_slave_match_tbl[] = { static const struct of_device_id of_slave_match_tbl[] = {
{ {
.compatible = "mediatek,mt6323", .compatible = "mediatek,mt6323",
@ -1413,6 +1439,9 @@ static const struct of_device_id of_slave_match_tbl[] = {
}, { }, {
.compatible = "mediatek,mt6397", .compatible = "mediatek,mt6397",
.data = &pmic_mt6397, .data = &pmic_mt6397,
}, {
.compatible = "mediatek,mt6351",
.data = &pmic_mt6351,
}, { }, {
/* sentinel */ /* sentinel */
} }