18c2ecf20Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0 28c2ecf20Sopenharmony_ci/* 38c2ecf20Sopenharmony_ci * linux/arch/sh/boards/renesas/sdk7780/irq.c 48c2ecf20Sopenharmony_ci * 58c2ecf20Sopenharmony_ci * Renesas Technology Europe SDK7780 Support. 68c2ecf20Sopenharmony_ci * 78c2ecf20Sopenharmony_ci * Copyright (C) 2008 Nicholas Beck <nbeck@mpc-data.co.uk> 88c2ecf20Sopenharmony_ci */ 98c2ecf20Sopenharmony_ci#include <linux/init.h> 108c2ecf20Sopenharmony_ci#include <linux/irq.h> 118c2ecf20Sopenharmony_ci#include <linux/io.h> 128c2ecf20Sopenharmony_ci#include <mach/sdk7780.h> 138c2ecf20Sopenharmony_ci 148c2ecf20Sopenharmony_cienum { 158c2ecf20Sopenharmony_ci UNUSED = 0, 168c2ecf20Sopenharmony_ci /* board specific interrupt sources */ 178c2ecf20Sopenharmony_ci SMC91C111, /* Ethernet controller */ 188c2ecf20Sopenharmony_ci}; 198c2ecf20Sopenharmony_ci 208c2ecf20Sopenharmony_cistatic struct intc_vect fpga_vectors[] __initdata = { 218c2ecf20Sopenharmony_ci INTC_IRQ(SMC91C111, IRQ_ETHERNET), 228c2ecf20Sopenharmony_ci}; 238c2ecf20Sopenharmony_ci 248c2ecf20Sopenharmony_cistatic struct intc_mask_reg fpga_mask_registers[] __initdata = { 258c2ecf20Sopenharmony_ci { 0, FPGA_IRQ0MR, 16, 268c2ecf20Sopenharmony_ci { 0, 0, 0, 0, 0, 0, 0, 0, 278c2ecf20Sopenharmony_ci 0, 0, 0, SMC91C111, 0, 0, 0, 0 } }, 288c2ecf20Sopenharmony_ci}; 298c2ecf20Sopenharmony_ci 308c2ecf20Sopenharmony_cistatic DECLARE_INTC_DESC(fpga_intc_desc, "sdk7780-irq", fpga_vectors, 318c2ecf20Sopenharmony_ci NULL, fpga_mask_registers, NULL, NULL); 328c2ecf20Sopenharmony_ci 338c2ecf20Sopenharmony_civoid __init init_sdk7780_IRQ(void) 348c2ecf20Sopenharmony_ci{ 358c2ecf20Sopenharmony_ci printk(KERN_INFO "Using SDK7780 interrupt controller.\n"); 368c2ecf20Sopenharmony_ci 378c2ecf20Sopenharmony_ci __raw_writew(0xFFFF, FPGA_IRQ0MR); 388c2ecf20Sopenharmony_ci /* Setup IRL 0-3 */ 398c2ecf20Sopenharmony_ci __raw_writew(0x0003, FPGA_IMSR); 408c2ecf20Sopenharmony_ci plat_irq_setup_pins(IRQ_MODE_IRL3210); 418c2ecf20Sopenharmony_ci 428c2ecf20Sopenharmony_ci register_intc_controller(&fpga_intc_desc); 438c2ecf20Sopenharmony_ci} 44