Commit f05bc5f9ea1e4b51f0b1352152209e7e41196057
1 parent
dcdb0c9a1b
Exists in
smarc_8mq_lf_v2020.04
and in
4 other branches
MLK-19960-3 imx8mm: power down core 1/2/3 for variant parts
Power down the A53 cores for dual core and single core iMX8MM parts to save power. Signed-off-by: Ye Li <ye.li@nxp.com> Reviewed-by: Peng Fan <peng.fan@nxp.com> (cherry picked from commit 4a732af597df87db74e386190fd90b20931b7205) (cherry picked from commit 82176f74d9e13f2e2801385a734217cbd56e183f)
Showing 1 changed file with 9 additions and 3 deletions Side-by-side Diff
arch/arm/mach-imx/imx8m/soc.c
... | ... | @@ -293,15 +293,21 @@ |
293 | 293 | clock_init(); |
294 | 294 | imx_set_wdog_powerdown(false); |
295 | 295 | |
296 | - if (is_imx8md()) { | |
297 | - /* Power down cpu core 2 and 3 for iMX8MD */ | |
296 | + if (is_imx8md() || is_imx8mmd() || is_imx8mmdl() || is_imx8mms() || is_imx8mmsl()) { | |
297 | + /* Power down cpu core 1, 2 and 3 for iMX8M Dual core or Single core */ | |
298 | + struct pgc_reg *pgc_core1 = (struct pgc_reg *)(GPC_BASE_ADDR + 0x840); | |
298 | 299 | struct pgc_reg *pgc_core2 = (struct pgc_reg *)(GPC_BASE_ADDR + 0x880); |
299 | 300 | struct pgc_reg *pgc_core3 = (struct pgc_reg *)(GPC_BASE_ADDR + 0x8C0); |
300 | 301 | struct gpc_reg *gpc = (struct gpc_reg *)GPC_BASE_ADDR; |
301 | 302 | |
302 | 303 | writel(0x1, &pgc_core2->pgcr); |
303 | 304 | writel(0x1, &pgc_core3->pgcr); |
304 | - writel(0xC, &gpc->cpu_pgc_dn_trg); | |
305 | + if (is_imx8mms() || is_imx8mmsl()) { | |
306 | + writel(0x1, &pgc_core1->pgcr); | |
307 | + writel(0xE, &gpc->cpu_pgc_dn_trg); | |
308 | + } else { | |
309 | + writel(0xC, &gpc->cpu_pgc_dn_trg); | |
310 | + } | |
305 | 311 | } |
306 | 312 | } |
307 | 313 |