setup-r8a7778.c 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. // SPDX-License-Identifier: GPL-2.0
  2. /*
  3. * r8a7778 processor support
  4. *
  5. * Copyright (C) 2013 Renesas Solutions Corp.
  6. * Copyright (C) 2013 Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
  7. * Copyright (C) 2013 Cogent Embedded, Inc.
  8. */
  9. #include <linux/io.h>
  10. #include <linux/irqchip.h>
  11. #include <asm/mach/arch.h>
  12. #include "common.h"
  13. #define INT2SMSKCR0 0x82288 /* 0xfe782288 */
  14. #define INT2SMSKCR1 0x8228c /* 0xfe78228c */
  15. #define INT2NTSR0 0x00018 /* 0xfe700018 */
  16. #define INT2NTSR1 0x0002c /* 0xfe70002c */
  17. static void __init r8a7778_init_irq_dt(void)
  18. {
  19. void __iomem *base = ioremap_nocache(0xfe700000, 0x00100000);
  20. BUG_ON(!base);
  21. irqchip_init();
  22. /* route all interrupts to ARM */
  23. __raw_writel(0x73ffffff, base + INT2NTSR0);
  24. __raw_writel(0xffffffff, base + INT2NTSR1);
  25. /* unmask all known interrupts in INTCS2 */
  26. __raw_writel(0x08330773, base + INT2SMSKCR0);
  27. __raw_writel(0x00311110, base + INT2SMSKCR1);
  28. iounmap(base);
  29. }
  30. static const char *const r8a7778_compat_dt[] __initconst = {
  31. "renesas,r8a7778",
  32. NULL,
  33. };
  34. DT_MACHINE_START(R8A7778_DT, "Generic R8A7778 (Flattened Device Tree)")
  35. .init_early = shmobile_init_delay,
  36. .init_irq = r8a7778_init_irq_dt,
  37. .init_late = shmobile_init_late,
  38. .dt_compat = r8a7778_compat_dt,
  39. MACHINE_END