hotplug.c 601 B

12345678910111213141516171819202122232425262728293031
  1. /*
  2. * Copyright 2007-2009 Analog Devices Inc.
  3. * Graff Yang <graf.yang@analog.com>
  4. *
  5. * Licensed under the GPL-2 or later.
  6. */
  7. #include <linux/smp.h>
  8. #include <asm/blackfin.h>
  9. #include <mach/pll.h>
  10. int hotplug_coreb;
  11. void platform_cpu_die(void)
  12. {
  13. unsigned long iwr;
  14. hotplug_coreb = 1;
  15. /* disable core timer */
  16. bfin_write_TCNTL(0);
  17. /* clear ipi interrupt IRQ_SUPPLE_0 of CoreB */
  18. bfin_write_SICB_SYSCR(bfin_read_SICB_SYSCR() | (1 << (10 + 1)));
  19. SSYNC();
  20. /* set CoreB wakeup by ipi0, iwr will be discarded */
  21. bfin_iwr_set_sup0(&iwr, &iwr, &iwr);
  22. SSYNC();
  23. coreb_die();
  24. }