267 lines · c
1/* SPDX-License-Identifier: GPL-2.0+ */2/*3 * da9211-regulator.h - Regulator definitions for DA9211/DA92124 * /DA9213/DA9223/DA9214/DA9224/DA9215/DA92255 * Copyright (C) 2015 Dialog Semiconductor Ltd.6 */7 8#ifndef __DA9211_REGISTERS_H__9#define __DA9211_REGISTERS_H__10 11/* Page selection */12#define DA9211_REG_PAGE_CON 0x0013 14/* System Control and Event Registers */15#define DA9211_REG_STATUS_A 0x5016#define DA9211_REG_STATUS_B 0x5117#define DA9211_REG_EVENT_A 0x5218#define DA9211_REG_EVENT_B 0x5319#define DA9211_REG_MASK_A 0x5420#define DA9211_REG_MASK_B 0x5521#define DA9211_REG_CONTROL_A 0x5622 23/* GPIO Control Registers */24#define DA9211_REG_GPIO_0_1 0x5825#define DA9211_REG_GPIO_2_3 0x5926#define DA9211_REG_GPIO_4 0x5A27 28/* Regulator Registers */29#define DA9211_REG_BUCKA_CONT 0x5D30#define DA9211_REG_BUCKB_CONT 0x5E31#define DA9211_REG_BUCK_ILIM 0xD032#define DA9211_REG_BUCKA_CONF 0xD133#define DA9211_REG_BUCKB_CONF 0xD234#define DA9211_REG_BUCK_CONF 0xD335#define DA9211_REG_VBACKA_MAX 0xD536#define DA9211_REG_VBACKB_MAX 0xD637#define DA9211_REG_VBUCKA_A 0xD738#define DA9211_REG_VBUCKA_B 0xD839#define DA9211_REG_VBUCKB_A 0xD940#define DA9211_REG_VBUCKB_B 0xDA41 42/* I2C Interface Settings */43#define DA9211_REG_INTERFACE 0x10544 45/* BUCK Phase Selection*/46#define DA9211_REG_CONFIG_E 0x14747 48/* Device ID */49#define DA9211_REG_DEVICE_ID 0x20150 51/*52 * Registers bits53 */54/* DA9211_REG_PAGE_CON (addr=0x00) */55#define DA9211_REG_PAGE_SHIFT 156#define DA9211_REG_PAGE_MASK 0x0657/* On I2C registers 0x00 - 0xFF */58#define DA9211_REG_PAGE0 059/* On I2C registers 0x100 - 0x1FF */60#define DA9211_REG_PAGE2 261#define DA9211_PAGE_WRITE_MODE 0x0062#define DA9211_REPEAT_WRITE_MODE 0x4063#define DA9211_PAGE_REVERT 0x8064 65/* DA9211_REG_STATUS_A (addr=0x50) */66#define DA9211_GPI0 0x0167#define DA9211_GPI1 0x0268#define DA9211_GPI2 0x0469#define DA9211_GPI3 0x0870#define DA9211_GPI4 0x1071 72/* DA9211_REG_EVENT_A (addr=0x52) */73#define DA9211_E_GPI0 0x0174#define DA9211_E_GPI1 0x0275#define DA9211_E_GPI2 0x0476#define DA9211_E_GPI3 0x0877#define DA9211_E_GPI4 0x1078#define DA9211_E_UVLO_IO 0x4079 80/* DA9211_REG_EVENT_B (addr=0x53) */81#define DA9211_E_PWRGOOD_A 0x0182#define DA9211_E_PWRGOOD_B 0x0283#define DA9211_E_TEMP_WARN 0x0484#define DA9211_E_TEMP_CRIT 0x0885#define DA9211_E_OV_CURR_A 0x1086#define DA9211_E_OV_CURR_B 0x2087 88/* DA9211_REG_MASK_A (addr=0x54) */89#define DA9211_M_GPI0 0x0190#define DA9211_M_GPI1 0x0291#define DA9211_M_GPI2 0x0492#define DA9211_M_GPI3 0x0893#define DA9211_M_GPI4 0x1094#define DA9211_M_UVLO_IO 0x4095 96/* DA9211_REG_MASK_B (addr=0x55) */97#define DA9211_M_PWRGOOD_A 0x0198#define DA9211_M_PWRGOOD_B 0x0299#define DA9211_M_TEMP_WARN 0x04100#define DA9211_M_TEMP_CRIT 0x08101#define DA9211_M_OV_CURR_A 0x10102#define DA9211_M_OV_CURR_B 0x20103 104/* DA9211_REG_CONTROL_A (addr=0x56) */105#define DA9211_DEBOUNCING_SHIFT 0106#define DA9211_DEBOUNCING_MASK 0x07107#define DA9211_SLEW_RATE_SHIFT 3108#define DA9211_SLEW_RATE_A_MASK 0x18109#define DA9211_SLEW_RATE_B_SHIFT 5110#define DA9211_SLEW_RATE_B_MASK 0x60111#define DA9211_V_LOCK 0x80112 113/* DA9211_REG_GPIO_0_1 (addr=0x58) */114#define DA9211_GPIO0_PIN_SHIFT 0115#define DA9211_GPIO0_PIN_MASK 0x03116#define DA9211_GPIO0_PIN_GPI 0x00117#define DA9211_GPIO0_PIN_GPO_OD 0x02118#define DA9211_GPIO0_PIN_GPO 0x03119#define DA9211_GPIO0_TYPE 0x04120#define DA9211_GPIO0_TYPE_GPI 0x00121#define DA9211_GPIO0_TYPE_GPO 0x04122#define DA9211_GPIO0_MODE 0x08123#define DA9211_GPIO1_PIN_SHIFT 4124#define DA9211_GPIO1_PIN_MASK 0x30125#define DA9211_GPIO1_PIN_GPI 0x00126#define DA9211_GPIO1_PIN_VERROR 0x10127#define DA9211_GPIO1_PIN_GPO_OD 0x20128#define DA9211_GPIO1_PIN_GPO 0x30129#define DA9211_GPIO1_TYPE_SHIFT 0x40130#define DA9211_GPIO1_TYPE_GPI 0x00131#define DA9211_GPIO1_TYPE_GPO 0x40132#define DA9211_GPIO1_MODE 0x80133 134/* DA9211_REG_GPIO_2_3 (addr=0x59) */135#define DA9211_GPIO2_PIN_SHIFT 0136#define DA9211_GPIO2_PIN_MASK 0x03137#define DA9211_GPIO2_PIN_GPI 0x00138#define DA9211_GPIO5_PIN_BUCK_CLK 0x10139#define DA9211_GPIO2_PIN_GPO_OD 0x02140#define DA9211_GPIO2_PIN_GPO 0x03141#define DA9211_GPIO2_TYPE 0x04142#define DA9211_GPIO2_TYPE_GPI 0x00143#define DA9211_GPIO2_TYPE_GPO 0x04144#define DA9211_GPIO2_MODE 0x08145#define DA9211_GPIO3_PIN_SHIFT 4146#define DA9211_GPIO3_PIN_MASK 0x30147#define DA9211_GPIO3_PIN_GPI 0x00148#define DA9211_GPIO3_PIN_IERROR 0x10149#define DA9211_GPIO3_PIN_GPO_OD 0x20150#define DA9211_GPIO3_PIN_GPO 0x30151#define DA9211_GPIO3_TYPE_SHIFT 0x40152#define DA9211_GPIO3_TYPE_GPI 0x00153#define DA9211_GPIO3_TYPE_GPO 0x40154#define DA9211_GPIO3_MODE 0x80155 156/* DA9211_REG_GPIO_4 (addr=0x5A) */157#define DA9211_GPIO4_PIN_SHIFT 0158#define DA9211_GPIO4_PIN_MASK 0x03159#define DA9211_GPIO4_PIN_GPI 0x00160#define DA9211_GPIO4_PIN_GPO_OD 0x02161#define DA9211_GPIO4_PIN_GPO 0x03162#define DA9211_GPIO4_TYPE 0x04163#define DA9211_GPIO4_TYPE_GPI 0x00164#define DA9211_GPIO4_TYPE_GPO 0x04165#define DA9211_GPIO4_MODE 0x08166 167/* DA9211_REG_BUCKA_CONT (addr=0x5D) */168#define DA9211_BUCKA_EN 0x01169#define DA9211_BUCKA_GPI_SHIFT 1170#define DA9211_BUCKA_GPI_MASK 0x06171#define DA9211_BUCKA_GPI_OFF 0x00172#define DA9211_BUCKA_GPI_GPIO0 0x02173#define DA9211_BUCKA_GPI_GPIO1 0x04174#define DA9211_BUCKA_GPI_GPIO3 0x06175#define DA9211_BUCKA_PD_DIS 0x08176#define DA9211_VBUCKA_SEL 0x10177#define DA9211_VBUCKA_SEL_A 0x00178#define DA9211_VBUCKA_SEL_B 0x10179#define DA9211_VBUCKA_GPI_SHIFT 5180#define DA9211_VBUCKA_GPI_MASK 0x60181#define DA9211_VBUCKA_GPI_OFF 0x00182#define DA9211_VBUCKA_GPI_GPIO1 0x20183#define DA9211_VBUCKA_GPI_GPIO2 0x40184#define DA9211_VBUCKA_GPI_GPIO4 0x60185 186/* DA9211_REG_BUCKB_CONT (addr=0x5E) */187#define DA9211_BUCKB_EN 0x01188#define DA9211_BUCKB_GPI_SHIFT 1189#define DA9211_BUCKB_GPI_MASK 0x06190#define DA9211_BUCKB_GPI_OFF 0x00191#define DA9211_BUCKB_GPI_GPIO0 0x02192#define DA9211_BUCKB_GPI_GPIO1 0x04193#define DA9211_BUCKB_GPI_GPIO3 0x06194#define DA9211_BUCKB_PD_DIS 0x08195#define DA9211_VBUCKB_SEL 0x10196#define DA9211_VBUCKB_SEL_A 0x00197#define DA9211_VBUCKB_SEL_B 0x10198#define DA9211_VBUCKB_GPI_SHIFT 5199#define DA9211_VBUCKB_GPI_MASK 0x60200#define DA9211_VBUCKB_GPI_OFF 0x00201#define DA9211_VBUCKB_GPI_GPIO1 0x20202#define DA9211_VBUCKB_GPI_GPIO2 0x40203#define DA9211_VBUCKB_GPI_GPIO4 0x60204 205/* DA9211_REG_BUCK_ILIM (addr=0xD0) */206#define DA9211_BUCKA_ILIM_SHIFT 0207#define DA9211_BUCKA_ILIM_MASK 0x0F208#define DA9211_BUCKB_ILIM_SHIFT 4209#define DA9211_BUCKB_ILIM_MASK 0xF0210 211/* DA9211_REG_BUCKA_CONF (addr=0xD1) */212#define DA9211_BUCKA_MODE_SHIFT 0213#define DA9211_BUCKA_MODE_MASK 0x03214#define DA9211_BUCKA_MODE_MANUAL 0x00215#define DA9211_BUCKA_MODE_SLEEP 0x01216#define DA9211_BUCKA_MODE_SYNC 0x02217#define DA9211_BUCKA_MODE_AUTO 0x03218#define DA9211_BUCKA_UP_CTRL_SHIFT 2219#define DA9211_BUCKA_UP_CTRL_MASK 0x1C220#define DA9211_BUCKA_DOWN_CTRL_SHIFT 5221#define DA9211_BUCKA_DOWN_CTRL_MASK 0xE0222 223/* DA9211_REG_BUCKB_CONF (addr=0xD2) */224#define DA9211_BUCKB_MODE_SHIFT 0225#define DA9211_BUCKB_MODE_MASK 0x03226#define DA9211_BUCKB_MODE_MANUAL 0x00227#define DA9211_BUCKB_MODE_SLEEP 0x01228#define DA9211_BUCKB_MODE_SYNC 0x02229#define DA9211_BUCKB_MODE_AUTO 0x03230#define DA9211_BUCKB_UP_CTRL_SHIFT 2231#define DA9211_BUCKB_UP_CTRL_MASK 0x1C232#define DA9211_BUCKB_DOWN_CTRL_SHIFT 5233#define DA9211_BUCKB_DOWN_CTRL_MASK 0xE0234 235/* DA9211_REG_BUCK_CONF (addr=0xD3) */236#define DA9211_PHASE_SEL_A_SHIFT 0237#define DA9211_PHASE_SEL_A_MASK 0x03238#define DA9211_PHASE_SEL_B_SHIFT 2239#define DA9211_PHASE_SEL_B_MASK 0x04240#define DA9211_PH_SH_EN_A_SHIFT 3241#define DA9211_PH_SH_EN_A_MASK 0x08242#define DA9211_PH_SH_EN_B_SHIFT 4243#define DA9211_PH_SH_EN_B_MASK 0x10244 245/* DA9211_REG_VBUCKA_MAX (addr=0xD5) */246#define DA9211_VBUCKA_BASE_SHIFT 0247#define DA9211_VBUCKA_BASE_MASK 0x7F248 249/* DA9211_REG_VBUCKB_MAX (addr=0xD6) */250#define DA9211_VBUCKB_BASE_SHIFT 0251#define DA9211_VBUCKB_BASE_MASK 0x7F252 253/* DA9211_REG_VBUCKA/B_A/B (addr=0xD7/0xD8/0xD9/0xDA) */254#define DA9211_VBUCK_SHIFT 0255#define DA9211_VBUCK_MASK 0x7F256#define DA9211_VBUCK_BIAS 0257#define DA9211_BUCK_SL 0x80258 259/* DA9211_REG_INTERFACE (addr=0x105) */260#define DA9211_IF_BASE_ADDR_SHIFT 4261#define DA9211_IF_BASE_ADDR_MASK 0xF0262 263/* DA9211_REG_CONFIG_E (addr=0x147) */264#define DA9211_SLAVE_SEL 0x40265 266#endif /* __DA9211_REGISTERS_H__ */267