a8ac296114
IRQ0 is no longer returned by platform_get_irq() and its ilk -- they now
return -EINVAL instead. However, the kernel code supporting SH3/4-based
SoCs still maps the IRQ #s starting at 0 -- modify that code to start the
IRQ #s from 16 instead.
The patch should mostly affect the AP-SH4A-3A/AP-SH4AD-0A boards as they
indeed are using IRQ0 for the SMSC911x compatible Ethernet chip.
Fixes: ce753ad154
("platform: finally disallow IRQ0 in platform_get_irq() and its ilk")
Signed-off-by: Sergey Shtylyov <s.shtylyov@omp.ru>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Tested-by: Geert Uytterhoeven <geert+renesas@glider.be>
Reviewed-by: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
Tested-by: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
Link: https://lore.kernel.org/r/71105dbf-cdb0-72e1-f9eb-eeda8e321696@omp.ru
Signed-off-by: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
70 lines
1.6 KiB
C
70 lines
1.6 KiB
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
#ifndef __ASM_SH_SE7724_H
|
|
#define __ASM_SH_SE7724_H
|
|
|
|
/*
|
|
* linux/include/asm-sh/se7724.h
|
|
*
|
|
* Copyright (C) 2009 Renesas Solutions Corp.
|
|
*
|
|
* Kuninori Morimoto <morimoto.kuninori@renesas.com>
|
|
*
|
|
* Hitachi UL SolutionEngine 7724 Support.
|
|
*
|
|
* Based on se7722.h
|
|
* Copyright (C) 2007 Nobuhiro Iwamatsu
|
|
*/
|
|
#include <linux/sh_intc.h>
|
|
#include <asm/addrspace.h>
|
|
|
|
/* SH Eth */
|
|
#define SH_ETH_ADDR (0xA4600000)
|
|
#define SH_ETH_MAHR (SH_ETH_ADDR + 0x1C0)
|
|
#define SH_ETH_MALR (SH_ETH_ADDR + 0x1C8)
|
|
|
|
#define PA_LED (0xba203000) /* 8bit LED */
|
|
#define IRQ_MODE (0xba200010)
|
|
#define IRQ0_SR (0xba200014)
|
|
#define IRQ1_SR (0xba200018)
|
|
#define IRQ2_SR (0xba20001c)
|
|
#define IRQ0_MR (0xba200020)
|
|
#define IRQ1_MR (0xba200024)
|
|
#define IRQ2_MR (0xba200028)
|
|
|
|
/* IRQ */
|
|
#define IRQ0_IRQ evt2irq(0x600)
|
|
#define IRQ1_IRQ evt2irq(0x620)
|
|
#define IRQ2_IRQ evt2irq(0x640)
|
|
|
|
/* Bits in IRQ012 registers */
|
|
#define SE7724_FPGA_IRQ_BASE (220 + 16)
|
|
|
|
/* IRQ0 */
|
|
#define IRQ0_BASE SE7724_FPGA_IRQ_BASE
|
|
#define IRQ0_KEY (IRQ0_BASE + 12)
|
|
#define IRQ0_RMII (IRQ0_BASE + 13)
|
|
#define IRQ0_SMC (IRQ0_BASE + 14)
|
|
#define IRQ0_MASK 0x7fff
|
|
#define IRQ0_END IRQ0_SMC
|
|
/* IRQ1 */
|
|
#define IRQ1_BASE (IRQ0_END + 1)
|
|
#define IRQ1_TS (IRQ1_BASE + 0)
|
|
#define IRQ1_MASK 0x0001
|
|
#define IRQ1_END IRQ1_TS
|
|
/* IRQ2 */
|
|
#define IRQ2_BASE (IRQ1_END + 1)
|
|
#define IRQ2_USB0 (IRQ1_BASE + 0)
|
|
#define IRQ2_USB1 (IRQ1_BASE + 1)
|
|
#define IRQ2_MASK 0x0003
|
|
#define IRQ2_END IRQ2_USB1
|
|
|
|
#define SE7724_FPGA_IRQ_NR (IRQ2_END - IRQ0_BASE)
|
|
|
|
/* arch/sh/boards/se/7724/irq.c */
|
|
void init_se7724_IRQ(void);
|
|
|
|
#define __IO_PREFIX se7724
|
|
#include <asm/io_generic.h>
|
|
|
|
#endif /* __ASM_SH_SE7724_H */
|