Commit b62280745e553b5800fa0797b920e547c92da82d
Committed by
Kever Yang
1 parent
addd062bea
Exists in
smarc_8mq_lf_v2020.04
and in
10 other branches
power: pmic: rk805: support rk805 pmic
The RK805 are a Power Management IC (PMIC) for multimedia and handheld devices. They contains the following components: - Regulators(4*BUCKs, 3*LDOs) - RTC - Clocking Signed-off-by: Elaine Zhang <zhangqing@rock-chips.com> Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
Showing 3 changed files with 19 additions and 0 deletions Side-by-side Diff
drivers/power/pmic/rk8xx.c
drivers/power/regulator/rk8xx.c
... | ... | @@ -38,7 +38,14 @@ |
38 | 38 | /* |
39 | 39 | * Ramp delay |
40 | 40 | */ |
41 | +#define RK805_RAMP_RATE_OFFSET 3 | |
42 | +#define RK805_RAMP_RATE_MASK (3 << RK805_RAMP_RATE_OFFSET) | |
43 | +#define RK805_RAMP_RATE_3MV_PER_US (0 << RK805_RAMP_RATE_OFFSET) | |
44 | +#define RK805_RAMP_RATE_6MV_PER_US (1 << RK805_RAMP_RATE_OFFSET) | |
45 | +#define RK805_RAMP_RATE_12_5MV_PER_US (2 << RK805_RAMP_RATE_OFFSET) | |
46 | +#define RK805_RAMP_RATE_25MV_PER_US (3 << RK805_RAMP_RATE_OFFSET) | |
41 | 47 | #define RK808_RAMP_RATE_OFFSET 3 |
48 | + | |
42 | 49 | #define RK808_RAMP_RATE_MASK (3 << RK808_RAMP_RATE_OFFSET) |
43 | 50 | #define RK808_RAMP_RATE_2MV_PER_US (0 << RK808_RAMP_RATE_OFFSET) |
44 | 51 | #define RK808_RAMP_RATE_4MV_PER_US (1 << RK808_RAMP_RATE_OFFSET) |
... | ... | @@ -131,6 +138,7 @@ |
131 | 138 | struct rk8xx_priv *priv = dev_get_priv(pmic); |
132 | 139 | |
133 | 140 | switch (priv->variant) { |
141 | + case RK805_ID: | |
134 | 142 | case RK816_ID: |
135 | 143 | switch (num) { |
136 | 144 | case 0: |
... | ... | @@ -185,6 +193,7 @@ |
185 | 193 | struct rk8xx_priv *priv = dev_get_priv(pmic); |
186 | 194 | |
187 | 195 | switch (priv->variant) { |
196 | + case RK805_ID: | |
188 | 197 | case RK816_ID: |
189 | 198 | if (buck >= 4) { |
190 | 199 | buck -= 4; |
... | ... | @@ -246,6 +255,7 @@ |
246 | 255 | int ret = 0; |
247 | 256 | |
248 | 257 | switch (priv->variant) { |
258 | + case RK805_ID: | |
249 | 259 | case RK816_ID: |
250 | 260 | if (buck >= 4) { |
251 | 261 | mask = 1 << (buck - 4); |
... | ... | @@ -277,6 +287,7 @@ |
277 | 287 | struct rk8xx_priv *priv = dev_get_priv(pmic); |
278 | 288 | |
279 | 289 | switch (priv->variant) { |
290 | + case RK805_ID: | |
280 | 291 | case RK816_ID: |
281 | 292 | mask = 1 << buck; |
282 | 293 | ret = pmic_clrsetbits(pmic, RK816_REG_DCDC_SLP_EN, mask, |
... | ... | @@ -302,6 +313,7 @@ |
302 | 313 | uint mask; |
303 | 314 | |
304 | 315 | switch (priv->variant) { |
316 | + case RK805_ID: | |
305 | 317 | case RK816_ID: |
306 | 318 | mask = 1 << buck; |
307 | 319 | val = pmic_reg_read(pmic, RK816_REG_DCDC_SLP_EN); |
... | ... | @@ -330,6 +342,7 @@ |
330 | 342 | struct rk8xx_priv *priv = dev_get_priv(pmic); |
331 | 343 | |
332 | 344 | switch (priv->variant) { |
345 | + case RK805_ID: | |
333 | 346 | case RK816_ID: |
334 | 347 | return &rk816_ldo[num]; |
335 | 348 | case RK818_ID: |
... | ... | @@ -346,6 +359,7 @@ |
346 | 359 | int ret = 0; |
347 | 360 | |
348 | 361 | switch (priv->variant) { |
362 | + case RK805_ID: | |
349 | 363 | case RK816_ID: |
350 | 364 | if (ldo >= 4) { |
351 | 365 | mask = 1 << (ldo - 4); |
... | ... | @@ -377,6 +391,7 @@ |
377 | 391 | int ret = 0; |
378 | 392 | |
379 | 393 | switch (priv->variant) { |
394 | + case RK805_ID: | |
380 | 395 | case RK816_ID: |
381 | 396 | if (ldo >= 4) { |
382 | 397 | ldo -= 4; |
... | ... | @@ -409,6 +424,7 @@ |
409 | 424 | int ret = 0; |
410 | 425 | |
411 | 426 | switch (priv->variant) { |
427 | + case RK805_ID: | |
412 | 428 | case RK816_ID: |
413 | 429 | mask = 1 << ldo; |
414 | 430 | ret = pmic_clrsetbits(pmic, RK816_REG_LDO_SLP_EN, mask, |
... | ... | @@ -432,6 +448,7 @@ |
432 | 448 | uint mask; |
433 | 449 | |
434 | 450 | switch (priv->variant) { |
451 | + case RK805_ID: | |
435 | 452 | case RK816_ID: |
436 | 453 | mask = 1 << ldo; |
437 | 454 | val = pmic_reg_read(pmic, RK816_REG_LDO_SLP_EN); |