Changeset View
Changeset View
Standalone View
Standalone View
head/sys/arm64/rockchip/rk805.c
Show First 20 Lines • Show All 91 Lines • ▼ Show 20 Lines | struct rk805_softc { | ||||
void * intrcookie; | void * intrcookie; | ||||
struct intr_config_hook intr_hook; | struct intr_config_hook intr_hook; | ||||
enum rk_pmic_type type; | enum rk_pmic_type type; | ||||
struct rk805_reg_sc **regs; | struct rk805_reg_sc **regs; | ||||
int nregs; | int nregs; | ||||
}; | }; | ||||
static int rk805_regnode_set_voltage(struct regnode *regnode, int min_uvolt, | |||||
int max_uvolt, int *udelay); | |||||
static struct rk805_regdef rk805_regdefs[] = { | static struct rk805_regdef rk805_regdefs[] = { | ||||
{ | { | ||||
.id = RK805_DCDC1, | .id = RK805_DCDC1, | ||||
.name = "DCDC_REG1", | .name = "DCDC_REG1", | ||||
.enable_reg = RK805_DCDC_EN, | .enable_reg = RK805_DCDC_EN, | ||||
.enable_mask = 0x11, | .enable_mask = 0x11, | ||||
.voltage_reg = RK805_DCDC1_ON_VSEL, | .voltage_reg = RK805_DCDC1_ON_VSEL, | ||||
.voltage_mask = 0x3F, | .voltage_mask = 0x3F, | ||||
▲ Show 20 Lines • Show All 241 Lines • ▼ Show 20 Lines | |||||
rk805_write(device_t dev, uint8_t reg, uint8_t data) | rk805_write(device_t dev, uint8_t reg, uint8_t data) | ||||
{ | { | ||||
return (iicdev_writeto(dev, reg, &data, 1, IIC_INTRWAIT)); | return (iicdev_writeto(dev, reg, &data, 1, IIC_INTRWAIT)); | ||||
} | } | ||||
static int | static int | ||||
rk805_regnode_init(struct regnode *regnode) | rk805_regnode_init(struct regnode *regnode) | ||||
{ | { | ||||
struct rk805_reg_sc *sc; | |||||
struct regnode_std_param *param; | |||||
int rv, udelay; | |||||
sc = regnode_get_softc(regnode); | |||||
param = regnode_get_stdparam(regnode); | |||||
if (param->min_uvolt == 0) | |||||
return (0); | return (0); | ||||
/* | |||||
* Set the regulator at the correct voltage | |||||
* Do not enable it, this is will be done either by a | |||||
* consumer or by regnode_set_constraint if boot_on is true | |||||
*/ | |||||
rv = rk805_regnode_set_voltage(regnode, param->min_uvolt, | |||||
param->max_uvolt, &udelay); | |||||
if (rv != 0) | |||||
DELAY(udelay); | |||||
return (rv); | |||||
} | } | ||||
static int | static int | ||||
rk805_regnode_enable(struct regnode *regnode, bool enable, int *udelay) | rk805_regnode_enable(struct regnode *regnode, bool enable, int *udelay) | ||||
{ | { | ||||
struct rk805_reg_sc *sc; | struct rk805_reg_sc *sc; | ||||
uint8_t val; | uint8_t val; | ||||
▲ Show 20 Lines • Show All 330 Lines • Show Last 20 Lines |