0003-MIPS-ralink-adds-reset-code.patch 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. From 3cdf3d713c81ffd3032d7c664f0be89d1ddce3e3 Mon Sep 17 00:00:00 2001
  2. From: John Crispin <[email protected]>
  3. Date: Sun, 20 Jan 2013 22:00:57 +0100
  4. Subject: [PATCH 03/79] MIPS: ralink: adds reset code
  5. Resetting these SoCs requires no real magic. The code is straight forward.
  6. Signed-off-by: John Crispin <[email protected]>
  7. Signed-off-by: Gabor Juhos <[email protected]>
  8. Patchwork: http://patchwork.linux-mips.org/patch/4891/
  9. ---
  10. arch/mips/ralink/reset.c | 44 ++++++++++++++++++++++++++++++++++++++++++++
  11. 1 file changed, 44 insertions(+)
  12. create mode 100644 arch/mips/ralink/reset.c
  13. diff --git a/arch/mips/ralink/reset.c b/arch/mips/ralink/reset.c
  14. new file mode 100644
  15. index 0000000..22120e5
  16. --- /dev/null
  17. +++ b/arch/mips/ralink/reset.c
  18. @@ -0,0 +1,44 @@
  19. +/*
  20. + * This program is free software; you can redistribute it and/or modify it
  21. + * under the terms of the GNU General Public License version 2 as published
  22. + * by the Free Software Foundation.
  23. + *
  24. + * Copyright (C) 2008-2009 Gabor Juhos <[email protected]>
  25. + * Copyright (C) 2008 Imre Kaloz <[email protected]>
  26. + * Copyright (C) 2013 John Crispin <[email protected]>
  27. + */
  28. +
  29. +#include <linux/pm.h>
  30. +#include <linux/io.h>
  31. +
  32. +#include <asm/reboot.h>
  33. +
  34. +#include <asm/mach-ralink/ralink_regs.h>
  35. +
  36. +/* Reset Control */
  37. +#define SYSC_REG_RESET_CTRL 0x034
  38. +#define RSTCTL_RESET_SYSTEM BIT(0)
  39. +
  40. +static void ralink_restart(char *command)
  41. +{
  42. + local_irq_disable();
  43. + rt_sysc_w32(RSTCTL_RESET_SYSTEM, SYSC_REG_RESET_CTRL);
  44. + unreachable();
  45. +}
  46. +
  47. +static void ralink_halt(void)
  48. +{
  49. + local_irq_disable();
  50. + unreachable();
  51. +}
  52. +
  53. +static int __init mips_reboot_setup(void)
  54. +{
  55. + _machine_restart = ralink_restart;
  56. + _machine_halt = ralink_halt;
  57. + pm_power_off = ralink_halt;
  58. +
  59. + return 0;
  60. +}
  61. +
  62. +arch_initcall(mips_reboot_setup);
  63. --
  64. 1.7.10.4