^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) // SPDX-License-Identifier: GPL-2.0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) * arch/sh/drivers/pci/fixups-sdk7780.c
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) * PCI fixups for the SDK7780SE03
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) * Copyright (C) 2003 Lineo uSolutions, Inc.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) * Copyright (C) 2004 - 2006 Paul Mundt
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) * Copyright (C) 2006 Nobuhiro Iwamatsu
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) #include <linux/pci.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) #include <linux/io.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) #include <linux/sh_intc.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) #include "pci-sh4.h"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) #define IRQ_INTA evt2irq(0xa20)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) #define IRQ_INTB evt2irq(0xa40)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) #define IRQ_INTC evt2irq(0xa60)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) #define IRQ_INTD evt2irq(0xa80)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) /* IDSEL [16][17][18][19][20][21][22][23][24][25][26][27][28][29][30][31] */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) static char sdk7780_irq_tab[4][16] = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) /* INTA */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) { IRQ_INTA, IRQ_INTD, IRQ_INTC, IRQ_INTD, -1, -1, -1, -1, -1, -1,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) -1, -1, -1, -1, -1, -1 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) /* INTB */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) { IRQ_INTB, IRQ_INTA, -1, IRQ_INTA, -1, -1, -1, -1, -1, -1, -1, -1,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) -1, -1, -1, -1 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) /* INTC */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) { IRQ_INTC, IRQ_INTB, -1, IRQ_INTB, -1, -1, -1, -1, -1, -1, -1, -1,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) -1, -1, -1, -1 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) /* INTD */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) { IRQ_INTD, IRQ_INTC, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) -1, -1, -1 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) int pcibios_map_platform_irq(const struct pci_dev *pdev, u8 slot, u8 pin)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) return sdk7780_irq_tab[pin-1][slot];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) }