blob: 75e07e1de31e8df136ec5d74a55901c6ade8d72a [file] [log] [blame]
/* SPDX-License-Identifier: GPL-2.0-or-later */
/* Copyright (C) 2018 ROHM Semiconductors */
#ifndef BD718XX_H_
#define BD718XX_H_
#define BD718XX_REGULATOR_DRIVER "bd718x7_regulator"
enum {
ROHM_CHIP_TYPE_BD71837 = 0,
ROHM_CHIP_TYPE_BD71847,
ROHM_CHIP_TYPE_BD70528,
ROHM_CHIP_TYPE_AMOUNT
};
enum {
BD718XX_REV = 0x00,
BD718XX_SWRESET = 0x01,
BD718XX_I2C_DEV = 0x02,
BD718XX_PWRCTRL0 = 0x03,
BD718XX_PWRCTRL1 = 0x04,
BD718XX_BUCK1_CTRL = 0x05,
BD718XX_BUCK2_CTRL = 0x06,
BD71837_BUCK3_CTRL = 0x07,
BD71837_BUCK4_CTRL = 0x08,
BD718XX_1ST_NODVS_BUCK_CTRL = 0x09,
BD718XX_2ND_NODVS_BUCK_CTRL = 0x0a,
BD718XX_3RD_NODVS_BUCK_CTRL = 0x0b,
BD718XX_4TH_NODVS_BUCK_CTRL = 0x0c,
BD718XX_BUCK1_VOLT_RUN = 0x0d,
BD718XX_BUCK1_VOLT_IDLE = 0x0e,
BD718XX_BUCK1_VOLT_SUSP = 0x0f,
BD718XX_BUCK2_VOLT_RUN = 0x10,
BD718XX_BUCK2_VOLT_IDLE = 0x11,
BD71837_BUCK3_VOLT_RUN = 0x12,
BD71837_BUCK4_VOLT_RUN = 0x13,
BD718XX_1ST_NODVS_BUCK_VOLT = 0x14,
BD718XX_2ND_NODVS_BUCK_VOLT = 0x15,
BD718XX_3RD_NODVS_BUCK_VOLT = 0x16,
BD718XX_4TH_NODVS_BUCK_VOLT = 0x17,
BD718XX_LDO1_VOLT = 0x18,
BD718XX_LDO2_VOLT = 0x19,
BD718XX_LDO3_VOLT = 0x1a,
BD718XX_LDO4_VOLT = 0x1b,
BD718XX_LDO5_VOLT = 0x1c,
BD718XX_LDO6_VOLT = 0x1d,
BD71837_LDO7_VOLT = 0x1e,
BD718XX_TRANS_COND0 = 0x1f,
BD718XX_TRANS_COND1 = 0x20,
BD718XX_VRFAULTEN = 0x21,
BD718XX_MVRFLTMASK0 = 0x22,
BD718XX_MVRFLTMASK1 = 0x23,
BD718XX_MVRFLTMASK2 = 0x24,
BD718XX_RCVCFG = 0x25,
BD718XX_RCVNUM = 0x26,
BD718XX_PWRONCONFIG0 = 0x27,
BD718XX_PWRONCONFIG1 = 0x28,
BD718XX_RESETSRC = 0x29,
BD718XX_MIRQ = 0x2a,
BD718XX_IRQ = 0x2b,
BD718XX_IN_MON = 0x2c,
BD718XX_POW_STATE = 0x2d,
BD718XX_OUT32K = 0x2e,
BD718XX_REGLOCK = 0x2f,
BD718XX_MUXSW_EN = 0x30,
BD718XX_REG_OTPVER = 0xff,
BD718XX_MAX_REGISTER = 0x100,
};
#define BD718XX_REGLOCK_PWRSEQ 0x1
#define BD718XX_REGLOCK_VREG 0x10
#define BD718XX_BUCK_EN 0x01
#define BD718XX_LDO_EN 0x40
#define BD718XX_BUCK_SEL 0x02
#define BD718XX_LDO_SEL 0x80
#define DVS_BUCK_RUN_MASK 0x3f
#define BD718XX_1ST_NODVS_BUCK_MASK 0x07
#define BD718XX_3RD_NODVS_BUCK_MASK 0x07
#define BD718XX_4TH_NODVS_BUCK_MASK 0x3f
#define BD71847_BUCK3_MASK 0x07
#define BD71847_BUCK3_RANGE_MASK 0xc0
#define BD71847_BUCK4_MASK 0x03
#define BD71847_BUCK4_RANGE_MASK 0x40
#define BD71837_BUCK5_RANGE_MASK 0x80
#define BD71837_BUCK6_MASK 0x03
#define BD718XX_LDO1_MASK 0x03
#define BD718XX_LDO1_RANGE_MASK 0x20
#define BD718XX_LDO2_MASK 0x20
#define BD718XX_LDO3_MASK 0x0f
#define BD718XX_LDO4_MASK 0x0f
#define BD718XX_LDO6_MASK 0x0f
#define BD71837_LDO5_MASK 0x0f
#define BD71847_LDO5_MASK 0x0f
#define BD71847_LDO5_RANGE_MASK 0x20
#define BD71837_LDO7_MASK 0x0f
#endif