1/* 2 * linux/arch/sh/drivers/pci/ops-rts7751r2d.c 3 * 4 * Author: Ian DaSilva (idasilva@mvista.com) 5 * 6 * Highly leveraged from pci-bigsur.c, written by Dustin McIntire. 7 * 8 * May be copied or modified under the terms of the GNU General Public 9 * License. See linux/COPYING for more information. 10 * 11 * PCI initialization for the Renesas SH7751R RTS7751R2D board 12 */ 13#include <linux/kernel.h> 14#include <linux/types.h> 15#include <linux/init.h> 16#include <linux/pci.h> 17#include <linux/io.h> 18#include <asm/rts7751r2d.h> 19#include "pci-sh4.h" 20 21static u8 rts7751r2d_irq_tab[] __initdata = { 22 IRQ_PCISLOT1, 23 IRQ_PCISLOT2, 24 IRQ_PCMCIA, 25 IRQ_PCIETH, 26}; 27 28int __init pcibios_map_platform_irq(struct pci_dev *pdev, u8 slot, u8 pin) 29{ 30 return rts7751r2d_irq_tab[slot]; 31} 32 33static struct resource sh7751_io_resource = { 34 .name = "SH7751_IO", 35 .start = 0x4000, 36 .end = 0x4000 + SH7751_PCI_IO_SIZE - 1, 37 .flags = IORESOURCE_IO 38}; 39 40static struct resource sh7751_mem_resource = { 41 .name = "SH7751_mem", 42 .start = SH7751_PCI_MEMORY_BASE, 43 .end = SH7751_PCI_MEMORY_BASE + SH7751_PCI_MEM_SIZE - 1, 44 .flags = IORESOURCE_MEM 45}; 46 47extern struct pci_ops sh7751_pci_ops; 48 49struct pci_channel board_pci_channels[] = { 50 { &sh4_pci_ops, &sh7751_io_resource, &sh7751_mem_resource, 0, 0xff }, 51 { NULL, NULL, NULL, 0, 0 }, 52}; 53EXPORT_SYMBOL(board_pci_channels); 54 55static struct sh4_pci_address_map sh7751_pci_map = { 56 .window0 = { 57 .base = SH7751_CS3_BASE_ADDR, 58 .size = 0x04000000, 59 }, 60 61 .window1 = { 62 .base = 0x00000000, /* Unused */ 63 .size = 0x00000000, /* Unused */ 64 }, 65 66 .flags = SH4_PCIC_NO_RESET, 67}; 68 69int __init pcibios_init_platform(void) 70{ 71 return sh7751_pcic_init(&sh7751_pci_map); 72} 73