0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017 #ifndef __DA9121_REGISTERS_H__
0018 #define __DA9121_REGISTERS_H__
0019
0020
0021
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
0047
0048
0049
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
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
0107
0108
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
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
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
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
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
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
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
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
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
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
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
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
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
0201
0202 #define DA9121_MASK_SYS_CONFIG_3_OSC_TUNE 0X70
0203 #define DA9121_MASK_SYS_CONFIG_3_I2C_TIMEOUT BIT(1)
0204
0205
0206
0207 #define DA9121_MASK_SYS_GPIO0_0_GPIO0_MODE 0X1E
0208 #define DA9121_MASK_SYS_GPIO0_0_GPIO0_OBUF BIT(0)
0209
0210
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
0220
0221 #define DA9121_MASK_SYS_GPIO1_0_GPIO1_MODE 0x1E
0222 #define DA9121_MASK_SYS_GPIO1_0_GPIO1_OBUF BIT(0)
0223
0224
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
0234
0235 #define DA9121_MASK_SYS_GPIO2_0_GPIO2_MODE 0x1E
0236 #define DA9121_MASK_SYS_GPIO2_0_GPIO2_OBUF BIT(0)
0237
0238
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
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
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
0260
0261 #define DA9121_MASK_BUCK_BUCKx_2_CHx_ILIM 0x0F
0262
0263
0264
0265 #define DA9121_MASK_BUCK_BUCKx_3_CHx_VMAX 0xFF
0266
0267
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
0274
0275 #define DA9121_MASK_BUCK_BUCKx_5_CHx_A_VOUT 0xFF
0276
0277
0278
0279 #define DA9121_MASK_BUCK_BUCKx_6_CHx_B_VOUT 0xFF
0280
0281
0282
0283 #define DA9xxx_MASK_BUCK_BUCKx_7_CHx_RIPPLE_CANCEL 0x03
0284
0285
0286
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
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
0314
0315 #define DA9121_MASK_OTP_CUSTOMER_ID_CUST_ID 0xFF
0316
0317
0318
0319 #define DA9121_MASK_OTP_CONFIG_ID_CONFIG_REV 0xFF
0320
0321 #endif