.. | .. |
---|
37 | 37 | #include <dt-bindings/power/rk3366-power.h> |
---|
38 | 38 | #include <dt-bindings/power/rk3368-power.h> |
---|
39 | 39 | #include <dt-bindings/power/rk3399-power.h> |
---|
| 40 | +#include <dt-bindings/power/rk3528-power.h> |
---|
40 | 41 | #include <dt-bindings/power/rk3568-power.h> |
---|
41 | 42 | |
---|
42 | 43 | struct rockchip_domain_info { |
---|
.. | .. |
---|
146 | 147 | .keepon_startup = keepon, \ |
---|
147 | 148 | } |
---|
148 | 149 | |
---|
| 150 | +#define DOMAIN_M_A(pwr, status, req, idle, ack, always, wakeup, keepon) \ |
---|
| 151 | +{ \ |
---|
| 152 | + .pwr_w_mask = (pwr) << 16, \ |
---|
| 153 | + .pwr_mask = (pwr), \ |
---|
| 154 | + .status_mask = (status), \ |
---|
| 155 | + .req_w_mask = (req) << 16, \ |
---|
| 156 | + .req_mask = (req), \ |
---|
| 157 | + .idle_mask = (idle), \ |
---|
| 158 | + .ack_mask = (ack), \ |
---|
| 159 | + .always_on = always, \ |
---|
| 160 | + .active_wakeup = wakeup, \ |
---|
| 161 | + .keepon_startup = keepon, \ |
---|
| 162 | +} |
---|
| 163 | + |
---|
149 | 164 | #define DOMAIN_M_O(pwr, status, p_offset, req, idle, ack, r_offset, wakeup, keepon) \ |
---|
150 | 165 | { \ |
---|
151 | 166 | .pwr_w_mask = (pwr) << 16, \ |
---|
.. | .. |
---|
205 | 220 | |
---|
206 | 221 | #define DOMAIN_RK3399_PROTECT(pwr, status, req, wakeup) \ |
---|
207 | 222 | DOMAIN(pwr, status, req, req, req, wakeup, true) |
---|
| 223 | + |
---|
| 224 | +#define DOMAIN_RK3528(pwr, req, always, wakeup) \ |
---|
| 225 | + DOMAIN_M_A(pwr, pwr, req, req, req, always, wakeup, false) |
---|
208 | 226 | |
---|
209 | 227 | #define DOMAIN_RK3568(pwr, req, wakeup) \ |
---|
210 | 228 | DOMAIN_M(pwr, pwr, req, req, req, wakeup, false) |
---|
.. | .. |
---|
1357 | 1375 | [RK3399_PD_SDIOAUDIO] = DOMAIN_RK3399(BIT(31), BIT(31), BIT(29), true), |
---|
1358 | 1376 | }; |
---|
1359 | 1377 | |
---|
| 1378 | +static const struct rockchip_domain_info rk3528_pm_domains[] = { |
---|
| 1379 | + [RK3528_PD_PMU] = DOMAIN_RK3528(0, BIT(0), true, false), |
---|
| 1380 | + [RK3528_PD_BUS] = DOMAIN_RK3528(0, BIT(1), true, false), |
---|
| 1381 | + [RK3528_PD_DDR] = DOMAIN_RK3528(0, BIT(2), true, false), |
---|
| 1382 | + [RK3528_PD_MSCH] = DOMAIN_RK3528(0, BIT(3), true, false), |
---|
| 1383 | + [RK3528_PD_GPU] = DOMAIN_RK3528(BIT(0), BIT(4), true, false), |
---|
| 1384 | + [RK3528_PD_RKVDEC] = DOMAIN_RK3528(0, BIT(5), true, false), |
---|
| 1385 | + [RK3528_PD_RKVENC] = DOMAIN_RK3528(0, BIT(6), true, false), |
---|
| 1386 | + [RK3528_PD_VO] = DOMAIN_RK3528(0, BIT(7), true, false), |
---|
| 1387 | + [RK3528_PD_VPU] = DOMAIN_RK3528(0, BIT(8), true, false), |
---|
| 1388 | +}; |
---|
| 1389 | + |
---|
1360 | 1390 | static const struct rockchip_domain_info rk3568_pm_domains[] = { |
---|
1361 | 1391 | [RK3568_PD_NPU] = DOMAIN_RK3568(BIT(1), BIT(2), false), |
---|
1362 | 1392 | [RK3568_PD_GPU] = DOMAIN_RK3568(BIT(0), BIT(1), false), |
---|
.. | .. |
---|
1508 | 1538 | .domain_info = rk3399_pm_domains, |
---|
1509 | 1539 | }; |
---|
1510 | 1540 | |
---|
| 1541 | +static const struct rockchip_pmu_info rk3528_pmu = { |
---|
| 1542 | + .pwr_offset = 0x1210, |
---|
| 1543 | + .status_offset = 0x1230, |
---|
| 1544 | + .req_offset = 0x1110, |
---|
| 1545 | + .idle_offset = 0x1128, |
---|
| 1546 | + .ack_offset = 0x1120, |
---|
| 1547 | + |
---|
| 1548 | + .num_domains = ARRAY_SIZE(rk3528_pm_domains), |
---|
| 1549 | + .domain_info = rk3528_pm_domains, |
---|
| 1550 | +}; |
---|
| 1551 | + |
---|
1511 | 1552 | static const struct rockchip_pmu_info rk3568_pmu = { |
---|
1512 | 1553 | .pwr_offset = 0xa0, |
---|
1513 | 1554 | .status_offset = 0x98, |
---|
.. | .. |
---|
1586 | 1627 | .data = (void *)&rk3399_pmu, |
---|
1587 | 1628 | }, |
---|
1588 | 1629 | #endif |
---|
| 1630 | +#ifdef CONFIG_CPU_RK3528 |
---|
| 1631 | + { |
---|
| 1632 | + .compatible = "rockchip,rk3528-power-controller", |
---|
| 1633 | + .data = (void *)&rk3528_pmu, |
---|
| 1634 | + }, |
---|
| 1635 | +#endif |
---|
1589 | 1636 | #ifdef CONFIG_CPU_RK3568 |
---|
1590 | 1637 | { |
---|
1591 | 1638 | .compatible = "rockchip,rk3568-power-controller", |
---|