⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 omap-sleep.s

📁 嵌入式系统中的,TPS65010 驱动程序, IIC 接口
💻 S
字号:
#include <linux/linkage.h>
#include <asm/assembler.h>

    .text

ENTRY(tps_deep_sleep)

    // Clear EMIFS global power-down enable bit (PDE) in EMIFS_CONFIG register
    ldr     r0, REG_EMIFS_CONFIG
    ldr     r1, [r0]
    ldr     r2, MSK_EMIFS_CONFIG_PDE
    and     r1, r1, r2
    str     r1, [r0]

    // Set IMIF power-down bit (PWD_EN) in EMIFS_CONFIG register
    ldr     r1, [r0]
    orr     r1, r1, #0x00000004
    str     r1, [r0]

    // Set CLK, PWD and SLRF bits of SDRAM Controller
    ldr     r0, REG_EMIFF_SDRAM_CONFIG
    ldr     r1, [r0]
    orr     r1, r1, #0x0C000001
    str     r1, [r0]

    // Set EMIFS global power-down enable bit (PDE) in EMIFS_CONFIG register
    ldr     r0, REG_EMIFS_CONFIG
    ldr     r1, [r0]
    orr     r1, r1, #0x08
    str     r1, [r0]

    // Put DPLL in Bypass
    ldr     r0, REG_DPLL1_CTL
    ldrh    r1, [r0]
    ldr     r2, MSK_DPLL1_CTL
    and     r1, r1, r2
    strh    r1, [r0]

    nop
    nop
    nop
    nop
    nop
    nop
    nop
    nop
    nop
    nop    

    // Stop the GPIO (XOR), API, HSAB, LB, and LCD clocks if running
    ldr     r0, REG_ARM_IDLECT2
    ldrh    r1, [r0]
    ldr     r2, MSK_ARM_IDLECT2_STOP
    and     r1, r1, r2
    strh    r1, [r0]     

    // Idle all of the ARM-based clocks and Go to sleep
    ldr     r0, REG_ARM_IDLECT1
    ldr     r1, MSK_ARM_IDLECT1_SLEEP
    strh    r1, [r0]

    nop     
    nop     
    nop     
    nop     
    nop     
    nop     
    nop     
    nop     
    nop     
    nop     
    nop     
    nop     
    nop     
    nop     
    nop     
    nop     
    nop     
    nop     
    nop     
    nop     
    nop     
    nop     
    nop     
    nop
    nop
    nop
    nop
    nop
    
    mov pc, lr 


REG_EMIFS_CONFIG:
	.word 0xFFFECC0C

REG_EMIFF_SDRAM_CONFIG:
	.word 0xFFFECC20

REG_ARM_IDLECT1:
	.word 0xFFFECE04

REG_ARM_IDLECT2:
	.word 0xFFFECE08

REG_DPLL1_CTL:
	.word 0xFFFECF00

MSK_DPLL1_CTL:
	.word 0xFFFFFFE3

MSK_EMIFS_CONFIG_PDE:
	.word 0xFFFFFFF7

MSK_ARM_IDLECT2_STOP:
	.word 0xFFFFF987

MSK_ARM_IDLECT1_SLEEP:
	.word 0x00000EC7

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -