PageRenderTime 26ms CodeModel.GetById 10ms app.highlight 11ms RepoModel.GetById 1ms app.codeStats 0ms

/arch/sh/drivers/pci/ops-rts7751r2d.c

https://bitbucket.org/evzijst/gittest
C | 79 lines | 55 code | 12 blank | 12 comment | 1 complexity | 1a2cb3bcd321426bf413fe91638b5c66 MD5 | raw file
 1/*
 2 * linux/arch/sh/kernel/pci-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
14#include <linux/config.h>
15#include <linux/kernel.h>
16#include <linux/types.h>
17#include <linux/init.h>
18#include <linux/delay.h>
19#include <linux/pci.h>
20#include <linux/module.h>
21
22#include <asm/io.h>
23#include "pci-sh7751.h"
24#include <asm/rts7751r2d/rts7751r2d.h>
25
26int __init pcibios_map_platform_irq(u8 slot, u8 pin)
27{
28        switch (slot) {
29	case 0: return IRQ_PCISLOT1;	/* PCI Extend slot #1 */
30	case 1: return IRQ_PCISLOT2;	/* PCI Extend slot #2 */
31	case 2: return IRQ_PCMCIA;	/* PCI Cardbus Bridge */
32	case 3: return IRQ_PCIETH;	/* Realtek Ethernet controller */
33	default:
34		printk("PCI: Bad IRQ mapping request for slot %d\n", slot);
35		return -1;
36	}
37}
38
39static struct resource sh7751_io_resource = {
40	.name	= "SH7751_IO",
41	.start	= 0x4000,
42	.end	= 0x4000 + SH7751_PCI_IO_SIZE - 1,
43	.flags	= IORESOURCE_IO
44};
45
46static struct resource sh7751_mem_resource = {
47	.name	= "SH7751_mem",
48	.start	= SH7751_PCI_MEMORY_BASE,
49	.end	= SH7751_PCI_MEMORY_BASE + SH7751_PCI_MEM_SIZE - 1,
50	.flags	= IORESOURCE_MEM
51};
52
53extern struct pci_ops sh7751_pci_ops;
54
55struct pci_channel board_pci_channels[] = {
56	{ &sh7751_pci_ops, &sh7751_io_resource, &sh7751_mem_resource, 0, 0xff },
57	{ NULL, NULL, NULL, 0, 0 },
58};
59EXPORT_SYMBOL(board_pci_channels);
60
61static struct sh7751_pci_address_map sh7751_pci_map = {
62	.window0	= {
63		.base	= SH7751_CS3_BASE_ADDR,
64		.size	= 0x04000000,
65	},
66
67	.window1	= {
68		.base	= 0x00000000,	/* Unused */
69		.size	= 0x00000000,	/* Unused */
70	},
71
72	.flags	= SH7751_PCIC_NO_RESET,
73};
74
75int __init pcibios_init_platform(void)
76{
77	return sh7751_pcic_init(&sh7751_pci_map);
78}
79