Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0+ */
0002 /*
0003  * da9211-regulator.h - Regulator definitions for DA9211/DA9212
0004  * /DA9213/DA9223/DA9214/DA9224/DA9215/DA9225
0005  * Copyright (C) 2015  Dialog Semiconductor Ltd.
0006  */
0007 
0008 #ifndef __DA9211_REGISTERS_H__
0009 #define __DA9211_REGISTERS_H__
0010 
0011 /* Page selection */
0012 #define DA9211_REG_PAGE_CON         0x00
0013 
0014 /* System Control and Event Registers */
0015 #define DA9211_REG_STATUS_A         0x50
0016 #define DA9211_REG_STATUS_B         0x51
0017 #define DA9211_REG_EVENT_A          0x52
0018 #define DA9211_REG_EVENT_B          0x53
0019 #define DA9211_REG_MASK_A           0x54
0020 #define DA9211_REG_MASK_B           0x55
0021 #define DA9211_REG_CONTROL_A        0x56
0022 
0023 /* GPIO Control Registers */
0024 #define DA9211_REG_GPIO_0_1         0x58
0025 #define DA9211_REG_GPIO_2_3         0x59
0026 #define DA9211_REG_GPIO_4           0x5A
0027 
0028 /* Regulator Registers */
0029 #define DA9211_REG_BUCKA_CONT           0x5D
0030 #define DA9211_REG_BUCKB_CONT           0x5E
0031 #define DA9211_REG_BUCK_ILIM            0xD0
0032 #define DA9211_REG_BUCKA_CONF           0xD1
0033 #define DA9211_REG_BUCKB_CONF           0xD2
0034 #define DA9211_REG_BUCK_CONF            0xD3
0035 #define DA9211_REG_VBACKA_MAX           0xD5
0036 #define DA9211_REG_VBACKB_MAX           0xD6
0037 #define DA9211_REG_VBUCKA_A             0xD7
0038 #define DA9211_REG_VBUCKA_B             0xD8
0039 #define DA9211_REG_VBUCKB_A             0xD9
0040 #define DA9211_REG_VBUCKB_B             0xDA
0041 
0042 /* I2C Interface Settings */
0043 #define DA9211_REG_INTERFACE            0x105
0044 
0045 /* BUCK Phase Selection*/
0046 #define DA9211_REG_CONFIG_E         0x147
0047 
0048 /* Device ID */
0049 #define DA9211_REG_DEVICE_ID            0x201
0050 
0051 /*
0052  * Registers bits
0053  */
0054 /* DA9211_REG_PAGE_CON (addr=0x00) */
0055 #define DA9211_REG_PAGE_SHIFT           1
0056 #define DA9211_REG_PAGE_MASK            0x06
0057 /* On I2C registers 0x00 - 0xFF */
0058 #define DA9211_REG_PAGE0            0
0059 /* On I2C registers 0x100 - 0x1FF */
0060 #define DA9211_REG_PAGE2            2
0061 #define DA9211_PAGE_WRITE_MODE          0x00
0062 #define DA9211_REPEAT_WRITE_MODE        0x40
0063 #define DA9211_PAGE_REVERT          0x80
0064 
0065 /* DA9211_REG_STATUS_A (addr=0x50) */
0066 #define DA9211_GPI0             0x01
0067 #define DA9211_GPI1             0x02
0068 #define DA9211_GPI2             0x04
0069 #define DA9211_GPI3             0x08
0070 #define DA9211_GPI4             0x10
0071 
0072 /* DA9211_REG_EVENT_A (addr=0x52) */
0073 #define DA9211_E_GPI0               0x01
0074 #define DA9211_E_GPI1               0x02
0075 #define DA9211_E_GPI2               0x04
0076 #define DA9211_E_GPI3               0x08
0077 #define DA9211_E_GPI4               0x10
0078 #define DA9211_E_UVLO_IO            0x40
0079 
0080 /* DA9211_REG_EVENT_B (addr=0x53) */
0081 #define DA9211_E_PWRGOOD_A          0x01
0082 #define DA9211_E_PWRGOOD_B          0x02
0083 #define DA9211_E_TEMP_WARN          0x04
0084 #define DA9211_E_TEMP_CRIT          0x08
0085 #define DA9211_E_OV_CURR_A          0x10
0086 #define DA9211_E_OV_CURR_B          0x20
0087 
0088 /* DA9211_REG_MASK_A (addr=0x54) */
0089 #define DA9211_M_GPI0               0x01
0090 #define DA9211_M_GPI1               0x02
0091 #define DA9211_M_GPI2               0x04
0092 #define DA9211_M_GPI3               0x08
0093 #define DA9211_M_GPI4               0x10
0094 #define DA9211_M_UVLO_IO            0x40
0095 
0096 /* DA9211_REG_MASK_B (addr=0x55) */
0097 #define DA9211_M_PWRGOOD_A          0x01
0098 #define DA9211_M_PWRGOOD_B          0x02
0099 #define DA9211_M_TEMP_WARN          0x04
0100 #define DA9211_M_TEMP_CRIT          0x08
0101 #define DA9211_M_OV_CURR_A          0x10
0102 #define DA9211_M_OV_CURR_B          0x20
0103 
0104 /* DA9211_REG_CONTROL_A (addr=0x56) */
0105 #define DA9211_DEBOUNCING_SHIFT     0
0106 #define DA9211_DEBOUNCING_MASK      0x07
0107 #define DA9211_SLEW_RATE_SHIFT      3
0108 #define DA9211_SLEW_RATE_A_MASK     0x18
0109 #define DA9211_SLEW_RATE_B_SHIFT    5
0110 #define DA9211_SLEW_RATE_B_MASK     0x60
0111 #define DA9211_V_LOCK               0x80
0112 
0113 /* DA9211_REG_GPIO_0_1 (addr=0x58) */
0114 #define DA9211_GPIO0_PIN_SHIFT      0
0115 #define DA9211_GPIO0_PIN_MASK       0x03
0116 #define DA9211_GPIO0_PIN_GPI        0x00
0117 #define DA9211_GPIO0_PIN_GPO_OD     0x02
0118 #define DA9211_GPIO0_PIN_GPO        0x03
0119 #define DA9211_GPIO0_TYPE           0x04
0120 #define DA9211_GPIO0_TYPE_GPI       0x00
0121 #define DA9211_GPIO0_TYPE_GPO       0x04
0122 #define DA9211_GPIO0_MODE           0x08
0123 #define DA9211_GPIO1_PIN_SHIFT      4
0124 #define DA9211_GPIO1_PIN_MASK       0x30
0125 #define DA9211_GPIO1_PIN_GPI        0x00
0126 #define DA9211_GPIO1_PIN_VERROR     0x10
0127 #define DA9211_GPIO1_PIN_GPO_OD     0x20
0128 #define DA9211_GPIO1_PIN_GPO        0x30
0129 #define DA9211_GPIO1_TYPE_SHIFT     0x40
0130 #define DA9211_GPIO1_TYPE_GPI       0x00
0131 #define DA9211_GPIO1_TYPE_GPO       0x40
0132 #define DA9211_GPIO1_MODE           0x80
0133 
0134 /* DA9211_REG_GPIO_2_3 (addr=0x59) */
0135 #define DA9211_GPIO2_PIN_SHIFT      0
0136 #define DA9211_GPIO2_PIN_MASK       0x03
0137 #define DA9211_GPIO2_PIN_GPI        0x00
0138 #define DA9211_GPIO5_PIN_BUCK_CLK   0x10
0139 #define DA9211_GPIO2_PIN_GPO_OD     0x02
0140 #define DA9211_GPIO2_PIN_GPO        0x03
0141 #define DA9211_GPIO2_TYPE           0x04
0142 #define DA9211_GPIO2_TYPE_GPI       0x00
0143 #define DA9211_GPIO2_TYPE_GPO       0x04
0144 #define DA9211_GPIO2_MODE           0x08
0145 #define DA9211_GPIO3_PIN_SHIFT      4
0146 #define DA9211_GPIO3_PIN_MASK       0x30
0147 #define DA9211_GPIO3_PIN_GPI        0x00
0148 #define DA9211_GPIO3_PIN_IERROR     0x10
0149 #define DA9211_GPIO3_PIN_GPO_OD     0x20
0150 #define DA9211_GPIO3_PIN_GPO        0x30
0151 #define DA9211_GPIO3_TYPE_SHIFT     0x40
0152 #define DA9211_GPIO3_TYPE_GPI       0x00
0153 #define DA9211_GPIO3_TYPE_GPO       0x40
0154 #define DA9211_GPIO3_MODE           0x80
0155 
0156 /* DA9211_REG_GPIO_4 (addr=0x5A) */
0157 #define DA9211_GPIO4_PIN_SHIFT      0
0158 #define DA9211_GPIO4_PIN_MASK       0x03
0159 #define DA9211_GPIO4_PIN_GPI        0x00
0160 #define DA9211_GPIO4_PIN_GPO_OD     0x02
0161 #define DA9211_GPIO4_PIN_GPO        0x03
0162 #define DA9211_GPIO4_TYPE           0x04
0163 #define DA9211_GPIO4_TYPE_GPI       0x00
0164 #define DA9211_GPIO4_TYPE_GPO       0x04
0165 #define DA9211_GPIO4_MODE           0x08
0166 
0167 /* DA9211_REG_BUCKA_CONT (addr=0x5D) */
0168 #define DA9211_BUCKA_EN             0x01
0169 #define DA9211_BUCKA_GPI_SHIFT      1
0170 #define DA9211_BUCKA_GPI_MASK       0x06
0171 #define DA9211_BUCKA_GPI_OFF        0x00
0172 #define DA9211_BUCKA_GPI_GPIO0      0x02
0173 #define DA9211_BUCKA_GPI_GPIO1      0x04
0174 #define DA9211_BUCKA_GPI_GPIO3      0x06
0175 #define DA9211_BUCKA_PD_DIS         0x08
0176 #define DA9211_VBUCKA_SEL           0x10
0177 #define DA9211_VBUCKA_SEL_A         0x00
0178 #define DA9211_VBUCKA_SEL_B         0x10
0179 #define DA9211_VBUCKA_GPI_SHIFT     5
0180 #define DA9211_VBUCKA_GPI_MASK      0x60
0181 #define DA9211_VBUCKA_GPI_OFF       0x00
0182 #define DA9211_VBUCKA_GPI_GPIO1     0x20
0183 #define DA9211_VBUCKA_GPI_GPIO2     0x40
0184 #define DA9211_VBUCKA_GPI_GPIO4     0x60
0185 
0186 /* DA9211_REG_BUCKB_CONT (addr=0x5E) */
0187 #define DA9211_BUCKB_EN             0x01
0188 #define DA9211_BUCKB_GPI_SHIFT      1
0189 #define DA9211_BUCKB_GPI_MASK       0x06
0190 #define DA9211_BUCKB_GPI_OFF        0x00
0191 #define DA9211_BUCKB_GPI_GPIO0      0x02
0192 #define DA9211_BUCKB_GPI_GPIO1      0x04
0193 #define DA9211_BUCKB_GPI_GPIO3      0x06
0194 #define DA9211_BUCKB_PD_DIS         0x08
0195 #define DA9211_VBUCKB_SEL           0x10
0196 #define DA9211_VBUCKB_SEL_A         0x00
0197 #define DA9211_VBUCKB_SEL_B         0x10
0198 #define DA9211_VBUCKB_GPI_SHIFT     5
0199 #define DA9211_VBUCKB_GPI_MASK      0x60
0200 #define DA9211_VBUCKB_GPI_OFF       0x00
0201 #define DA9211_VBUCKB_GPI_GPIO1     0x20
0202 #define DA9211_VBUCKB_GPI_GPIO2     0x40
0203 #define DA9211_VBUCKB_GPI_GPIO4     0x60
0204 
0205 /* DA9211_REG_BUCK_ILIM (addr=0xD0) */
0206 #define DA9211_BUCKA_ILIM_SHIFT         0
0207 #define DA9211_BUCKA_ILIM_MASK          0x0F
0208 #define DA9211_BUCKB_ILIM_SHIFT         4
0209 #define DA9211_BUCKB_ILIM_MASK          0xF0
0210 
0211 /* DA9211_REG_BUCKA_CONF (addr=0xD1) */
0212 #define DA9211_BUCKA_MODE_SHIFT         0
0213 #define DA9211_BUCKA_MODE_MASK          0x03
0214 #define DA9211_BUCKA_MODE_MANUAL        0x00
0215 #define DA9211_BUCKA_MODE_SLEEP         0x01
0216 #define DA9211_BUCKA_MODE_SYNC          0x02
0217 #define DA9211_BUCKA_MODE_AUTO          0x03
0218 #define DA9211_BUCKA_UP_CTRL_SHIFT      2
0219 #define DA9211_BUCKA_UP_CTRL_MASK       0x1C
0220 #define DA9211_BUCKA_DOWN_CTRL_SHIFT    5
0221 #define DA9211_BUCKA_DOWN_CTRL_MASK     0xE0
0222 
0223 /* DA9211_REG_BUCKB_CONF (addr=0xD2) */
0224 #define DA9211_BUCKB_MODE_SHIFT         0
0225 #define DA9211_BUCKB_MODE_MASK          0x03
0226 #define DA9211_BUCKB_MODE_MANUAL        0x00
0227 #define DA9211_BUCKB_MODE_SLEEP         0x01
0228 #define DA9211_BUCKB_MODE_SYNC          0x02
0229 #define DA9211_BUCKB_MODE_AUTO          0x03
0230 #define DA9211_BUCKB_UP_CTRL_SHIFT      2
0231 #define DA9211_BUCKB_UP_CTRL_MASK       0x1C
0232 #define DA9211_BUCKB_DOWN_CTRL_SHIFT    5
0233 #define DA9211_BUCKB_DOWN_CTRL_MASK     0xE0
0234 
0235 /* DA9211_REG_BUCK_CONF (addr=0xD3) */
0236 #define DA9211_PHASE_SEL_A_SHIFT        0
0237 #define DA9211_PHASE_SEL_A_MASK         0x03
0238 #define DA9211_PHASE_SEL_B_SHIFT        2
0239 #define DA9211_PHASE_SEL_B_MASK         0x04
0240 #define DA9211_PH_SH_EN_A_SHIFT         3
0241 #define DA9211_PH_SH_EN_A_MASK          0x08
0242 #define DA9211_PH_SH_EN_B_SHIFT         4
0243 #define DA9211_PH_SH_EN_B_MASK          0x10
0244 
0245 /* DA9211_REG_VBUCKA_MAX (addr=0xD5) */
0246 #define DA9211_VBUCKA_BASE_SHIFT        0
0247 #define DA9211_VBUCKA_BASE_MASK         0x7F
0248 
0249 /* DA9211_REG_VBUCKB_MAX (addr=0xD6) */
0250 #define DA9211_VBUCKB_BASE_SHIFT        0
0251 #define DA9211_VBUCKB_BASE_MASK         0x7F
0252 
0253 /* DA9211_REG_VBUCKA/B_A/B (addr=0xD7/0xD8/0xD9/0xDA) */
0254 #define DA9211_VBUCK_SHIFT          0
0255 #define DA9211_VBUCK_MASK           0x7F
0256 #define DA9211_VBUCK_BIAS           0
0257 #define DA9211_BUCK_SL              0x80
0258 
0259 /* DA9211_REG_INTERFACE (addr=0x105) */
0260 #define DA9211_IF_BASE_ADDR_SHIFT       4
0261 #define DA9211_IF_BASE_ADDR_MASK        0xF0
0262 
0263 /* DA9211_REG_CONFIG_E (addr=0x147) */
0264 #define DA9211_SLAVE_SEL            0x40
0265 
0266 #endif  /* __DA9211_REGISTERS_H__ */