162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0+ */ 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * da9211-regulator.h - Regulator definitions for DA9211/DA9212 462306a36Sopenharmony_ci * /DA9213/DA9223/DA9214/DA9224/DA9215/DA9225 562306a36Sopenharmony_ci * Copyright (C) 2015 Dialog Semiconductor Ltd. 662306a36Sopenharmony_ci */ 762306a36Sopenharmony_ci 862306a36Sopenharmony_ci#ifndef __DA9211_REGISTERS_H__ 962306a36Sopenharmony_ci#define __DA9211_REGISTERS_H__ 1062306a36Sopenharmony_ci 1162306a36Sopenharmony_ci/* Page selection */ 1262306a36Sopenharmony_ci#define DA9211_REG_PAGE_CON 0x00 1362306a36Sopenharmony_ci 1462306a36Sopenharmony_ci/* System Control and Event Registers */ 1562306a36Sopenharmony_ci#define DA9211_REG_STATUS_A 0x50 1662306a36Sopenharmony_ci#define DA9211_REG_STATUS_B 0x51 1762306a36Sopenharmony_ci#define DA9211_REG_EVENT_A 0x52 1862306a36Sopenharmony_ci#define DA9211_REG_EVENT_B 0x53 1962306a36Sopenharmony_ci#define DA9211_REG_MASK_A 0x54 2062306a36Sopenharmony_ci#define DA9211_REG_MASK_B 0x55 2162306a36Sopenharmony_ci#define DA9211_REG_CONTROL_A 0x56 2262306a36Sopenharmony_ci 2362306a36Sopenharmony_ci/* GPIO Control Registers */ 2462306a36Sopenharmony_ci#define DA9211_REG_GPIO_0_1 0x58 2562306a36Sopenharmony_ci#define DA9211_REG_GPIO_2_3 0x59 2662306a36Sopenharmony_ci#define DA9211_REG_GPIO_4 0x5A 2762306a36Sopenharmony_ci 2862306a36Sopenharmony_ci/* Regulator Registers */ 2962306a36Sopenharmony_ci#define DA9211_REG_BUCKA_CONT 0x5D 3062306a36Sopenharmony_ci#define DA9211_REG_BUCKB_CONT 0x5E 3162306a36Sopenharmony_ci#define DA9211_REG_BUCK_ILIM 0xD0 3262306a36Sopenharmony_ci#define DA9211_REG_BUCKA_CONF 0xD1 3362306a36Sopenharmony_ci#define DA9211_REG_BUCKB_CONF 0xD2 3462306a36Sopenharmony_ci#define DA9211_REG_BUCK_CONF 0xD3 3562306a36Sopenharmony_ci#define DA9211_REG_VBACKA_MAX 0xD5 3662306a36Sopenharmony_ci#define DA9211_REG_VBACKB_MAX 0xD6 3762306a36Sopenharmony_ci#define DA9211_REG_VBUCKA_A 0xD7 3862306a36Sopenharmony_ci#define DA9211_REG_VBUCKA_B 0xD8 3962306a36Sopenharmony_ci#define DA9211_REG_VBUCKB_A 0xD9 4062306a36Sopenharmony_ci#define DA9211_REG_VBUCKB_B 0xDA 4162306a36Sopenharmony_ci 4262306a36Sopenharmony_ci/* I2C Interface Settings */ 4362306a36Sopenharmony_ci#define DA9211_REG_INTERFACE 0x105 4462306a36Sopenharmony_ci 4562306a36Sopenharmony_ci/* BUCK Phase Selection*/ 4662306a36Sopenharmony_ci#define DA9211_REG_CONFIG_E 0x147 4762306a36Sopenharmony_ci 4862306a36Sopenharmony_ci/* Device ID */ 4962306a36Sopenharmony_ci#define DA9211_REG_DEVICE_ID 0x201 5062306a36Sopenharmony_ci 5162306a36Sopenharmony_ci/* 5262306a36Sopenharmony_ci * Registers bits 5362306a36Sopenharmony_ci */ 5462306a36Sopenharmony_ci/* DA9211_REG_PAGE_CON (addr=0x00) */ 5562306a36Sopenharmony_ci#define DA9211_REG_PAGE_SHIFT 1 5662306a36Sopenharmony_ci#define DA9211_REG_PAGE_MASK 0x06 5762306a36Sopenharmony_ci/* On I2C registers 0x00 - 0xFF */ 5862306a36Sopenharmony_ci#define DA9211_REG_PAGE0 0 5962306a36Sopenharmony_ci/* On I2C registers 0x100 - 0x1FF */ 6062306a36Sopenharmony_ci#define DA9211_REG_PAGE2 2 6162306a36Sopenharmony_ci#define DA9211_PAGE_WRITE_MODE 0x00 6262306a36Sopenharmony_ci#define DA9211_REPEAT_WRITE_MODE 0x40 6362306a36Sopenharmony_ci#define DA9211_PAGE_REVERT 0x80 6462306a36Sopenharmony_ci 6562306a36Sopenharmony_ci/* DA9211_REG_STATUS_A (addr=0x50) */ 6662306a36Sopenharmony_ci#define DA9211_GPI0 0x01 6762306a36Sopenharmony_ci#define DA9211_GPI1 0x02 6862306a36Sopenharmony_ci#define DA9211_GPI2 0x04 6962306a36Sopenharmony_ci#define DA9211_GPI3 0x08 7062306a36Sopenharmony_ci#define DA9211_GPI4 0x10 7162306a36Sopenharmony_ci 7262306a36Sopenharmony_ci/* DA9211_REG_EVENT_A (addr=0x52) */ 7362306a36Sopenharmony_ci#define DA9211_E_GPI0 0x01 7462306a36Sopenharmony_ci#define DA9211_E_GPI1 0x02 7562306a36Sopenharmony_ci#define DA9211_E_GPI2 0x04 7662306a36Sopenharmony_ci#define DA9211_E_GPI3 0x08 7762306a36Sopenharmony_ci#define DA9211_E_GPI4 0x10 7862306a36Sopenharmony_ci#define DA9211_E_UVLO_IO 0x40 7962306a36Sopenharmony_ci 8062306a36Sopenharmony_ci/* DA9211_REG_EVENT_B (addr=0x53) */ 8162306a36Sopenharmony_ci#define DA9211_E_PWRGOOD_A 0x01 8262306a36Sopenharmony_ci#define DA9211_E_PWRGOOD_B 0x02 8362306a36Sopenharmony_ci#define DA9211_E_TEMP_WARN 0x04 8462306a36Sopenharmony_ci#define DA9211_E_TEMP_CRIT 0x08 8562306a36Sopenharmony_ci#define DA9211_E_OV_CURR_A 0x10 8662306a36Sopenharmony_ci#define DA9211_E_OV_CURR_B 0x20 8762306a36Sopenharmony_ci 8862306a36Sopenharmony_ci/* DA9211_REG_MASK_A (addr=0x54) */ 8962306a36Sopenharmony_ci#define DA9211_M_GPI0 0x01 9062306a36Sopenharmony_ci#define DA9211_M_GPI1 0x02 9162306a36Sopenharmony_ci#define DA9211_M_GPI2 0x04 9262306a36Sopenharmony_ci#define DA9211_M_GPI3 0x08 9362306a36Sopenharmony_ci#define DA9211_M_GPI4 0x10 9462306a36Sopenharmony_ci#define DA9211_M_UVLO_IO 0x40 9562306a36Sopenharmony_ci 9662306a36Sopenharmony_ci/* DA9211_REG_MASK_B (addr=0x55) */ 9762306a36Sopenharmony_ci#define DA9211_M_PWRGOOD_A 0x01 9862306a36Sopenharmony_ci#define DA9211_M_PWRGOOD_B 0x02 9962306a36Sopenharmony_ci#define DA9211_M_TEMP_WARN 0x04 10062306a36Sopenharmony_ci#define DA9211_M_TEMP_CRIT 0x08 10162306a36Sopenharmony_ci#define DA9211_M_OV_CURR_A 0x10 10262306a36Sopenharmony_ci#define DA9211_M_OV_CURR_B 0x20 10362306a36Sopenharmony_ci 10462306a36Sopenharmony_ci/* DA9211_REG_CONTROL_A (addr=0x56) */ 10562306a36Sopenharmony_ci#define DA9211_DEBOUNCING_SHIFT 0 10662306a36Sopenharmony_ci#define DA9211_DEBOUNCING_MASK 0x07 10762306a36Sopenharmony_ci#define DA9211_SLEW_RATE_SHIFT 3 10862306a36Sopenharmony_ci#define DA9211_SLEW_RATE_A_MASK 0x18 10962306a36Sopenharmony_ci#define DA9211_SLEW_RATE_B_SHIFT 5 11062306a36Sopenharmony_ci#define DA9211_SLEW_RATE_B_MASK 0x60 11162306a36Sopenharmony_ci#define DA9211_V_LOCK 0x80 11262306a36Sopenharmony_ci 11362306a36Sopenharmony_ci/* DA9211_REG_GPIO_0_1 (addr=0x58) */ 11462306a36Sopenharmony_ci#define DA9211_GPIO0_PIN_SHIFT 0 11562306a36Sopenharmony_ci#define DA9211_GPIO0_PIN_MASK 0x03 11662306a36Sopenharmony_ci#define DA9211_GPIO0_PIN_GPI 0x00 11762306a36Sopenharmony_ci#define DA9211_GPIO0_PIN_GPO_OD 0x02 11862306a36Sopenharmony_ci#define DA9211_GPIO0_PIN_GPO 0x03 11962306a36Sopenharmony_ci#define DA9211_GPIO0_TYPE 0x04 12062306a36Sopenharmony_ci#define DA9211_GPIO0_TYPE_GPI 0x00 12162306a36Sopenharmony_ci#define DA9211_GPIO0_TYPE_GPO 0x04 12262306a36Sopenharmony_ci#define DA9211_GPIO0_MODE 0x08 12362306a36Sopenharmony_ci#define DA9211_GPIO1_PIN_SHIFT 4 12462306a36Sopenharmony_ci#define DA9211_GPIO1_PIN_MASK 0x30 12562306a36Sopenharmony_ci#define DA9211_GPIO1_PIN_GPI 0x00 12662306a36Sopenharmony_ci#define DA9211_GPIO1_PIN_VERROR 0x10 12762306a36Sopenharmony_ci#define DA9211_GPIO1_PIN_GPO_OD 0x20 12862306a36Sopenharmony_ci#define DA9211_GPIO1_PIN_GPO 0x30 12962306a36Sopenharmony_ci#define DA9211_GPIO1_TYPE_SHIFT 0x40 13062306a36Sopenharmony_ci#define DA9211_GPIO1_TYPE_GPI 0x00 13162306a36Sopenharmony_ci#define DA9211_GPIO1_TYPE_GPO 0x40 13262306a36Sopenharmony_ci#define DA9211_GPIO1_MODE 0x80 13362306a36Sopenharmony_ci 13462306a36Sopenharmony_ci/* DA9211_REG_GPIO_2_3 (addr=0x59) */ 13562306a36Sopenharmony_ci#define DA9211_GPIO2_PIN_SHIFT 0 13662306a36Sopenharmony_ci#define DA9211_GPIO2_PIN_MASK 0x03 13762306a36Sopenharmony_ci#define DA9211_GPIO2_PIN_GPI 0x00 13862306a36Sopenharmony_ci#define DA9211_GPIO5_PIN_BUCK_CLK 0x10 13962306a36Sopenharmony_ci#define DA9211_GPIO2_PIN_GPO_OD 0x02 14062306a36Sopenharmony_ci#define DA9211_GPIO2_PIN_GPO 0x03 14162306a36Sopenharmony_ci#define DA9211_GPIO2_TYPE 0x04 14262306a36Sopenharmony_ci#define DA9211_GPIO2_TYPE_GPI 0x00 14362306a36Sopenharmony_ci#define DA9211_GPIO2_TYPE_GPO 0x04 14462306a36Sopenharmony_ci#define DA9211_GPIO2_MODE 0x08 14562306a36Sopenharmony_ci#define DA9211_GPIO3_PIN_SHIFT 4 14662306a36Sopenharmony_ci#define DA9211_GPIO3_PIN_MASK 0x30 14762306a36Sopenharmony_ci#define DA9211_GPIO3_PIN_GPI 0x00 14862306a36Sopenharmony_ci#define DA9211_GPIO3_PIN_IERROR 0x10 14962306a36Sopenharmony_ci#define DA9211_GPIO3_PIN_GPO_OD 0x20 15062306a36Sopenharmony_ci#define DA9211_GPIO3_PIN_GPO 0x30 15162306a36Sopenharmony_ci#define DA9211_GPIO3_TYPE_SHIFT 0x40 15262306a36Sopenharmony_ci#define DA9211_GPIO3_TYPE_GPI 0x00 15362306a36Sopenharmony_ci#define DA9211_GPIO3_TYPE_GPO 0x40 15462306a36Sopenharmony_ci#define DA9211_GPIO3_MODE 0x80 15562306a36Sopenharmony_ci 15662306a36Sopenharmony_ci/* DA9211_REG_GPIO_4 (addr=0x5A) */ 15762306a36Sopenharmony_ci#define DA9211_GPIO4_PIN_SHIFT 0 15862306a36Sopenharmony_ci#define DA9211_GPIO4_PIN_MASK 0x03 15962306a36Sopenharmony_ci#define DA9211_GPIO4_PIN_GPI 0x00 16062306a36Sopenharmony_ci#define DA9211_GPIO4_PIN_GPO_OD 0x02 16162306a36Sopenharmony_ci#define DA9211_GPIO4_PIN_GPO 0x03 16262306a36Sopenharmony_ci#define DA9211_GPIO4_TYPE 0x04 16362306a36Sopenharmony_ci#define DA9211_GPIO4_TYPE_GPI 0x00 16462306a36Sopenharmony_ci#define DA9211_GPIO4_TYPE_GPO 0x04 16562306a36Sopenharmony_ci#define DA9211_GPIO4_MODE 0x08 16662306a36Sopenharmony_ci 16762306a36Sopenharmony_ci/* DA9211_REG_BUCKA_CONT (addr=0x5D) */ 16862306a36Sopenharmony_ci#define DA9211_BUCKA_EN 0x01 16962306a36Sopenharmony_ci#define DA9211_BUCKA_GPI_SHIFT 1 17062306a36Sopenharmony_ci#define DA9211_BUCKA_GPI_MASK 0x06 17162306a36Sopenharmony_ci#define DA9211_BUCKA_GPI_OFF 0x00 17262306a36Sopenharmony_ci#define DA9211_BUCKA_GPI_GPIO0 0x02 17362306a36Sopenharmony_ci#define DA9211_BUCKA_GPI_GPIO1 0x04 17462306a36Sopenharmony_ci#define DA9211_BUCKA_GPI_GPIO3 0x06 17562306a36Sopenharmony_ci#define DA9211_BUCKA_PD_DIS 0x08 17662306a36Sopenharmony_ci#define DA9211_VBUCKA_SEL 0x10 17762306a36Sopenharmony_ci#define DA9211_VBUCKA_SEL_A 0x00 17862306a36Sopenharmony_ci#define DA9211_VBUCKA_SEL_B 0x10 17962306a36Sopenharmony_ci#define DA9211_VBUCKA_GPI_SHIFT 5 18062306a36Sopenharmony_ci#define DA9211_VBUCKA_GPI_MASK 0x60 18162306a36Sopenharmony_ci#define DA9211_VBUCKA_GPI_OFF 0x00 18262306a36Sopenharmony_ci#define DA9211_VBUCKA_GPI_GPIO1 0x20 18362306a36Sopenharmony_ci#define DA9211_VBUCKA_GPI_GPIO2 0x40 18462306a36Sopenharmony_ci#define DA9211_VBUCKA_GPI_GPIO4 0x60 18562306a36Sopenharmony_ci 18662306a36Sopenharmony_ci/* DA9211_REG_BUCKB_CONT (addr=0x5E) */ 18762306a36Sopenharmony_ci#define DA9211_BUCKB_EN 0x01 18862306a36Sopenharmony_ci#define DA9211_BUCKB_GPI_SHIFT 1 18962306a36Sopenharmony_ci#define DA9211_BUCKB_GPI_MASK 0x06 19062306a36Sopenharmony_ci#define DA9211_BUCKB_GPI_OFF 0x00 19162306a36Sopenharmony_ci#define DA9211_BUCKB_GPI_GPIO0 0x02 19262306a36Sopenharmony_ci#define DA9211_BUCKB_GPI_GPIO1 0x04 19362306a36Sopenharmony_ci#define DA9211_BUCKB_GPI_GPIO3 0x06 19462306a36Sopenharmony_ci#define DA9211_BUCKB_PD_DIS 0x08 19562306a36Sopenharmony_ci#define DA9211_VBUCKB_SEL 0x10 19662306a36Sopenharmony_ci#define DA9211_VBUCKB_SEL_A 0x00 19762306a36Sopenharmony_ci#define DA9211_VBUCKB_SEL_B 0x10 19862306a36Sopenharmony_ci#define DA9211_VBUCKB_GPI_SHIFT 5 19962306a36Sopenharmony_ci#define DA9211_VBUCKB_GPI_MASK 0x60 20062306a36Sopenharmony_ci#define DA9211_VBUCKB_GPI_OFF 0x00 20162306a36Sopenharmony_ci#define DA9211_VBUCKB_GPI_GPIO1 0x20 20262306a36Sopenharmony_ci#define DA9211_VBUCKB_GPI_GPIO2 0x40 20362306a36Sopenharmony_ci#define DA9211_VBUCKB_GPI_GPIO4 0x60 20462306a36Sopenharmony_ci 20562306a36Sopenharmony_ci/* DA9211_REG_BUCK_ILIM (addr=0xD0) */ 20662306a36Sopenharmony_ci#define DA9211_BUCKA_ILIM_SHIFT 0 20762306a36Sopenharmony_ci#define DA9211_BUCKA_ILIM_MASK 0x0F 20862306a36Sopenharmony_ci#define DA9211_BUCKB_ILIM_SHIFT 4 20962306a36Sopenharmony_ci#define DA9211_BUCKB_ILIM_MASK 0xF0 21062306a36Sopenharmony_ci 21162306a36Sopenharmony_ci/* DA9211_REG_BUCKA_CONF (addr=0xD1) */ 21262306a36Sopenharmony_ci#define DA9211_BUCKA_MODE_SHIFT 0 21362306a36Sopenharmony_ci#define DA9211_BUCKA_MODE_MASK 0x03 21462306a36Sopenharmony_ci#define DA9211_BUCKA_MODE_MANUAL 0x00 21562306a36Sopenharmony_ci#define DA9211_BUCKA_MODE_SLEEP 0x01 21662306a36Sopenharmony_ci#define DA9211_BUCKA_MODE_SYNC 0x02 21762306a36Sopenharmony_ci#define DA9211_BUCKA_MODE_AUTO 0x03 21862306a36Sopenharmony_ci#define DA9211_BUCKA_UP_CTRL_SHIFT 2 21962306a36Sopenharmony_ci#define DA9211_BUCKA_UP_CTRL_MASK 0x1C 22062306a36Sopenharmony_ci#define DA9211_BUCKA_DOWN_CTRL_SHIFT 5 22162306a36Sopenharmony_ci#define DA9211_BUCKA_DOWN_CTRL_MASK 0xE0 22262306a36Sopenharmony_ci 22362306a36Sopenharmony_ci/* DA9211_REG_BUCKB_CONF (addr=0xD2) */ 22462306a36Sopenharmony_ci#define DA9211_BUCKB_MODE_SHIFT 0 22562306a36Sopenharmony_ci#define DA9211_BUCKB_MODE_MASK 0x03 22662306a36Sopenharmony_ci#define DA9211_BUCKB_MODE_MANUAL 0x00 22762306a36Sopenharmony_ci#define DA9211_BUCKB_MODE_SLEEP 0x01 22862306a36Sopenharmony_ci#define DA9211_BUCKB_MODE_SYNC 0x02 22962306a36Sopenharmony_ci#define DA9211_BUCKB_MODE_AUTO 0x03 23062306a36Sopenharmony_ci#define DA9211_BUCKB_UP_CTRL_SHIFT 2 23162306a36Sopenharmony_ci#define DA9211_BUCKB_UP_CTRL_MASK 0x1C 23262306a36Sopenharmony_ci#define DA9211_BUCKB_DOWN_CTRL_SHIFT 5 23362306a36Sopenharmony_ci#define DA9211_BUCKB_DOWN_CTRL_MASK 0xE0 23462306a36Sopenharmony_ci 23562306a36Sopenharmony_ci/* DA9211_REG_BUCK_CONF (addr=0xD3) */ 23662306a36Sopenharmony_ci#define DA9211_PHASE_SEL_A_SHIFT 0 23762306a36Sopenharmony_ci#define DA9211_PHASE_SEL_A_MASK 0x03 23862306a36Sopenharmony_ci#define DA9211_PHASE_SEL_B_SHIFT 2 23962306a36Sopenharmony_ci#define DA9211_PHASE_SEL_B_MASK 0x04 24062306a36Sopenharmony_ci#define DA9211_PH_SH_EN_A_SHIFT 3 24162306a36Sopenharmony_ci#define DA9211_PH_SH_EN_A_MASK 0x08 24262306a36Sopenharmony_ci#define DA9211_PH_SH_EN_B_SHIFT 4 24362306a36Sopenharmony_ci#define DA9211_PH_SH_EN_B_MASK 0x10 24462306a36Sopenharmony_ci 24562306a36Sopenharmony_ci/* DA9211_REG_VBUCKA_MAX (addr=0xD5) */ 24662306a36Sopenharmony_ci#define DA9211_VBUCKA_BASE_SHIFT 0 24762306a36Sopenharmony_ci#define DA9211_VBUCKA_BASE_MASK 0x7F 24862306a36Sopenharmony_ci 24962306a36Sopenharmony_ci/* DA9211_REG_VBUCKB_MAX (addr=0xD6) */ 25062306a36Sopenharmony_ci#define DA9211_VBUCKB_BASE_SHIFT 0 25162306a36Sopenharmony_ci#define DA9211_VBUCKB_BASE_MASK 0x7F 25262306a36Sopenharmony_ci 25362306a36Sopenharmony_ci/* DA9211_REG_VBUCKA/B_A/B (addr=0xD7/0xD8/0xD9/0xDA) */ 25462306a36Sopenharmony_ci#define DA9211_VBUCK_SHIFT 0 25562306a36Sopenharmony_ci#define DA9211_VBUCK_MASK 0x7F 25662306a36Sopenharmony_ci#define DA9211_VBUCK_BIAS 0 25762306a36Sopenharmony_ci#define DA9211_BUCK_SL 0x80 25862306a36Sopenharmony_ci 25962306a36Sopenharmony_ci/* DA9211_REG_INTERFACE (addr=0x105) */ 26062306a36Sopenharmony_ci#define DA9211_IF_BASE_ADDR_SHIFT 4 26162306a36Sopenharmony_ci#define DA9211_IF_BASE_ADDR_MASK 0xF0 26262306a36Sopenharmony_ci 26362306a36Sopenharmony_ci/* DA9211_REG_CONFIG_E (addr=0x147) */ 26462306a36Sopenharmony_ci#define DA9211_SLAVE_SEL 0x40 26562306a36Sopenharmony_ci 26662306a36Sopenharmony_ci#endif /* __DA9211_REGISTERS_H__ */ 267