19 #include <linux/kernel.h>
25 #include <linux/module.h>
27 #include <asm/proc-fns.h>
28 #include <asm/system_misc.h>
31 #include <mach/common.h>
33 #define MX23_CLKCTRL_RESET_OFFSET 0x120
34 #define MX28_CLKCTRL_RESET_OFFSET 0x1e0
35 #define MXS_CLKCTRL_RESET_CHIP (1 << 1)
37 #define MXS_MODULE_CLKGATE (1 << 30)
38 #define MXS_MODULE_SFTRST (1 << 31)
40 static void __iomem *mxs_clkctrl_reset_addr;
50 pr_err(
"Failed to assert the chip reset\n");
59 static int __init mxs_arch_reset_init(
void)
69 clk_prepare_enable(clk);
85 __mxs_clrl(mask, addr);
129 ret = clear_poll_bit(reset_addr, MXS_MODULE_CLKGATE);
136 pr_err(
"%s(%p): module reset timeout\n", __func__, reset_addr);