sleep43xx.S (18b4788badeae8ed3a9bd3c240d83dffe5db8f37) sleep43xx.S (03de3727b25059d9802d1baac319ba40c035eade)
1/* SPDX-License-Identifier: GPL-2.0 */
2/*
3 * Low level suspend code for AM43XX SoCs
4 *
5 * Copyright (C) 2013-2018 Texas Instruments Incorporated - http://www.ti.com/
6 * Dave Gerlach, Vaibhav Bedia
7 */
8

--- 38 unchanged lines hidden (view full) ---

47#define AM43XX_PRM_EMIF_CTRL_OFFSET 0x0030
48
49 .arm
50 .align 3
51
52ENTRY(am43xx_do_wfi)
53 stmfd sp!, {r4 - r11, lr} @ save registers on stack
54
1/* SPDX-License-Identifier: GPL-2.0 */
2/*
3 * Low level suspend code for AM43XX SoCs
4 *
5 * Copyright (C) 2013-2018 Texas Instruments Incorporated - http://www.ti.com/
6 * Dave Gerlach, Vaibhav Bedia
7 */
8

--- 38 unchanged lines hidden (view full) ---

47#define AM43XX_PRM_EMIF_CTRL_OFFSET 0x0030
48
49 .arm
50 .align 3
51
52ENTRY(am43xx_do_wfi)
53 stmfd sp!, {r4 - r11, lr} @ save registers on stack
54
55#ifdef CONFIG_CACHE_L2X0
55 /* Retrieve l2 cache virt address BEFORE we shut off EMIF */
56 ldr r1, get_l2cache_base
57 blx r1
58 mov r8, r0
56 /* Retrieve l2 cache virt address BEFORE we shut off EMIF */
57 ldr r1, get_l2cache_base
58 blx r1
59 mov r8, r0
60#endif
59
60 /*
61 * Flush all data from the L1 and L2 data cache before disabling
62 * SCTLR.C bit.
63 */
64 ldr r1, kernel_flush
65 blx r1
66

--- 262 unchanged lines hidden (view full) ---

329ENDPROC(am43xx_resume_from_deep_sleep)
330
331/*
332 * Local variables
333 */
334 .align
335resume_addr:
336 .word cpu_resume - PAGE_OFFSET + 0x80000000
61
62 /*
63 * Flush all data from the L1 and L2 data cache before disabling
64 * SCTLR.C bit.
65 */
66 ldr r1, kernel_flush
67 blx r1
68

--- 262 unchanged lines hidden (view full) ---

331ENDPROC(am43xx_resume_from_deep_sleep)
332
333/*
334 * Local variables
335 */
336 .align
337resume_addr:
338 .word cpu_resume - PAGE_OFFSET + 0x80000000
337get_l2cache_base:
338 .word omap4_get_l2cache_base
339kernel_flush:
340 .word v7_flush_dcache_all
341ddr_start:
342 .word PAGE_OFFSET
343
344am43xx_phys_emif_poweroff:
345 .word (AM43XX_CM_BASE + AM43XX_PRM_DEVICE_INST + \
346 AM43XX_PRM_EMIF_CTRL_OFFSET)
347am43xx_virt_mpu_clkstctrl:
348 .word (AM43XX_CM_MPU_CLKSTCTRL)
349am43xx_virt_mpu_clkctrl:
350 .word (AM43XX_CM_MPU_MPU_CLKCTRL)
351am43xx_virt_emif_clkctrl:
352 .word (AM43XX_CM_PER_EMIF_CLKCTRL)
353am43xx_phys_emif_clkctrl:
354 .word (AM43XX_CM_BASE + AM43XX_CM_PER_INST + \
355 AM43XX_CM_PER_EMIF_CLKCTRL_OFFSET)
356
339kernel_flush:
340 .word v7_flush_dcache_all
341ddr_start:
342 .word PAGE_OFFSET
343
344am43xx_phys_emif_poweroff:
345 .word (AM43XX_CM_BASE + AM43XX_PRM_DEVICE_INST + \
346 AM43XX_PRM_EMIF_CTRL_OFFSET)
347am43xx_virt_mpu_clkstctrl:
348 .word (AM43XX_CM_MPU_CLKSTCTRL)
349am43xx_virt_mpu_clkctrl:
350 .word (AM43XX_CM_MPU_MPU_CLKCTRL)
351am43xx_virt_emif_clkctrl:
352 .word (AM43XX_CM_PER_EMIF_CLKCTRL)
353am43xx_phys_emif_clkctrl:
354 .word (AM43XX_CM_BASE + AM43XX_CM_PER_INST + \
355 AM43XX_CM_PER_EMIF_CLKCTRL_OFFSET)
356
357#ifdef CONFIG_CACHE_L2X0
357/* L2 cache related defines for AM437x */
358/* L2 cache related defines for AM437x */
359get_l2cache_base:
360 .word omap4_get_l2cache_base
358l2_cache_base:
359 .word OMAP44XX_L2CACHE_BASE
360l2_smc1:
361 .word OMAP4_MON_L2X0_PREFETCH_INDEX
362l2_smc2:
363 .word OMAP4_MON_L2X0_AUXCTRL_INDEX
364l2_smc3:
365 .word OMAP4_MON_L2X0_CTRL_INDEX
366l2_val:
367 .word 0xffff
361l2_cache_base:
362 .word OMAP44XX_L2CACHE_BASE
363l2_smc1:
364 .word OMAP4_MON_L2X0_PREFETCH_INDEX
365l2_smc2:
366 .word OMAP4_MON_L2X0_AUXCTRL_INDEX
367l2_smc3:
368 .word OMAP4_MON_L2X0_CTRL_INDEX
369l2_val:
370 .word 0xffff
371#endif
368
369.align 3
370/* DDR related defines */
371ENTRY(am43xx_emif_sram_table)
372 .space EMIF_PM_FUNCTIONS_SIZE
373
374ENTRY(am43xx_pm_sram)
375 .word am43xx_do_wfi

--- 12 unchanged lines hidden ---
372
373.align 3
374/* DDR related defines */
375ENTRY(am43xx_emif_sram_table)
376 .space EMIF_PM_FUNCTIONS_SIZE
377
378ENTRY(am43xx_pm_sram)
379 .word am43xx_do_wfi

--- 12 unchanged lines hidden ---