Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0+ */
0002 /*
0003  * DA9121 Single-channel dual-phase 10A buck converter
0004  * DA9130 Single-channel dual-phase 10A buck converter (Automotive)
0005  * DA9217 Single-channel dual-phase  6A buck converter
0006  * DA9122 Dual-channel single-phase  5A buck converter
0007  * DA9131 Dual-channel single-phase  5A buck converter (Automotive)
0008  * DA9220 Dual-channel single-phase  3A buck converter
0009  * DA9132 Dual-channel single-phase  3A buck converter (Automotive)
0010  *
0011  * Copyright (C) 2020  Dialog Semiconductor
0012  *
0013  * Authors: Steve Twiss, Dialog Semiconductor
0014  *          Adam Ward, Dialog Semiconductor
0015  */
0016 
0017 #ifndef __DA9121_REGISTERS_H__
0018 #define __DA9121_REGISTERS_H__
0019 
0020 /* Values for: DA9121_REG_BUCK_BUCKx_4 registers, fields CHx_y_MODE
0021  *             DA9121_REG_BUCK_BUCKx_7 registers, fields CHx_RIPPLE_CANCEL
0022  */
0023 #include <dt-bindings/regulator/dlg,da9121-regulator.h>
0024 
0025 enum da9121_variant {
0026     DA9121_TYPE_DA9121_DA9130,
0027     DA9121_TYPE_DA9220_DA9132,
0028     DA9121_TYPE_DA9122_DA9131,
0029     DA9121_TYPE_DA9217,
0030     DA9121_TYPE_DA9141,
0031     DA9121_TYPE_DA9142
0032 };
0033 
0034 enum da9121_subvariant {
0035     DA9121_SUBTYPE_DA9121,
0036     DA9121_SUBTYPE_DA9130,
0037     DA9121_SUBTYPE_DA9220,
0038     DA9121_SUBTYPE_DA9132,
0039     DA9121_SUBTYPE_DA9122,
0040     DA9121_SUBTYPE_DA9131,
0041     DA9121_SUBTYPE_DA9217,
0042     DA9121_SUBTYPE_DA9141,
0043     DA9121_SUBTYPE_DA9142
0044 };
0045 
0046 /* Minimum, maximum and default polling millisecond periods are provided
0047  * here as an example. It is expected that any final implementation will
0048  * include a modification of these settings to match the required
0049  * application.
0050  */
0051 #define DA9121_DEFAULT_POLLING_PERIOD_MS    3000
0052 #define DA9121_MAX_POLLING_PERIOD_MS        10000
0053 #define DA9121_MIN_POLLING_PERIOD_MS        1000
0054 
0055 /* Registers */
0056 
0057 #define DA9121_REG_SYS_STATUS_0     0x01
0058 #define DA9121_REG_SYS_STATUS_1     0x02
0059 #define DA9121_REG_SYS_STATUS_2     0x03
0060 #define DA9121_REG_SYS_EVENT_0      0x04
0061 #define DA9121_REG_SYS_EVENT_1      0x05
0062 #define DA9121_REG_SYS_EVENT_2      0x06
0063 #define DA9121_REG_SYS_MASK_0       0x07
0064 #define DA9121_REG_SYS_MASK_1       0x08
0065 #define DA9121_REG_SYS_MASK_2       0x09
0066 #define DA9121_REG_SYS_MASK_3       0x0A
0067 #define DA9121_REG_SYS_CONFIG_0     0x0B
0068 #define DA9121_REG_SYS_CONFIG_1     0x0C
0069 #define DA9121_REG_SYS_CONFIG_2     0x0D
0070 #define DA9121_REG_SYS_CONFIG_3     0x0E
0071 #define DA9121_REG_SYS_GPIO0_0      0x10
0072 #define DA9121_REG_SYS_GPIO0_1      0x11
0073 #define DA9121_REG_SYS_GPIO1_0      0x12
0074 #define DA9121_REG_SYS_GPIO1_1      0x13
0075 #define DA9121_REG_SYS_GPIO2_0      0x14
0076 #define DA9121_REG_SYS_GPIO2_1      0x15
0077 #define DA914x_REG_SYS_GPIO3_0      0x16
0078 #define DA914x_REG_SYS_GPIO3_1      0x17
0079 #define DA914x_REG_SYS_GPIO4_0      0x18
0080 #define DA914x_REG_SYS_GPIO4_1      0x19
0081 #define DA914x_REG_SYS_ADMUX1_0     0x1A
0082 #define DA914x_REG_SYS_ADMUX1_1     0x1B
0083 #define DA914x_REG_SYS_ADMUX2_0     0x1C
0084 #define DA914x_REG_SYS_ADMUX2_1     0x1D
0085 #define DA9121_REG_BUCK_BUCK1_0     0x20
0086 #define DA9121_REG_BUCK_BUCK1_1     0x21
0087 #define DA9121_REG_BUCK_BUCK1_2     0x22
0088 #define DA9121_REG_BUCK_BUCK1_3     0x23
0089 #define DA9121_REG_BUCK_BUCK1_4     0x24
0090 #define DA9121_REG_BUCK_BUCK1_5     0x25
0091 #define DA9121_REG_BUCK_BUCK1_6     0x26
0092 #define DA9121_REG_BUCK_BUCK1_7     0x27
0093 #define DA9xxx_REG_BUCK_BUCK2_0     0x28
0094 #define DA9xxx_REG_BUCK_BUCK2_1     0x29
0095 #define DA9xxx_REG_BUCK_BUCK2_2     0x2A
0096 #define DA9xxx_REG_BUCK_BUCK2_3     0x2B
0097 #define DA9xxx_REG_BUCK_BUCK2_4     0x2C
0098 #define DA9xxx_REG_BUCK_BUCK2_5     0x2D
0099 #define DA9xxx_REG_BUCK_BUCK2_6     0x2E
0100 #define DA9xxx_REG_BUCK_BUCK2_7     0x2F
0101 #define DA9121_REG_OTP_DEVICE_ID    0x48
0102 #define DA9121_REG_OTP_VARIANT_ID   0x49
0103 #define DA9121_REG_OTP_CUSTOMER_ID  0x4A
0104 #define DA9121_REG_OTP_CONFIG_ID    0x4B
0105 
0106 /* Register bits */
0107 
0108 /* DA9121_REG_SYS_STATUS_0 */
0109 
0110 #define DA9xxx_MASK_SYS_STATUS_0_SG         BIT(2)
0111 #define DA9121_MASK_SYS_STATUS_0_TEMP_CRIT      BIT(1)
0112 #define DA9121_MASK_SYS_STATUS_0_TEMP_WARN      BIT(0)
0113 
0114 /* DA9121_REG_SYS_STATUS_1 */
0115 
0116 #define DA9xxx_MASK_SYS_STATUS_1_PG2            BIT(7)
0117 #define DA9xxx_MASK_SYS_STATUS_1_OV2            BIT(6)
0118 #define DA9xxx_MASK_SYS_STATUS_1_UV2            BIT(5)
0119 #define DA9xxx_MASK_SYS_STATUS_1_OC2            BIT(4)
0120 #define DA9121_MASK_SYS_STATUS_1_PG1            BIT(3)
0121 #define DA9121_MASK_SYS_STATUS_1_OV1            BIT(2)
0122 #define DA9121_MASK_SYS_STATUS_1_UV1            BIT(1)
0123 #define DA9121_MASK_SYS_STATUS_1_OC1            BIT(0)
0124 
0125 /* DA9121_REG_SYS_STATUS_2 */
0126 
0127 #define DA9121_MASK_SYS_STATUS_2_GPIO2          BIT(2)
0128 #define DA9121_MASK_SYS_STATUS_2_GPIO1          BIT(1)
0129 #define DA9121_MASK_SYS_STATUS_2_GPIO0          BIT(0)
0130 
0131 /* DA9121_REG_SYS_EVENT_0 */
0132 
0133 #define DA9xxx_MASK_SYS_EVENT_0_E_SG            BIT(2)
0134 #define DA9121_MASK_SYS_EVENT_0_E_TEMP_CRIT     BIT(1)
0135 #define DA9121_MASK_SYS_EVENT_0_E_TEMP_WARN     BIT(0)
0136 
0137 /* DA9121_REG_SYS_EVENT_1 */
0138 
0139 #define DA9xxx_MASK_SYS_EVENT_1_E_PG2           BIT(7)
0140 #define DA9xxx_MASK_SYS_EVENT_1_E_OV2           BIT(6)
0141 #define DA9xxx_MASK_SYS_EVENT_1_E_UV2           BIT(5)
0142 #define DA9xxx_MASK_SYS_EVENT_1_E_OC2           BIT(4)
0143 #define DA9121_MASK_SYS_EVENT_1_E_PG1           BIT(3)
0144 #define DA9121_MASK_SYS_EVENT_1_E_OV1           BIT(2)
0145 #define DA9121_MASK_SYS_EVENT_1_E_UV1           BIT(1)
0146 #define DA9121_MASK_SYS_EVENT_1_E_OC1           BIT(0)
0147 
0148 /* DA9121_REG_SYS_EVENT_2 */
0149 
0150 #define DA9121_MASK_SYS_EVENT_2_E_GPIO2         BIT(2)
0151 #define DA9121_MASK_SYS_EVENT_2_E_GPIO1         BIT(1)
0152 #define DA9121_MASK_SYS_EVENT_2_E_GPIO0         BIT(0)
0153 
0154 /* DA9121_REG_SYS_MASK_0 */
0155 
0156 #define DA9xxx_MASK_SYS_MASK_0_M_SG         BIT(2)
0157 #define DA9121_MASK_SYS_MASK_0_M_TEMP_CRIT      BIT(1)
0158 #define DA9121_MASK_SYS_MASK_0_M_TEMP_WARN      BIT(0)
0159 
0160 /* DA9121_REG_SYS_MASK_1 */
0161 
0162 #define DA9xxx_MASK_SYS_MASK_1_M_PG2            BIT(7)
0163 #define DA9xxx_MASK_SYS_MASK_1_M_OV2            BIT(6)
0164 #define DA9xxx_MASK_SYS_MASK_1_M_UV2            BIT(5)
0165 #define DA9xxx_MASK_SYS_MASK_1_M_OC2            BIT(4)
0166 #define DA9121_MASK_SYS_MASK_1_M_PG1            BIT(3)
0167 #define DA9121_MASK_SYS_MASK_1_M_OV1            BIT(2)
0168 #define DA9121_MASK_SYS_MASK_1_M_UV1            BIT(1)
0169 #define DA9121_MASK_SYS_MASK_1_M_OC1            BIT(0)
0170 
0171 /* DA9121_REG_SYS_MASK_2 */
0172 
0173 #define DA9121_MASK_SYS_MASK_2_M_GPIO2          BIT(2)
0174 #define DA9121_MASK_SYS_MASK_2_M_GPIO1          BIT(1)
0175 #define DA9121_MASK_SYS_MASK_2_M_GPIO0          BIT(0)
0176 
0177 /* DA9122_REG_SYS_MASK_3 */
0178 
0179 #define DA9121_MASK_SYS_MASK_3_M_VR_HOT         BIT(3)
0180 #define DA9xxx_MASK_SYS_MASK_3_M_SG_STAT        BIT(2)
0181 #define DA9xxx_MASK_SYS_MASK_3_M_PG2_STAT       BIT(1)
0182 #define DA9121_MASK_SYS_MASK_3_M_PG1_STAT       BIT(0)
0183 
0184 /* DA9121_REG_SYS_CONFIG_0 */
0185 
0186 #define DA9121_MASK_SYS_CONFIG_0_CH1_DIS_DLY        0xF0
0187 #define DA9121_MASK_SYS_CONFIG_0_CH1_EN_DLY     0x0F
0188 
0189 /* DA9xxx_REG_SYS_CONFIG_1 */
0190 
0191 #define DA9xxx_MASK_SYS_CONFIG_1_CH2_DIS_DLY        0xF0
0192 #define DA9xxx_MASK_SYS_CONFIG_1_CH2_EN_DLY     0x0F
0193 
0194 /* DA9121_REG_SYS_CONFIG_2 */
0195 
0196 #define DA9121_MASK_SYS_CONFIG_2_OC_LATCHOFF        0x60
0197 #define DA9121_MASK_SYS_CONFIG_2_OC_DVC_MASK        BIT(4)
0198 #define DA9121_MASK_SYS_CONFIG_2_PG_DVC_MASK        0x0C
0199 
0200 /* DA9121_REG_SYS_CONFIG_3 */
0201 
0202 #define DA9121_MASK_SYS_CONFIG_3_OSC_TUNE       0X70
0203 #define DA9121_MASK_SYS_CONFIG_3_I2C_TIMEOUT        BIT(1)
0204 
0205 /* DA9121_REG_SYS_GPIO0_0 */
0206 
0207 #define DA9121_MASK_SYS_GPIO0_0_GPIO0_MODE      0X1E
0208 #define DA9121_MASK_SYS_GPIO0_0_GPIO0_OBUF      BIT(0)
0209 
0210 /* DA9121_REG_SYS_GPIO0_1 */
0211 
0212 #define DA9121_MASK_SYS_GPIO0_1_GPIO0_DEB_FALL      BIT(7)
0213 #define DA9121_MASK_SYS_GPIO0_1_GPIO0_DEB_RISE      BIT(6)
0214 #define DA9121_MASK_SYS_GPIO0_1_GPIO0_DEB       0x30
0215 #define DA9121_MASK_SYS_GPIO0_1_GPIO0_PUPD      BIT(3)
0216 #define DA9121_MASK_SYS_GPIO0_1_GPIO0_POL       BIT(2)
0217 #define DA9121_MASK_SYS_GPIO0_1_GPIO0_TRIG      0x03
0218 
0219 /* DA9121_REG_SYS_GPIO1_0 */
0220 
0221 #define DA9121_MASK_SYS_GPIO1_0_GPIO1_MODE      0x1E
0222 #define DA9121_MASK_SYS_GPIO1_0_GPIO1_OBUF      BIT(0)
0223 
0224 /* DA9121_REG_SYS_GPIO1_1 */
0225 
0226 #define DA9121_MASK_SYS_GPIO1_1_GPIO1_DEB_FALL      BIT(7)
0227 #define DA9121_MASK_SYS_GPIO1_1_GPIO1_DEB_RISE      BIT(6)
0228 #define DA9121_MASK_SYS_GPIO1_1_GPIO1_DEB       0x30
0229 #define DA9121_MASK_SYS_GPIO1_1_GPIO1_PUPD      BIT(3)
0230 #define DA9121_MASK_SYS_GPIO1_1_GPIO1_POL       BIT(2)
0231 #define DA9121_MASK_SYS_GPIO1_1_GPIO1_TRIG      0x03
0232 
0233 /* DA9121_REG_SYS_GPIO2_0 */
0234 
0235 #define DA9121_MASK_SYS_GPIO2_0_GPIO2_MODE      0x1E
0236 #define DA9121_MASK_SYS_GPIO2_0_GPIO2_OBUF      BIT(0)
0237 
0238 /* DA9121_REG_SYS_GPIO2_1 */
0239 
0240 #define DA9121_MASK_SYS_GPIO2_1_GPIO2_DEB_FALL      BIT(7)
0241 #define DA9121_MASK_SYS_GPIO2_1_GPIO2_DEB_RISE      BIT(6)
0242 #define DA9121_MASK_SYS_GPIO2_1_GPIO2_DEB       0x30
0243 #define DA9121_MASK_SYS_GPIO2_1_GPIO2_PUPD      BIT(3)
0244 #define DA9121_MASK_SYS_GPIO2_1_GPIO2_POL       BIT(2)
0245 #define DA9121_MASK_SYS_GPIO2_1_GPIO2_TRIG      0x03
0246 
0247 /* DA9121_REG_BUCK_BUCK1_0 / DA9xxx_REG_BUCK_BUCK2_0 */
0248 
0249 #define DA9121_MASK_BUCK_BUCKx_0_CHx_SR_DVC_DWN     0x70
0250 #define DA9121_MASK_BUCK_BUCKx_0_CHx_SR_DVC_UP      0x0E
0251 #define DA9121_MASK_BUCK_BUCKx_0_CHx_EN         BIT(0)
0252 
0253 /* DA9121_REG_BUCK_BUCK1_1 / DA9xxx_REG_BUCK_BUCK2_1 */
0254 
0255 #define DA9121_MASK_BUCK_BUCKx_1_CHx_SR_SHDN        0x70
0256 #define DA9121_MASK_BUCK_BUCKx_1_CHx_SR_STARTUP     0x0E
0257 #define DA9121_MASK_BUCK_BUCKx_1_CHx_PD_DIS     BIT(0)
0258 
0259 /* DA9121_REG_BUCK_BUCK1_2 / DA9xxx_REG_BUCK_BUCK2_2 */
0260 
0261 #define DA9121_MASK_BUCK_BUCKx_2_CHx_ILIM       0x0F
0262 
0263 /* DA9121_REG_BUCK_BUCK1_3 / DA9xxx_REG_BUCK_BUCK2_3 */
0264 
0265 #define DA9121_MASK_BUCK_BUCKx_3_CHx_VMAX       0xFF
0266 
0267 /* DA9121_REG_BUCK_BUCK1_4 / DA9xxx_REG_BUCK_BUCK2_4 */
0268 
0269 #define DA9121_MASK_BUCK_BUCKx_4_CHx_VSEL       BIT(4)
0270 #define DA9121_MASK_BUCK_BUCKx_4_CHx_B_MODE     0x0C
0271 #define DA9121_MASK_BUCK_BUCKx_4_CHx_A_MODE     0x03
0272 
0273 /* DA9121_REG_BUCK_BUCK1_5 / DA9xxx_REG_BUCK_BUCK2_5 */
0274 
0275 #define DA9121_MASK_BUCK_BUCKx_5_CHx_A_VOUT     0xFF
0276 
0277 /* DA9121_REG_BUCK_BUCK1_6 / DA9xxx_REG_BUCK_BUCK2_6 */
0278 
0279 #define DA9121_MASK_BUCK_BUCKx_6_CHx_B_VOUT     0xFF
0280 
0281 /* DA9121_REG_BUCK_BUCK1_7 / DA9xxx_REG_BUCK_BUCK2_7 */
0282 
0283 #define DA9xxx_MASK_BUCK_BUCKx_7_CHx_RIPPLE_CANCEL  0x03
0284 
0285 
0286 /* DA9121_REG_OTP_DEVICE_ID */
0287 
0288 #define DA9121_MASK_OTP_DEVICE_ID_DEV_ID        0xFF
0289 
0290 #define DA9121_DEVICE_ID    0x05
0291 #define DA914x_DEVICE_ID    0x26
0292 
0293 /* DA9121_REG_OTP_VARIANT_ID */
0294 
0295 #define DA9121_SHIFT_OTP_VARIANT_ID_MRC         4
0296 #define DA9121_MASK_OTP_VARIANT_ID_MRC          0xF0
0297 #define DA9121_SHIFT_OTP_VARIANT_ID_VRC         0
0298 #define DA9121_MASK_OTP_VARIANT_ID_VRC          0x0F
0299 
0300 #define DA9121_VARIANT_MRC_BASE 0x2
0301 #define DA9121_VARIANT_VRC  0x1
0302 #define DA9220_VARIANT_VRC  0x0
0303 #define DA9122_VARIANT_VRC  0x2
0304 #define DA9217_VARIANT_VRC  0x7
0305 #define DA9130_VARIANT_VRC  0x0
0306 #define DA9131_VARIANT_VRC  0x1
0307 #define DA9132_VARIANT_VRC  0x2
0308 
0309 #define DA914x_VARIANT_MRC_BASE 0x0
0310 #define DA9141_VARIANT_VRC  0x1
0311 #define DA9142_VARIANT_VRC  0x2
0312 
0313 /* DA9121_REG_OTP_CUSTOMER_ID */
0314 
0315 #define DA9121_MASK_OTP_CUSTOMER_ID_CUST_ID     0xFF
0316 
0317 /* DA9121_REG_OTP_CONFIG_ID */
0318 
0319 #define DA9121_MASK_OTP_CONFIG_ID_CONFIG_REV        0xFF
0320 
0321 #endif /* __DA9121_REGISTERS_H__ */