Re: [PATCH v3 4/5] mfd: mt6397: Add support for MT6392 pmic

From: Fabien Parent
Date: Wed Jun 19 2019 - 09:56:18 EST


On Mon, Jun 3, 2019 at 11:37 AM Lee Jones <lee.jones@xxxxxxxxxx> wrote:
>
> On Wed, 15 May 2019, Fabien Parent wrote:
>
> > Update the MT6397 MFD driver to support the MT6392 PMIC.
> >
> > Signed-off-by: Fabien Parent <fparent@xxxxxxxxxxxx>
> > ---
> >
> > V3:
> > * No change
> >
> > V2:
> > * Pass IRQ comain to fix invalid MFD devices IRQs.
> > * Remove resources and mfd cells for device we don't support.
> > * Rename IRQ names to follow what's done for MT6397.
> >
> > ---
> > drivers/mfd/mt6397-core.c | 55 +++
> > include/linux/mfd/mt6392/core.h | 42 +++
> > include/linux/mfd/mt6392/registers.h | 487 +++++++++++++++++++++++++++
> > 3 files changed, 584 insertions(+)
> > create mode 100644 include/linux/mfd/mt6392/core.h
> > create mode 100644 include/linux/mfd/mt6392/registers.h
> >
> > diff --git a/drivers/mfd/mt6397-core.c b/drivers/mfd/mt6397-core.c
> > index ab24e176ef44..e46c0533d187 100644
> > --- a/drivers/mfd/mt6397-core.c
> > +++ b/drivers/mfd/mt6397-core.c
> > @@ -18,17 +18,35 @@
> > #include <linux/of_irq.h>
> > #include <linux/regmap.h>
> > #include <linux/mfd/core.h>
> > +#include <linux/mfd/mt6392/core.h>
> > #include <linux/mfd/mt6397/core.h>
> > #include <linux/mfd/mt6323/core.h>
> > +#include <linux/mfd/mt6392/registers.h>
> > #include <linux/mfd/mt6397/registers.h>
> > #include <linux/mfd/mt6323/registers.h>
> >
> > +#define MT6392_RTC_BASE 0x8000
> > +#define MT6392_RTC_SIZE 0x3e
> > #define MT6397_RTC_BASE 0xe000
> > #define MT6397_RTC_SIZE 0x3e
> >
> > #define MT6323_CID_CODE 0x23
> > #define MT6391_CID_CODE 0x91
> > #define MT6397_CID_CODE 0x97
> > +#define MT6392_CID_CODE 0x92
> > +
> > +static const struct resource mt6392_rtc_resources[] = {
> > + {
> > + .start = MT6392_RTC_BASE,
> > + .end = MT6392_RTC_BASE + MT6392_RTC_SIZE,
> > + .flags = IORESOURCE_MEM,
> > + },
> > + {
> > + .start = MT6392_IRQ_RTC,
> > + .end = MT6392_IRQ_RTC,
> > + .flags = IORESOURCE_IRQ,
> > + },
> > +};
>
> Why aren't you using the the DEFINE_RES_* helpers here.

Fixed in v4

>
> > static const struct resource mt6397_rtc_resources[] = {
> > {
> > @@ -48,11 +66,33 @@ static const struct resource mt6323_keys_resources[] = {
> > DEFINE_RES_IRQ(MT6323_IRQ_STATUS_FCHRKEY),
> > };
> >
> > +static const struct resource mt6392_keys_resources[] = {
> > + DEFINE_RES_IRQ(MT6392_IRQ_PWRKEY),
> > + DEFINE_RES_IRQ(MT6392_IRQ_FCHRKEY),
> > +};
> > +
> > static const struct resource mt6397_keys_resources[] = {
> > DEFINE_RES_IRQ(MT6397_IRQ_PWRKEY),
> > DEFINE_RES_IRQ(MT6397_IRQ_HOMEKEY),
> > };
> >
> > +static const struct mfd_cell mt6392_devs[] = {
> > + {
> > + .name = "mt6392-regulator",
> > + .of_compatible = "mediatek,mt6392-regulator",
> > + }, {
> > + .name = "mt6397-rtc",
> > + .num_resources = ARRAY_SIZE(mt6392_rtc_resources),
> > + .resources = mt6392_rtc_resources,
> > + .of_compatible = "mediatek,mt6392-rtc",
> > + }, {
> > + .name = "mtk-pmic-keys",
> > + .num_resources = ARRAY_SIZE(mt6392_keys_resources),
> > + .resources = mt6392_keys_resources,
> > + .of_compatible = "mediatek,mt6392-keys"
> > + },
> > +};
> > +
> > static const struct mfd_cell mt6323_devs[] = {
> > {
> > .name = "mt6323-regulator",
> > @@ -327,6 +367,20 @@ static int mt6397_probe(struct platform_device *pdev)
> > 0, pmic->irq_domain);
> > break;
> >
> > + case MT6392_CID_CODE:
> > + pmic->int_con[0] = MT6392_INT_CON0;
> > + pmic->int_con[1] = MT6392_INT_CON1;
> > + pmic->int_status[0] = MT6392_INT_STATUS0;
> > + pmic->int_status[1] = MT6392_INT_STATUS1;
> > + ret = mt6397_irq_init(pmic);
> > + if (ret)
> > + return ret;
> > +
> > + ret = devm_mfd_add_devices(&pdev->dev, -1, mt6392_devs,
>
> Please use the defines, instead of -1.

Fixed in v4
>
> > + ARRAY_SIZE(mt6392_devs), NULL,
> > + 0, pmic->irq_domain);
> > + break;
> > +
> > default:
> > dev_err(&pdev->dev, "unsupported chip: %d\n", id);
> > return -ENODEV;
> > @@ -343,6 +397,7 @@ static int mt6397_probe(struct platform_device *pdev)
> > static const struct of_device_id mt6397_of_match[] = {
> > { .compatible = "mediatek,mt6397" },
> > { .compatible = "mediatek,mt6323" },
> > + { .compatible = "mediatek,mt6392" },
> > { }
> > };
> > MODULE_DEVICE_TABLE(of, mt6397_of_match);
> > diff --git a/include/linux/mfd/mt6392/core.h b/include/linux/mfd/mt6392/core.h
> > new file mode 100644
> > index 000000000000..7575a79ea052
> > --- /dev/null
> > +++ b/include/linux/mfd/mt6392/core.h
> > @@ -0,0 +1,42 @@
> > +/* SPDX-License-Identifier: GPL-2.0 */
> > +/*
> > + * Copyright (c) 2019 MediaTek Inc.
> > + * Author: Chen Zhong <chen.zhong@xxxxxxxxxxxx>
> > + */
> > +
> > +#ifndef __MFD_MT6392_CORE_H__
> > +#define __MFD_MT6392_CORE_H__
> > +
> > +enum MT6392_IRQ_numbers {
> > + MT6392_IRQ_SPKL_AB = 0,
> > + MT6392_IRQ_SPKL,
> > + MT6392_IRQ_BAT_L,
> > + MT6392_IRQ_BAT_H,
> > + MT6392_IRQ_WATCHDOG,
> > + MT6392_IRQ_PWRKEY,
> > + MT6392_IRQ_THR_L,
> > + MT6392_IRQ_THR_H,
> > + MT6392_IRQ_VBATON_UNDET,
> > + MT6392_IRQ_BVALID_DET,
> > + MT6392_IRQ_CHRDET,
> > + MT6392_IRQ_OV,
> > + MT6392_IRQ_LDO = 16,
> > + MT6392_IRQ_FCHRKEY,
> > + MT6392_IRQ_RELEASE_PWRKEY,
> > + MT6392_IRQ_RELEASE_FCHRKEY,
> > + MT6392_IRQ_RTC,
> > + MT6392_IRQ_VPROC,
> > + MT6392_IRQ_VSYS,
> > + MT6392_IRQ_VCORE,
> > + MT6392_IRQ_TYPE_C_CC,
> > + MT6392_IRQ_TYPEC_H_MAX,
> > + MT6392_IRQ_TYPEC_H_MIN,
> > + MT6392_IRQ_TYPEC_L_MAX,
> > + MT6392_IRQ_TYPEC_L_MIN,
> > + MT6392_IRQ_THR_MAX,
> > + MT6392_IRQ_THR_MIN,
> > + MT6392_IRQ_NAG_C_DLTV,
> > + MT6392_IRQ_NR,
> > +};
> > +
> > +#endif /* __MFD_MT6392_CORE_H__ */
> > diff --git a/include/linux/mfd/mt6392/registers.h b/include/linux/mfd/mt6392/registers.h
> > new file mode 100644
> > index 000000000000..f02b478fc418
> > --- /dev/null
> > +++ b/include/linux/mfd/mt6392/registers.h
> > @@ -0,0 +1,487 @@
> > +/* SPDX-License-Identifier: GPL-2.0 */
> > +/*
> > + * Copyright (c) 2019 MediaTek Inc.
> > + * Author: Chen Zhong <chen.zhong@xxxxxxxxxxxx>
> > + */
> > +
> > +#ifndef __MFD_MT6392_REGISTERS_H__
> > +#define __MFD_MT6392_REGISTERS_H__
> > +
> > +/* PMIC Registers */
> > +#define MT6392_CHR_CON0 0x0000
> > +#define MT6392_CHR_CON1 0x0002
> > +#define MT6392_CHR_CON2 0x0004
> > +#define MT6392_CHR_CON3 0x0006
> > +#define MT6392_CHR_CON4 0x0008
> > +#define MT6392_CHR_CON5 0x000A
> > +#define MT6392_CHR_CON6 0x000C
> > +#define MT6392_CHR_CON7 0x000E
> > +#define MT6392_CHR_CON8 0x0010
> > +#define MT6392_CHR_CON9 0x0012
> > +#define MT6392_CHR_CON10 0x0014
> > +#define MT6392_CHR_CON11 0x0016
> > +#define MT6392_CHR_CON12 0x0018
> > +#define MT6392_CHR_CON13 0x001A
> > +#define MT6392_CHR_CON14 0x001C
> > +#define MT6392_CHR_CON15 0x001E
> > +#define MT6392_CHR_CON16 0x0020
> > +#define MT6392_CHR_CON17 0x0022
> > +#define MT6392_CHR_CON18 0x0024
> > +#define MT6392_CHR_CON19 0x0026
> > +#define MT6392_CHR_CON20 0x0028
> > +#define MT6392_CHR_CON21 0x002A
> > +#define MT6392_CHR_CON22 0x002C
> > +#define MT6392_CHR_CON23 0x002E
> > +#define MT6392_CHR_CON24 0x0030
> > +#define MT6392_CHR_CON25 0x0032
> > +#define MT6392_CHR_CON26 0x0034
> > +#define MT6392_CHR_CON27 0x0036
> > +#define MT6392_CHR_CON28 0x0038
> > +#define MT6392_CHR_CON29 0x003A
> > +#define MT6392_STRUP_CON0 0x003C
> > +#define MT6392_STRUP_CON2 0x003E
> > +#define MT6392_STRUP_CON3 0x0040
> > +#define MT6392_STRUP_CON4 0x0042
> > +#define MT6392_STRUP_CON5 0x0044
> > +#define MT6392_STRUP_CON6 0x0046
> > +#define MT6392_STRUP_CON7 0x0048
> > +#define MT6392_STRUP_CON8 0x004A
> > +#define MT6392_STRUP_CON9 0x004C
> > +#define MT6392_STRUP_CON10 0x004E
> > +#define MT6392_STRUP_CON11 0x0050
> > +#define MT6392_SPK_CON0 0x0052
> > +#define MT6392_SPK_CON1 0x0054
> > +#define MT6392_SPK_CON2 0x0056
> > +#define MT6392_SPK_CON6 0x005E
> > +#define MT6392_SPK_CON7 0x0060
> > +#define MT6392_SPK_CON8 0x0062
> > +#define MT6392_SPK_CON9 0x0064
> > +#define MT6392_SPK_CON10 0x0066
> > +#define MT6392_SPK_CON11 0x0068
> > +#define MT6392_SPK_CON12 0x006A
> > +#define MT6392_STRUP_CON12 0x006E
> > +#define MT6392_STRUP_CON13 0x0070
> > +#define MT6392_STRUP_CON14 0x0072
> > +#define MT6392_STRUP_CON15 0x0074
> > +#define MT6392_STRUP_CON16 0x0076
> > +#define MT6392_STRUP_CON17 0x0078
> > +#define MT6392_STRUP_CON18 0x007A
> > +#define MT6392_STRUP_CON19 0x007C
> > +#define MT6392_STRUP_CON20 0x007E
> > +#define MT6392_CID 0x0100
> > +#define MT6392_TOP_CKPDN0 0x0102
> > +#define MT6392_TOP_CKPDN0_SET 0x0104
> > +#define MT6392_TOP_CKPDN0_CLR 0x0106
> > +#define MT6392_TOP_CKPDN1 0x0108
> > +#define MT6392_TOP_CKPDN1_SET 0x010A
> > +#define MT6392_TOP_CKPDN1_CLR 0x010C
> > +#define MT6392_TOP_CKPDN2 0x010E
> > +#define MT6392_TOP_CKPDN2_SET 0x0110
> > +#define MT6392_TOP_CKPDN2_CLR 0x0112
> > +#define MT6392_TOP_RST_CON 0x0114
> > +#define MT6392_TOP_RST_CON_SET 0x0116
> > +#define MT6392_TOP_RST_CON_CLR 0x0118
> > +#define MT6392_TOP_RST_MISC 0x011A
> > +#define MT6392_TOP_RST_MISC_SET 0x011C
> > +#define MT6392_TOP_RST_MISC_CLR 0x011E
> > +#define MT6392_TOP_CKCON0 0x0120
> > +#define MT6392_TOP_CKCON0_SET 0x0122
> > +#define MT6392_TOP_CKCON0_CLR 0x0124
> > +#define MT6392_TOP_CKCON1 0x0126
> > +#define MT6392_TOP_CKCON1_SET 0x0128
> > +#define MT6392_TOP_CKCON1_CLR 0x012A
> > +#define MT6392_TOP_CKTST0 0x012C
> > +#define MT6392_TOP_CKTST1 0x012E
> > +#define MT6392_TOP_CKTST2 0x0130
> > +#define MT6392_TEST_OUT 0x0132
> > +#define MT6392_TEST_CON0 0x0134
> > +#define MT6392_TEST_CON1 0x0136
> > +#define MT6392_EN_STATUS0 0x0138
> > +#define MT6392_EN_STATUS1 0x013A
> > +#define MT6392_OCSTATUS0 0x013C
> > +#define MT6392_OCSTATUS1 0x013E
> > +#define MT6392_PGSTATUS 0x0140
> > +#define MT6392_CHRSTATUS 0x0142
> > +#define MT6392_TDSEL_CON 0x0144
> > +#define MT6392_RDSEL_CON 0x0146
> > +#define MT6392_SMT_CON0 0x0148
> > +#define MT6392_SMT_CON1 0x014A
> > +#define MT6392_DRV_CON0 0x0152
> > +#define MT6392_DRV_CON1 0x0154
> > +#define MT6392_INT_CON0 0x0160
> > +#define MT6392_INT_CON0_SET 0x0162
> > +#define MT6392_INT_CON0_CLR 0x0164
> > +#define MT6392_INT_CON1 0x0166
> > +#define MT6392_INT_CON1_SET 0x0168
> > +#define MT6392_INT_CON1_CLR 0x016A
> > +#define MT6392_INT_MISC_CON 0x016C
> > +#define MT6392_INT_MISC_CON_SET 0x016E
> > +#define MT6392_INT_MISC_CON_CLR 0x0170
> > +#define MT6392_INT_STATUS0 0x0172
> > +#define MT6392_INT_STATUS1 0x0174
> > +#define MT6392_OC_GEAR_0 0x0176
> > +#define MT6392_OC_GEAR_1 0x0178
> > +#define MT6392_OC_GEAR_2 0x017A
> > +#define MT6392_OC_CTL_VPROC 0x017C
> > +#define MT6392_OC_CTL_VSYS 0x017E
> > +#define MT6392_OC_CTL_VCORE 0x0180
> > +#define MT6392_FQMTR_CON0 0x0182
> > +#define MT6392_FQMTR_CON1 0x0184
> > +#define MT6392_FQMTR_CON2 0x0186
> > +#define MT6392_RG_SPI_CON 0x0188
> > +#define MT6392_DEW_DIO_EN 0x018A
> > +#define MT6392_DEW_READ_TEST 0x018C
> > +#define MT6392_DEW_WRITE_TEST 0x018E
> > +#define MT6392_DEW_CRC_SWRST 0x0190
> > +#define MT6392_DEW_CRC_EN 0x0192
> > +#define MT6392_DEW_CRC_VAL 0x0194
> > +#define MT6392_DEW_DBG_MON_SEL 0x0196
> > +#define MT6392_DEW_CIPHER_KEY_SEL 0x0198
> > +#define MT6392_DEW_CIPHER_IV_SEL 0x019A
> > +#define MT6392_DEW_CIPHER_EN 0x019C
> > +#define MT6392_DEW_CIPHER_RDY 0x019E
> > +#define MT6392_DEW_CIPHER_MODE 0x01A0
> > +#define MT6392_DEW_CIPHER_SWRST 0x01A2
> > +#define MT6392_DEW_RDDMY_NO 0x01A4
> > +#define MT6392_DEW_RDATA_DLY_SEL 0x01A6
> > +#define MT6392_CLK_TRIM_CON0 0x01A8
> > +#define MT6392_BUCK_CON0 0x0200
> > +#define MT6392_BUCK_CON1 0x0202
> > +#define MT6392_BUCK_CON2 0x0204
> > +#define MT6392_BUCK_CON3 0x0206
> > +#define MT6392_BUCK_CON4 0x0208
> > +#define MT6392_BUCK_CON5 0x020A
> > +#define MT6392_VPROC_CON0 0x020C
> > +#define MT6392_VPROC_CON1 0x020E
> > +#define MT6392_VPROC_CON2 0x0210
> > +#define MT6392_VPROC_CON3 0x0212
> > +#define MT6392_VPROC_CON4 0x0214
> > +#define MT6392_VPROC_CON5 0x0216
> > +#define MT6392_VPROC_CON7 0x021A
> > +#define MT6392_VPROC_CON8 0x021C
> > +#define MT6392_VPROC_CON9 0x021E
> > +#define MT6392_VPROC_CON10 0x0220
> > +#define MT6392_VPROC_CON11 0x0222
> > +#define MT6392_VPROC_CON12 0x0224
> > +#define MT6392_VPROC_CON13 0x0226
> > +#define MT6392_VPROC_CON14 0x0228
> > +#define MT6392_VPROC_CON15 0x022A
> > +#define MT6392_VPROC_CON18 0x0230
> > +#define MT6392_VSYS_CON0 0x0232
> > +#define MT6392_VSYS_CON1 0x0234
> > +#define MT6392_VSYS_CON2 0x0236
> > +#define MT6392_VSYS_CON3 0x0238
> > +#define MT6392_VSYS_CON4 0x023A
> > +#define MT6392_VSYS_CON5 0x023C
> > +#define MT6392_VSYS_CON7 0x0240
> > +#define MT6392_VSYS_CON8 0x0242
> > +#define MT6392_VSYS_CON9 0x0244
> > +#define MT6392_VSYS_CON10 0x0246
> > +#define MT6392_VSYS_CON11 0x0248
> > +#define MT6392_VSYS_CON12 0x024A
> > +#define MT6392_VSYS_CON13 0x024C
> > +#define MT6392_VSYS_CON14 0x024E
> > +#define MT6392_VSYS_CON15 0x0250
> > +#define MT6392_VSYS_CON18 0x0256
> > +#define MT6392_BUCK_OC_CON0 0x0258
> > +#define MT6392_BUCK_OC_CON1 0x025A
> > +#define MT6392_BUCK_OC_CON2 0x025C
> > +#define MT6392_BUCK_OC_CON3 0x025E
> > +#define MT6392_BUCK_OC_CON4 0x0260
> > +#define MT6392_BUCK_OC_VPROC_CON0 0x0262
> > +#define MT6392_BUCK_OC_VCORE_CON0 0x0264
> > +#define MT6392_BUCK_OC_VSYS_CON0 0x0266
> > +#define MT6392_BUCK_ANA_MON_CON0 0x0268
> > +#define MT6392_BUCK_EFUSE_OC_CON0 0x026A
> > +#define MT6392_VCORE_CON0 0x0300
> > +#define MT6392_VCORE_CON1 0x0302
> > +#define MT6392_VCORE_CON2 0x0304
> > +#define MT6392_VCORE_CON3 0x0306
> > +#define MT6392_VCORE_CON4 0x0308
> > +#define MT6392_VCORE_CON5 0x030A
> > +#define MT6392_VCORE_CON7 0x030E
> > +#define MT6392_VCORE_CON8 0x0310
> > +#define MT6392_VCORE_CON9 0x0312
> > +#define MT6392_VCORE_CON10 0x0314
> > +#define MT6392_VCORE_CON11 0x0316
> > +#define MT6392_VCORE_CON12 0x0318
> > +#define MT6392_VCORE_CON13 0x031A
> > +#define MT6392_VCORE_CON14 0x031C
> > +#define MT6392_VCORE_CON15 0x031E
> > +#define MT6392_VCORE_CON18 0x0324
> > +#define MT6392_BUCK_K_CON0 0x032A
> > +#define MT6392_BUCK_K_CON1 0x032C
> > +#define MT6392_BUCK_K_CON2 0x032E
> > +#define MT6392_ANALDO_CON0 0x0400
> > +#define MT6392_ANALDO_CON1 0x0402
> > +#define MT6392_ANALDO_CON2 0x0404
> > +#define MT6392_ANALDO_CON3 0x0406
> > +#define MT6392_ANALDO_CON4 0x0408
> > +#define MT6392_ANALDO_CON6 0x040C
> > +#define MT6392_ANALDO_CON7 0x040E
> > +#define MT6392_ANALDO_CON8 0x0410
> > +#define MT6392_ANALDO_CON10 0x0412
> > +#define MT6392_ANALDO_CON15 0x0414
> > +#define MT6392_ANALDO_CON16 0x0416
> > +#define MT6392_ANALDO_CON17 0x0418
> > +#define MT6392_ANALDO_CON21 0x0420
> > +#define MT6392_ANALDO_CON22 0x0422
> > +#define MT6392_ANALDO_CON23 0x0424
> > +#define MT6392_ANALDO_CON24 0x0426
> > +#define MT6392_ANALDO_CON25 0x0428
> > +#define MT6392_ANALDO_CON26 0x042A
> > +#define MT6392_ANALDO_CON27 0x042C
> > +#define MT6392_ANALDO_CON28 0x042E
> > +#define MT6392_ANALDO_CON29 0x0430
> > +#define MT6392_DIGLDO_CON0 0x0500
> > +#define MT6392_DIGLDO_CON2 0x0502
> > +#define MT6392_DIGLDO_CON3 0x0504
> > +#define MT6392_DIGLDO_CON5 0x0506
> > +#define MT6392_DIGLDO_CON6 0x0508
> > +#define MT6392_DIGLDO_CON7 0x050A
> > +#define MT6392_DIGLDO_CON8 0x050C
> > +#define MT6392_DIGLDO_CON10 0x0510
> > +#define MT6392_DIGLDO_CON11 0x0512
> > +#define MT6392_DIGLDO_CON12 0x0514
> > +#define MT6392_DIGLDO_CON15 0x051A
> > +#define MT6392_DIGLDO_CON20 0x0524
> > +#define MT6392_DIGLDO_CON21 0x0526
> > +#define MT6392_DIGLDO_CON23 0x0528
> > +#define MT6392_DIGLDO_CON24 0x052A
> > +#define MT6392_DIGLDO_CON26 0x052C
> > +#define MT6392_DIGLDO_CON27 0x052E
> > +#define MT6392_DIGLDO_CON28 0x0530
> > +#define MT6392_DIGLDO_CON29 0x0532
> > +#define MT6392_DIGLDO_CON30 0x0534
> > +#define MT6392_DIGLDO_CON31 0x0536
> > +#define MT6392_DIGLDO_CON32 0x0538
> > +#define MT6392_DIGLDO_CON33 0x053A
> > +#define MT6392_DIGLDO_CON36 0x0540
> > +#define MT6392_DIGLDO_CON41 0x0546
> > +#define MT6392_DIGLDO_CON44 0x054C
> > +#define MT6392_DIGLDO_CON47 0x0552
> > +#define MT6392_DIGLDO_CON48 0x0554
> > +#define MT6392_DIGLDO_CON49 0x0556
> > +#define MT6392_DIGLDO_CON50 0x0558
> > +#define MT6392_DIGLDO_CON51 0x055A
> > +#define MT6392_DIGLDO_CON52 0x055C
> > +#define MT6392_DIGLDO_CON53 0x055E
> > +#define MT6392_DIGLDO_CON54 0x0560
> > +#define MT6392_DIGLDO_CON55 0x0562
> > +#define MT6392_DIGLDO_CON56 0x0564
> > +#define MT6392_DIGLDO_CON57 0x0566
> > +#define MT6392_DIGLDO_CON58 0x0568
> > +#define MT6392_DIGLDO_CON59 0x056A
> > +#define MT6392_DIGLDO_CON60 0x056C
> > +#define MT6392_DIGLDO_CON61 0x056E
> > +#define MT6392_DIGLDO_CON62 0x0570
> > +#define MT6392_DIGLDO_CON63 0x0572
> > +#define MT6392_EFUSE_CON0 0x0600
> > +#define MT6392_EFUSE_CON1 0x0602
> > +#define MT6392_EFUSE_CON2 0x0604
> > +#define MT6392_EFUSE_CON3 0x0606
> > +#define MT6392_EFUSE_CON4 0x0608
> > +#define MT6392_EFUSE_CON5 0x060A
> > +#define MT6392_EFUSE_CON6 0x060C
> > +#define MT6392_EFUSE_VAL_0_15 0x060E
> > +#define MT6392_EFUSE_VAL_16_31 0x0610
> > +#define MT6392_EFUSE_VAL_32_47 0x0612
> > +#define MT6392_EFUSE_VAL_48_63 0x0614
> > +#define MT6392_EFUSE_VAL_64_79 0x0616
> > +#define MT6392_EFUSE_VAL_80_95 0x0618
> > +#define MT6392_EFUSE_VAL_96_111 0x061A
> > +#define MT6392_EFUSE_VAL_112_127 0x061C
> > +#define MT6392_EFUSE_VAL_128_143 0x061E
> > +#define MT6392_EFUSE_VAL_144_159 0x0620
> > +#define MT6392_EFUSE_VAL_160_175 0x0622
> > +#define MT6392_EFUSE_VAL_176_191 0x0624
> > +#define MT6392_EFUSE_VAL_192_207 0x0626
> > +#define MT6392_EFUSE_VAL_208_223 0x0628
> > +#define MT6392_EFUSE_VAL_224_239 0x062A
> > +#define MT6392_EFUSE_VAL_240_255 0x062C
> > +#define MT6392_EFUSE_VAL_256_271 0x062E
> > +#define MT6392_EFUSE_VAL_272_287 0x0630
> > +#define MT6392_EFUSE_VAL_288_303 0x0632
> > +#define MT6392_EFUSE_VAL_304_319 0x0634
> > +#define MT6392_EFUSE_VAL_320_335 0x0636
> > +#define MT6392_EFUSE_VAL_336_351 0x0638
> > +#define MT6392_EFUSE_VAL_352_367 0x063A
> > +#define MT6392_EFUSE_VAL_368_383 0x063C
> > +#define MT6392_EFUSE_VAL_384_399 0x063E
> > +#define MT6392_EFUSE_VAL_400_415 0x0640
> > +#define MT6392_EFUSE_VAL_416_431 0x0642
> > +#define MT6392_RTC_MIX_CON0 0x0644
> > +#define MT6392_RTC_MIX_CON1 0x0646
> > +#define MT6392_EFUSE_VAL_432_447 0x0648
> > +#define MT6392_EFUSE_VAL_448_463 0x064A
> > +#define MT6392_EFUSE_VAL_464_479 0x064C
> > +#define MT6392_EFUSE_VAL_480_495 0x064E
> > +#define MT6392_EFUSE_VAL_496_511 0x0650
> > +#define MT6392_EFUSE_DOUT_0_15 0x0652
> > +#define MT6392_EFUSE_DOUT_16_31 0x0654
> > +#define MT6392_EFUSE_DOUT_32_47 0x0656
> > +#define MT6392_EFUSE_DOUT_48_63 0x0658
> > +#define MT6392_EFUSE_DOUT_64_79 0x065A
> > +#define MT6392_EFUSE_DOUT_80_95 0x065C
> > +#define MT6392_EFUSE_DOUT_96_111 0x065E
> > +#define MT6392_EFUSE_DOUT_112_127 0x0660
> > +#define MT6392_EFUSE_DOUT_128_143 0x0662
> > +#define MT6392_EFUSE_DOUT_144_159 0x0664
> > +#define MT6392_EFUSE_DOUT_160_175 0x0666
> > +#define MT6392_EFUSE_DOUT_176_191 0x0668
> > +#define MT6392_EFUSE_DOUT_192_207 0x066A
> > +#define MT6392_EFUSE_DOUT_208_223 0x066C
> > +#define MT6392_EFUSE_DOUT_224_239 0x066E
> > +#define MT6392_EFUSE_DOUT_240_255 0x0670
> > +#define MT6392_EFUSE_DOUT_256_271 0x0672
> > +#define MT6392_EFUSE_DOUT_272_287 0x0674
> > +#define MT6392_EFUSE_DOUT_288_303 0x0676
> > +#define MT6392_EFUSE_DOUT_304_319 0x0678
> > +#define MT6392_EFUSE_DOUT_320_335 0x067A
> > +#define MT6392_EFUSE_DOUT_336_351 0x067C
> > +#define MT6392_EFUSE_DOUT_352_367 0x067E
> > +#define MT6392_EFUSE_DOUT_368_383 0x0680
> > +#define MT6392_EFUSE_DOUT_384_399 0x0682
> > +#define MT6392_EFUSE_DOUT_400_415 0x0684
> > +#define MT6392_EFUSE_DOUT_416_431 0x0686
> > +#define MT6392_EFUSE_DOUT_432_447 0x0688
> > +#define MT6392_EFUSE_DOUT_448_463 0x068A
> > +#define MT6392_EFUSE_DOUT_464_479 0x068C
> > +#define MT6392_EFUSE_DOUT_480_495 0x068E
> > +#define MT6392_EFUSE_DOUT_496_511 0x0690
> > +#define MT6392_EFUSE_CON7 0x0692
> > +#define MT6392_EFUSE_CON8 0x0694
> > +#define MT6392_EFUSE_CON9 0x0696
> > +#define MT6392_AUXADC_ADC0 0x0700
> > +#define MT6392_AUXADC_ADC1 0x0702
> > +#define MT6392_AUXADC_ADC2 0x0704
> > +#define MT6392_AUXADC_ADC3 0x0706
> > +#define MT6392_AUXADC_ADC4 0x0708
> > +#define MT6392_AUXADC_ADC5 0x070A
> > +#define MT6392_AUXADC_ADC6 0x070C
> > +#define MT6392_AUXADC_ADC7 0x070E
> > +#define MT6392_AUXADC_ADC8 0x0710
> > +#define MT6392_AUXADC_ADC9 0x0712
> > +#define MT6392_AUXADC_ADC10 0x0714
> > +#define MT6392_AUXADC_ADC11 0x0716
> > +#define MT6392_AUXADC_ADC12 0x0718
> > +#define MT6392_AUXADC_ADC13 0x071A
> > +#define MT6392_AUXADC_ADC14 0x071C
> > +#define MT6392_AUXADC_ADC15 0x071E
> > +#define MT6392_AUXADC_ADC16 0x0720
> > +#define MT6392_AUXADC_ADC17 0x0722
> > +#define MT6392_AUXADC_ADC18 0x0724
> > +#define MT6392_AUXADC_ADC19 0x0726
> > +#define MT6392_AUXADC_ADC20 0x0728
> > +#define MT6392_AUXADC_ADC21 0x072A
> > +#define MT6392_AUXADC_ADC22 0x072C
> > +#define MT6392_AUXADC_STA0 0x072E
> > +#define MT6392_AUXADC_STA1 0x0730
> > +#define MT6392_AUXADC_RQST0 0x0732
> > +#define MT6392_AUXADC_RQST0_SET 0x0734
> > +#define MT6392_AUXADC_RQST0_CLR 0x0736
> > +#define MT6392_AUXADC_CON0 0x0738
> > +#define MT6392_AUXADC_CON0_SET 0x073A
> > +#define MT6392_AUXADC_CON0_CLR 0x073C
> > +#define MT6392_AUXADC_CON1 0x073E
> > +#define MT6392_AUXADC_CON2 0x0740
> > +#define MT6392_AUXADC_CON3 0x0742
> > +#define MT6392_AUXADC_CON4 0x0744
> > +#define MT6392_AUXADC_CON5 0x0746
> > +#define MT6392_AUXADC_CON6 0x0748
> > +#define MT6392_AUXADC_CON7 0x074A
> > +#define MT6392_AUXADC_CON8 0x074C
> > +#define MT6392_AUXADC_CON9 0x074E
> > +#define MT6392_AUXADC_CON10 0x0750
> > +#define MT6392_AUXADC_CON11 0x0752
> > +#define MT6392_AUXADC_CON12 0x0754
> > +#define MT6392_AUXADC_CON13 0x0756
> > +#define MT6392_AUXADC_CON14 0x0758
> > +#define MT6392_AUXADC_CON15 0x075A
> > +#define MT6392_AUXADC_CON16 0x075C
> > +#define MT6392_AUXADC_AUTORPT0 0x075E
> > +#define MT6392_AUXADC_LBAT0 0x0760
> > +#define MT6392_AUXADC_LBAT1 0x0762
> > +#define MT6392_AUXADC_LBAT2 0x0764
> > +#define MT6392_AUXADC_LBAT3 0x0766
> > +#define MT6392_AUXADC_LBAT4 0x0768
> > +#define MT6392_AUXADC_LBAT5 0x076A
> > +#define MT6392_AUXADC_LBAT6 0x076C
> > +#define MT6392_AUXADC_THR0 0x076E
> > +#define MT6392_AUXADC_THR1 0x0770
> > +#define MT6392_AUXADC_THR2 0x0772
> > +#define MT6392_AUXADC_THR3 0x0774
> > +#define MT6392_AUXADC_THR4 0x0776
> > +#define MT6392_AUXADC_THR5 0x0778
> > +#define MT6392_AUXADC_THR6 0x077A
> > +#define MT6392_AUXADC_EFUSE0 0x077C
> > +#define MT6392_AUXADC_EFUSE1 0x077E
> > +#define MT6392_AUXADC_EFUSE2 0x0780
> > +#define MT6392_AUXADC_EFUSE3 0x0782
> > +#define MT6392_AUXADC_EFUSE4 0x0784
> > +#define MT6392_AUXADC_EFUSE5 0x0786
> > +#define MT6392_AUXADC_NAG_0 0x0788
> > +#define MT6392_AUXADC_NAG_1 0x078A
> > +#define MT6392_AUXADC_NAG_2 0x078C
> > +#define MT6392_AUXADC_NAG_3 0x078E
> > +#define MT6392_AUXADC_NAG_4 0x0790
> > +#define MT6392_AUXADC_NAG_5 0x0792
> > +#define MT6392_AUXADC_NAG_6 0x0794
> > +#define MT6392_AUXADC_NAG_7 0x0796
> > +#define MT6392_AUXADC_NAG_8 0x0798
> > +#define MT6392_AUXADC_TYPEC_H_1 0x079A
> > +#define MT6392_AUXADC_TYPEC_H_2 0x079C
> > +#define MT6392_AUXADC_TYPEC_H_3 0x079E
> > +#define MT6392_AUXADC_TYPEC_H_4 0x07A0
> > +#define MT6392_AUXADC_TYPEC_H_5 0x07A2
> > +#define MT6392_AUXADC_TYPEC_H_6 0x07A4
> > +#define MT6392_AUXADC_TYPEC_H_7 0x07A6
> > +#define MT6392_AUXADC_TYPEC_L_1 0x07A8
> > +#define MT6392_AUXADC_TYPEC_L_2 0x07AA
> > +#define MT6392_AUXADC_TYPEC_L_3 0x07AC
> > +#define MT6392_AUXADC_TYPEC_L_4 0x07AE
> > +#define MT6392_AUXADC_TYPEC_L_5 0x07B0
> > +#define MT6392_AUXADC_TYPEC_L_6 0x07B2
> > +#define MT6392_AUXADC_TYPEC_L_7 0x07B4
> > +#define MT6392_AUXADC_NAG_9 0x07B6
> > +#define MT6392_TYPE_C_PHY_RG_0 0x0800
> > +#define MT6392_TYPE_C_PHY_RG_CC_RESERVE_CSR 0x0802
> > +#define MT6392_TYPE_C_VCMP_CTRL 0x0804
> > +#define MT6392_TYPE_C_CTRL 0x0806
> > +#define MT6392_TYPE_C_CC_SW_CTRL 0x080a
> > +#define MT6392_TYPE_C_CC_VOL_PERIODIC_MEAS_VAL 0x080c
> > +#define MT6392_TYPE_C_CC_VOL_DEBOUCE_CNT_VAL 0x080e
> > +#define MT6392_TYPE_C_DRP_SRC_CNT_VAL_0 0x0810
> > +#define MT6392_TYPE_C_DRP_SNK_CNT_VAL_0 0x0814
> > +#define MT6392_TYPE_C_DRP_TRY_CNT_VAL_0 0x0818
> > +#define MT6392_TYPE_C_CC_SRC_DEFAULT_DAC_VAL 0x0820
> > +#define MT6392_TYPE_C_CC_SRC_15_DAC_VAL 0x0822
> > +#define MT6392_TYPE_C_CC_SRC_30_DAC_VAL 0x0824
> > +#define MT6392_TYPE_C_CC_SNK_DAC_VAL_0 0x0828
> > +#define MT6392_TYPE_C_CC_SNK_DAC_VAL_1 0x082a
> > +#define MT6392_TYPE_C_INTR_EN_0 0x0830
> > +#define MT6392_TYPE_C_INTR_EN_2 0x0834
> > +#define MT6392_TYPE_C_INTR_0 0x0838
> > +#define MT6392_TYPE_C_INTR_2 0x083C
> > +#define MT6392_TYPE_C_CC_STATUS 0x0840
> > +#define MT6392_TYPE_C_PWR_STATUS 0x0842
> > +#define MT6392_TYPE_C_PHY_RG_CC1_RESISTENCE_0 0x0844
> > +#define MT6392_TYPE_C_PHY_RG_CC1_RESISTENCE_1 0x0846
> > +#define MT6392_TYPE_C_PHY_RG_CC2_RESISTENCE_0 0x0848
> > +#define MT6392_TYPE_C_PHY_RG_CC2_RESISTENCE_1 0x084a
> > +#define MT6392_TYPE_C_CC_SW_FORCE_MODE_ENABLE_0 0x0860
> > +#define MT6392_TYPE_C_CC_SW_FORCE_MODE_VAL_0 0x0864
> > +#define MT6392_TYPE_C_CC_SW_FORCE_MODE_VAL_1 0x0866
> > +#define MT6392_TYPE_C_CC_SW_FORCE_MODE_ENABLE_1 0x0868
> > +#define MT6392_TYPE_C_CC_SW_FORCE_MODE_VAL_2 0x086c
> > +#define MT6392_TYPE_C_CC_DAC_CALI_CTRL 0x0870
> > +#define MT6392_TYPE_C_CC_DAC_CALI_RESULT 0x0872
> > +#define MT6392_TYPE_C_DEBUG_PORT_SELECT_0 0x0880
> > +#define MT6392_TYPE_C_DEBUG_PORT_SELECT_1 0x0882
> > +#define MT6392_TYPE_C_DEBUG_MODE_SELECT 0x0884
> > +#define MT6392_TYPE_C_DEBUG_OUT_READ_0 0x0888
> > +#define MT6392_TYPE_C_DEBUG_OUT_READ_1 0x088a
> > +#define MT6392_TYPE_C_SW_DEBUG_PORT_0 0x088c
> > +#define MT6392_TYPE_C_SW_DEBUG_PORT_1 0x088e
>
> Are these all totally unique to this device?
>
> Or is it worth creating a new common file?

I compared with mt6323, mt6397, and mt6358 (from the ML), there is
some similarities with mt6323, but it is quite different from some
other like the mt6358.

> > +#endif /* __MFD_MT6392_REGISTERS_H__ */
>
> --
> Lee Jones [æçæ]
> Linaro Services Technical Lead
> Linaro.org â Open source software for ARM SoCs
> Follow Linaro: Facebook | Twitter | Blog