setup-r8a7778.c 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  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 <[email protected]>
  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 HPBREG_BASE 0xfe700000
  14. #define INT2SMSKCR0 0x82288 /* 0xfe782288 */
  15. #define INT2SMSKCR1 0x8228c /* 0xfe78228c */
  16. #define INT2NTSR0 0x00018 /* 0xfe700018 */
  17. #define INT2NTSR1 0x0002c /* 0xfe70002c */
  18. static void __init r8a7778_init_irq_dt(void)
  19. {
  20. void __iomem *base = ioremap(HPBREG_BASE, 0x00100000);
  21. BUG_ON(!base);
  22. irqchip_init();
  23. /* route all interrupts to ARM */
  24. writel(0x73ffffff, base + INT2NTSR0);
  25. writel(0xffffffff, base + INT2NTSR1);
  26. /* unmask all known interrupts in INTCS2 */
  27. writel(0x08330773, base + INT2SMSKCR0);
  28. writel(0x00311110, base + INT2SMSKCR1);
  29. iounmap(base);
  30. }
  31. static const char *const r8a7778_compat_dt[] __initconst = {
  32. "renesas,r8a7778",
  33. NULL
  34. };
  35. DT_MACHINE_START(R8A7778_DT, "Generic R8A7778 (Flattened Device Tree)")
  36. .init_early = shmobile_init_delay,
  37. .init_irq = r8a7778_init_irq_dt,
  38. .init_late = shmobile_init_late,
  39. .dt_compat = r8a7778_compat_dt,
  40. MACHINE_END