Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 00673189 authored by Argus Lin's avatar Argus Lin Committed by Matthias Brugger
Browse files

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: default avatarArgus Lin <argus.lin@mediatek.com>
Signed-off-by: default avatarMatthias Brugger <matthias.bgg@gmail.com>
parent 8e62ac4b
Loading
Loading
Loading
Loading
+29 −0
Original line number Diff line number Diff line
@@ -146,6 +146,21 @@ static const u32 mt6397_regs[] = {
	[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 {
	PWRAP_MUX_SEL,
	PWRAP_WRAP_EN,
@@ -668,6 +683,7 @@ static int mt8135_regs[] = {

enum pmic_type {
	PMIC_MT6323,
	PMIC_MT6351,
	PMIC_MT6380,
	PMIC_MT6397,
};
@@ -1124,6 +1140,7 @@ static int pwrap_init_cipher(struct pmic_wrapper *wrp)
			    0x1);
		break;
	case PMIC_MT6323:
	case PMIC_MT6351:
		pwrap_write(wrp, wrp->slave->dew_regs[PWRAP_DEW_CIPHER_EN],
			    0x1);
		break;
@@ -1400,6 +1417,15 @@ static const struct pwrap_slv_type pmic_mt6397 = {
	.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[] = {
	{
		.compatible = "mediatek,mt6323",
@@ -1413,6 +1439,9 @@ static const struct of_device_id of_slave_match_tbl[] = {
	}, {
		.compatible = "mediatek,mt6397",
		.data = &pmic_mt6397,
	}, {
		.compatible = "mediatek,mt6351",
		.data = &pmic_mt6351,
	}, {
		/* sentinel */
	}