lkml.org 
[lkml]   [2019]   [Jan]   [30]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    Date
    SubjectRe: [PATCH 4/6] mfd: Add support for the MediaTek MT6358 PMIC
    On Wed, Jan 30, 2019 at 5:19 PM Hsin-Hsiung Wang
    <hsin-hsiung.wang@mediatek.com> wrote:
    >
    > This adds support for the MediaTek MT6358 PMIC. This is a
    > multifunction device with the following sub modules:
    >
    > - Regulator
    > - RTC
    > - Codec
    > - Interrupt
    >
    > It is interfaced to the host controller using SPI interface
    > by a proprietary hardware called PMIC wrapper or pwrap.
    > MT6358 MFD is a child device of the pwrap.
    >
    > Signed-off-by: Hsin-Hsiung Wang <hsin-hsiung.wang@mediatek.com>
    > ---
    > drivers/mfd/Makefile | 2 +-
    > drivers/mfd/mt6358-irq.c | 236 +++++
    > drivers/mfd/mt6397-core.c | 62 +-
    > include/linux/mfd/mt6358/core.h | 158 +++
    > include/linux/mfd/mt6358/registers.h | 1926 ++++++++++++++++++++++++++++++++++
    > include/linux/mfd/mt6397/core.h | 3 +
    > 6 files changed, 2385 insertions(+), 2 deletions(-)
    > create mode 100644 drivers/mfd/mt6358-irq.c
    > create mode 100644 include/linux/mfd/mt6358/core.h
    > create mode 100644 include/linux/mfd/mt6358/registers.h
    >
    > diff --git a/drivers/mfd/Makefile b/drivers/mfd/Makefile
    > index 088e249..50be021 100644
    > --- a/drivers/mfd/Makefile
    > +++ b/drivers/mfd/Makefile
    > @@ -230,7 +230,7 @@ obj-$(CONFIG_INTEL_SOC_PMIC) += intel-soc-pmic.o
    > obj-$(CONFIG_INTEL_SOC_PMIC_BXTWC) += intel_soc_pmic_bxtwc.o
    > obj-$(CONFIG_INTEL_SOC_PMIC_CHTWC) += intel_soc_pmic_chtwc.o
    > obj-$(CONFIG_INTEL_SOC_PMIC_CHTDC_TI) += intel_soc_pmic_chtdc_ti.o
    > -obj-$(CONFIG_MFD_MT6397) += mt6397-core.o mt6397-irq.o
    > +obj-$(CONFIG_MFD_MT6397) += mt6397-core.o mt6397-irq.o mt6358-irq.o
    >
    > obj-$(CONFIG_MFD_ALTERA_A10SR) += altera-a10sr.o
    > obj-$(CONFIG_MFD_SUN4I_GPADC) += sun4i-gpadc.o
    > diff --git a/drivers/mfd/mt6358-irq.c b/drivers/mfd/mt6358-irq.c
    > new file mode 100644
    > index 0000000..b29fdc1
    > --- /dev/null
    > +++ b/drivers/mfd/mt6358-irq.c
    > @@ -0,0 +1,236 @@
    > +// SPDX-License-Identifier: GPL-2.0
    > +//
    > +// Copyright (c) 2019 MediaTek Inc.
    > +
    > +#include <linux/interrupt.h>
    > +#include <linux/mfd/mt6358/core.h>
    > +#include <linux/mfd/mt6358/registers.h>
    > +#include <linux/mfd/mt6397/core.h>
    > +#include <linux/module.h>
    > +#include <linux/of.h>
    > +#include <linux/of_device.h>
    > +#include <linux/of_irq.h>
    > +#include <linux/platform_device.h>
    > +#include <linux/regmap.h>
    > +
    > +static struct irq_top_t mt6358_ints[] = {
    > + MT6358_TOP_GEN(BUCK),
    > + MT6358_TOP_GEN(LDO),
    > + MT6358_TOP_GEN(PSC),
    > + MT6358_TOP_GEN(SCK),
    > + MT6358_TOP_GEN(BM),
    > + MT6358_TOP_GEN(HK),
    > + MT6358_TOP_GEN(AUD),
    > + MT6358_TOP_GEN(MISC),
    > +};
    > +
    > +static int parsing_hwirq_to_top_group(unsigned int hwirq)
    > +{
    > + int top_group;
    > +
    > + for (top_group = 1; top_group < ARRAY_SIZE(mt6358_ints); top_group++) {
    > + if (mt6358_ints[top_group].hwirq_base > hwirq) {
    > + top_group--;
    > + break;
    > + }
    > + }
    > + return top_group;
    > +}
    > +
    > +static void pmic_irq_enable(struct irq_data *data)
    > +{
    > + unsigned int hwirq = irqd_to_hwirq(data);
    > + struct mt6397_chip *chip = irq_data_get_irq_chip_data(data);
    > + struct pmic_irq_data *irq_data = chip->irq_data;
    > +
    > + irq_data->enable_hwirq[hwirq] = 1;
    > +}
    > +
    > +static void pmic_irq_disable(struct irq_data *data)
    > +{
    > + unsigned int hwirq = irqd_to_hwirq(data);
    > + struct mt6397_chip *chip = irq_data_get_irq_chip_data(data);
    > + struct pmic_irq_data *irq_data = chip->irq_data;
    > +
    > + irq_data->enable_hwirq[hwirq] = 0;
    > +}
    > +
    > +static void pmic_irq_lock(struct irq_data *data)
    > +{
    > + struct mt6397_chip *chip = irq_data_get_irq_chip_data(data);
    > +
    > + mutex_lock(&chip->irqlock);
    > +}
    > +
    > +static void pmic_irq_sync_unlock(struct irq_data *data)
    > +{
    > + unsigned int i, top_gp, en_reg, int_regs, shift;
    > + struct mt6397_chip *chip = irq_data_get_irq_chip_data(data);
    > + struct pmic_irq_data *irq_data = chip->irq_data;
    > +
    > + for (i = 0; i < irq_data->num_pmic_irqs; i++) {
    > + if (irq_data->enable_hwirq[i] ==
    > + irq_data->cache_hwirq[i])
    > + continue;
    > +
    > + top_gp = parsing_hwirq_to_top_group(i);
    > + int_regs = mt6358_ints[top_gp].num_int_bits / MT6358_REG_WIDTH;
    > + en_reg = mt6358_ints[top_gp].en_reg +
    > + mt6358_ints[top_gp].en_reg_shift * int_regs;
    > + shift = (i - mt6358_ints[top_gp].hwirq_base) % MT6358_REG_WIDTH;
    > + regmap_update_bits(chip->regmap, en_reg, 0x1 << shift,
    > + irq_data->enable_hwirq[i] << shift);
    > + irq_data->cache_hwirq[i] = irq_data->enable_hwirq[i];
    > + }
    > + mutex_unlock(&chip->irqlock);
    > +}
    > +
    > +static int pmic_irq_set_type(struct irq_data *data, unsigned int type)
    > +{
    > + return 0;
    > +}
    > +
    > +static struct irq_chip mt6358_irq_chip = {
    > + .name = "mt6358-irq",
    > + .irq_enable = pmic_irq_enable,
    > + .irq_disable = pmic_irq_disable,
    > + .irq_bus_lock = pmic_irq_lock,
    > + .irq_bus_sync_unlock = pmic_irq_sync_unlock,
    > + .irq_set_type = pmic_irq_set_type,
    > +};
    > +
    > +static void mt6358_irq_sp_handler(struct mt6397_chip *chip,
    > + unsigned int top_gp)
    > +{
    > + unsigned int sta_reg, int_status = 0;
    > + unsigned int hwirq, virq;
    > + int ret, i, j;
    > +
    > + for (i = 0; i < mt6358_ints[top_gp].num_int_regs; i++) {
    > + sta_reg = mt6358_ints[top_gp].sta_reg +
    > + mt6358_ints[top_gp].sta_reg_shift * i;
    > + ret = regmap_read(chip->regmap, sta_reg, &int_status);
    > + if (ret) {
    > + dev_err(chip->dev,
    > + "Failed to read irq status: %d\n", ret);
    > + return;
    > + }
    > +
    > + if (!int_status)
    > + continue;
    > +
    > + for (j = 0; j < 16 ; j++) {
    > + if ((int_status & BIT(j)) == 0)
    > + continue;
    > + hwirq = mt6358_ints[top_gp].hwirq_base +
    > + MT6358_REG_WIDTH * i + j;
    > + virq = irq_find_mapping(chip->irq_domain, hwirq);
    > + if (virq)
    > + handle_nested_irq(virq);
    > + }
    > +
    > + regmap_write(chip->regmap, sta_reg, int_status);
    > + }
    > +}
    > +
    > +static irqreturn_t mt6358_irq_handler(int irq, void *data)
    > +{
    > + struct mt6397_chip *chip = data;
    > + struct pmic_irq_data *mt6358_irq_data = chip->irq_data;
    > + unsigned int top_int_status = 0;
    > + unsigned int i;
    > + int ret;
    > +
    > + ret = regmap_read(chip->regmap,
    > + mt6358_irq_data->top_int_status_reg,
    > + &top_int_status);
    > + if (ret) {
    > + dev_err(chip->dev, "Can't read TOP_INT_STATUS ret=%d\n", ret);
    > + return IRQ_NONE;
    > + }
    > +
    > + for (i = 0; i < mt6358_irq_data->num_top; i++) {
    > + if (top_int_status & BIT(mt6358_ints[i].top_offset))
    > + mt6358_irq_sp_handler(chip, i);
    > + }
    > +
    > + return IRQ_HANDLED;
    > +}
    > +
    > +static int pmic_irq_domain_map(struct irq_domain *d, unsigned int irq,
    > + irq_hw_number_t hw)
    > +{
    > + struct mt6397_chip *mt6397 = d->host_data;
    > +
    > + irq_set_chip_data(irq, mt6397);
    > + irq_set_chip_and_handler(irq, &mt6358_irq_chip, handle_level_irq);
    > + irq_set_nested_thread(irq, 1);
    > + irq_set_noprobe(irq);
    > +
    > + return 0;
    > +}
    > +
    > +static const struct irq_domain_ops mt6358_irq_domain_ops = {
    > + .map = pmic_irq_domain_map,
    > + .xlate = irq_domain_xlate_twocell,
    > +};
    > +
    > +int mt6358_irq_init(struct mt6397_chip *chip)
    > +{
    > + int i, j, ret;
    > + struct pmic_irq_data *irq_data;
    > +
    > + irq_data = devm_kzalloc(chip->dev, sizeof(struct pmic_irq_data *),
    > + GFP_KERNEL);
    > + if (!irq_data)
    > + return -ENOMEM;
    > +
    > + chip->irq_data = irq_data;
    > +
    > + mutex_init(&chip->irqlock);
    > + irq_data->top_int_status_reg = MT6358_TOP_INT_STATUS0;
    > + irq_data->num_pmic_irqs = MT6358_IRQ_NR;
    > + irq_data->num_top = ARRAY_SIZE(mt6358_ints);
    > +
    > + irq_data->enable_hwirq = devm_kcalloc(chip->dev,
    > + irq_data->num_pmic_irqs,
    > + sizeof(unsigned int),
    > + GFP_KERNEL);
    > + if (!irq_data->enable_hwirq)
    > + return -ENOMEM;
    > +
    > + irq_data->cache_hwirq = devm_kcalloc(chip->dev,
    > + irq_data->num_pmic_irqs,
    > + sizeof(unsigned int),
    > + GFP_KERNEL);
    > + if (!irq_data->cache_hwirq)
    > + return -ENOMEM;
    > +
    > + /* Disable all interrupt for initializing */
    > + for (i = 0; i < irq_data->num_top; i++) {
    > + for (j = 0; j < mt6358_ints[i].num_int_regs; j++)
    > + regmap_write(chip->regmap,
    > + mt6358_ints[i].en_reg +
    > + mt6358_ints[i].en_reg_shift * j, 0);
    > + }
    > +
    > + chip->irq_domain = irq_domain_add_linear(chip->dev->of_node,
    > + irq_data->num_pmic_irqs,
    > + &mt6358_irq_domain_ops, chip);
    > + if (!chip->irq_domain) {
    > + dev_err(chip->dev, "could not create irq domain\n");
    > + return -ENODEV;
    > + }
    > +
    > + ret = devm_request_threaded_irq(chip->dev, chip->irq, NULL,
    > + mt6358_irq_handler, IRQF_ONESHOT,
    > + mt6358_irq_chip.name, chip);
    > + if (ret) {
    > + dev_err(chip->dev, "failed to register irq=%d; err: %d\n",
    > + chip->irq, ret);
    > + return ret;
    > + }
    > +
    > + enable_irq_wake(chip->irq);
    > + return ret;
    > +}
    > diff --git a/drivers/mfd/mt6397-core.c b/drivers/mfd/mt6397-core.c
    > index a72524d..a723637 100644
    > --- a/drivers/mfd/mt6397-core.c
    > +++ b/drivers/mfd/mt6397-core.c
    > @@ -18,13 +18,36 @@
    > #include <linux/regmap.h>
    > #include <linux/mfd/core.h>
    > #include <linux/mfd/mt6323/core.h>
    > +#include <linux/mfd/mt6358/core.h>
    > #include <linux/mfd/mt6397/core.h>
    > #include <linux/mfd/mt6323/registers.h>
    > +#include <linux/mfd/mt6358/registers.h>
    > #include <linux/mfd/mt6397/registers.h>
    >
    > +#define MT6358_RTC_BASE 0x0588
    > +#define MT6358_RTC_SIZE 0x3c
    > +#define MT6358_RTC_WRTGR_OFFSET 0x3a
    > #define MT6397_RTC_BASE 0xe000
    > #define MT6397_RTC_SIZE 0x3e
    > +#define MT6397_RTC_WRTGR_OFFSET 0x3c
    >
    > +static const struct resource mt6358_rtc_resources[] = {
    > + {
    > + .start = MT6358_RTC_BASE,
    > + .end = MT6358_RTC_BASE + MT6358_RTC_SIZE,
    > + .flags = IORESOURCE_MEM,
    > + },
    > + {
    > + .start = MT6358_IRQ_RTC,
    > + .end = MT6358_IRQ_RTC,
    > + .flags = IORESOURCE_IRQ,
    > + },
    > + {
    > + .start = MT6358_RTC_WRTGR_OFFSET,
    > + .end = MT6358_RTC_WRTGR_OFFSET,
    > + .flags = IORESOURCE_REG,
    > + },
    > +};
    >
    > static const struct resource mt6397_rtc_resources[] = {
    > {
    > @@ -37,6 +60,11 @@
    > .end = MT6397_IRQ_RTC,
    > .flags = IORESOURCE_IRQ,
    > },
    > + {
    > + .start = MT6397_RTC_WRTGR_OFFSET,
    > + .end = MT6397_RTC_WRTGR_OFFSET,
    > + .flags = IORESOURCE_REG,
    > + },
    > };
    >
    > static const struct resource mt6323_keys_resources[] = {
    > @@ -64,6 +92,21 @@
    > },
    > };
    >
    > +static const struct mfd_cell mt6358_devs[] = {
    > + {
    > + .name = "mt6358-regulator",
    > + .of_compatible = "mediatek,mt6358-regulator"
    > + }, {
    > + .name = "mt6397-rtc",

    Should this be "mt6358-rtc"?

    > + .num_resources = ARRAY_SIZE(mt6358_rtc_resources),
    > + .resources = mt6358_rtc_resources,
    > + .of_compatible = "mediatek,mt6358-rtc",
    > + }, {
    > + .name = "mt6358-sound",
    > + .of_compatible = "mediatek,mt6358-sound"
    > + },
    > +};
    > +
    > static const struct mfd_cell mt6397_devs[] = {
    > {
    > .name = "mt6397-rtc",
    > @@ -98,6 +141,10 @@ struct chip_data {
    > .cid_addr = MT6323_CID,
    > };
    >
    > +static const struct chip_data mt6358_core = {
    > + .cid_addr = MT6358_SWCID,
    > +};
    > +
    > static const struct chip_data mt6397_core = {
    > .cid_addr = MT6397_CID,
    > };
    > @@ -145,7 +192,11 @@ static int mt6397_probe(struct platform_device *pdev)
    > if (pmic->irq <= 0)
    > return pmic->irq;
    >
    > - ret = mt6397_irq_init(pmic);
    > + if (pmic->chip_id == MT6358_CID_CODE)
    > + ret = mt6358_irq_init(pmic);
    > + else
    > + ret = mt6397_irq_init(pmic);
    > +
    > if (ret)
    > return ret;
    >
    > @@ -156,6 +207,12 @@ static int mt6397_probe(struct platform_device *pdev)
    > 0, pmic->irq_domain);
    > break;
    >
    > + case MT6358_CID_CODE:
    > + ret = devm_mfd_add_devices(&pdev->dev, -1, mt6358_devs,
    > + ARRAY_SIZE(mt6358_devs), NULL,
    > + 0, pmic->irq_domain);
    > + break;
    > +
    > case MT6397_CID_CODE:
    > case MT6391_CID_CODE:
    > ret = devm_mfd_add_devices(&pdev->dev, -1, mt6397_devs,
    > @@ -182,6 +239,9 @@ static int mt6397_probe(struct platform_device *pdev)
    > .compatible = "mediatek,mt6323",
    > .data = &mt6323_core,
    > }, {
    > + .compatible = "mediatek,mt6358",
    > + .data = &mt6358_core,
    > + }, {
    > .compatible = "mediatek,mt6397",
    > .data = &mt6397_core,
    > }, {
    > diff --git a/include/linux/mfd/mt6358/core.h b/include/linux/mfd/mt6358/core.h
    > new file mode 100644
    > index 0000000..7afed89
    > --- /dev/null
    > +++ b/include/linux/mfd/mt6358/core.h
    > @@ -0,0 +1,158 @@
    > +/* SPDX-License-Identifier: GPL-2.0 */
    > +/*
    > + * Copyright (c) 2019 MediaTek Inc.
    > + */
    > +
    > +#ifndef __MFD_MT6358_CORE_H__
    > +#define __MFD_MT6358_CORE_H__
    > +
    > +#define MT6358_REG_WIDTH 16
    > +
    > +struct irq_top_t {
    > + int hwirq_base;
    > + unsigned int num_int_regs;
    > + unsigned int num_int_bits;
    > + unsigned int en_reg;
    > + unsigned int en_reg_shift;
    > + unsigned int sta_reg;
    > + unsigned int sta_reg_shift;
    > + unsigned int top_offset;
    > +};
    > +
    > +struct pmic_irq_data {
    > + unsigned int num_top;
    > + unsigned int num_pmic_irqs;
    > + unsigned short top_int_status_reg;
    > + unsigned int *enable_hwirq;
    > + unsigned int *cache_hwirq;
    > +};
    > +
    > +enum mt6358_irq_top_status_shift {
    > + MT6358_BUCK_TOP = 0,
    > + MT6358_LDO_TOP,
    > + MT6358_PSC_TOP,
    > + MT6358_SCK_TOP,
    > + MT6358_BM_TOP,
    > + MT6358_HK_TOP,
    > + MT6358_AUD_TOP,
    > + MT6358_MISC_TOP,
    > +};
    > +
    > +enum mt6358_irq_numbers {
    > + MT6358_IRQ_VPROC11_OC = 0,
    > + MT6358_IRQ_VPROC12_OC,
    > + MT6358_IRQ_VCORE_OC,
    > + MT6358_IRQ_VGPU_OC,
    > + MT6358_IRQ_VMODEM_OC,
    > + MT6358_IRQ_VDRAM1_OC,
    > + MT6358_IRQ_VS1_OC,
    > + MT6358_IRQ_VS2_OC,
    > + MT6358_IRQ_VPA_OC,
    > + MT6358_IRQ_VCORE_PREOC,
    > + MT6358_IRQ_VFE28_OC = 16,
    > + MT6358_IRQ_VXO22_OC,
    > + MT6358_IRQ_VRF18_OC,
    > + MT6358_IRQ_VRF12_OC,
    > + MT6358_IRQ_VEFUSE_OC,
    > + MT6358_IRQ_VCN33_OC,
    > + MT6358_IRQ_VCN28_OC,
    > + MT6358_IRQ_VCN18_OC,
    > + MT6358_IRQ_VCAMA1_OC,
    > + MT6358_IRQ_VCAMA2_OC,
    > + MT6358_IRQ_VCAMD_OC,
    > + MT6358_IRQ_VCAMIO_OC,
    > + MT6358_IRQ_VLDO28_OC,
    > + MT6358_IRQ_VA12_OC,
    > + MT6358_IRQ_VAUX18_OC,
    > + MT6358_IRQ_VAUD28_OC,
    > + MT6358_IRQ_VIO28_OC,
    > + MT6358_IRQ_VIO18_OC,
    > + MT6358_IRQ_VSRAM_PROC11_OC,
    > + MT6358_IRQ_VSRAM_PROC12_OC,
    > + MT6358_IRQ_VSRAM_OTHERS_OC,
    > + MT6358_IRQ_VSRAM_GPU_OC,
    > + MT6358_IRQ_VDRAM2_OC,
    > + MT6358_IRQ_VMC_OC,
    > + MT6358_IRQ_VMCH_OC,
    > + MT6358_IRQ_VEMC_OC,
    > + MT6358_IRQ_VSIM1_OC,
    > + MT6358_IRQ_VSIM2_OC,
    > + MT6358_IRQ_VIBR_OC,
    > + MT6358_IRQ_VUSB_OC,
    > + MT6358_IRQ_VBIF28_OC,
    > + MT6358_IRQ_PWRKEY = 48,
    > + MT6358_IRQ_HOMEKEY,
    > + MT6358_IRQ_PWRKEY_R,
    > + MT6358_IRQ_HOMEKEY_R,
    > + MT6358_IRQ_NI_LBAT_INT,
    > + MT6358_IRQ_CHRDET,
    > + MT6358_IRQ_CHRDET_EDGE,
    > + MT6358_IRQ_VCDT_HV_DET,
    > + MT6358_IRQ_RTC = 64,
    > + MT6358_IRQ_FG_BAT0_H = 80,
    > + MT6358_IRQ_FG_BAT0_L,
    > + MT6358_IRQ_FG_CUR_H,
    > + MT6358_IRQ_FG_CUR_L,
    > + MT6358_IRQ_FG_ZCV,
    > + MT6358_IRQ_FG_BAT1_H,
    > + MT6358_IRQ_FG_BAT1_L,
    > + MT6358_IRQ_FG_N_CHARGE_L,
    > + MT6358_IRQ_FG_IAVG_H,
    > + MT6358_IRQ_FG_IAVG_L,
    > + MT6358_IRQ_FG_TIME_H,
    > + MT6358_IRQ_FG_DISCHARGE,
    > + MT6358_IRQ_FG_CHARGE,
    > + MT6358_IRQ_BATON_LV = 96,
    > + MT6358_IRQ_BATON_HT,
    > + MT6358_IRQ_BATON_BAT_IN,
    > + MT6358_IRQ_BATON_BAT_OUT,
    > + MT6358_IRQ_BIF,
    > + MT6358_IRQ_BAT_H = 112,
    > + MT6358_IRQ_BAT_L,
    > + MT6358_IRQ_BAT2_H,
    > + MT6358_IRQ_BAT2_L,
    > + MT6358_IRQ_BAT_TEMP_H,
    > + MT6358_IRQ_BAT_TEMP_L,
    > + MT6358_IRQ_AUXADC_IMP,
    > + MT6358_IRQ_NAG_C_DLTV,
    > + MT6358_IRQ_AUDIO = 128,
    > + MT6358_IRQ_ACCDET = 133,
    > + MT6358_IRQ_ACCDET_EINT0,
    > + MT6358_IRQ_ACCDET_EINT1,
    > + MT6358_IRQ_SPI_CMD_ALERT = 144,
    > + MT6358_IRQ_NR,
    > +};
    > +
    > +#define MT6358_IRQ_BUCK_BASE MT6358_IRQ_VPROC11_OC
    > +#define MT6358_IRQ_LDO_BASE MT6358_IRQ_VFE28_OC
    > +#define MT6358_IRQ_PSC_BASE MT6358_IRQ_PWRKEY
    > +#define MT6358_IRQ_SCK_BASE MT6358_IRQ_RTC
    > +#define MT6358_IRQ_BM_BASE MT6358_IRQ_FG_BAT0_H
    > +#define MT6358_IRQ_HK_BASE MT6358_IRQ_BAT_H
    > +#define MT6358_IRQ_AUD_BASE MT6358_IRQ_AUDIO
    > +#define MT6358_IRQ_MISC_BASE MT6358_IRQ_SPI_CMD_ALERT
    > +
    > +#define MT6358_IRQ_BUCK_BITS (MT6358_IRQ_VCORE_PREOC - MT6358_IRQ_BUCK_BASE + 1)
    > +#define MT6358_IRQ_LDO_BITS (MT6358_IRQ_VBIF28_OC - MT6358_IRQ_LDO_BASE + 1)
    > +#define MT6358_IRQ_PSC_BITS (MT6358_IRQ_VCDT_HV_DET - MT6358_IRQ_PSC_BASE + 1)
    > +#define MT6358_IRQ_SCK_BITS (MT6358_IRQ_RTC - MT6358_IRQ_SCK_BASE + 1)
    > +#define MT6358_IRQ_BM_BITS (MT6358_IRQ_BIF - MT6358_IRQ_BM_BASE + 1)
    > +#define MT6358_IRQ_HK_BITS (MT6358_IRQ_NAG_C_DLTV - MT6358_IRQ_HK_BASE + 1)
    > +#define MT6358_IRQ_AUD_BITS (MT6358_IRQ_ACCDET_EINT1 - MT6358_IRQ_AUD_BASE + 1)
    > +#define MT6358_IRQ_MISC_BITS \
    > + (MT6358_IRQ_SPI_CMD_ALERT - MT6358_IRQ_MISC_BASE + 1)
    > +
    > +#define MT6358_TOP_GEN(sp) \
    > +{ \
    > + .hwirq_base = MT6358_IRQ_##sp##_BASE, \
    > + .num_int_regs = \
    > + (MT6358_IRQ_##sp##_BITS / MT6358_REG_WIDTH) + 1, \
    > + .num_int_bits = MT6358_IRQ_##sp##_BITS, \
    > + .en_reg = MT6358_##sp##_TOP_INT_CON0, \
    > + .en_reg_shift = 0x6, \
    > + .sta_reg = MT6358_##sp##_TOP_INT_STATUS0, \
    > + .sta_reg_shift = 0x2, \
    > + .top_offset = MT6358_##sp##_TOP, \
    > +}
    > +
    > +#endif /* __MFD_MT6358_CORE_H__ */
    > diff --git a/include/linux/mfd/mt6358/registers.h b/include/linux/mfd/mt6358/registers.h
    > new file mode 100644
    > index 0000000..7a3e231
    > --- /dev/null
    > +++ b/include/linux/mfd/mt6358/registers.h
    > @@ -0,0 +1,1926 @@
    > +/* SPDX-License-Identifier: GPL-2.0 */
    > +/*
    > + * Copyright (c) 2019 MediaTek Inc.
    > + */
    > +
    > +#ifndef __MFD_MT6358_REGISTERS_H__
    > +#define __MFD_MT6358_REGISTERS_H__
    > +
    > +/* PMIC Registers */
    > +#define MT6358_TOP0_ID 0x0
    > +#define MT6358_TOP0_REV0 0x2
    > +#define MT6358_TOP0_DSN_DBI 0x4
    > +#define MT6358_TOP0_DSN_DXI 0x6
    > +#define MT6358_HWCID 0x8
    > +#define MT6358_SWCID 0xa
    > +#define MT6358_PONSTS 0xc
    > +#define MT6358_POFFSTS 0xe
    > +#define MT6358_PSTSCTL 0x10
    > +#define MT6358_PG_DEB_STS0 0x12
    > +#define MT6358_PG_DEB_STS1 0x14
    > +#define MT6358_PG_SDN_STS0 0x16
    > +#define MT6358_PG_SDN_STS1 0x18
    > +#define MT6358_OC_SDN_STS0 0x1a
    > +#define MT6358_THERMALSTATUS 0x1c
    > +#define MT6358_TOP_CON 0x1e
    > +#define MT6358_TEST_OUT 0x20
    > +#define MT6358_TEST_CON0 0x22
    > +#define MT6358_TEST_CON1 0x24
    > +#define MT6358_TESTMODE_SW 0x26
    > +#define MT6358_TOPSTATUS 0x28
    > +#define MT6358_TDSEL_CON 0x2a
    > +#define MT6358_RDSEL_CON 0x2c
    > +#define MT6358_SMT_CON0 0x2e
    > +#define MT6358_SMT_CON1 0x30
    > +#define MT6358_TOP_RSV0 0x32
    > +#define MT6358_TOP_RSV1 0x34
    > +#define MT6358_DRV_CON0 0x36
    > +#define MT6358_DRV_CON1 0x38
    > +#define MT6358_DRV_CON2 0x3a
    > +#define MT6358_DRV_CON3 0x3c
    > +#define MT6358_DRV_CON4 0x3e
    > +#define MT6358_FILTER_CON0 0x40
    > +#define MT6358_FILTER_CON1 0x42
    > +#define MT6358_FILTER_CON2 0x44
    > +#define MT6358_FILTER_CON3 0x46
    > +#define MT6358_TOP_STATUS 0x48
    > +#define MT6358_TOP_STATUS_SET 0x4a
    > +#define MT6358_TOP_STATUS_CLR 0x4c
    > +#define MT6358_TOP_TRAP 0x4e
    > +#define MT6358_TOP1_ID 0x80
    > +#define MT6358_TOP1_REV0 0x82
    > +#define MT6358_TOP1_DSN_DBI 0x84
    > +#define MT6358_TOP1_DSN_DXI 0x86
    > +#define MT6358_GPIO_DIR0 0x88
    > +#define MT6358_GPIO_DIR0_SET 0x8a
    > +#define MT6358_GPIO_DIR0_CLR 0x8c
    > +#define MT6358_GPIO_DIR1 0x8e
    > +#define MT6358_GPIO_DIR1_SET 0x90
    > +#define MT6358_GPIO_DIR1_CLR 0x92
    > +#define MT6358_GPIO_PULLEN0 0x94
    > +#define MT6358_GPIO_PULLEN0_SET 0x96
    > +#define MT6358_GPIO_PULLEN0_CLR 0x98
    > +#define MT6358_GPIO_PULLEN1 0x9a
    > +#define MT6358_GPIO_PULLEN1_SET 0x9c
    > +#define MT6358_GPIO_PULLEN1_CLR 0x9e
    > +#define MT6358_GPIO_PULLSEL0 0xa0
    > +#define MT6358_GPIO_PULLSEL0_SET 0xa2
    > +#define MT6358_GPIO_PULLSEL0_CLR 0xa4
    > +#define MT6358_GPIO_PULLSEL1 0xa6
    > +#define MT6358_GPIO_PULLSEL1_SET 0xa8
    > +#define MT6358_GPIO_PULLSEL1_CLR 0xaa
    > +#define MT6358_GPIO_DINV0 0xac
    > +#define MT6358_GPIO_DINV0_SET 0xae
    > +#define MT6358_GPIO_DINV0_CLR 0xb0
    > +#define MT6358_GPIO_DINV1 0xb2
    > +#define MT6358_GPIO_DINV1_SET 0xb4
    > +#define MT6358_GPIO_DINV1_CLR 0xb6
    > +#define MT6358_GPIO_DOUT0 0xb8
    > +#define MT6358_GPIO_DOUT0_SET 0xba
    > +#define MT6358_GPIO_DOUT0_CLR 0xbc
    > +#define MT6358_GPIO_DOUT1 0xbe
    > +#define MT6358_GPIO_DOUT1_SET 0xc0
    > +#define MT6358_GPIO_DOUT1_CLR 0xc2
    > +#define MT6358_GPIO_PI0 0xc4
    > +#define MT6358_GPIO_PI1 0xc6
    > +#define MT6358_GPIO_POE0 0xc8
    > +#define MT6358_GPIO_POE1 0xca
    > +#define MT6358_GPIO_MODE0 0xcc
    > +#define MT6358_GPIO_MODE0_SET 0xce
    > +#define MT6358_GPIO_MODE0_CLR 0xd0
    > +#define MT6358_GPIO_MODE1 0xd2
    > +#define MT6358_GPIO_MODE1_SET 0xd4
    > +#define MT6358_GPIO_MODE1_CLR 0xd6
    > +#define MT6358_GPIO_MODE2 0xd8
    > +#define MT6358_GPIO_MODE2_SET 0xda
    > +#define MT6358_GPIO_MODE2_CLR 0xdc
    > +#define MT6358_GPIO_MODE3 0xde
    > +#define MT6358_GPIO_MODE3_SET 0xe0
    > +#define MT6358_GPIO_MODE3_CLR 0xe2
    > +#define MT6358_GPIO_MODE4 0xe4
    > +#define MT6358_GPIO_MODE4_SET 0xe6
    > +#define MT6358_GPIO_MODE4_CLR 0xe8
    > +#define MT6358_GPIO_RSV 0xea
    > +#define MT6358_TOP2_ID 0x100
    > +#define MT6358_TOP2_REV0 0x102
    > +#define MT6358_TOP2_DSN_DBI 0x104
    > +#define MT6358_TOP2_DSN_DXI 0x106
    > +#define MT6358_TOP_PAM0 0x108
    > +#define MT6358_TOP_PAM1 0x10a
    > +#define MT6358_TOP_CKPDN_CON0 0x10c
    > +#define MT6358_TOP_CKPDN_CON0_SET 0x10e
    > +#define MT6358_TOP_CKPDN_CON0_CLR 0x110
    > +#define MT6358_TOP_CKPDN_CON1 0x112
    > +#define MT6358_TOP_CKPDN_CON1_SET 0x114
    > +#define MT6358_TOP_CKPDN_CON1_CLR 0x116
    > +#define MT6358_TOP_CKSEL_CON0 0x118
    > +#define MT6358_TOP_CKSEL_CON0_SET 0x11a
    > +#define MT6358_TOP_CKSEL_CON0_CLR 0x11c
    > +#define MT6358_TOP_CKSEL_CON1 0x11e
    > +#define MT6358_TOP_CKSEL_CON1_SET 0x120
    > +#define MT6358_TOP_CKSEL_CON1_CLR 0x122
    > +#define MT6358_TOP_CKDIVSEL_CON0 0x124
    > +#define MT6358_TOP_CKDIVSEL_CON0_SET 0x126
    > +#define MT6358_TOP_CKDIVSEL_CON0_CLR 0x128
    > +#define MT6358_TOP_CKHWEN_CON0 0x12a
    > +#define MT6358_TOP_CKHWEN_CON0_SET 0x12c
    > +#define MT6358_TOP_CKHWEN_CON0_CLR 0x12e
    > +#define MT6358_TOP_CKTST_CON0 0x130
    > +#define MT6358_TOP_CKTST_CON1 0x132
    > +#define MT6358_TOP_CLK_CON0 0x134
    > +#define MT6358_TOP_CLK_CON0_SET 0x136
    > +#define MT6358_TOP_CLK_CON0_CLR 0x138
    > +#define MT6358_TOP_DCM_CON0 0x13a
    > +#define MT6358_TOP_HANDOVER_DEBUG0 0x13c
    > +#define MT6358_TOP_RST_CON0 0x13e
    > +#define MT6358_TOP_RST_CON0_SET 0x140
    > +#define MT6358_TOP_RST_CON0_CLR 0x142
    > +#define MT6358_TOP_RST_CON1 0x144
    > +#define MT6358_TOP_RST_CON1_SET 0x146
    > +#define MT6358_TOP_RST_CON1_CLR 0x148
    > +#define MT6358_TOP_RST_CON2 0x14a
    > +#define MT6358_TOP_RST_MISC 0x14c
    > +#define MT6358_TOP_RST_MISC_SET 0x14e
    > +#define MT6358_TOP_RST_MISC_CLR 0x150
    > +#define MT6358_TOP_RST_STATUS 0x152
    > +#define MT6358_TOP_RST_STATUS_SET 0x154
    > +#define MT6358_TOP_RST_STATUS_CLR 0x156
    > +#define MT6358_TOP2_ELR_NUM 0x158
    > +#define MT6358_TOP2_ELR0 0x15a
    > +#define MT6358_TOP2_ELR1 0x15c
    > +#define MT6358_TOP3_ID 0x180
    > +#define MT6358_TOP3_REV0 0x182
    > +#define MT6358_TOP3_DSN_DBI 0x184
    > +#define MT6358_TOP3_DSN_DXI 0x186
    > +#define MT6358_MISC_TOP_INT_CON0 0x188
    > +#define MT6358_MISC_TOP_INT_CON0_SET 0x18a
    > +#define MT6358_MISC_TOP_INT_CON0_CLR 0x18c
    > +#define MT6358_MISC_TOP_INT_MASK_CON0 0x18e
    > +#define MT6358_MISC_TOP_INT_MASK_CON0_SET 0x190
    > +#define MT6358_MISC_TOP_INT_MASK_CON0_CLR 0x192
    > +#define MT6358_MISC_TOP_INT_STATUS0 0x194
    > +#define MT6358_MISC_TOP_INT_RAW_STATUS0 0x196
    > +#define MT6358_TOP_INT_MASK_CON0 0x198
    > +#define MT6358_TOP_INT_MASK_CON0_SET 0x19a
    > +#define MT6358_TOP_INT_MASK_CON0_CLR 0x19c
    > +#define MT6358_TOP_INT_STATUS0 0x19e
    > +#define MT6358_TOP_INT_RAW_STATUS0 0x1a0
    > +#define MT6358_TOP_INT_CON0 0x1a2
    > +#define MT6358_PLT0_ID 0x380
    > +#define MT6358_PLT0_REV0 0x382
    > +#define MT6358_PLT0_REV1 0x384
    > +#define MT6358_PLT0_DSN_DXI 0x386
    > +#define MT6358_TOP_CLK_TRIM 0x388
    > +#define MT6358_OTP_CON0 0x38a
    > +#define MT6358_OTP_CON1 0x38c
    > +#define MT6358_OTP_CON2 0x38e
    > +#define MT6358_OTP_CON3 0x390
    > +#define MT6358_OTP_CON4 0x392
    > +#define MT6358_OTP_CON5 0x394
    > +#define MT6358_OTP_CON6 0x396
    > +#define MT6358_OTP_CON7 0x398
    > +#define MT6358_OTP_CON8 0x39a
    > +#define MT6358_OTP_CON9 0x39c
    > +#define MT6358_OTP_CON10 0x39e
    > +#define MT6358_OTP_CON11 0x3a0
    > +#define MT6358_OTP_CON12 0x3a2
    > +#define MT6358_OTP_CON13 0x3a4
    > +#define MT6358_OTP_CON14 0x3a6
    > +#define MT6358_TOP_TMA_KEY 0x3a8
    > +#define MT6358_TOP_MDB_CONF0 0x3aa
    > +#define MT6358_TOP_MDB_CONF1 0x3ac
    > +#define MT6358_TOP_MDB_CONF2 0x3ae
    > +#define MT6358_PLT0_ELR_NUM 0x3b0
    > +#define MT6358_PLT0_ELR0 0x3b2
    > +#define MT6358_PLT0_ELR1 0x3b4
    > +#define MT6358_SPISLV_ID 0x400
    > +#define MT6358_SPISLV_REV0 0x402
    > +#define MT6358_SPISLV_REV1 0x404
    > +#define MT6358_SPISLV_DSN_DXI 0x406
    > +#define MT6358_RG_SPI_CON0 0x408
    > +#define MT6358_RG_SPI_RECORD0 0x40a
    > +#define MT6358_DEW_DIO_EN 0x40c
    > +#define MT6358_DEW_READ_TEST 0x40e
    > +#define MT6358_DEW_WRITE_TEST 0x410
    > +#define MT6358_DEW_CRC_SWRST 0x412
    > +#define MT6358_DEW_CRC_EN 0x414
    > +#define MT6358_DEW_CRC_VAL 0x416
    > +#define MT6358_DEW_DBG_MON_SEL 0x418
    > +#define MT6358_DEW_CIPHER_KEY_SEL 0x41a
    > +#define MT6358_DEW_CIPHER_IV_SEL 0x41c
    > +#define MT6358_DEW_CIPHER_EN 0x41e
    > +#define MT6358_DEW_CIPHER_RDY 0x420
    > +#define MT6358_DEW_CIPHER_MODE 0x422
    > +#define MT6358_DEW_CIPHER_SWRST 0x424
    > +#define MT6358_DEW_RDDMY_NO 0x426
    > +#define MT6358_INT_TYPE_CON0 0x428
    > +#define MT6358_INT_TYPE_CON0_SET 0x42a
    > +#define MT6358_INT_TYPE_CON0_CLR 0x42c
    > +#define MT6358_INT_STA 0x42e
    > +#define MT6358_RG_SPI_CON1 0x430
    > +#define MT6358_RG_SPI_CON2 0x432
    > +#define MT6358_RG_SPI_CON3 0x434
    > +#define MT6358_RG_SPI_CON4 0x436
    > +#define MT6358_RG_SPI_CON5 0x438
    > +#define MT6358_RG_SPI_CON6 0x43a
    > +#define MT6358_RG_SPI_CON7 0x43c
    > +#define MT6358_RG_SPI_CON8 0x43e
    > +#define MT6358_RG_SPI_CON9 0x440
    > +#define MT6358_RG_SPI_CON10 0x442
    > +#define MT6358_RG_SPI_CON11 0x444
    > +#define MT6358_RG_SPI_CON12 0x446
    > +#define MT6358_RG_SPI_CON13 0x448
    > +#define MT6358_SPISLV_KEY 0x44a
    > +#define MT6358_TOP_SPI_CON0 0x44c
    > +#define MT6358_TOP_SPI_CON1 0x44e
    > +#define MT6358_SCK_TOP_DSN_ID 0x500
    > +#define MT6358_SCK_TOP_DSN_REV0 0x502
    > +#define MT6358_SCK_TOP_DBI 0x504
    > +#define MT6358_SCK_TOP_DXI 0x506
    > +#define MT6358_SCK_TOP_TPM0 0x508
    > +#define MT6358_SCK_TOP_TPM1 0x50a
    > +#define MT6358_SCK_TOP_CON0 0x50c
    > +#define MT6358_SCK_TOP_CON1 0x50e
    > +#define MT6358_SCK_TOP_TEST_OUT 0x510
    > +#define MT6358_SCK_TOP_TEST_CON0 0x512
    > +#define MT6358_FQMTR_CON0 0x514
    > +#define MT6358_FQMTR_CON1 0x516
    > +#define MT6358_FQMTR_CON2 0x518
    > +#define MT6358_SCK_TOP_CKPDN_CON0 0x51a
    > +#define MT6358_SCK_TOP_CKPDN_CON0_SET 0x51c
    > +#define MT6358_SCK_TOP_CKPDN_CON0_CLR 0x51e
    > +#define MT6358_SCK_TOP_CKHWEN_CON0 0x520
    > +#define MT6358_SCK_TOP_CKHWEN_CON0_SET 0x522
    > +#define MT6358_SCK_TOP_CKHWEN_CON0_CLR 0x524
    > +#define MT6358_SCK_TOP_CKTST_CON 0x526
    > +#define MT6358_SCK_TOP_RST_CON0 0x528
    > +#define MT6358_SCK_TOP_RST_CON0_SET 0x52a
    > +#define MT6358_SCK_TOP_RST_CON0_CLR 0x52c
    > +#define MT6358_SCK_TOP_INT_CON0 0x52e
    > +#define MT6358_SCK_TOP_INT_CON0_SET 0x530
    > +#define MT6358_SCK_TOP_INT_CON0_CLR 0x532
    > +#define MT6358_SCK_TOP_INT_MASK_CON0 0x534
    > +#define MT6358_SCK_TOP_INT_MASK_CON0_SET 0x536
    > +#define MT6358_SCK_TOP_INT_MASK_CON0_CLR 0x538
    > +#define MT6358_SCK_TOP_INT_STATUS0 0x53a
    > +#define MT6358_SCK_TOP_INT_RAW_STATUS0 0x53c
    > +#define MT6358_SCK_TOP_INT_MISC_CON 0x53e
    > +#define MT6358_EOSC_CALI_CON0 0x540
    > +#define MT6358_EOSC_CALI_CON1 0x542
    > +#define MT6358_RTC_MIX_CON0 0x544
    > +#define MT6358_RTC_MIX_CON1 0x546
    > +#define MT6358_RTC_MIX_CON2 0x548
    > +#define MT6358_RTC_DSN_ID 0x580
    > +#define MT6358_RTC_DSN_REV0 0x582
    > +#define MT6358_RTC_DBI 0x584
    > +#define MT6358_RTC_DXI 0x586
    > +#define MT6358_RTC_BBPU 0x588
    > +#define MT6358_RTC_IRQ_STA 0x58a
    > +#define MT6358_RTC_IRQ_EN 0x58c
    > +#define MT6358_RTC_CII_EN 0x58e
    > +#define MT6358_RTC_AL_MASK 0x590
    > +#define MT6358_RTC_TC_SEC 0x592
    > +#define MT6358_RTC_TC_MIN 0x594
    > +#define MT6358_RTC_TC_HOU 0x596
    > +#define MT6358_RTC_TC_DOM 0x598
    > +#define MT6358_RTC_TC_DOW 0x59a
    > +#define MT6358_RTC_TC_MTH 0x59c
    > +#define MT6358_RTC_TC_YEA 0x59e
    > +#define MT6358_RTC_AL_SEC 0x5a0
    > +#define MT6358_RTC_AL_MIN 0x5a2
    > +#define MT6358_RTC_AL_HOU 0x5a4
    > +#define MT6358_RTC_AL_DOM 0x5a6
    > +#define MT6358_RTC_AL_DOW 0x5a8
    > +#define MT6358_RTC_AL_MTH 0x5aa
    > +#define MT6358_RTC_AL_YEA 0x5ac
    > +#define MT6358_RTC_OSC32CON 0x5ae
    > +#define MT6358_RTC_POWERKEY1 0x5b0
    > +#define MT6358_RTC_POWERKEY2 0x5b2
    > +#define MT6358_RTC_PDN1 0x5b4
    > +#define MT6358_RTC_PDN2 0x5b6
    > +#define MT6358_RTC_SPAR0 0x5b8
    > +#define MT6358_RTC_SPAR1 0x5ba
    > +#define MT6358_RTC_PROT 0x5bc
    > +#define MT6358_RTC_DIFF 0x5be
    > +#define MT6358_RTC_CALI 0x5c0
    > +#define MT6358_RTC_WRTGR 0x5c2
    > +#define MT6358_RTC_CON 0x5c4
    > +#define MT6358_RTC_SEC_CTRL 0x5c6
    > +#define MT6358_RTC_INT_CNT 0x5c8
    > +#define MT6358_RTC_SEC_DAT0 0x5ca
    > +#define MT6358_RTC_SEC_DAT1 0x5cc
    > +#define MT6358_RTC_SEC_DAT2 0x5ce
    > +#define MT6358_RTC_SEC_DSN_ID 0x600
    > +#define MT6358_RTC_SEC_DSN_REV0 0x602
    > +#define MT6358_RTC_SEC_DBI 0x604
    > +#define MT6358_RTC_SEC_DXI 0x606
    > +#define MT6358_RTC_TC_SEC_SEC 0x608
    > +#define MT6358_RTC_TC_MIN_SEC 0x60a
    > +#define MT6358_RTC_TC_HOU_SEC 0x60c
    > +#define MT6358_RTC_TC_DOM_SEC 0x60e
    > +#define MT6358_RTC_TC_DOW_SEC 0x610
    > +#define MT6358_RTC_TC_MTH_SEC 0x612
    > +#define MT6358_RTC_TC_YEA_SEC 0x614
    > +#define MT6358_RTC_SEC_CK_PDN 0x616
    > +#define MT6358_RTC_SEC_WRTGR 0x618
    > +#define MT6358_DCXO_DSN_ID 0x780
    > +#define MT6358_DCXO_DSN_REV0 0x782
    > +#define MT6358_DCXO_DSN_DBI 0x784
    > +#define MT6358_DCXO_DSN_DXI 0x786
    > +#define MT6358_DCXO_CW00 0x788
    > +#define MT6358_DCXO_CW00_SET 0x78a
    > +#define MT6358_DCXO_CW00_CLR 0x78c
    > +#define MT6358_DCXO_CW01 0x78e
    > +#define MT6358_DCXO_CW02 0x790
    > +#define MT6358_DCXO_CW03 0x792
    > +#define MT6358_DCXO_CW04 0x794
    > +#define MT6358_DCXO_CW05 0x796
    > +#define MT6358_DCXO_CW06 0x798
    > +#define MT6358_DCXO_CW07 0x79a
    > +#define MT6358_DCXO_CW08 0x79c
    > +#define MT6358_DCXO_CW09 0x79e
    > +#define MT6358_DCXO_CW10 0x7a0
    > +#define MT6358_DCXO_CW11 0x7a2
    > +#define MT6358_DCXO_CW11_SET 0x7a4
    > +#define MT6358_DCXO_CW11_CLR 0x7a6
    > +#define MT6358_DCXO_CW12 0x7a8
    > +#define MT6358_DCXO_CW13 0x7aa
    > +#define MT6358_DCXO_CW14 0x7ac
    > +#define MT6358_DCXO_CW15 0x7ae
    > +#define MT6358_DCXO_CW16 0x7b0
    > +#define MT6358_DCXO_CW17 0x7b2
    > +#define MT6358_DCXO_CW18 0x7b4
    > +#define MT6358_DCXO_CW19 0x7b6
    > +#define MT6358_DCXO_CW20 0x7b8
    > +#define MT6358_DCXO_CW21 0x7ba
    > +#define MT6358_DCXO_CW22 0x7bc
    > +#define MT6358_DCXO_CW23 0x7be
    > +#define MT6358_DCXO_CW24 0x7c0
    > +#define MT6358_DCXO_ELR_NUM 0x7c2
    > +#define MT6358_DCXO_ELR0 0x7c4
    > +#define MT6358_PSC_TOP_ID 0x900
    > +#define MT6358_PSC_TOP_REV0 0x902
    > +#define MT6358_PSC_TOP_DBI 0x904
    > +#define MT6358_PSC_TOP_DXI 0x906
    > +#define MT6358_PSC_TPM0 0x908
    > +#define MT6358_PSC_TPM1 0x90a
    > +#define MT6358_PSC_TOP_CLKCTL_0 0x90c
    > +#define MT6358_PSC_TOP_RSTCTL_0 0x90e
    > +#define MT6358_PSC_TOP_INT_CON0 0x910
    > +#define MT6358_PSC_TOP_INT_CON0_SET 0x912
    > +#define MT6358_PSC_TOP_INT_CON0_CLR 0x914
    > +#define MT6358_PSC_TOP_INT_MASK_CON0 0x916
    > +#define MT6358_PSC_TOP_INT_MASK_CON0_SET 0x918
    > +#define MT6358_PSC_TOP_INT_MASK_CON0_CLR 0x91a
    > +#define MT6358_PSC_TOP_INT_STATUS0 0x91c
    > +#define MT6358_PSC_TOP_INT_RAW_STATUS0 0x91e
    > +#define MT6358_PSC_TOP_INT_MISC_CON 0x920
    > +#define MT6358_PSC_TOP_INT_MISC_CON_SET 0x922
    > +#define MT6358_PSC_TOP_INT_MISC_CON_CLR 0x924
    > +#define MT6358_PSC_TOP_MON_CTL 0x926
    > +#define MT6358_STRUP_ID 0x980
    > +#define MT6358_STRUP_REV0 0x982
    > +#define MT6358_STRUP_DBI 0x984
    > +#define MT6358_STRUP_DSN_FPI 0x986
    > +#define MT6358_STRUP_ANA_CON0 0x988
    > +#define MT6358_STRUP_ANA_CON1 0x98a
    > +#define MT6358_STRUP_ELR_NUM 0x98c
    > +#define MT6358_STRUP_ELR_0 0x98e
    > +#define MT6358_STRUP_ELR_1 0x990
    > +#define MT6358_PSEQ_ID 0xa00
    > +#define MT6358_PSEQ_REV0 0xa02
    > +#define MT6358_PSEQ_DBI 0xa04
    > +#define MT6358_PSEQ_DXI 0xa06
    > +#define MT6358_PPCCTL0 0xa08
    > +#define MT6358_PPCCTL1 0xa0a
    > +#define MT6358_PPCCTL2 0xa0c
    > +#define MT6358_PPCCFG0 0xa0e
    > +#define MT6358_PPCTST0 0xa10
    > +#define MT6358_PORFLAG 0xa12
    > +#define MT6358_STRUP_CON0 0xa14
    > +#define MT6358_STRUP_CON1 0xa16
    > +#define MT6358_STRUP_CON2 0xa18
    > +#define MT6358_STRUP_CON3 0xa1a
    > +#define MT6358_STRUP_CON4 0xa1c
    > +#define MT6358_STRUP_CON5 0xa1e
    > +#define MT6358_STRUP_CON6 0xa20
    > +#define MT6358_STRUP_CON7 0xa22
    > +#define MT6358_CPSCFG0 0xa24
    > +#define MT6358_CPSDSA0 0xa26
    > +#define MT6358_CPSDSA1 0xa28
    > +#define MT6358_CPSDSA2 0xa2a
    > +#define MT6358_CPSDSA3 0xa2c
    > +#define MT6358_CPSDSA4 0xa2e
    > +#define MT6358_CPSDSA5 0xa30
    > +#define MT6358_CPSDSA6 0xa32
    > +#define MT6358_CPSDSA7 0xa34
    > +#define MT6358_STRUP_CON9 0xa36
    > +#define MT6358_STRUP_CON10 0xa38
    > +#define MT6358_STRUP_CON11 0xa3a
    > +#define MT6358_STRUP_CON12 0xa3c
    > +#define MT6358_STRUP_CON13 0xa3e
    > +#define MT6358_PWRKEY_PRESS_STS 0xa40
    > +#define MT6358_STRUP_CON19 0xa42
    > +#define MT6358_STRUP_CON14 0xa44
    > +#define MT6358_STRUP_CON15 0xa46
    > +#define MT6358_STRUP_CON16 0xa48
    > +#define MT6358_STRUP_CON17 0xa4a
    > +#define MT6358_STRUP_CON18 0xa4c
    > +#define MT6358_PSEQ_ELR_NUM 0xa4e
    > +#define MT6358_PSEQ_ELR0 0xa50
    > +#define MT6358_PSEQ_ELR1 0xa52
    > +#define MT6358_PSEQ_ELR2 0xa54
    > +#define MT6358_PSEQ_ELR3 0xa56
    > +#define MT6358_PSEQ_ELR4 0xa58
    > +#define MT6358_PSEQ_ELR5 0xa5a
    > +#define MT6358_PSEQ_ELR6 0xa5c
    > +#define MT6358_PSEQ_ELR7 0xa5e
    > +#define MT6358_PSEQ_ELR10 0xa60
    > +#define MT6358_PSEQ_ELR11 0xa62
    > +#define MT6358_CHRDET_ID 0xa80
    > +#define MT6358_CHRDET_REV0 0xa82
    > +#define MT6358_CHRDET_DBI 0xa84
    > +#define MT6358_CHRDET_DXI 0xa86
    > +#define MT6358_CHR_CON0 0xa88
    > +#define MT6358_CHR_CON1 0xa8a
    > +#define MT6358_CHR_CON2 0xa8c
    > +#define MT6358_CHR_CON3 0xa8e
    > +#define MT6358_CHR_CON4 0xa90
    > +#define MT6358_PCHR_VREF_ANA_DA0 0xa92
    > +#define MT6358_PCHR_VREF_ANA_CON0 0xa94
    > +#define MT6358_PCHR_VREF_ANA_CON1 0xa96
    > +#define MT6358_PCHR_VREF_ANA_CON2 0xa98
    > +#define MT6358_PCHR_VREF_ANA_CON3 0xa9a
    > +#define MT6358_PCHR_VREF_ELR_NUM 0xa9c
    > +#define MT6358_PCHR_VREF_ELR_0 0xa9e
    > +#define MT6358_PCHR_VREF_ELR_1 0xaa0
    > +#define MT6358_BM_TOP_DSN_ID 0xc00
    > +#define MT6358_BM_TOP_DSN_REV0 0xc02
    > +#define MT6358_BM_TOP_DBI 0xc04
    > +#define MT6358_BM_TOP_DXI 0xc06
    > +#define MT6358_BM_TPM0 0xc08
    > +#define MT6358_BM_TPM1 0xc0a
    > +#define MT6358_BM_TOP_CKPDN_CON0 0xc0c
    > +#define MT6358_BM_TOP_CKPDN_CON0_SET 0xc0e
    > +#define MT6358_BM_TOP_CKPDN_CON0_CLR 0xc10
    > +#define MT6358_BM_TOP_CKSEL_CON0 0xc12
    > +#define MT6358_BM_TOP_CKSEL_CON0_SET 0xc14
    > +#define MT6358_BM_TOP_CKSEL_CON0_CLR 0xc16
    > +#define MT6358_BM_TOP_CKDIVSEL_CON0 0xc18
    > +#define MT6358_BM_TOP_CKDIVSEL_CON0_SET 0xc1a
    > +#define MT6358_BM_TOP_CKDIVSEL_CON0_CLR 0xc1c
    > +#define MT6358_BM_TOP_CKHWEN_CON0 0xc1e
    > +#define MT6358_BM_TOP_CKHWEN_CON0_SET 0xc20
    > +#define MT6358_BM_TOP_CKHWEN_CON0_CLR 0xc22
    > +#define MT6358_BM_TOP_CKTST_CON0 0xc24
    > +#define MT6358_BM_TOP_RST_CON0 0xc26
    > +#define MT6358_BM_TOP_RST_CON0_SET 0xc28
    > +#define MT6358_BM_TOP_RST_CON0_CLR 0xc2a
    > +#define MT6358_BM_TOP_RST_CON1 0xc2c
    > +#define MT6358_BM_TOP_RST_CON1_SET 0xc2e
    > +#define MT6358_BM_TOP_RST_CON1_CLR 0xc30
    > +#define MT6358_BM_TOP_INT_CON0 0xc32
    > +#define MT6358_BM_TOP_INT_CON0_SET 0xc34
    > +#define MT6358_BM_TOP_INT_CON0_CLR 0xc36
    > +#define MT6358_BM_TOP_INT_CON1 0xc38
    > +#define MT6358_BM_TOP_INT_CON1_SET 0xc3a
    > +#define MT6358_BM_TOP_INT_CON1_CLR 0xc3c
    > +#define MT6358_BM_TOP_INT_MASK_CON0 0xc3e
    > +#define MT6358_BM_TOP_INT_MASK_CON0_SET 0xc40
    > +#define MT6358_BM_TOP_INT_MASK_CON0_CLR 0xc42
    > +#define MT6358_BM_TOP_INT_MASK_CON1 0xc44
    > +#define MT6358_BM_TOP_INT_MASK_CON1_SET 0xc46
    > +#define MT6358_BM_TOP_INT_MASK_CON1_CLR 0xc48
    > +#define MT6358_BM_TOP_INT_STATUS0 0xc4a
    > +#define MT6358_BM_TOP_INT_STATUS1 0xc4c
    > +#define MT6358_BM_TOP_INT_RAW_STATUS0 0xc4e
    > +#define MT6358_BM_TOP_INT_RAW_STATUS1 0xc50
    > +#define MT6358_BM_TOP_INT_MISC_CON 0xc52
    > +#define MT6358_BM_TOP_DBG_CON 0xc54
    > +#define MT6358_BM_TOP_RSV0 0xc56
    > +#define MT6358_FGADC_ANA_DSN_ID 0xc80
    > +#define MT6358_FGADC_ANA_DSN_REV0 0xc82
    > +#define MT6358_FGADC_ANA_DSN_DBI 0xc84
    > +#define MT6358_FGADC_ANA_DSN_DXI 0xc86
    > +#define MT6358_FGADC_ANA_CON0 0xc88
    > +#define MT6358_FGADC_ANA_TEST_CON0 0xc8a
    > +#define MT6358_FGADC_ANA_ELR_NUM 0xc8c
    > +#define MT6358_FGADC_ANA_ELR0 0xc8e
    > +#define MT6358_FGADC_ANA_ELR1 0xc90
    > +#define MT6358_FGADC0_DSN_ID 0xd00
    > +#define MT6358_FGADC0_DSN_REV0 0xd02
    > +#define MT6358_FGADC0_DSN_DBI 0xd04
    > +#define MT6358_FGADC0_DSN_DXI 0xd06
    > +#define MT6358_FGADC_CON0 0xd08
    > +#define MT6358_FGADC_CON1 0xd0a
    > +#define MT6358_FGADC_CON2 0xd0c
    > +#define MT6358_FGADC_CON3 0xd0e
    > +#define MT6358_FGADC_CON4 0xd10
    > +#define MT6358_FGADC_RST_CON0 0xd12
    > +#define MT6358_FGADC_CAR_CON0 0xd14
    > +#define MT6358_FGADC_CAR_CON1 0xd16
    > +#define MT6358_FGADC_CARTH_CON0 0xd18
    > +#define MT6358_FGADC_CARTH_CON1 0xd1a
    > +#define MT6358_FGADC_CARTH_CON2 0xd1c
    > +#define MT6358_FGADC_CARTH_CON3 0xd1e
    > +#define MT6358_FGADC_CARTH_CON4 0xd20
    > +#define MT6358_FGADC_CARTH_CON5 0xd22
    > +#define MT6358_FGADC_CARTH_CON6 0xd24
    > +#define MT6358_FGADC_CARTH_CON7 0xd26
    > +#define MT6358_FGADC_NCAR_CON0 0xd28
    > +#define MT6358_FGADC_NCAR_CON1 0xd2a
    > +#define MT6358_FGADC_NCAR_CON2 0xd2c
    > +#define MT6358_FGADC_NCAR_CON3 0xd2e
    > +#define MT6358_FGADC_IAVG_CON0 0xd30
    > +#define MT6358_FGADC_IAVG_CON1 0xd32
    > +#define MT6358_FGADC_IAVG_CON2 0xd34
    > +#define MT6358_FGADC_IAVG_CON3 0xd36
    > +#define MT6358_FGADC_IAVG_CON4 0xd38
    > +#define MT6358_FGADC_IAVG_CON5 0xd3a
    > +#define MT6358_FGADC_NTER_CON0 0xd3c
    > +#define MT6358_FGADC_NTER_CON1 0xd3e
    > +#define MT6358_FGADC_NTERTH_CON0 0xd40
    > +#define MT6358_FGADC_NTERTH_CON1 0xd42
    > +#define MT6358_FGADC_SON_CON0 0xd44
    > +#define MT6358_FGADC_SON_CON1 0xd46
    > +#define MT6358_FGADC_SON_CON2 0xd48
    > +#define MT6358_FGADC_SON_CON3 0xd4a
    > +#define MT6358_FGADC_SOFF_CON0 0xd4c
    > +#define MT6358_FGADC_SOFF_CON1 0xd4e
    > +#define MT6358_FGADC_SOFF_CON2 0xd50
    > +#define MT6358_FGADC_SOFF_CON3 0xd52
    > +#define MT6358_FGADC_SOFF_CON4 0xd54
    > +#define MT6358_FGADC_PWR_CON0 0xd56
    > +#define MT6358_FGADC_PWR_CON1 0xd58
    > +#define MT6358_FGADC_ZCV_CON0 0xd5a
    > +#define MT6358_FGADC_ZCV_CON1 0xd5c
    > +#define MT6358_FGADC_ZCV_CON2 0xd5e
    > +#define MT6358_FGADC_ZCV_CON3 0xd60
    > +#define MT6358_FGADC_ZCVTH_CON0 0xd62
    > +#define MT6358_FGADC_ZCVTH_CON1 0xd64
    > +#define MT6358_FGADC1_DSN_ID 0xd80
    > +#define MT6358_FGADC1_DSN_REV0 0xd82
    > +#define MT6358_FGADC1_DSN_DBI 0xd84
    > +#define MT6358_FGADC1_DSN_DXI 0xd86
    > +#define MT6358_FGADC_R_CON0 0xd88
    > +#define MT6358_FGADC_CUR_CON0 0xd8a
    > +#define MT6358_FGADC_CUR_CON1 0xd8c
    > +#define MT6358_FGADC_CUR_CON2 0xd8e
    > +#define MT6358_FGADC_CUR_CON3 0xd90
    > +#define MT6358_FGADC_OFFSET_CON0 0xd92
    > +#define MT6358_FGADC_OFFSET_CON1 0xd94
    > +#define MT6358_FGADC_GAIN_CON0 0xd96
    > +#define MT6358_FGADC_TEST_CON0 0xd98
    > +#define MT6358_SYSTEM_INFO_CON0 0xd9a
    > +#define MT6358_BATON_ANA_DSN_ID 0xe00
    > +#define MT6358_BATON_ANA_DSN_REV0 0xe02
    > +#define MT6358_BATON_ANA_DSN_DBI 0xe04
    > +#define MT6358_BATON_ANA_DSN_DXI 0xe06
    > +#define MT6358_BATON_ANA_CON0 0xe08
    > +#define MT6358_BATON_ANA_MON0 0xe0a
    > +#define MT6358_BIF_ANA_MON0 0xe0c
    > +#define MT6358_BATON_ANA_ELR_NUM 0xe0e
    > +#define MT6358_BATON_ANA_ELR0 0xe10
    > +#define MT6358_BATON_DSN_ID 0xe80
    > +#define MT6358_BATON_DSN_REV0 0xe82
    > +#define MT6358_BATON_DSN_DBI 0xe84
    > +#define MT6358_BATON_DSN_DXI 0xe86
    > +#define MT6358_BATON_CON0 0xe88
    > +#define MT6358_BATON_CON1 0xe8a
    > +#define MT6358_BATON_CON2 0xe8c
    > +#define MT6358_BATON_CON3 0xe8e
    > +#define MT6358_BATON_ELR_NUM 0xe90
    > +#define MT6358_BATON_ELR0 0xe92
    > +#define MT6358_BIF_DSN_ID 0xf00
    > +#define MT6358_BIF_DSN_REV0 0xf02
    > +#define MT6358_BIF_DSN_DBI 0xf04
    > +#define MT6358_BIF_DSN_DXI 0xf06
    > +#define MT6358_BIF_CON0 0xf08
    > +#define MT6358_BIF_CON1 0xf0a
    > +#define MT6358_BIF_CON2 0xf0c
    > +#define MT6358_BIF_CON3 0xf0e
    > +#define MT6358_BIF_CON4 0xf10
    > +#define MT6358_BIF_CON5 0xf12
    > +#define MT6358_BIF_CON6 0xf14
    > +#define MT6358_BIF_CON7 0xf16
    > +#define MT6358_BIF_CON8 0xf18
    > +#define MT6358_BIF_CON9 0xf1a
    > +#define MT6358_BIF_CON10 0xf1c
    > +#define MT6358_BIF_CON11 0xf1e
    > +#define MT6358_BIF_CON12 0xf20
    > +#define MT6358_BIF_CON13 0xf22
    > +#define MT6358_BIF_CON14 0xf24
    > +#define MT6358_BIF_CON15 0xf26
    > +#define MT6358_BIF_CON16 0xf28
    > +#define MT6358_BIF_CON17 0xf2a
    > +#define MT6358_BIF_CON18 0xf2c
    > +#define MT6358_BIF_CON19 0xf2e
    > +#define MT6358_BIF_CON20 0xf30
    > +#define MT6358_BIF_CON21 0xf32
    > +#define MT6358_BIF_CON22 0xf34
    > +#define MT6358_BIF_CON23 0xf36
    > +#define MT6358_BIF_CON24 0xf38
    > +#define MT6358_BIF_CON25 0xf3a
    > +#define MT6358_BIF_CON26 0xf3c
    > +#define MT6358_BIF_CON27 0xf3e
    > +#define MT6358_BIF_CON28 0xf40
    > +#define MT6358_BIF_CON29 0xf42
    > +#define MT6358_BIF_CON30 0xf44
    > +#define MT6358_BIF_CON31 0xf46
    > +#define MT6358_BIF_CON32 0xf48
    > +#define MT6358_BIF_CON33 0xf4a
    > +#define MT6358_BIF_CON34 0xf4c
    > +#define MT6358_BIF_CON35 0xf4e
    > +#define MT6358_BIF_CON36 0xf50
    > +#define MT6358_BIF_CON37 0xf52
    > +#define MT6358_BIF_CON38 0xf54
    > +#define MT6358_BIF_CON39 0xf56
    > +#define MT6358_HK_TOP_ID 0xf80
    > +#define MT6358_HK_TOP_REV0 0xf82
    > +#define MT6358_HK_TOP_DBI 0xf84
    > +#define MT6358_HK_TOP_DXI 0xf86
    > +#define MT6358_HK_TPM0 0xf88
    > +#define MT6358_HK_TPM1 0xf8a
    > +#define MT6358_HK_TOP_CLK_CON0 0xf8c
    > +#define MT6358_HK_TOP_CLK_CON1 0xf8e
    > +#define MT6358_HK_TOP_RST_CON0 0xf90
    > +#define MT6358_HK_TOP_INT_CON0 0xf92
    > +#define MT6358_HK_TOP_INT_CON0_SET 0xf94
    > +#define MT6358_HK_TOP_INT_CON0_CLR 0xf96
    > +#define MT6358_HK_TOP_INT_MASK_CON0 0xf98
    > +#define MT6358_HK_TOP_INT_MASK_CON0_SET 0xf9a
    > +#define MT6358_HK_TOP_INT_MASK_CON0_CLR 0xf9c
    > +#define MT6358_HK_TOP_INT_STATUS0 0xf9e
    > +#define MT6358_HK_TOP_INT_RAW_STATUS0 0xfa0
    > +#define MT6358_HK_TOP_MON_CON0 0xfa2
    > +#define MT6358_HK_TOP_MON_CON1 0xfa4
    > +#define MT6358_HK_TOP_MON_CON2 0xfa6
    > +#define MT6358_HK_TOP_CHR_CON 0xfa8
    > +#define MT6358_HK_TOP_AUXADC_ANA 0xfaa
    > +#define MT6358_AUXADC_DSN_ID 0x1000
    > +#define MT6358_AUXADC_DSN_REV0 0x1002
    > +#define MT6358_AUXADC_DSN_DBI 0x1004
    > +#define MT6358_AUXADC_DSN_FPI 0x1006
    > +#define MT6358_AUXADC_ANA_CON0 0x1008
    > +#define MT6358_AUXADC_DIG_1_DSN_ID 0x1080
    > +#define MT6358_AUXADC_DIG_1_DSN_REV0 0x1082
    > +#define MT6358_AUXADC_DIG_1_DSN_DBI 0x1084
    > +#define MT6358_AUXADC_DIG_1_DSN_DXI 0x1086
    > +#define MT6358_AUXADC_ADC0 0x1088
    > +#define MT6358_AUXADC_ADC1 0x108a
    > +#define MT6358_AUXADC_ADC2 0x108c
    > +#define MT6358_AUXADC_ADC3 0x108e
    > +#define MT6358_AUXADC_ADC4 0x1090
    > +#define MT6358_AUXADC_ADC5 0x1092
    > +#define MT6358_AUXADC_ADC6 0x1094
    > +#define MT6358_AUXADC_ADC7 0x1096
    > +#define MT6358_AUXADC_ADC8 0x1098
    > +#define MT6358_AUXADC_ADC9 0x109a
    > +#define MT6358_AUXADC_ADC10 0x109c
    > +#define MT6358_AUXADC_ADC11 0x109e
    > +#define MT6358_AUXADC_ADC12 0x10a0
    > +#define MT6358_AUXADC_ADC13 0x10a2
    > +#define MT6358_AUXADC_ADC14 0x10a4
    > +#define MT6358_AUXADC_ADC15 0x10a6
    > +#define MT6358_AUXADC_ADC16 0x10a8
    > +#define MT6358_AUXADC_ADC17 0x10aa
    > +#define MT6358_AUXADC_ADC18 0x10ac
    > +#define MT6358_AUXADC_ADC19 0x10ae
    > +#define MT6358_AUXADC_ADC20 0x10b0
    > +#define MT6358_AUXADC_ADC21 0x10b2
    > +#define MT6358_AUXADC_ADC22 0x10b4
    > +#define MT6358_AUXADC_ADC23 0x10b6
    > +#define MT6358_AUXADC_ADC24 0x10b8
    > +#define MT6358_AUXADC_ADC25 0x10ba
    > +#define MT6358_AUXADC_ADC26 0x10bc
    > +#define MT6358_AUXADC_ADC27 0x10be
    > +#define MT6358_AUXADC_ADC28 0x10c0
    > +#define MT6358_AUXADC_ADC29 0x10c2
    > +#define MT6358_AUXADC_ADC30 0x10c4
    > +#define MT6358_AUXADC_ADC31 0x10c6
    > +#define MT6358_AUXADC_ADC32 0x10c8
    > +#define MT6358_AUXADC_ADC33 0x10ca
    > +#define MT6358_AUXADC_ADC34 0x10cc
    > +#define MT6358_AUXADC_ADC35 0x10ce
    > +#define MT6358_AUXADC_ADC36 0x10d0
    > +#define MT6358_AUXADC_ADC37 0x10d2
    > +#define MT6358_AUXADC_ADC38 0x10d4
    > +#define MT6358_AUXADC_ADC39 0x10d6
    > +#define MT6358_AUXADC_ADC40 0x10d8
    > +#define MT6358_AUXADC_STA0 0x10da
    > +#define MT6358_AUXADC_STA1 0x10dc
    > +#define MT6358_AUXADC_STA2 0x10de
    > +#define MT6358_AUXADC_DIG_2_DSN_ID 0x1100
    > +#define MT6358_AUXADC_DIG_2_DSN_REV0 0x1102
    > +#define MT6358_AUXADC_DIG_2_DSN_DBI 0x1104
    > +#define MT6358_AUXADC_DIG_2_DSN_DXI 0x1106
    > +#define MT6358_AUXADC_RQST0 0x1108
    > +#define MT6358_AUXADC_RQST1 0x110a
    > +#define MT6358_AUXADC_DIG_3_DSN_ID 0x1180
    > +#define MT6358_AUXADC_DIG_3_DSN_REV0 0x1182
    > +#define MT6358_AUXADC_DIG_3_DSN_DBI 0x1184
    > +#define MT6358_AUXADC_DIG_3_DSN_DXI 0x1186
    > +#define MT6358_AUXADC_CON0 0x1188
    > +#define MT6358_AUXADC_CON0_SET 0x118a
    > +#define MT6358_AUXADC_CON0_CLR 0x118c
    > +#define MT6358_AUXADC_CON1 0x118e
    > +#define MT6358_AUXADC_CON2 0x1190
    > +#define MT6358_AUXADC_CON3 0x1192
    > +#define MT6358_AUXADC_CON4 0x1194
    > +#define MT6358_AUXADC_CON5 0x1196
    > +#define MT6358_AUXADC_CON6 0x1198
    > +#define MT6358_AUXADC_CON7 0x119a
    > +#define MT6358_AUXADC_CON8 0x119c
    > +#define MT6358_AUXADC_CON9 0x119e
    > +#define MT6358_AUXADC_CON10 0x11a0
    > +#define MT6358_AUXADC_CON11 0x11a2
    > +#define MT6358_AUXADC_CON12 0x11a4
    > +#define MT6358_AUXADC_CON13 0x11a6
    > +#define MT6358_AUXADC_CON14 0x11a8
    > +#define MT6358_AUXADC_CON15 0x11aa
    > +#define MT6358_AUXADC_CON16 0x11ac
    > +#define MT6358_AUXADC_CON17 0x11ae
    > +#define MT6358_AUXADC_CON18 0x11b0
    > +#define MT6358_AUXADC_CON19 0x11b2
    > +#define MT6358_AUXADC_CON20 0x11b4
    > +#define MT6358_AUXADC_AUTORPT0 0x11b6
    > +#define MT6358_AUXADC_ACCDET 0x11b8
    > +#define MT6358_AUXADC_DBG0 0x11ba
    > +#define MT6358_AUXADC_DIG_3_ELR_NUM 0x11bc
    > +#define MT6358_AUXADC_DIG_3_ELR0 0x11be
    > +#define MT6358_AUXADC_DIG_3_ELR1 0x11c0
    > +#define MT6358_AUXADC_DIG_3_ELR2 0x11c2
    > +#define MT6358_AUXADC_DIG_3_ELR3 0x11c4
    > +#define MT6358_AUXADC_DIG_3_ELR4 0x11c6
    > +#define MT6358_AUXADC_DIG_3_ELR5 0x11c8
    > +#define MT6358_AUXADC_DIG_3_ELR6 0x11ca
    > +#define MT6358_AUXADC_DIG_3_ELR7 0x11cc
    > +#define MT6358_AUXADC_DIG_3_ELR8 0x11ce
    > +#define MT6358_AUXADC_DIG_3_ELR9 0x11d0
    > +#define MT6358_AUXADC_DIG_3_ELR10 0x11d2
    > +#define MT6358_AUXADC_DIG_3_ELR11 0x11d4
    > +#define MT6358_AUXADC_DIG_3_ELR12 0x11d6
    > +#define MT6358_AUXADC_DIG_3_ELR13 0x11d8
    > +#define MT6358_AUXADC_DIG_4_DSN_ID 0x1200
    > +#define MT6358_AUXADC_DIG_4_DSN_REV0 0x1202
    > +#define MT6358_AUXADC_DIG_4_DSN_DBI 0x1204
    > +#define MT6358_AUXADC_DIG_4_DSN_DXI 0x1206
    > +#define MT6358_AUXADC_IMP0 0x1208
    > +#define MT6358_AUXADC_IMP1 0x120a
    > +#define MT6358_AUXADC_IMP2 0x120c
    > +#define MT6358_AUXADC_LBAT0 0x120e
    > +#define MT6358_AUXADC_LBAT1 0x1210
    > +#define MT6358_AUXADC_LBAT2 0x1212
    > +#define MT6358_AUXADC_LBAT3 0x1214
    > +#define MT6358_AUXADC_LBAT4 0x1216
    > +#define MT6358_AUXADC_LBAT5 0x1218
    > +#define MT6358_AUXADC_LBAT6 0x121a
    > +#define MT6358_AUXADC_BAT_TEMP_0 0x121c
    > +#define MT6358_AUXADC_BAT_TEMP_1 0x121e
    > +#define MT6358_AUXADC_BAT_TEMP_2 0x1220
    > +#define MT6358_AUXADC_BAT_TEMP_3 0x1222
    > +#define MT6358_AUXADC_BAT_TEMP_4 0x1224
    > +#define MT6358_AUXADC_BAT_TEMP_5 0x1226
    > +#define MT6358_AUXADC_BAT_TEMP_6 0x1228
    > +#define MT6358_AUXADC_BAT_TEMP_7 0x122a
    > +#define MT6358_AUXADC_LBAT2_1 0x122c
    > +#define MT6358_AUXADC_LBAT2_2 0x122e
    > +#define MT6358_AUXADC_LBAT2_3 0x1230
    > +#define MT6358_AUXADC_LBAT2_4 0x1232
    > +#define MT6358_AUXADC_LBAT2_5 0x1234
    > +#define MT6358_AUXADC_LBAT2_6 0x1236
    > +#define MT6358_AUXADC_LBAT2_7 0x1238
    > +#define MT6358_AUXADC_MDRT_0 0x123a
    > +#define MT6358_AUXADC_MDRT_1 0x123c
    > +#define MT6358_AUXADC_MDRT_2 0x123e
    > +#define MT6358_AUXADC_MDRT_3 0x1240
    > +#define MT6358_AUXADC_MDRT_4 0x1242
    > +#define MT6358_AUXADC_DCXO_MDRT_1 0x1244
    > +#define MT6358_AUXADC_DCXO_MDRT_2 0x1246
    > +#define MT6358_AUXADC_NAG_0 0x1248
    > +#define MT6358_AUXADC_NAG_1 0x124a
    > +#define MT6358_AUXADC_NAG_2 0x124c
    > +#define MT6358_AUXADC_NAG_3 0x124e
    > +#define MT6358_AUXADC_NAG_4 0x1250
    > +#define MT6358_AUXADC_NAG_5 0x1252
    > +#define MT6358_AUXADC_NAG_6 0x1254
    > +#define MT6358_AUXADC_NAG_7 0x1256
    > +#define MT6358_AUXADC_NAG_8 0x1258
    > +#define MT6358_AUXADC_NAG_9 0x125a
    > +#define MT6358_AUXADC_RSV_1 0x125c
    > +#define MT6358_AUXADC_PRI_NEW 0x125e
    > +#define MT6358_AUXADC_DCM_CON 0x1260
    > +#define MT6358_AUXADC_SPL_LIST_0 0x1262
    > +#define MT6358_AUXADC_SPL_LIST_1 0x1264
    > +#define MT6358_AUXADC_SPL_LIST_2 0x1266
    > +#define MT6358_BUCK_TOP_DSN_ID 0x1300
    > +#define MT6358_BUCK_TOP_DSN_REV0 0x1302
    > +#define MT6358_BUCK_TOP_DBI 0x1304
    > +#define MT6358_BUCK_TOP_DXI 0x1306
    > +#define MT6358_BUCK_TOP_PAM0 0x1308
    > +#define MT6358_BUCK_TOP_PAM1 0x130a
    > +#define MT6358_BUCK_TOP_CLK_CON0 0x130c
    > +#define MT6358_BUCK_TOP_CLK_CON0_SET 0x130e
    > +#define MT6358_BUCK_TOP_CLK_CON0_CLR 0x1310
    > +#define MT6358_BUCK_TOP_CLK_HWEN_CON0 0x1312
    > +#define MT6358_BUCK_TOP_CLK_HWEN_CON0_SET 0x1314
    > +#define MT6358_BUCK_TOP_CLK_HWEN_CON0_CLR 0x1316
    > +#define MT6358_BUCK_TOP_INT_CON0 0x1318
    > +#define MT6358_BUCK_TOP_INT_CON0_SET 0x131a
    > +#define MT6358_BUCK_TOP_INT_CON0_CLR 0x131c
    > +#define MT6358_BUCK_TOP_INT_MASK_CON0 0x131e
    > +#define MT6358_BUCK_TOP_INT_MASK_CON0_SET 0x1320
    > +#define MT6358_BUCK_TOP_INT_MASK_CON0_CLR 0x1322
    > +#define MT6358_BUCK_TOP_INT_STATUS0 0x1324
    > +#define MT6358_BUCK_TOP_INT_RAW_STATUS0 0x1326
    > +#define MT6358_BUCK_TOP_STB_CON 0x1328
    > +#define MT6358_BUCK_TOP_SLP_CON0 0x132a
    > +#define MT6358_BUCK_TOP_SLP_CON1 0x132c
    > +#define MT6358_BUCK_TOP_SLP_CON2 0x132e
    > +#define MT6358_BUCK_TOP_MINFREQ_CON 0x1330
    > +#define MT6358_BUCK_TOP_OC_CON0 0x1332
    > +#define MT6358_BUCK_TOP_K_CON0 0x1334
    > +#define MT6358_BUCK_TOP_K_CON1 0x1336
    > +#define MT6358_BUCK_TOP_K_CON2 0x1338
    > +#define MT6358_BUCK_TOP_WDTDBG0 0x133a
    > +#define MT6358_BUCK_TOP_WDTDBG1 0x133c
    > +#define MT6358_BUCK_TOP_WDTDBG2 0x133e
    > +#define MT6358_BUCK_TOP_WDTDBG3 0x1340
    > +#define MT6358_BUCK_TOP_WDTDBG4 0x1342
    > +#define MT6358_BUCK_TOP_ELR_NUM 0x1344
    > +#define MT6358_BUCK_TOP_ELR0 0x1346
    > +#define MT6358_BUCK_TOP_ELR1 0x1348
    > +#define MT6358_BUCK_TOP_ELR2 0x134a
    > +#define MT6358_BUCK_TOP_ELR3 0x134c
    > +#define MT6358_BUCK_VPROC11_DSN_ID 0x1380
    > +#define MT6358_BUCK_VPROC11_DSN_REV0 0x1382
    > +#define MT6358_BUCK_VPROC11_DSN_DBI 0x1384
    > +#define MT6358_BUCK_VPROC11_DSN_DXI 0x1386
    > +#define MT6358_BUCK_VPROC11_CON0 0x1388
    > +#define MT6358_BUCK_VPROC11_CON1 0x138a
    > +#define MT6358_BUCK_VPROC11_CFG0 0x138c
    > +#define MT6358_BUCK_VPROC11_CFG1 0x138e
    > +#define MT6358_BUCK_VPROC11_OP_EN 0x1390
    > +#define MT6358_BUCK_VPROC11_OP_EN_SET 0x1392
    > +#define MT6358_BUCK_VPROC11_OP_EN_CLR 0x1394
    > +#define MT6358_BUCK_VPROC11_OP_CFG 0x1396
    > +#define MT6358_BUCK_VPROC11_OP_CFG_SET 0x1398
    > +#define MT6358_BUCK_VPROC11_OP_CFG_CLR 0x139a
    > +#define MT6358_BUCK_VPROC11_OC_CFG 0x139c
    > +#define MT6358_BUCK_VPROC11_DBG0 0x139e
    > +#define MT6358_BUCK_VPROC11_DBG1 0x13a0
    > +#define MT6358_BUCK_VPROC11_DBG2 0x13a2
    > +#define MT6358_BUCK_VPROC11_ELR_NUM 0x13a4
    > +#define MT6358_BUCK_VPROC11_ELR0 0x13a6
    > +#define MT6358_BUCK_VPROC12_DSN_ID 0x1400
    > +#define MT6358_BUCK_VPROC12_DSN_REV0 0x1402
    > +#define MT6358_BUCK_VPROC12_DSN_DBI 0x1404
    > +#define MT6358_BUCK_VPROC12_DSN_DXI 0x1406
    > +#define MT6358_BUCK_VPROC12_CON0 0x1408
    > +#define MT6358_BUCK_VPROC12_CON1 0x140a
    > +#define MT6358_BUCK_VPROC12_CFG0 0x140c
    > +#define MT6358_BUCK_VPROC12_CFG1 0x140e
    > +#define MT6358_BUCK_VPROC12_OP_EN 0x1410
    > +#define MT6358_BUCK_VPROC12_OP_EN_SET 0x1412
    > +#define MT6358_BUCK_VPROC12_OP_EN_CLR 0x1414
    > +#define MT6358_BUCK_VPROC12_OP_CFG 0x1416
    > +#define MT6358_BUCK_VPROC12_OP_CFG_SET 0x1418
    > +#define MT6358_BUCK_VPROC12_OP_CFG_CLR 0x141a
    > +#define MT6358_BUCK_VPROC12_OC_CFG 0x141c
    > +#define MT6358_BUCK_VPROC12_DBG0 0x141e
    > +#define MT6358_BUCK_VPROC12_DBG1 0x1420
    > +#define MT6358_BUCK_VPROC12_DBG2 0x1422
    > +#define MT6358_BUCK_VPROC12_ELR_NUM 0x1424
    > +#define MT6358_BUCK_VPROC12_ELR0 0x1426
    > +#define MT6358_BUCK_VCORE_DSN_ID 0x1480
    > +#define MT6358_BUCK_VCORE_DSN_REV0 0x1482
    > +#define MT6358_BUCK_VCORE_DSN_DBI 0x1484
    > +#define MT6358_BUCK_VCORE_DSN_DXI 0x1486
    > +#define MT6358_BUCK_VCORE_CON0 0x1488
    > +#define MT6358_BUCK_VCORE_CON1 0x148a
    > +#define MT6358_BUCK_VCORE_CFG0 0x148c
    > +#define MT6358_BUCK_VCORE_CFG1 0x148e
    > +#define MT6358_BUCK_VCORE_OP_EN 0x1490
    > +#define MT6358_BUCK_VCORE_OP_EN_SET 0x1492
    > +#define MT6358_BUCK_VCORE_OP_EN_CLR 0x1494
    > +#define MT6358_BUCK_VCORE_OP_CFG 0x1496
    > +#define MT6358_BUCK_VCORE_OP_CFG_SET 0x1498
    > +#define MT6358_BUCK_VCORE_OP_CFG_CLR 0x149a
    > +#define MT6358_BUCK_VCORE_OC_CFG 0x149c
    > +#define MT6358_BUCK_VCORE_DBG0 0x149e
    > +#define MT6358_BUCK_VCORE_DBG1 0x14a0
    > +#define MT6358_BUCK_VCORE_DBG2 0x14a2
    > +#define MT6358_BUCK_VCORE_SSHUB_CON0 0x14a4
    > +#define MT6358_BUCK_VCORE_SSHUB_CON1 0x14a6
    > +#define MT6358_BUCK_VCORE_ELR_NUM 0x14a8
    > +#define MT6358_BUCK_VCORE_ELR0 0x14aa
    > +#define MT6358_BUCK_VGPU_DSN_ID 0x1500
    > +#define MT6358_BUCK_VGPU_DSN_REV0 0x1502
    > +#define MT6358_BUCK_VGPU_DSN_DBI 0x1504
    > +#define MT6358_BUCK_VGPU_DSN_DXI 0x1506
    > +#define MT6358_BUCK_VGPU_CON0 0x1508
    > +#define MT6358_BUCK_VGPU_CON1 0x150a
    > +#define MT6358_BUCK_VGPU_CFG0 0x150c
    > +#define MT6358_BUCK_VGPU_CFG1 0x150e
    > +#define MT6358_BUCK_VGPU_OP_EN 0x1510
    > +#define MT6358_BUCK_VGPU_OP_EN_SET 0x1512
    > +#define MT6358_BUCK_VGPU_OP_EN_CLR 0x1514
    > +#define MT6358_BUCK_VGPU_OP_CFG 0x1516
    > +#define MT6358_BUCK_VGPU_OP_CFG_SET 0x1518
    > +#define MT6358_BUCK_VGPU_OP_CFG_CLR 0x151a
    > +#define MT6358_BUCK_VGPU_OC_CFG 0x151c
    > +#define MT6358_BUCK_VGPU_DBG0 0x151e
    > +#define MT6358_BUCK_VGPU_DBG1 0x1520
    > +#define MT6358_BUCK_VGPU_DBG2 0x1522
    > +#define MT6358_BUCK_VGPU_ELR_NUM 0x1524
    > +#define MT6358_BUCK_VGPU_ELR0 0x1526
    > +#define MT6358_BUCK_VMODEM_DSN_ID 0x1580
    > +#define MT6358_BUCK_VMODEM_DSN_REV0 0x1582
    > +#define MT6358_BUCK_VMODEM_DSN_DBI 0x1584
    > +#define MT6358_BUCK_VMODEM_DSN_DXI 0x1586
    > +#define MT6358_BUCK_VMODEM_CON0 0x1588
    > +#define MT6358_BUCK_VMODEM_CON1 0x158a
    > +#define MT6358_BUCK_VMODEM_CFG0 0x158c
    > +#define MT6358_BUCK_VMODEM_CFG1 0x158e
    > +#define MT6358_BUCK_VMODEM_OP_EN 0x1590
    > +#define MT6358_BUCK_VMODEM_OP_EN_SET 0x1592
    > +#define MT6358_BUCK_VMODEM_OP_EN_CLR 0x1594
    > +#define MT6358_BUCK_VMODEM_OP_CFG 0x1596
    > +#define MT6358_BUCK_VMODEM_OP_CFG_SET 0x1598
    > +#define MT6358_BUCK_VMODEM_OP_CFG_CLR 0x159a
    > +#define MT6358_BUCK_VMODEM_OC_CFG 0x159c
    > +#define MT6358_BUCK_VMODEM_DBG0 0x159e
    > +#define MT6358_BUCK_VMODEM_DBG1 0x15a0
    > +#define MT6358_BUCK_VMODEM_DBG2 0x15a2
    > +#define MT6358_BUCK_VMODEM_ELR_NUM 0x15a4
    > +#define MT6358_BUCK_VMODEM_ELR0 0x15a6
    > +#define MT6358_BUCK_VDRAM1_DSN_ID 0x1600
    > +#define MT6358_BUCK_VDRAM1_DSN_REV0 0x1602
    > +#define MT6358_BUCK_VDRAM1_DSN_DBI 0x1604
    > +#define MT6358_BUCK_VDRAM1_DSN_DXI 0x1606
    > +#define MT6358_BUCK_VDRAM1_CON0 0x1608
    > +#define MT6358_BUCK_VDRAM1_CON1 0x160a
    > +#define MT6358_BUCK_VDRAM1_CFG0 0x160c
    > +#define MT6358_BUCK_VDRAM1_CFG1 0x160e
    > +#define MT6358_BUCK_VDRAM1_OP_EN 0x1610
    > +#define MT6358_BUCK_VDRAM1_OP_EN_SET 0x1612
    > +#define MT6358_BUCK_VDRAM1_OP_EN_CLR 0x1614
    > +#define MT6358_BUCK_VDRAM1_OP_CFG 0x1616
    > +#define MT6358_BUCK_VDRAM1_OP_CFG_SET 0x1618
    > +#define MT6358_BUCK_VDRAM1_OP_CFG_CLR 0x161a
    > +#define MT6358_BUCK_VDRAM1_OC_CFG 0x161c
    > +#define MT6358_BUCK_VDRAM1_DBG0 0x161e
    > +#define MT6358_BUCK_VDRAM1_DBG1 0x1620
    > +#define MT6358_BUCK_VDRAM1_DBG2 0x1622
    > +#define MT6358_BUCK_VDRAM1_ELR_NUM 0x1624
    > +#define MT6358_BUCK_VDRAM1_ELR0 0x1626
    > +#define MT6358_BUCK_VS1_DSN_ID 0x1680
    > +#define MT6358_BUCK_VS1_DSN_REV0 0x1682
    > +#define MT6358_BUCK_VS1_DSN_DBI 0x1684
    > +#define MT6358_BUCK_VS1_DSN_DXI 0x1686
    > +#define MT6358_BUCK_VS1_CON0 0x1688
    > +#define MT6358_BUCK_VS1_CON1 0x168a
    > +#define MT6358_BUCK_VS1_CFG0 0x168c
    > +#define MT6358_BUCK_VS1_CFG1 0x168e
    > +#define MT6358_BUCK_VS1_OP_EN 0x1690
    > +#define MT6358_BUCK_VS1_OP_EN_SET 0x1692
    > +#define MT6358_BUCK_VS1_OP_EN_CLR 0x1694
    > +#define MT6358_BUCK_VS1_OP_CFG 0x1696
    > +#define MT6358_BUCK_VS1_OP_CFG_SET 0x1698
    > +#define MT6358_BUCK_VS1_OP_CFG_CLR 0x169a
    > +#define MT6358_BUCK_VS1_OC_CFG 0x169c
    > +#define MT6358_BUCK_VS1_DBG0 0x169e
    > +#define MT6358_BUCK_VS1_DBG1 0x16a0
    > +#define MT6358_BUCK_VS1_DBG2 0x16a2
    > +#define MT6358_BUCK_VS1_VOTER 0x16a4
    > +#define MT6358_BUCK_VS1_VOTER_SET 0x16a6
    > +#define MT6358_BUCK_VS1_VOTER_CLR 0x16a8
    > +#define MT6358_BUCK_VS1_VOTER_CFG 0x16aa
    > +#define MT6358_BUCK_VS1_ELR_NUM 0x16ac
    > +#define MT6358_BUCK_VS1_ELR0 0x16ae
    > +#define MT6358_BUCK_VS2_DSN_ID 0x1700
    > +#define MT6358_BUCK_VS2_DSN_REV0 0x1702
    > +#define MT6358_BUCK_VS2_DSN_DBI 0x1704
    > +#define MT6358_BUCK_VS2_DSN_DXI 0x1706
    > +#define MT6358_BUCK_VS2_CON0 0x1708
    > +#define MT6358_BUCK_VS2_CON1 0x170a
    > +#define MT6358_BUCK_VS2_CFG0 0x170c
    > +#define MT6358_BUCK_VS2_CFG1 0x170e
    > +#define MT6358_BUCK_VS2_OP_EN 0x1710
    > +#define MT6358_BUCK_VS2_OP_EN_SET 0x1712
    > +#define MT6358_BUCK_VS2_OP_EN_CLR 0x1714
    > +#define MT6358_BUCK_VS2_OP_CFG 0x1716
    > +#define MT6358_BUCK_VS2_OP_CFG_SET 0x1718
    > +#define MT6358_BUCK_VS2_OP_CFG_CLR 0x171a
    > +#define MT6358_BUCK_VS2_OC_CFG 0x171c
    > +#define MT6358_BUCK_VS2_DBG0 0x171e
    > +#define MT6358_BUCK_VS2_DBG1 0x1720
    > +#define MT6358_BUCK_VS2_DBG2 0x1722
    > +#define MT6358_BUCK_VS2_VOTER 0x1724
    > +#define MT6358_BUCK_VS2_VOTER_SET 0x1726
    > +#define MT6358_BUCK_VS2_VOTER_CLR 0x1728
    > +#define MT6358_BUCK_VS2_VOTER_CFG 0x172a
    > +#define MT6358_BUCK_VS2_ELR_NUM 0x172c
    > +#define MT6358_BUCK_VS2_ELR0 0x172e
    > +#define MT6358_BUCK_VPA_DSN_ID 0x1780
    > +#define MT6358_BUCK_VPA_DSN_REV0 0x1782
    > +#define MT6358_BUCK_VPA_DSN_DBI 0x1784
    > +#define MT6358_BUCK_VPA_DSN_DXI 0x1786
    > +#define MT6358_BUCK_VPA_CON0 0x1788
    > +#define MT6358_BUCK_VPA_CON1 0x178a
    > +#define MT6358_BUCK_VPA_ELR0 MT6358_BUCK_VPA_CON1
    > +#define MT6358_BUCK_VPA_CFG0 0x178c
    > +#define MT6358_BUCK_VPA_CFG1 0x178e
    > +#define MT6358_BUCK_VPA_OC_CFG 0x1790
    > +#define MT6358_BUCK_VPA_DBG0 0x1792
    > +#define MT6358_BUCK_VPA_DBG1 0x1794
    > +#define MT6358_BUCK_VPA_DBG2 0x1796
    > +#define MT6358_BUCK_VPA_DLC_CON0 0x1798
    > +#define MT6358_BUCK_VPA_DLC_CON1 0x179a
    > +#define MT6358_BUCK_VPA_DLC_CON2 0x179c
    > +#define MT6358_BUCK_VPA_MSFG_CON0 0x179e
    > +#define MT6358_BUCK_VPA_MSFG_CON1 0x17a0
    > +#define MT6358_BUCK_VPA_MSFG_RRATE0 0x17a2
    > +#define MT6358_BUCK_VPA_MSFG_RRATE1 0x17a4
    > +#define MT6358_BUCK_VPA_MSFG_RRATE2 0x17a6
    > +#define MT6358_BUCK_VPA_MSFG_RTHD0 0x17a8
    > +#define MT6358_BUCK_VPA_MSFG_RTHD1 0x17aa
    > +#define MT6358_BUCK_VPA_MSFG_RTHD2 0x17ac
    > +#define MT6358_BUCK_VPA_MSFG_FRATE0 0x17ae
    > +#define MT6358_BUCK_VPA_MSFG_FRATE1 0x17b0
    > +#define MT6358_BUCK_VPA_MSFG_FRATE2 0x17b2
    > +#define MT6358_BUCK_VPA_MSFG_FTHD0 0x17b4
    > +#define MT6358_BUCK_VPA_MSFG_FTHD1 0x17b6
    > +#define MT6358_BUCK_VPA_MSFG_FTHD2 0x17b8
    > +#define MT6358_BUCK_ANA0_DSN_ID 0x1800
    > +#define MT6358_BUCK_ANA0_DSN_REV0 0x1802
    > +#define MT6358_BUCK_ANA0_DSN_DBI 0x1804
    > +#define MT6358_BUCK_ANA0_DSN_FPI 0x1806
    > +#define MT6358_SMPS_ANA_CON0 0x1808
    > +#define MT6358_SMPS_ANA_CON1 0x180a
    > +#define MT6358_VPROC_ANA_CON0 0x180c
    > +#define MT6358_VPROC_ANA_CON1 0x180e
    > +#define MT6358_VPROC_ANA_CON2 0x1810
    > +#define MT6358_VPROC_ANA_CON3 0x1812
    > +#define MT6358_VPROC_ANA_CON4 0x1814
    > +#define MT6358_VPROC_ANA_CON5 0x1816
    > +#define MT6358_VPROC_ANA_CON6 0x1818
    > +#define MT6358_VPROC_ANA_CON7 0x181a
    > +#define MT6358_VPROC_ANA_CON8 0x181c
    > +#define MT6358_VPROC_ANA_CON9 0x181e
    > +#define MT6358_VPROC_ANA_CON10 0x1820
    > +#define MT6358_VPROC_ANA_CON11 0x1822
    > +#define MT6358_VPROC_ANA_CON12 0x1824
    > +#define MT6358_VPROC_ANA_CON13 0x1826
    > +#define MT6358_VCORE_VGPU_ANA_CON0 0x1828
    > +#define MT6358_VCORE_VGPU_ANA_CON1 0x182a
    > +#define MT6358_VCORE_VGPU_ANA_CON2 0x182c
    > +#define MT6358_VCORE_VGPU_ANA_CON3 0x182e
    > +#define MT6358_VCORE_VGPU_ANA_CON4 0x1830
    > +#define MT6358_VCORE_VGPU_ANA_CON5 0x1832
    > +#define MT6358_VCORE_VGPU_ANA_CON6 0x1834
    > +#define MT6358_VCORE_VGPU_ANA_CON7 0x1836
    > +#define MT6358_VCORE_VGPU_ANA_CON8 0x1838
    > +#define MT6358_VCORE_VGPU_ANA_CON9 0x183a
    > +#define MT6358_VCORE_VGPU_ANA_CON10 0x183c
    > +#define MT6358_VCORE_VGPU_ANA_CON11 0x183e
    > +#define MT6358_VCORE_VGPU_ANA_CON12 0x1840
    > +#define MT6358_VCORE_VGPU_ANA_CON13 0x1842
    > +#define MT6358_BUCK_ANA0_ELR_NUM 0x1844
    > +#define MT6358_SMPS_ELR_0 0x1846
    > +#define MT6358_SMPS_ELR_1 0x1848
    > +#define MT6358_SMPS_ELR_2 0x184a
    > +#define MT6358_SMPS_ELR_3 0x184c
    > +#define MT6358_SMPS_ELR_4 0x184e
    > +#define MT6358_SMPS_ELR_5 0x1850
    > +#define MT6358_VPROC_ELR_0 0x1852
    > +#define MT6358_VPROC_ELR_1 0x1854
    > +#define MT6358_VPROC_ELR_2 0x1856
    > +#define MT6358_VPROC_ELR_3 0x1858
    > +#define MT6358_VCORE_VGPU_ELR_0 0x185a
    > +#define MT6358_VCORE_VGPU_ELR_1 0x185c
    > +#define MT6358_VCORE_VGPU_ELR_2 0x185e
    > +#define MT6358_VCORE_VGPU_ELR_3 0x1860
    > +#define MT6358_BUCK_ANA1_DSN_ID 0x1880
    > +#define MT6358_BUCK_ANA1_DSN_REV0 0x1882
    > +#define MT6358_BUCK_ANA1_DSN_DBI 0x1884
    > +#define MT6358_BUCK_ANA1_DSN_FPI 0x1886
    > +#define MT6358_VMODEM_ANA_CON0 0x1888
    > +#define MT6358_VMODEM_ANA_CON1 0x188a
    > +#define MT6358_VMODEM_ANA_CON2 0x188c
    > +#define MT6358_VMODEM_ANA_CON3 0x188e
    > +#define MT6358_VMODEM_ANA_CON4 0x1890
    > +#define MT6358_VMODEM_ANA_CON5 0x1892
    > +#define MT6358_VMODEM_ANA_CON6 0x1894
    > +#define MT6358_VDRAM1_ANA_CON0 0x1896
    > +#define MT6358_VDRAM1_ANA_CON1 0x1898
    > +#define MT6358_VDRAM1_ANA_CON2 0x189a
    > +#define MT6358_VDRAM1_ANA_CON3 0x189c
    > +#define MT6358_VDRAM1_ANA_CON4 0x189e
    > +#define MT6358_VDRAM1_ANA_CON5 0x18a0
    > +#define MT6358_VS1_ANA_CON0 0x18a2
    > +#define MT6358_VS1_ANA_CON1 0x18a4
    > +#define MT6358_VS1_ANA_CON2 0x18a6
    > +#define MT6358_VS1_ANA_CON3 0x18a8
    > +#define MT6358_VS1_ANA_CON4 0x18aa
    > +#define MT6358_VS1_ANA_CON5 0x18ac
    > +#define MT6358_VS2_ANA_CON0 0x18ae
    > +#define MT6358_VS2_ANA_CON1 0x18b0
    > +#define MT6358_VS2_ANA_CON2 0x18b2
    > +#define MT6358_VS2_ANA_CON3 0x18b4
    > +#define MT6358_VS2_ANA_CON4 0x18b6
    > +#define MT6358_VS2_ANA_CON5 0x18b8
    > +#define MT6358_VPA_ANA_CON0 0x18ba
    > +#define MT6358_VPA_ANA_CON1 0x18bc
    > +#define MT6358_VPA_ANA_CON2 0x18be
    > +#define MT6358_VPA_ANA_CON3 0x18c0
    > +#define MT6358_VPA_ANA_CON4 0x18c2
    > +#define MT6358_VPA_ANA_CON5 0x18c4
    > +#define MT6358_BUCK_ANA1_ELR_NUM 0x18c6
    > +#define MT6358_VMODEM_ELR_0 0x18c8
    > +#define MT6358_VMODEM_ELR_1 0x18ca
    > +#define MT6358_VDRAM1_ELR_0 0x18cc
    > +#define MT6358_VDRAM1_ELR_1 0x18ce
    > +#define MT6358_VS1_ELR_0 0x18d0
    > +#define MT6358_VS1_ELR_1 0x18d2
    > +#define MT6358_VS2_ELR_0 0x18d4
    > +#define MT6358_VS2_ELR_1 0x18d6
    > +#define MT6358_VPA_ELR_0 0x18d8
    > +#define MT6358_LDO_TOP_ID 0x1a00
    > +#define MT6358_LDO_TOP_REV0 0x1a02
    > +#define MT6358_LDO_TOP_DBI 0x1a04
    > +#define MT6358_LDO_TOP_DXI 0x1a06
    > +#define MT6358_LDO_TPM0 0x1a08
    > +#define MT6358_LDO_TPM1 0x1a0a
    > +#define MT6358_LDO_TOP_CKPDN_CON0 0x1a0c
    > +#define MT6358_TOP_TOP_CKHWEN_CON0 0x1a0e
    > +#define MT6358_LDO_TOP_CLK_DCM_CON0 0x1a10
    > +#define MT6358_LDO_TOP_CLK_VFE28_CON0 0x1a12
    > +#define MT6358_LDO_TOP_CLK_VXO22_CON0 0x1a14
    > +#define MT6358_LDO_TOP_CLK_VRF18_CON0 0x1a16
    > +#define MT6358_LDO_TOP_CLK_VRF12_CON0 0x1a18
    > +#define MT6358_LDO_TOP_CLK_VEFUSE_CON0 0x1a1a
    > +#define MT6358_LDO_TOP_CLK_VCN33_CON0 0x1a1c
    > +#define MT6358_LDO_TOP_CLK_VCN28_CON0 0x1a1e
    > +#define MT6358_LDO_TOP_CLK_VCN18_CON0 0x1a20
    > +#define MT6358_LDO_TOP_CLK_VCAMA1_CON0 0x1a22
    > +#define MT6358_LDO_TOP_CLK_VCAMA2_CON0 0x1a24
    > +#define MT6358_LDO_TOP_CLK_VCAMD_CON0 0x1a26
    > +#define MT6358_LDO_TOP_CLK_VCAMIO_CON0 0x1a28
    > +#define MT6358_LDO_TOP_CLK_VLDO28_CON0 0x1a2a
    > +#define MT6358_LDO_TOP_CLK_VA12_CON0 0x1a2c
    > +#define MT6358_LDO_TOP_CLK_VAUX18_CON0 0x1a2e
    > +#define MT6358_LDO_TOP_CLK_VAUD28_CON0 0x1a30
    > +#define MT6358_LDO_TOP_CLK_VIO28_CON0 0x1a32
    > +#define MT6358_LDO_TOP_CLK_VIO18_CON0 0x1a34
    > +#define MT6358_LDO_TOP_CLK_VSRAM_PROC11_CON0 0x1a36
    > +#define MT6358_LDO_TOP_CLK_VSRAM_PROC12_CON0 0x1a38
    > +#define MT6358_LDO_TOP_CLK_VSRAM_OTHERS_CON0 0x1a3a
    > +#define MT6358_LDO_TOP_CLK_VSRAM_GPU_CON0 0x1a3c
    > +#define MT6358_LDO_TOP_CLK_VDRAM2_CON0 0x1a3e
    > +#define MT6358_LDO_TOP_CLK_VMC_CON0 0x1a40
    > +#define MT6358_LDO_TOP_CLK_VMCH_CON0 0x1a42
    > +#define MT6358_LDO_TOP_CLK_VEMC_CON0 0x1a44
    > +#define MT6358_LDO_TOP_CLK_VSIM1_CON0 0x1a46
    > +#define MT6358_LDO_TOP_CLK_VSIM2_CON0 0x1a48
    > +#define MT6358_LDO_TOP_CLK_VIBR_CON0 0x1a4a
    > +#define MT6358_LDO_TOP_CLK_VUSB_CON0 0x1a4c
    > +#define MT6358_LDO_TOP_CLK_VBIF28_CON0 0x1a4e
    > +#define MT6358_LDO_TOP_INT_CON0 0x1a50
    > +#define MT6358_LDO_TOP_INT_CON0_SET 0x1a52
    > +#define MT6358_LDO_TOP_INT_CON0_CLR 0x1a54
    > +#define MT6358_LDO_TOP_INT_CON1 0x1a56
    > +#define MT6358_LDO_TOP_INT_CON1_SET 0x1a58
    > +#define MT6358_LDO_TOP_INT_CON1_CLR 0x1a5a
    > +#define MT6358_LDO_TOP_INT_MASK_CON0 0x1a5c
    > +#define MT6358_LDO_TOP_INT_MASK_CON0_SET 0x1a5e
    > +#define MT6358_LDO_TOP_INT_MASK_CON0_CLR 0x1a60
    > +#define MT6358_LDO_TOP_INT_MASK_CON1 0x1a62
    > +#define MT6358_LDO_TOP_INT_MASK_CON1_SET 0x1a64
    > +#define MT6358_LDO_TOP_INT_MASK_CON1_CLR 0x1a66
    > +#define MT6358_LDO_TOP_INT_STATUS0 0x1a68
    > +#define MT6358_LDO_TOP_INT_STATUS1 0x1a6a
    > +#define MT6358_LDO_TOP_INT_RAW_STATUS0 0x1a6c
    > +#define MT6358_LDO_TOP_INT_RAW_STATUS1 0x1a6e
    > +#define MT6358_LDO_TEST_CON0 0x1a70
    > +#define MT6358_LDO_TOP_WDT_CON0 0x1a72
    > +#define MT6358_LDO_TOP_RSV_CON0 0x1a74
    > +#define MT6358_LDO_TOP_RSV_CON1 0x1a76
    > +#define MT6358_LDO_OCFB0 0x1a78
    > +#define MT6358_LDO_LP_PROTECTION 0x1a7a
    > +#define MT6358_LDO_DUMMY_LOAD_GATED 0x1a7c
    > +#define MT6358_LDO_GON0_DSN_ID 0x1a80
    > +#define MT6358_LDO_GON0_DSN_REV0 0x1a82
    > +#define MT6358_LDO_GON0_DSN_DBI 0x1a84
    > +#define MT6358_LDO_GON0_DSN_DXI 0x1a86
    > +#define MT6358_LDO_VXO22_CON0 0x1a88
    > +#define MT6358_LDO_VXO22_OP_EN 0x1a8a
    > +#define MT6358_LDO_VXO22_OP_EN_SET 0x1a8c
    > +#define MT6358_LDO_VXO22_OP_EN_CLR 0x1a8e
    > +#define MT6358_LDO_VXO22_OP_CFG 0x1a90
    > +#define MT6358_LDO_VXO22_OP_CFG_SET 0x1a92
    > +#define MT6358_LDO_VXO22_OP_CFG_CLR 0x1a94
    > +#define MT6358_LDO_VXO22_CON1 0x1a96
    > +#define MT6358_LDO_VXO22_CON2 0x1a98
    > +#define MT6358_LDO_VXO22_CON3 0x1a9a
    > +#define MT6358_LDO_VA12_CON0 0x1a9c
    > +#define MT6358_LDO_VA12_OP_EN 0x1a9e
    > +#define MT6358_LDO_VA12_OP_EN_SET 0x1aa0
    > +#define MT6358_LDO_VA12_OP_EN_CLR 0x1aa2
    > +#define MT6358_LDO_VA12_OP_CFG 0x1aa4
    > +#define MT6358_LDO_VA12_OP_CFG_SET 0x1aa6
    > +#define MT6358_LDO_VA12_OP_CFG_CLR 0x1aa8
    > +#define MT6358_LDO_VA12_CON1 0x1aaa
    > +#define MT6358_LDO_VA12_CON2 0x1aac
    > +#define MT6358_LDO_VA12_CON3 0x1aae
    > +#define MT6358_LDO_VAUX18_CON0 0x1ab0
    > +#define MT6358_LDO_VAUX18_OP_EN 0x1ab2
    > +#define MT6358_LDO_VAUX18_OP_EN_SET 0x1ab4
    > +#define MT6358_LDO_VAUX18_OP_EN_CLR 0x1ab6
    > +#define MT6358_LDO_VAUX18_OP_CFG 0x1ab8
    > +#define MT6358_LDO_VAUX18_OP_CFG_SET 0x1aba
    > +#define MT6358_LDO_VAUX18_OP_CFG_CLR 0x1abc
    > +#define MT6358_LDO_VAUX18_CON1 0x1abe
    > +#define MT6358_LDO_VAUX18_CON2 0x1ac0
    > +#define MT6358_LDO_VAUX18_CON3 0x1ac2
    > +#define MT6358_LDO_VAUD28_CON0 0x1ac4
    > +#define MT6358_LDO_VAUD28_OP_EN 0x1ac6
    > +#define MT6358_LDO_VAUD28_OP_EN_SET 0x1ac8
    > +#define MT6358_LDO_VAUD28_OP_EN_CLR 0x1aca
    > +#define MT6358_LDO_VAUD28_OP_CFG 0x1acc
    > +#define MT6358_LDO_VAUD28_OP_CFG_SET 0x1ace
    > +#define MT6358_LDO_VAUD28_OP_CFG_CLR 0x1ad0
    > +#define MT6358_LDO_VAUD28_CON1 0x1ad2
    > +#define MT6358_LDO_VAUD28_CON2 0x1ad4
    > +#define MT6358_LDO_VAUD28_CON3 0x1ad6
    > +#define MT6358_LDO_VIO28_CON0 0x1ad8
    > +#define MT6358_LDO_VIO28_OP_EN 0x1ada
    > +#define MT6358_LDO_VIO28_OP_EN_SET 0x1adc
    > +#define MT6358_LDO_VIO28_OP_EN_CLR 0x1ade
    > +#define MT6358_LDO_VIO28_OP_CFG 0x1ae0
    > +#define MT6358_LDO_VIO28_OP_CFG_SET 0x1ae2
    > +#define MT6358_LDO_VIO28_OP_CFG_CLR 0x1ae4
    > +#define MT6358_LDO_VIO28_CON1 0x1ae6
    > +#define MT6358_LDO_VIO28_CON2 0x1ae8
    > +#define MT6358_LDO_VIO28_CON3 0x1aea
    > +#define MT6358_LDO_VIO18_CON0 0x1aec
    > +#define MT6358_LDO_VIO18_OP_EN 0x1aee
    > +#define MT6358_LDO_VIO18_OP_EN_SET 0x1af0
    > +#define MT6358_LDO_VIO18_OP_EN_CLR 0x1af2
    > +#define MT6358_LDO_VIO18_OP_CFG 0x1af4
    > +#define MT6358_LDO_VIO18_OP_CFG_SET 0x1af6
    > +#define MT6358_LDO_VIO18_OP_CFG_CLR 0x1af8
    > +#define MT6358_LDO_VIO18_CON1 0x1afa
    > +#define MT6358_LDO_VIO18_CON2 0x1afc
    > +#define MT6358_LDO_VIO18_CON3 0x1afe
    > +#define MT6358_LDO_GON1_DSN_ID 0x1b00
    > +#define MT6358_LDO_GON1_DSN_REV0 0x1b02
    > +#define MT6358_LDO_GON1_DSN_DBI 0x1b04
    > +#define MT6358_LDO_GON1_DSN_DXI 0x1b06
    > +#define MT6358_LDO_VDRAM2_CON0 0x1b08
    > +#define MT6358_LDO_VDRAM2_OP_EN 0x1b0a
    > +#define MT6358_LDO_VDRAM2_OP_EN_SET 0x1b0c
    > +#define MT6358_LDO_VDRAM2_OP_EN_CLR 0x1b0e
    > +#define MT6358_LDO_VDRAM2_OP_CFG 0x1b10
    > +#define MT6358_LDO_VDRAM2_OP_CFG_SET 0x1b12
    > +#define MT6358_LDO_VDRAM2_OP_CFG_CLR 0x1b14
    > +#define MT6358_LDO_VDRAM2_CON1 0x1b16
    > +#define MT6358_LDO_VDRAM2_CON2 0x1b18
    > +#define MT6358_LDO_VDRAM2_CON3 0x1b1a
    > +#define MT6358_LDO_VEMC_CON0 0x1b1c
    > +#define MT6358_LDO_VEMC_OP_EN 0x1b1e
    > +#define MT6358_LDO_VEMC_OP_EN_SET 0x1b20
    > +#define MT6358_LDO_VEMC_OP_EN_CLR 0x1b22
    > +#define MT6358_LDO_VEMC_OP_CFG 0x1b24
    > +#define MT6358_LDO_VEMC_OP_CFG_SET 0x1b26
    > +#define MT6358_LDO_VEMC_OP_CFG_CLR 0x1b28
    > +#define MT6358_LDO_VEMC_CON1 0x1b2a
    > +#define MT6358_LDO_VEMC_CON2 0x1b2c
    > +#define MT6358_LDO_VEMC_CON3 0x1b2e
    > +#define MT6358_LDO_VUSB_CON0_0 0x1b30
    > +#define MT6358_LDO_VUSB_OP_EN 0x1b32
    > +#define MT6358_LDO_VUSB_OP_EN_SET 0x1b34
    > +#define MT6358_LDO_VUSB_OP_EN_CLR 0x1b36
    > +#define MT6358_LDO_VUSB_OP_CFG 0x1b38
    > +#define MT6358_LDO_VUSB_OP_CFG_SET 0x1b3a
    > +#define MT6358_LDO_VUSB_OP_CFG_CLR 0x1b3c
    > +#define MT6358_LDO_VUSB_CON0_1 0x1b3e
    > +#define MT6358_LDO_VUSB_CON1 0x1b40
    > +#define MT6358_LDO_VUSB_CON2 0x1b42
    > +#define MT6358_LDO_VUSB_CON3 0x1b44
    > +#define MT6358_LDO_VSRAM_PROC11_CON0 0x1b46
    > +#define MT6358_LDO_VSRAM_PROC11_CON2 0x1b48
    > +#define MT6358_LDO_VSRAM_PROC11_CFG0 0x1b4a
    > +#define MT6358_LDO_VSRAM_PROC11_CFG1 0x1b4c
    > +#define MT6358_LDO_VSRAM_PROC11_OP_EN 0x1b4e
    > +#define MT6358_LDO_VSRAM_PROC11_OP_EN_SET 0x1b50
    > +#define MT6358_LDO_VSRAM_PROC11_OP_EN_CLR 0x1b52
    > +#define MT6358_LDO_VSRAM_PROC11_OP_CFG 0x1b54
    > +#define MT6358_LDO_VSRAM_PROC11_OP_CFG_SET 0x1b56
    > +#define MT6358_LDO_VSRAM_PROC11_OP_CFG_CLR 0x1b58
    > +#define MT6358_LDO_VSRAM_PROC11_CON3 0x1b5a
    > +#define MT6358_LDO_VSRAM_PROC11_CON4 0x1b5c
    > +#define MT6358_LDO_VSRAM_PROC11_CON5 0x1b5e
    > +#define MT6358_LDO_VSRAM_PROC11_DBG0 0x1b60
    > +#define MT6358_LDO_VSRAM_PROC11_DBG1 0x1b62
    > +#define MT6358_LDO_VSRAM_PROC11_TRACKING_CON0 0x1b64
    > +#define MT6358_LDO_VSRAM_PROC11_TRACKING_CON1 0x1b66
    > +#define MT6358_LDO_VSRAM_PROC11_TRACKING_CON2 0x1b68
    > +#define MT6358_LDO_VSRAM_PROC11_TRACKING_CON3 0x1b6a
    > +#define MT6358_LDO_VSRAM_PROC12_TRACKING_CON0 0x1b6c
    > +#define MT6358_LDO_VSRAM_PROC12_TRACKING_CON1 0x1b6e
    > +#define MT6358_LDO_VSRAM_PROC12_TRACKING_CON2 0x1b70
    > +#define MT6358_LDO_VSRAM_PROC12_TRACKING_CON3 0x1b72
    > +#define MT6358_LDO_VSRAM_WAKEUP_CON0 0x1b74
    > +#define MT6358_LDO_GON1_ELR_NUM 0x1b76
    > +#define MT6358_LDO_VDRAM2_ELR0 0x1b78
    > +#define MT6358_LDO_VDRAM2_ELR1 0x1b7a
    > +#define MT6358_LDO_STRUP_ELR0 0x1b7c
    > +#define MT6358_LDO_GON2_DSN_ID 0x1b80
    > +#define MT6358_LDO_GON2_DSN_REV0 0x1b82
    > +#define MT6358_LDO_GON2_DSN_DBI 0x1b84
    > +#define MT6358_LDO_GON2_DSN_DXI 0x1b86
    > +#define MT6358_LDO_VSRAM_PROC12_CON0 0x1b88
    > +#define MT6358_LDO_VSRAM_PROC12_CON2 0x1b8a
    > +#define MT6358_LDO_VSRAM_PROC12_CFG0 0x1b8c
    > +#define MT6358_LDO_VSRAM_PROC12_CFG1 0x1b8e
    > +#define MT6358_LDO_VSRAM_PROC12_OP_EN 0x1b90
    > +#define MT6358_LDO_VSRAM_PROC12_OP_EN_SET 0x1b92
    > +#define MT6358_LDO_VSRAM_PROC12_OP_EN_CLR 0x1b94
    > +#define MT6358_LDO_VSRAM_PROC12_OP_CFG 0x1b96
    > +#define MT6358_LDO_VSRAM_PROC12_OP_CFG_SET 0x1b98
    > +#define MT6358_LDO_VSRAM_PROC12_OP_CFG_CLR 0x1b9a
    > +#define MT6358_LDO_VSRAM_PROC12_CON3 0x1b9c
    > +#define MT6358_LDO_VSRAM_PROC12_CON4 0x1b9e
    > +#define MT6358_LDO_VSRAM_PROC12_CON5 0x1ba0
    > +#define MT6358_LDO_VSRAM_PROC12_DBG0 0x1ba2
    > +#define MT6358_LDO_VSRAM_PROC12_DBG1 0x1ba4
    > +#define MT6358_LDO_VSRAM_OTHERS_CON0 0x1ba6
    > +#define MT6358_LDO_VSRAM_OTHERS_CON2 0x1ba8
    > +#define MT6358_LDO_VSRAM_OTHERS_CFG0 0x1baa
    > +#define MT6358_LDO_VSRAM_OTHERS_CFG1 0x1bac
    > +#define MT6358_LDO_VSRAM_OTHERS_OP_EN 0x1bae
    > +#define MT6358_LDO_VSRAM_OTHERS_OP_EN_SET 0x1bb0
    > +#define MT6358_LDO_VSRAM_OTHERS_OP_EN_CLR 0x1bb2
    > +#define MT6358_LDO_VSRAM_OTHERS_OP_CFG 0x1bb4
    > +#define MT6358_LDO_VSRAM_OTHERS_OP_CFG_SET 0x1bb6
    > +#define MT6358_LDO_VSRAM_OTHERS_OP_CFG_CLR 0x1bb8
    > +#define MT6358_LDO_VSRAM_OTHERS_CON3 0x1bba
    > +#define MT6358_LDO_VSRAM_OTHERS_CON4 0x1bbc
    > +#define MT6358_LDO_VSRAM_OTHERS_CON5 0x1bbe
    > +#define MT6358_LDO_VSRAM_OTHERS_DBG0 0x1bc0
    > +#define MT6358_LDO_VSRAM_OTHERS_DBG1 0x1bc2
    > +#define MT6358_LDO_VSRAM_OTHERS_SSHUB_CON0 0x1bc4
    > +#define MT6358_LDO_VSRAM_OTHERS_SSHUB_CON1 0x1bc6
    > +#define MT6358_LDO_VSRAM_GPU_CON0 0x1bc8
    > +#define MT6358_LDO_VSRAM_GPU_CON2 0x1bca
    > +#define MT6358_LDO_VSRAM_GPU_CFG0 0x1bcc
    > +#define MT6358_LDO_VSRAM_GPU_CFG1 0x1bce
    > +#define MT6358_LDO_VSRAM_GPU_OP_EN 0x1bd0
    > +#define MT6358_LDO_VSRAM_GPU_OP_EN_SET 0x1bd2
    > +#define MT6358_LDO_VSRAM_GPU_OP_EN_CLR 0x1bd4
    > +#define MT6358_LDO_VSRAM_GPU_OP_CFG 0x1bd6
    > +#define MT6358_LDO_VSRAM_GPU_OP_CFG_SET 0x1bd8
    > +#define MT6358_LDO_VSRAM_GPU_OP_CFG_CLR 0x1bda
    > +#define MT6358_LDO_VSRAM_GPU_CON3 0x1bdc
    > +#define MT6358_LDO_VSRAM_GPU_CON4 0x1bde
    > +#define MT6358_LDO_VSRAM_GPU_CON5 0x1be0
    > +#define MT6358_LDO_VSRAM_GPU_DBG0 0x1be2
    > +#define MT6358_LDO_VSRAM_GPU_DBG1 0x1be4
    > +#define MT6358_LDO_VSRAM_R2R_PDN_DIS 0x1be6
    > +#define MT6358_LDO_VSRAM_WDT_DBG0 0x1be8
    > +#define MT6358_LDO_VSRAM_WDT_DBG1 0x1bea
    > +#define MT6358_LDO_GON2_ELR_NUM 0x1bec
    > +#define MT6358_LDO_VSRAM_CON0 0x1bee
    > +#define MT6358_LDO_VSRAM_CON1 0x1bf0
    > +#define MT6358_LDO_VSRAM_CON2 0x1bf2
    > +#define MT6358_LDO_VSRAM_CON3 0x1bf4
    > +#define MT6358_LDO_VSRAM_CON4 0x1bf6
    > +#define MT6358_LDO_GOFF0_DSN_ID 0x1c00
    > +#define MT6358_LDO_GOFF0_DSN_REV0 0x1c02
    > +#define MT6358_LDO_GOFF0_DSN_DBI 0x1c04
    > +#define MT6358_LDO_GOFF0_DSN_DXI 0x1c06
    > +#define MT6358_LDO_VFE28_CON0 0x1c08
    > +#define MT6358_LDO_VFE28_OP_EN 0x1c0a
    > +#define MT6358_LDO_VFE28_OP_EN_SET 0x1c0c
    > +#define MT6358_LDO_VFE28_OP_EN_CLR 0x1c0e
    > +#define MT6358_LDO_VFE28_OP_CFG 0x1c10
    > +#define MT6358_LDO_VFE28_OP_CFG_SET 0x1c12
    > +#define MT6358_LDO_VFE28_OP_CFG_CLR 0x1c14
    > +#define MT6358_LDO_VFE28_CON1 0x1c16
    > +#define MT6358_LDO_VFE28_CON2 0x1c18
    > +#define MT6358_LDO_VFE28_CON3 0x1c1a
    > +#define MT6358_LDO_VRF18_CON0 0x1c1c
    > +#define MT6358_LDO_VRF18_OP_EN 0x1c1e
    > +#define MT6358_LDO_VRF18_OP_EN_SET 0x1c20
    > +#define MT6358_LDO_VRF18_OP_EN_CLR 0x1c22
    > +#define MT6358_LDO_VRF18_OP_CFG 0x1c24
    > +#define MT6358_LDO_VRF18_OP_CFG_SET 0x1c26
    > +#define MT6358_LDO_VRF18_OP_CFG_CLR 0x1c28
    > +#define MT6358_LDO_VRF18_CON1 0x1c2a
    > +#define MT6358_LDO_VRF18_CON2 0x1c2c
    > +#define MT6358_LDO_VRF18_CON3 0x1c2e
    > +#define MT6358_LDO_VRF12_CON0 0x1c30
    > +#define MT6358_LDO_VRF12_OP_EN 0x1c32
    > +#define MT6358_LDO_VRF12_OP_EN_SET 0x1c34
    > +#define MT6358_LDO_VRF12_OP_EN_CLR 0x1c36
    > +#define MT6358_LDO_VRF12_OP_CFG 0x1c38
    > +#define MT6358_LDO_VRF12_OP_CFG_SET 0x1c3a
    > +#define MT6358_LDO_VRF12_OP_CFG_CLR 0x1c3c
    > +#define MT6358_LDO_VRF12_CON1 0x1c3e
    > +#define MT6358_LDO_VRF12_CON2 0x1c40
    > +#define MT6358_LDO_VRF12_CON3 0x1c42
    > +#define MT6358_LDO_VEFUSE_CON0 0x1c44
    > +#define MT6358_LDO_VEFUSE_OP_EN 0x1c46
    > +#define MT6358_LDO_VEFUSE_OP_EN_SET 0x1c48
    > +#define MT6358_LDO_VEFUSE_OP_EN_CLR 0x1c4a
    > +#define MT6358_LDO_VEFUSE_OP_CFG 0x1c4c
    > +#define MT6358_LDO_VEFUSE_OP_CFG_SET 0x1c4e
    > +#define MT6358_LDO_VEFUSE_OP_CFG_CLR 0x1c50
    > +#define MT6358_LDO_VEFUSE_CON1 0x1c52
    > +#define MT6358_LDO_VEFUSE_CON2 0x1c54
    > +#define MT6358_LDO_VEFUSE_CON3 0x1c56
    > +#define MT6358_LDO_VCN18_CON0 0x1c58
    > +#define MT6358_LDO_VCN18_OP_EN 0x1c5a
    > +#define MT6358_LDO_VCN18_OP_EN_SET 0x1c5c
    > +#define MT6358_LDO_VCN18_OP_EN_CLR 0x1c5e
    > +#define MT6358_LDO_VCN18_OP_CFG 0x1c60
    > +#define MT6358_LDO_VCN18_OP_CFG_SET 0x1c62
    > +#define MT6358_LDO_VCN18_OP_CFG_CLR 0x1c64
    > +#define MT6358_LDO_VCN18_CON1 0x1c66
    > +#define MT6358_LDO_VCN18_CON2 0x1c68
    > +#define MT6358_LDO_VCN18_CON3 0x1c6a
    > +#define MT6358_LDO_VCAMA1_CON0 0x1c6c
    > +#define MT6358_LDO_VCAMA1_OP_EN 0x1c6e
    > +#define MT6358_LDO_VCAMA1_OP_EN_SET 0x1c70
    > +#define MT6358_LDO_VCAMA1_OP_EN_CLR 0x1c72
    > +#define MT6358_LDO_VCAMA1_OP_CFG 0x1c74
    > +#define MT6358_LDO_VCAMA1_OP_CFG_SET 0x1c76
    > +#define MT6358_LDO_VCAMA1_OP_CFG_CLR 0x1c78
    > +#define MT6358_LDO_VCAMA1_CON1 0x1c7a
    > +#define MT6358_LDO_VCAMA1_CON2 0x1c7c
    > +#define MT6358_LDO_VCAMA1_CON3 0x1c7e
    > +#define MT6358_LDO_GOFF1_DSN_ID 0x1c80
    > +#define MT6358_LDO_GOFF1_DSN_REV0 0x1c82
    > +#define MT6358_LDO_GOFF1_DSN_DBI 0x1c84
    > +#define MT6358_LDO_GOFF1_DSN_DXI 0x1c86
    > +#define MT6358_LDO_VCAMA2_CON0 0x1c88
    > +#define MT6358_LDO_VCAMA2_OP_EN 0x1c8a
    > +#define MT6358_LDO_VCAMA2_OP_EN_SET 0x1c8c
    > +#define MT6358_LDO_VCAMA2_OP_EN_CLR 0x1c8e
    > +#define MT6358_LDO_VCAMA2_OP_CFG 0x1c90
    > +#define MT6358_LDO_VCAMA2_OP_CFG_SET 0x1c92
    > +#define MT6358_LDO_VCAMA2_OP_CFG_CLR 0x1c94
    > +#define MT6358_LDO_VCAMA2_CON1 0x1c96
    > +#define MT6358_LDO_VCAMA2_CON2 0x1c98
    > +#define MT6358_LDO_VCAMA2_CON3 0x1c9a
    > +#define MT6358_LDO_VCAMD_CON0 0x1c9c
    > +#define MT6358_LDO_VCAMD_OP_EN 0x1c9e
    > +#define MT6358_LDO_VCAMD_OP_EN_SET 0x1ca0
    > +#define MT6358_LDO_VCAMD_OP_EN_CLR 0x1ca2
    > +#define MT6358_LDO_VCAMD_OP_CFG 0x1ca4
    > +#define MT6358_LDO_VCAMD_OP_CFG_SET 0x1ca6
    > +#define MT6358_LDO_VCAMD_OP_CFG_CLR 0x1ca8
    > +#define MT6358_LDO_VCAMD_CON1 0x1caa
    > +#define MT6358_LDO_VCAMD_CON2 0x1cac
    > +#define MT6358_LDO_VCAMD_CON3 0x1cae
    > +#define MT6358_LDO_VCAMIO_CON0 0x1cb0
    > +#define MT6358_LDO_VCAMIO_OP_EN 0x1cb2
    > +#define MT6358_LDO_VCAMIO_OP_EN_SET 0x1cb4
    > +#define MT6358_LDO_VCAMIO_OP_EN_CLR 0x1cb6
    > +#define MT6358_LDO_VCAMIO_OP_CFG 0x1cb8
    > +#define MT6358_LDO_VCAMIO_OP_CFG_SET 0x1cba
    > +#define MT6358_LDO_VCAMIO_OP_CFG_CLR 0x1cbc
    > +#define MT6358_LDO_VCAMIO_CON1 0x1cbe
    > +#define MT6358_LDO_VCAMIO_CON2 0x1cc0
    > +#define MT6358_LDO_VCAMIO_CON3 0x1cc2
    > +#define MT6358_LDO_VMC_CON0 0x1cc4
    > +#define MT6358_LDO_VMC_OP_EN 0x1cc6
    > +#define MT6358_LDO_VMC_OP_EN_SET 0x1cc8
    > +#define MT6358_LDO_VMC_OP_EN_CLR 0x1cca
    > +#define MT6358_LDO_VMC_OP_CFG 0x1ccc
    > +#define MT6358_LDO_VMC_OP_CFG_SET 0x1cce
    > +#define MT6358_LDO_VMC_OP_CFG_CLR 0x1cd0
    > +#define MT6358_LDO_VMC_CON1 0x1cd2
    > +#define MT6358_LDO_VMC_CON2 0x1cd4
    > +#define MT6358_LDO_VMC_CON3 0x1cd6
    > +#define MT6358_LDO_VMCH_CON0 0x1cd8
    > +#define MT6358_LDO_VMCH_OP_EN 0x1cda
    > +#define MT6358_LDO_VMCH_OP_EN_SET 0x1cdc
    > +#define MT6358_LDO_VMCH_OP_EN_CLR 0x1cde
    > +#define MT6358_LDO_VMCH_OP_CFG 0x1ce0
    > +#define MT6358_LDO_VMCH_OP_CFG_SET 0x1ce2
    > +#define MT6358_LDO_VMCH_OP_CFG_CLR 0x1ce4
    > +#define MT6358_LDO_VMCH_CON1 0x1ce6
    > +#define MT6358_LDO_VMCH_CON2 0x1ce8
    > +#define MT6358_LDO_VMCH_CON3 0x1cea
    > +#define MT6358_LDO_GOFF2_DSN_ID 0x1d00
    > +#define MT6358_LDO_GOFF2_DSN_REV0 0x1d02
    > +#define MT6358_LDO_GOFF2_DSN_DBI 0x1d04
    > +#define MT6358_LDO_GOFF2_DSN_DXI 0x1d06
    > +#define MT6358_LDO_VIBR_CON0 0x1d08
    > +#define MT6358_LDO_VIBR_OP_EN 0x1d0a
    > +#define MT6358_LDO_VIBR_OP_EN_SET 0x1d0c
    > +#define MT6358_LDO_VIBR_OP_EN_CLR 0x1d0e
    > +#define MT6358_LDO_VIBR_OP_CFG 0x1d10
    > +#define MT6358_LDO_VIBR_OP_CFG_SET 0x1d12
    > +#define MT6358_LDO_VIBR_OP_CFG_CLR 0x1d14
    > +#define MT6358_LDO_VIBR_CON1 0x1d16
    > +#define MT6358_LDO_VIBR_CON2 0x1d18
    > +#define MT6358_LDO_VIBR_CON3 0x1d1a
    > +#define MT6358_LDO_VCN33_CON0_0 0x1d1c
    > +#define MT6358_LDO_VCN33_OP_EN 0x1d1e
    > +#define MT6358_LDO_VCN33_OP_EN_SET 0x1d20
    > +#define MT6358_LDO_VCN33_OP_EN_CLR 0x1d22
    > +#define MT6358_LDO_VCN33_OP_CFG 0x1d24
    > +#define MT6358_LDO_VCN33_OP_CFG_SET 0x1d26
    > +#define MT6358_LDO_VCN33_OP_CFG_CLR 0x1d28
    > +#define MT6358_LDO_VCN33_CON0_1 0x1d2a
    > +#define MT6358_LDO_VCN33_CON1 0x1d2c
    > +#define MT6358_LDO_VCN33_BT_CON1 MT6358_LDO_VCN33_CON1
    > +#define MT6358_LDO_VCN33_WIFI_CON1 MT6358_LDO_VCN33_CON1
    > +#define MT6358_LDO_VCN33_CON2 0x1d2e
    > +#define MT6358_LDO_VCN33_CON3 0x1d30
    > +#define MT6358_LDO_VLDO28_CON0_0 0x1d32
    > +#define MT6358_LDO_VLDO28_OP_EN 0x1d34
    > +#define MT6358_LDO_VLDO28_OP_EN_SET 0x1d36
    > +#define MT6358_LDO_VLDO28_OP_EN_CLR 0x1d38
    > +#define MT6358_LDO_VLDO28_OP_CFG 0x1d3a
    > +#define MT6358_LDO_VLDO28_OP_CFG_SET 0x1d3c
    > +#define MT6358_LDO_VLDO28_OP_CFG_CLR 0x1d3e
    > +#define MT6358_LDO_VLDO28_CON0_1 0x1d40
    > +#define MT6358_LDO_VLDO28_CON1 0x1d42
    > +#define MT6358_LDO_VLDO28_CON2 0x1d44
    > +#define MT6358_LDO_VLDO28_CON3 0x1d46
    > +#define MT6358_LDO_VSIM1_CON0 0x1d48
    > +#define MT6358_LDO_VSIM1_OP_EN 0x1d4a
    > +#define MT6358_LDO_VSIM1_OP_EN_SET 0x1d4c
    > +#define MT6358_LDO_VSIM1_OP_EN_CLR 0x1d4e
    > +#define MT6358_LDO_VSIM1_OP_CFG 0x1d50
    > +#define MT6358_LDO_VSIM1_OP_CFG_SET 0x1d52
    > +#define MT6358_LDO_VSIM1_OP_CFG_CLR 0x1d54
    > +#define MT6358_LDO_VSIM1_CON1 0x1d56
    > +#define MT6358_LDO_VSIM1_CON2 0x1d58
    > +#define MT6358_LDO_VSIM1_CON3 0x1d5a
    > +#define MT6358_LDO_VSIM2_CON0 0x1d5c
    > +#define MT6358_LDO_VSIM2_OP_EN 0x1d5e
    > +#define MT6358_LDO_VSIM2_OP_EN_SET 0x1d60
    > +#define MT6358_LDO_VSIM2_OP_EN_CLR 0x1d62
    > +#define MT6358_LDO_VSIM2_OP_CFG 0x1d64
    > +#define MT6358_LDO_VSIM2_OP_CFG_SET 0x1d66
    > +#define MT6358_LDO_VSIM2_OP_CFG_CLR 0x1d68
    > +#define MT6358_LDO_VSIM2_CON1 0x1d6a
    > +#define MT6358_LDO_VSIM2_CON2 0x1d6c
    > +#define MT6358_LDO_VSIM2_CON3 0x1d6e
    > +#define MT6358_LDO_VMCH_EINT_SD_CFG 0x1d70
    > +#define MT6358_LDO_VSIM1_EINT_SD_CFG 0x1d72
    > +#define MT6358_LDO_VSIM2_EINT_SD_CFG 0x1d74
    > +#define MT6358_LDO_GOFF2_RSV_CON0 0x1d76
    > +#define MT6358_LDO_GOFF2_RSV_CON1 0x1d78
    > +#define MT6358_LDO_GOFF3_DSN_ID 0x1d80
    > +#define MT6358_LDO_GOFF3_DSN_REV0 0x1d82
    > +#define MT6358_LDO_GOFF3_DSN_DBI 0x1d84
    > +#define MT6358_LDO_GOFF3_DSN_DXI 0x1d86
    > +#define MT6358_LDO_VCN28_CON0 0x1d88
    > +#define MT6358_LDO_VCN28_OP_EN 0x1d8a
    > +#define MT6358_LDO_VCN28_OP_EN_SET 0x1d8c
    > +#define MT6358_LDO_VCN28_OP_EN_CLR 0x1d8e
    > +#define MT6358_LDO_VCN28_OP_CFG 0x1d90
    > +#define MT6358_LDO_VCN28_OP_CFG_SET 0x1d92
    > +#define MT6358_LDO_VCN28_OP_CFG_CLR 0x1d94
    > +#define MT6358_LDO_VCN28_CON1 0x1d96
    > +#define MT6358_LDO_VCN28_CON2 0x1d98
    > +#define MT6358_LDO_VCN28_CON3 0x1d9a
    > +#define MT6358_VRTC28_CON0 0x1d9c
    > +#define MT6358_LDO_VBIF28_CON0 0x1d9e
    > +#define MT6358_LDO_VBIF28_OP_EN 0x1da0
    > +#define MT6358_LDO_VBIF28_OP_EN_SET 0x1da2
    > +#define MT6358_LDO_VBIF28_OP_EN_CLR 0x1da4
    > +#define MT6358_LDO_VBIF28_OP_CFG 0x1da6
    > +#define MT6358_LDO_VBIF28_OP_CFG_SET 0x1da8
    > +#define MT6358_LDO_VBIF28_OP_CFG_CLR 0x1daa
    > +#define MT6358_LDO_VBIF28_CON1 0x1dac
    > +#define MT6358_LDO_VBIF28_CON2 0x1dae
    > +#define MT6358_LDO_VBIF28_CON3 0x1db0
    > +#define MT6358_LDO_GOFF3_RSV_CON0 0x1db2
    > +#define MT6358_LDO_GOFF3_RSV_CON1 0x1db4
    > +#define MT6358_LDO_ANA0_DSN_ID 0x1e00
    > +#define MT6358_LDO_ANA0_DSN_REV0 0x1e02
    > +#define MT6358_LDO_ANA0_DSN_DBI 0x1e04
    > +#define MT6358_LDO_ANA0_DSN_FPI 0x1e06
    > +#define MT6358_VCAMA1_ANA_CON0 0x1e08
    > +#define MT6358_VCAMA1_ANA_CON1 0x1e0a
    > +#define MT6358_VCAMA2_ANA_CON0 0x1e0c
    > +#define MT6358_VCAMA2_ANA_CON1 0x1e0e
    > +#define MT6358_VFE28_ANA_CON0 0x1e10
    > +#define MT6358_VFE28_ANA_CON1 0x1e12
    > +#define MT6358_VCN28_ANA_CON0 0x1e14
    > +#define MT6358_VCN28_ANA_CON1 0x1e16
    > +#define MT6358_VBIF28_ANA_CON0 0x1e18
    > +#define MT6358_VBIF28_ANA_CON1 0x1e1a
    > +#define MT6358_VAUD28_ANA_CON0 0x1e1c
    > +#define MT6358_VAUD28_ANA_CON1 0x1e1e
    > +#define MT6358_VAUX18_ANA_CON0 0x1e20
    > +#define MT6358_VAUX18_ANA_CON1 0x1e22
    > +#define MT6358_VXO22_ANA_CON0 0x1e24
    > +#define MT6358_VXO22_ANA_CON1 0x1e26
    > +#define MT6358_VCN33_ANA_CON0 0x1e28
    > +#define MT6358_VCN33_ANA_CON1 0x1e2a
    > +#define MT6358_VSIM1_ANA_CON0 0x1e2c
    > +#define MT6358_VSIM1_ANA_CON1 0x1e2e
    > +#define MT6358_VSIM2_ANA_CON0 0x1e30
    > +#define MT6358_VSIM2_ANA_CON1 0x1e32
    > +#define MT6358_VUSB_ANA_CON0 0x1e34
    > +#define MT6358_VUSB_ANA_CON1 0x1e36
    > +#define MT6358_VEMC_ANA_CON0 0x1e38
    > +#define MT6358_VEMC_ANA_CON1 0x1e3a
    > +#define MT6358_VLDO28_ANA_CON0 0x1e3c
    > +#define MT6358_VLDO28_ANA_CON1 0x1e3e
    > +#define MT6358_VIO28_ANA_CON0 0x1e40
    > +#define MT6358_VIO28_ANA_CON1 0x1e42
    > +#define MT6358_VIBR_ANA_CON0 0x1e44
    > +#define MT6358_VIBR_ANA_CON1 0x1e46
    > +#define MT6358_VMCH_ANA_CON0 0x1e48
    > +#define MT6358_VMCH_ANA_CON1 0x1e4a
    > +#define MT6358_VMC_ANA_CON0 0x1e4c
    > +#define MT6358_VMC_ANA_CON1 0x1e4e
    > +#define MT6358_LDO_ANA0_ELR_NUM 0x1e50
    > +#define MT6358_VCAMA1_ELR_0 0x1e52
    > +#define MT6358_VCAMA2_ELR_0 0x1e54
    > +#define MT6358_VFE28_ELR_0 0x1e56
    > +#define MT6358_VCN28_ELR_0 0x1e58
    > +#define MT6358_VBIF28_ELR_0 0x1e5a
    > +#define MT6358_VAUD28_ELR_0 0x1e5c
    > +#define MT6358_VAUX18_ELR_0 0x1e5e
    > +#define MT6358_VXO22_ELR_0 0x1e60
    > +#define MT6358_VCN33_ELR_0 0x1e62
    > +#define MT6358_VSIM1_ELR_0 0x1e64
    > +#define MT6358_VSIM2_ELR_0 0x1e66
    > +#define MT6358_VUSB_ELR_0 0x1e68
    > +#define MT6358_VEMC_ELR_0 0x1e6a
    > +#define MT6358_VLDO28_ELR_0 0x1e6c
    > +#define MT6358_VIO28_ELR_0 0x1e6e
    > +#define MT6358_VIBR_ELR_0 0x1e70
    > +#define MT6358_VMCH_ELR_0 0x1e72
    > +#define MT6358_VMC_ELR_0 0x1e74
    > +#define MT6358_LDO_ANA1_DSN_ID 0x1e80
    > +#define MT6358_LDO_ANA1_DSN_REV0 0x1e82
    > +#define MT6358_LDO_ANA1_DSN_DBI 0x1e84
    > +#define MT6358_LDO_ANA1_DSN_FPI 0x1e86
    > +#define MT6358_VRF18_ANA_CON0 0x1e88
    > +#define MT6358_VRF18_ANA_CON1 0x1e8a
    > +#define MT6358_VCN18_ANA_CON0 0x1e8c
    > +#define MT6358_VCN18_ANA_CON1 0x1e8e
    > +#define MT6358_VCAMIO_ANA_CON0 0x1e90
    > +#define MT6358_VCAMIO_ANA_CON1 0x1e92
    > +#define MT6358_VIO18_ANA_CON0 0x1e94
    > +#define MT6358_VIO18_ANA_CON1 0x1e96
    > +#define MT6358_VEFUSE_ANA_CON0 0x1e98
    > +#define MT6358_VEFUSE_ANA_CON1 0x1e9a
    > +#define MT6358_VRF12_ANA_CON0 0x1e9c
    > +#define MT6358_VRF12_ANA_CON1 0x1e9e
    > +#define MT6358_VSRAM_PROC11_ANA_CON0 0x1ea0
    > +#define MT6358_VSRAM_PROC11_ANA_CON1 0x1ea2
    > +#define MT6358_VSRAM_PROC12_ANA_CON0 0x1ea4
    > +#define MT6358_VSRAM_OTHERS_ANA_CON0 0x1ea6
    > +#define MT6358_VSRAM_GPU_ANA_CON0 0x1ea8
    > +#define MT6358_VDRAM2_ANA_CON0 0x1eaa
    > +#define MT6358_VDRAM2_ANA_CON1 0x1eac
    > +#define MT6358_VCAMD_ANA_CON0 0x1eae
    > +#define MT6358_VCAMD_ANA_CON1 0x1eb0
    > +#define MT6358_VA12_ANA_CON0 0x1eb2
    > +#define MT6358_VA12_ANA_CON1 0x1eb4
    > +#define MT6358_LDO_ANA1_ELR_NUM 0x1eb6
    > +#define MT6358_VRF18_ELR_0 0x1eb8
    > +#define MT6358_VCN18_ELR_0 0x1eba
    > +#define MT6358_VCAMIO_ELR_0 0x1ebc
    > +#define MT6358_VIO18_ELR_0 0x1ebe
    > +#define MT6358_VEFUSE_ELR_0 0x1ec0
    > +#define MT6358_VRF12_ELR_0 0x1ec2
    > +#define MT6358_VDRAM2_ELR_0 0x1ec4
    > +#define MT6358_VCAMD_ELR_0 0x1ec6
    > +#define MT6358_VA12_ELR_0 0x1ec8
    > +#define MT6358_VRTC28_ELR_0 0x1eca
    > +#define MT6358_DUMMYLOAD_DSN_ID 0x1f00
    > +#define MT6358_DUMMYLOAD_DSN_REV0 0x1f02
    > +#define MT6358_DUMMYLOAD_DSN_DBI 0x1f04
    > +#define MT6358_DUMMYLOAD_DSN_FPI 0x1f06
    > +#define MT6358_DUMMYLOAD_ANA_CON0 0x1f08
    > +#define MT6358_ISINK0_CON1 0x1f0a
    > +#define MT6358_ISINK1_CON1 0x1f0c
    > +#define MT6358_ISINK_ANA1_SMPL 0x1f0e
    > +#define MT6358_ISINK_EN_CTRL_SMPL 0x1f10
    > +#define MT6358_DUMMYLOAD_ELR_NUM 0x1f12
    > +#define MT6358_DUMMYLOAD_ELR_0 0x1f14
    > +#define MT6358_AUD_TOP_ID 0x2200
    > +#define MT6358_AUD_TOP_REV0 0x2202
    > +#define MT6358_AUD_TOP_DBI 0x2204
    > +#define MT6358_AUD_TOP_DXI 0x2206
    > +#define MT6358_AUD_TOP_CKPDN_TPM0 0x2208
    > +#define MT6358_AUD_TOP_CKPDN_TPM1 0x220a
    > +#define MT6358_AUD_TOP_CKPDN_CON0 0x220c
    > +#define MT6358_AUD_TOP_CKPDN_CON0_SET 0x220e
    > +#define MT6358_AUD_TOP_CKPDN_CON0_CLR 0x2210
    > +#define MT6358_AUD_TOP_CKSEL_CON0 0x2212
    > +#define MT6358_AUD_TOP_CKSEL_CON0_SET 0x2214
    > +#define MT6358_AUD_TOP_CKSEL_CON0_CLR 0x2216
    > +#define MT6358_AUD_TOP_CKTST_CON0 0x2218
    > +#define MT6358_AUD_TOP_CLK_HWEN_CON0 0x221a
    > +#define MT6358_AUD_TOP_CLK_HWEN_CON0_SET 0x221c
    > +#define MT6358_AUD_TOP_CLK_HWEN_CON0_CLR 0x221e
    > +#define MT6358_AUD_TOP_RST_CON0 0x2220
    > +#define MT6358_AUD_TOP_RST_CON0_SET 0x2222
    > +#define MT6358_AUD_TOP_RST_CON0_CLR 0x2224
    > +#define MT6358_AUD_TOP_RST_BANK_CON0 0x2226
    > +#define MT6358_AUD_TOP_INT_CON0 0x2228
    > +#define MT6358_AUD_TOP_INT_CON0_SET 0x222a
    > +#define MT6358_AUD_TOP_INT_CON0_CLR 0x222c
    > +#define MT6358_AUD_TOP_INT_MASK_CON0 0x222e
    > +#define MT6358_AUD_TOP_INT_MASK_CON0_SET 0x2230
    > +#define MT6358_AUD_TOP_INT_MASK_CON0_CLR 0x2232
    > +#define MT6358_AUD_TOP_INT_STATUS0 0x2234
    > +#define MT6358_AUD_TOP_INT_RAW_STATUS0 0x2236
    > +#define MT6358_AUD_TOP_INT_MISC_CON0 0x2238
    > +#define MT6358_AUDNCP_CLKDIV_CON0 0x223a
    > +#define MT6358_AUDNCP_CLKDIV_CON1 0x223c
    > +#define MT6358_AUDNCP_CLKDIV_CON2 0x223e
    > +#define MT6358_AUDNCP_CLKDIV_CON3 0x2240
    > +#define MT6358_AUDNCP_CLKDIV_CON4 0x2242
    > +#define MT6358_AUD_TOP_MON_CON0 0x2244
    > +#define MT6358_AUDIO_DIG_DSN_ID 0x2280
    > +#define MT6358_AUDIO_DIG_DSN_REV0 0x2282
    > +#define MT6358_AUDIO_DIG_DSN_DBI 0x2284
    > +#define MT6358_AUDIO_DIG_DSN_DXI 0x2286
    > +#define MT6358_AFE_UL_DL_CON0 0x2288
    > +#define MT6358_AFE_DL_SRC2_CON0_L 0x228a
    > +#define MT6358_AFE_UL_SRC_CON0_H 0x228c
    > +#define MT6358_AFE_UL_SRC_CON0_L 0x228e
    > +#define MT6358_AFE_TOP_CON0 0x2290
    > +#define MT6358_AUDIO_TOP_CON0 0x2292
    > +#define MT6358_AFE_MON_DEBUG0 0x2294
    > +#define MT6358_AFUNC_AUD_CON0 0x2296
    > +#define MT6358_AFUNC_AUD_CON1 0x2298
    > +#define MT6358_AFUNC_AUD_CON2 0x229a
    > +#define MT6358_AFUNC_AUD_CON3 0x229c
    > +#define MT6358_AFUNC_AUD_CON4 0x229e
    > +#define MT6358_AFUNC_AUD_CON5 0x22a0
    > +#define MT6358_AFUNC_AUD_CON6 0x22a2
    > +#define MT6358_AFUNC_AUD_MON0 0x22a4
    > +#define MT6358_AUDRC_TUNE_MON0 0x22a6
    > +#define MT6358_AFE_ADDA_MTKAIF_FIFO_CFG0 0x22a8
    > +#define MT6358_AFE_ADDA_MTKAIF_FIFO_LOG_MON1 0x22aa
    > +#define MT6358_AFE_ADDA_MTKAIF_MON0 0x22ac
    > +#define MT6358_AFE_ADDA_MTKAIF_MON1 0x22ae
    > +#define MT6358_AFE_ADDA_MTKAIF_MON2 0x22b0
    > +#define MT6358_AFE_ADDA_MTKAIF_MON3 0x22b2
    > +#define MT6358_AFE_ADDA_MTKAIF_CFG0 0x22b4
    > +#define MT6358_AFE_ADDA_MTKAIF_RX_CFG0 0x22b6
    > +#define MT6358_AFE_ADDA_MTKAIF_RX_CFG1 0x22b8
    > +#define MT6358_AFE_ADDA_MTKAIF_RX_CFG2 0x22ba
    > +#define MT6358_AFE_ADDA_MTKAIF_RX_CFG3 0x22bc
    > +#define MT6358_AFE_ADDA_MTKAIF_TX_CFG1 0x22be
    > +#define MT6358_AFE_SGEN_CFG0 0x22c0
    > +#define MT6358_AFE_SGEN_CFG1 0x22c2
    > +#define MT6358_AFE_ADC_ASYNC_FIFO_CFG 0x22c4
    > +#define MT6358_AFE_DCCLK_CFG0 0x22c6
    > +#define MT6358_AFE_DCCLK_CFG1 0x22c8
    > +#define MT6358_AUDIO_DIG_CFG 0x22ca
    > +#define MT6358_AFE_AUD_PAD_TOP 0x22cc
    > +#define MT6358_AFE_AUD_PAD_TOP_MON 0x22ce
    > +#define MT6358_AFE_AUD_PAD_TOP_MON1 0x22d0
    > +#define MT6358_AFE_DL_NLE_CFG 0x22d2
    > +#define MT6358_AFE_DL_NLE_MON 0x22d4
    > +#define MT6358_AFE_CG_EN_MON 0x22d6
    > +#define MT6358_AUDIO_DIG_2ND_DSN_ID 0x2300
    > +#define MT6358_AUDIO_DIG_2ND_DSN_REV0 0x2302
    > +#define MT6358_AUDIO_DIG_2ND_DSN_DBI 0x2304
    > +#define MT6358_AUDIO_DIG_2ND_DSN_DXI 0x2306
    > +#define MT6358_AFE_PMIC_NEWIF_CFG3 0x2308
    > +#define MT6358_AFE_VOW_TOP 0x230a
    > +#define MT6358_AFE_VOW_CFG0 0x230c
    > +#define MT6358_AFE_VOW_CFG1 0x230e
    > +#define MT6358_AFE_VOW_CFG2 0x2310
    > +#define MT6358_AFE_VOW_CFG3 0x2312
    > +#define MT6358_AFE_VOW_CFG4 0x2314
    > +#define MT6358_AFE_VOW_CFG5 0x2316
    > +#define MT6358_AFE_VOW_CFG6 0x2318
    > +#define MT6358_AFE_VOW_MON0 0x231a
    > +#define MT6358_AFE_VOW_MON1 0x231c
    > +#define MT6358_AFE_VOW_MON2 0x231e
    > +#define MT6358_AFE_VOW_MON3 0x2320
    > +#define MT6358_AFE_VOW_MON4 0x2322
    > +#define MT6358_AFE_VOW_MON5 0x2324
    > +#define MT6358_AFE_VOW_SN_INI_CFG 0x2326
    > +#define MT6358_AFE_VOW_TGEN_CFG0 0x2328
    > +#define MT6358_AFE_VOW_POSDIV_CFG0 0x232a
    > +#define MT6358_AFE_VOW_HPF_CFG0 0x232c
    > +#define MT6358_AFE_VOW_PERIODIC_CFG0 0x232e
    > +#define MT6358_AFE_VOW_PERIODIC_CFG1 0x2330
    > +#define MT6358_AFE_VOW_PERIODIC_CFG2 0x2332
    > +#define MT6358_AFE_VOW_PERIODIC_CFG3 0x2334
    > +#define MT6358_AFE_VOW_PERIODIC_CFG4 0x2336
    > +#define MT6358_AFE_VOW_PERIODIC_CFG5 0x2338
    > +#define MT6358_AFE_VOW_PERIODIC_CFG6 0x233a
    > +#define MT6358_AFE_VOW_PERIODIC_CFG7 0x233c
    > +#define MT6358_AFE_VOW_PERIODIC_CFG8 0x233e
    > +#define MT6358_AFE_VOW_PERIODIC_CFG9 0x2340
    > +#define MT6358_AFE_VOW_PERIODIC_CFG10 0x2342
    > +#define MT6358_AFE_VOW_PERIODIC_CFG11 0x2344
    > +#define MT6358_AFE_VOW_PERIODIC_CFG12 0x2346
    > +#define MT6358_AFE_VOW_PERIODIC_CFG13 0x2348
    > +#define MT6358_AFE_VOW_PERIODIC_CFG14 0x234a
    > +#define MT6358_AFE_VOW_PERIODIC_CFG15 0x234c
    > +#define MT6358_AFE_VOW_PERIODIC_CFG16 0x234e
    > +#define MT6358_AFE_VOW_PERIODIC_CFG17 0x2350
    > +#define MT6358_AFE_VOW_PERIODIC_CFG18 0x2352
    > +#define MT6358_AFE_VOW_PERIODIC_CFG19 0x2354
    > +#define MT6358_AFE_VOW_PERIODIC_CFG20 0x2356
    > +#define MT6358_AFE_VOW_PERIODIC_CFG21 0x2358
    > +#define MT6358_AFE_VOW_PERIODIC_CFG22 0x235a
    > +#define MT6358_AFE_VOW_PERIODIC_CFG23 0x235c
    > +#define MT6358_AFE_VOW_PERIODIC_MON0 0x235e
    > +#define MT6358_AFE_VOW_PERIODIC_MON1 0x2360
    > +#define MT6358_AUDENC_DSN_ID 0x2380
    > +#define MT6358_AUDENC_DSN_REV0 0x2382
    > +#define MT6358_AUDENC_DSN_DBI 0x2384
    > +#define MT6358_AUDENC_DSN_FPI 0x2386
    > +#define MT6358_AUDENC_ANA_CON0 0x2388
    > +#define MT6358_AUDENC_ANA_CON1 0x238a
    > +#define MT6358_AUDENC_ANA_CON2 0x238c
    > +#define MT6358_AUDENC_ANA_CON3 0x238e
    > +#define MT6358_AUDENC_ANA_CON4 0x2390
    > +#define MT6358_AUDENC_ANA_CON5 0x2392
    > +#define MT6358_AUDENC_ANA_CON6 0x2394
    > +#define MT6358_AUDENC_ANA_CON7 0x2396
    > +#define MT6358_AUDENC_ANA_CON8 0x2398
    > +#define MT6358_AUDENC_ANA_CON9 0x239a
    > +#define MT6358_AUDENC_ANA_CON10 0x239c
    > +#define MT6358_AUDENC_ANA_CON11 0x239e
    > +#define MT6358_AUDENC_ANA_CON12 0x23a0
    > +#define MT6358_AUDDEC_DSN_ID 0x2400
    > +#define MT6358_AUDDEC_DSN_REV0 0x2402
    > +#define MT6358_AUDDEC_DSN_DBI 0x2404
    > +#define MT6358_AUDDEC_DSN_FPI 0x2406
    > +#define MT6358_AUDDEC_ANA_CON0 0x2408
    > +#define MT6358_AUDDEC_ANA_CON1 0x240a
    > +#define MT6358_AUDDEC_ANA_CON2 0x240c
    > +#define MT6358_AUDDEC_ANA_CON3 0x240e
    > +#define MT6358_AUDDEC_ANA_CON4 0x2410
    > +#define MT6358_AUDDEC_ANA_CON5 0x2412
    > +#define MT6358_AUDDEC_ANA_CON6 0x2414
    > +#define MT6358_AUDDEC_ANA_CON7 0x2416
    > +#define MT6358_AUDDEC_ANA_CON8 0x2418
    > +#define MT6358_AUDDEC_ANA_CON9 0x241a
    > +#define MT6358_AUDDEC_ANA_CON10 0x241c
    > +#define MT6358_AUDDEC_ANA_CON11 0x241e
    > +#define MT6358_AUDDEC_ANA_CON12 0x2420
    > +#define MT6358_AUDDEC_ANA_CON13 0x2422
    > +#define MT6358_AUDDEC_ANA_CON14 0x2424
    > +#define MT6358_AUDDEC_ANA_CON15 0x2426
    > +#define MT6358_AUDDEC_ELR_NUM 0x2428
    > +#define MT6358_AUDDEC_ELR_0 0x242a
    > +#define MT6358_AUDZCD_DSN_ID 0x2480
    > +#define MT6358_AUDZCD_DSN_REV0 0x2482
    > +#define MT6358_AUDZCD_DSN_DBI 0x2484
    > +#define MT6358_AUDZCD_DSN_FPI 0x2486
    > +#define MT6358_ZCD_CON0 0x2488
    > +#define MT6358_ZCD_CON1 0x248a
    > +#define MT6358_ZCD_CON2 0x248c
    > +#define MT6358_ZCD_CON3 0x248e
    > +#define MT6358_ZCD_CON4 0x2490
    > +#define MT6358_ZCD_CON5 0x2492
    > +#define MT6358_ACCDET_DSN_DIG_ID 0x2500
    > +#define MT6358_ACCDET_DSN_DIG_REV0 0x2502
    > +#define MT6358_ACCDET_DSN_DBI 0x2504
    > +#define MT6358_ACCDET_DSN_FPI 0x2506
    > +#define MT6358_ACCDET_CON0 0x2508
    > +#define MT6358_ACCDET_CON1 0x250a
    > +#define MT6358_ACCDET_CON2 0x250c
    > +#define MT6358_ACCDET_CON3 0x250e
    > +#define MT6358_ACCDET_CON4 0x2510
    > +#define MT6358_ACCDET_CON5 0x2512
    > +#define MT6358_ACCDET_CON6 0x2514
    > +#define MT6358_ACCDET_CON7 0x2516
    > +#define MT6358_ACCDET_CON8 0x2518
    > +#define MT6358_ACCDET_CON9 0x251a
    > +#define MT6358_ACCDET_CON10 0x251c
    > +#define MT6358_ACCDET_CON11 0x251e
    > +#define MT6358_ACCDET_CON12 0x2520
    > +#define MT6358_ACCDET_CON13 0x2522
    > +#define MT6358_ACCDET_CON14 0x2524
    > +#define MT6358_ACCDET_CON15 0x2526
    > +#define MT6358_ACCDET_CON16 0x2528
    > +#define MT6358_ACCDET_CON17 0x252a
    > +#define MT6358_ACCDET_CON18 0x252c
    > +#define MT6358_ACCDET_CON19 0x252e
    > +#define MT6358_ACCDET_CON20 0x2530
    > +#define MT6358_ACCDET_CON21 0x2532
    > +#define MT6358_ACCDET_CON22 0x2534
    > +#define MT6358_ACCDET_CON23 0x2536
    > +#define MT6358_ACCDET_CON24 0x2538
    > +#define MT6358_ACCDET_CON25 0x253a
    > +#define MT6358_ACCDET_CON26 0x253c
    > +#define MT6358_ACCDET_CON27 0x253e
    > +#define MT6358_ACCDET_CON28 0x2540
    > +
    > +#endif /* __MFD_MT6358_REGISTERS_H__ */
    > diff --git a/include/linux/mfd/mt6397/core.h b/include/linux/mfd/mt6397/core.h
    > index ad27d19..92eac33 100644
    > --- a/include/linux/mfd/mt6397/core.h
    > +++ b/include/linux/mfd/mt6397/core.h
    > @@ -19,6 +19,7 @@
    >
    > enum chip_id {
    > MT6323_CID_CODE = 0x23,
    > + MT6358_CID_CODE = 0x20,
    > MT6391_CID_CODE = 0x91,
    > MT6397_CID_CODE = 0x97,
    > };
    > @@ -72,8 +73,10 @@ struct mt6397_chip {
    > u16 int_con[2];
    > u16 int_status[2];
    > u16 chip_id;
    > + void *irq_data;
    > };
    >
    > +int mt6358_irq_init(struct mt6397_chip *chip);
    > int mt6397_irq_init(struct mt6397_chip *mt6397);
    >
    > #endif /* __MFD_MT6397_CORE_H__ */

    > --
    > 1.9.1
    >

    \
     
     \ /
      Last update: 2019-01-31 04:57    [W:8.444 / U:0.052 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site