diff options
Diffstat (limited to 'firmware/target/arm/imx233/clkctrl-imx233.h')
-rw-r--r-- | firmware/target/arm/imx233/clkctrl-imx233.h | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/firmware/target/arm/imx233/clkctrl-imx233.h b/firmware/target/arm/imx233/clkctrl-imx233.h index fc835c813a..8a52620f7e 100644 --- a/firmware/target/arm/imx233/clkctrl-imx233.h +++ b/firmware/target/arm/imx233/clkctrl-imx233.h | |||
@@ -98,6 +98,17 @@ | |||
98 | #define HW_CLKCTRL_RESET_CHIP 0x2 | 98 | #define HW_CLKCTRL_RESET_CHIP 0x2 |
99 | #define HW_CLKCTRL_RESET_DIG 0x1 | 99 | #define HW_CLKCTRL_RESET_DIG 0x1 |
100 | 100 | ||
101 | static inline void core_sleep(void) | ||
102 | { | ||
103 | __REG_SET(HW_CLKCTRL_CPU) = HW_CLKCTRL_CPU__INTERRUPT_WAIT; | ||
104 | asm volatile ( | ||
105 | "mcr p15, 0, %0, c7, c0, 4 \n" /* Wait for interrupt */ | ||
106 | "nop\n" /* Datasheet unclear: "The lr sent to handler points here after RTI"*/ | ||
107 | : : "r"(0) | ||
108 | ); | ||
109 | enable_irq(); | ||
110 | } | ||
111 | |||
101 | enum imx233_clock_t | 112 | enum imx233_clock_t |
102 | { | 113 | { |
103 | CLK_PIX, /* freq, div, frac, bypass, enable */ | 114 | CLK_PIX, /* freq, div, frac, bypass, enable */ |