Message ID | 1548839891-20932-5-git-send-email-hsin-hsiung.wang@mediatek.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Add Support for MediaTek PMIC MT6358 MFD Core and Regulator | expand |
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 >
Hi Pi-Hsun, On Thu, 2019-01-31 at 11:56 +0800, Pi-Hsun Shih wrote: > 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 ... > > +static const struct mfd_cell mt6358_devs[] = { > > + { > > + .name = "mt6358-regulator", > > + .of_compatible = "mediatek,mt6358-regulator" > > + }, { > > + .name = "mt6397-rtc", > > Should this be "mt6358-rtc"? Because MT6358 rtc uses the same rtc driver as MT6397, the name should be "mt6397-rtc" for rtc driver probe. Thanks a lot. > > + .num_resources = ARRAY_SIZE(mt6358_rtc_resources), > > + .resources = mt6358_rtc_resources, > > + .of_compatible = "mediatek,mt6358-rtc", > > + }, { > > + .name = "mt6358-sound", > > + .of_compatible = "mediatek,mt6358-sound" > > + }, > > +}; ... > > -- > > 1.9.1 > >
On Thu, 31 Jan 2019, Pi-Hsun Shih wrote: > 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 [100's (hundreds) of lines of code cut] > > +static const struct mfd_cell mt6358_devs[] = { > > + { > > + .name = "mt6358-regulator", > > + .of_compatible = "mediatek,mt6358-regulator" > > + }, { > > + .name = "mt6397-rtc", > > Should this be "mt6358-rtc"? [1000's (thousands) of lines of code cut] When replying to a patch, especially one as large as this, you should cut all of the irrelevant quotes. Put another way, you should only quote what you are replying to, and maybe a small section before/after to keep the context.
Thomas, et al., Please could you take a look at this? I need some IRQ related guidance. TIA. On Wed, 30 Jan 2019, Hsin-Hsiung Wang 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), > +}; What is a 'top' IRQ? > +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; > +} This function is going to need some comments. Why do you start at LDO instead of the top entry, BUCK? > +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; > +} I see that you're doing your own caching operations. Is that required? I think I'm going to stop here and as for some IRQ guy's input on this. > +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", > + .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__ */
Hi Lee, On 07/02/2019 09:34, Lee Jones wrote: > Thomas, et al., > > Please could you take a look at this? > > I need some IRQ related guidance. TIA. > > On Wed, 30 Jan 2019, Hsin-Hsiung Wang 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), >> +}; > > What is a 'top' IRQ? > >> +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; >> +} > > This function is going to need some comments. Why do you start at LDO > instead of the top entry, BUCK? It also begs the question: why isn't that directly associated to the irq_data structure? Something is fishy here. In general, if you have to iterate over anything, you're likely to be doing the wrong thing. > >> +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; >> +} > > I see that you're doing your own caching operations. Is that > required? I think I'm going to stop here and as for some IRQ guy's > input on this. Dunno either. I thought that's what regmap was for? > >> +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; I really wish you kept the symbol "irq_data" for something that is a struct irq_data. This is making the code pointlessly obfuscated. >> + >> + for (i = 0; i < irq_data->num_pmic_irqs; i++) { >> + if (irq_data->enable_hwirq[i] == >> + irq_data->cache_hwirq[i]) >> + continue; Please explain what you are trying to do here. The unlock operation is supposed to affect exactly one interrupt. Instead, you seem to deal with a bunch of them at once. Operations are supposed to happen on the "leaf" IRQs, not on the multiplexing interrupt. Also, the whole cache thing seems pretty pointless. Why isn't regmap doing that for you? >> + >> + 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; >> +} Why isn't this a normal chained irq flow, instead of a homegrown irq handler? Is that because this is a threaded handler? >> + >> +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); Why is that decided at probe time, from kernel space? >> + return ret; >> +} Anyway, I've stopped here. This definitely needs clarification. Thanks, M.
On Thu, Feb 07, 2019 at 10:04:50AM +0000, Marc Zyngier wrote: > On 07/02/2019 09:34, Lee Jones wrote: > >> +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), > >> +}; > > What is a 'top' IRQ? It looks like it's an intermediate parent IRQ controller; that's quite a common design for MFDs on slow buses to cut down on the number of status registers to poll. IIRC there at least used to be some framework reason for not using normal chained interrupts for these but I can't remember it any more - possibly something to do with threaded handlers. This is all looking very famililar, I suspect it's based on other drivers dating back years rather than doing anything original. There's certainly a bunch of other drivers with very similar patterns in tree, this doesn't look like it's got any problems over what most similar drivers are doing. The patterns all predate drivers/irqchip and a lot of them will come from me. > >> +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; > >> +} > > I see that you're doing your own caching operations. Is that > > required? I think I'm going to stop here and as for some IRQ guy's > > input on this. > Dunno either. I thought that's what regmap was for? IIRC from when I wrote drivers for chips like this these operations are called with interrupts disabled so you can't write to interrupt driven buses so you need to cache the write and flush in sync_unlock(). You can't do this with regmap as it stands since on a device that can't be accessed with interrupts disabled you'd need to disable the writes before going into the interrupts off section and there's a risk that having the device cache disabled would disrupt some other function on the chip that was expecting writes to get posted immediately. It would be possible to add per-register cache only behaviour but someone would need to do that and it's not clear that it's worth the effort, especially since for slow buses we currently lock the entire regmap including the cache with mutexes so you can't actually access the cache with interrupts off at the minute. > >> + for (i = 0; i < irq_data->num_pmic_irqs; i++) { > >> + if (irq_data->enable_hwirq[i] == > >> + irq_data->cache_hwirq[i]) > >> + continue; > Please explain what you are trying to do here. The unlock operation is > supposed to affect exactly one interrupt. Instead, you seem to deal with > a bunch of them at once. Operations are supposed to happen on the "leaf" > IRQs, not on the multiplexing interrupt. IIRC it was done this way because it wasn't altogether clear if operations on multiple interrupts could ever be batched or not and given that we're dealing with slow buses the cost of the loop is negligable. > Also, the whole cache thing seems pretty pointless. Why isn't regmap > doing that for you? See above. > >> + 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; > >> +} > Why isn't this a normal chained irq flow, instead of a homegrown irq > handler? Is that because this is a threaded handler? I think that's it but like I say I can't remember clearly any more, it's been a decade. > >> + 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); > Why is that decided at probe time, from kernel space? IIRC it's due to it being the main interrupt for the device and there being at some point issues with this getting propagated to parent interrupts so wake just got turned on all the time for the parent and we relied on controlling the children. Making things be proper chained interrupt controllers would solve that I think.
Hi, A few comments inline. On a general note I agree with others that this code would benefit from more comments. On Wed, Jan 30, 2019 at 05:18:09PM +0800, Hsin-Hsiung Wang 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) why 'parsing'? IIUC the 'top's are interrupt groups for different functionalities. Could we get rid of the 'top' terminology in most of the code and just call it irq_grp or similar? Would be less obfuscated IMO. > +{ > + 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; enable_hwirq should be boolean or - probably better - a bitmap (less memory usage and no need for dynamic allocation). > +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, use BIT() > +static void mt6358_irq_sp_handler(struct mt6397_chip *chip, > + unsigned int top_gp) > +{ > + unsigned int sta_reg, int_status = 0; initialization of int_status not needed. nit: consider changing 'int_status' to just 'status' or 'irq_status' > + 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++) { s/16/MT6358_REG_WIDTH/ > + if ((int_status & BIT(j)) == 0) if (!(int_status & BIT(j))) > + 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; initialization not needed > + 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; > +} Cheers Matthias
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", + .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__ */
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