reset.c 560 B

12345678910111213141516171819202122232425
  1. /*
  2. * OMAP1 reset support
  3. */
  4. #include <linux/kernel.h>
  5. #include <linux/io.h>
  6. #include <mach/hardware.h>
  7. #include <mach/system.h>
  8. #include <plat/prcm.h>
  9. void omap1_arch_reset(char mode, const char *cmd)
  10. {
  11. /*
  12. * Workaround for 5912/1611b bug mentioned in sprz209d.pdf p. 28
  13. * "Global Software Reset Affects Traffic Controller Frequency".
  14. */
  15. if (cpu_is_omap5912()) {
  16. omap_writew(omap_readw(DPLL_CTL) & ~(1 << 4), DPLL_CTL);
  17. omap_writew(0x8, ARM_RSTCT1);
  18. }
  19. omap_writew(1, ARM_RSTCT1);
  20. }
  21. void (*arch_reset)(char, const char *) = omap1_arch_reset;