2006-09-27 15:59:17 +09:00
/*
* Author : Ian DaSilva ( idasilva @ mvista . com )
*
* Highly leveraged from pci - bigsur . c , written by Dustin McIntire .
*
* May be copied or modified under the terms of the GNU General Public
* License . See linux / COPYING for more information .
*
* PCI initialization for the Renesas SH7780 Highlander R7780RP - 1 board
*/
# include <linux/kernel.h>
# include <linux/types.h>
# include <linux/init.h>
# include <linux/delay.h>
# include <linux/pci.h>
2006-10-19 16:16:18 +09:00
# include <asm/r7780rp.h>
2006-09-27 16:43:28 +09:00
# include <asm/io.h>
# include "pci-sh4.h"
2006-09-27 15:59:17 +09:00
2008-01-25 16:04:29 +09:00
static char irq_tab [ ] __initdata = {
2007-03-12 14:38:59 +09:00
65 , 66 , 67 , 68 ,
} ;
2006-09-27 16:43:28 +09:00
int __init pcibios_map_platform_irq ( struct pci_dev * pdev , u8 slot , u8 pin )
2006-09-27 15:59:17 +09:00
{
2008-01-25 16:04:29 +09:00
return irq_tab [ slot ] ;
2006-09-27 15:59:17 +09:00
}
static struct resource sh7780_io_resource = {
. name = " SH7780_IO " ,
2007-11-30 12:36:13 +09:00
. start = SH7780_PCI_IO_BASE ,
. end = SH7780_PCI_IO_BASE + SH7780_PCI_IO_SIZE - 1 ,
2006-09-27 15:59:17 +09:00
. flags = IORESOURCE_IO
} ;
static struct resource sh7780_mem_resource = {
. name = " SH7780_mem " ,
. start = SH7780_PCI_MEMORY_BASE ,
. end = SH7780_PCI_MEMORY_BASE + SH7780_PCI_MEM_SIZE - 1 ,
. flags = IORESOURCE_MEM
} ;
extern struct pci_ops sh7780_pci_ops ;
struct pci_channel board_pci_channels [ ] = {
2006-09-27 16:43:28 +09:00
{ & sh4_pci_ops , & sh7780_io_resource , & sh7780_mem_resource , 0 , 0xff } ,
2006-09-27 15:59:17 +09:00
{ NULL , NULL , NULL , 0 , 0 } ,
} ;
EXPORT_SYMBOL ( board_pci_channels ) ;
2006-09-27 16:43:28 +09:00
static struct sh4_pci_address_map sh7780_pci_map = {
2006-09-27 15:59:17 +09:00
. window0 = {
. base = SH7780_CS2_BASE_ADDR ,
. size = 0x04000000 ,
} ,
. window1 = {
. base = SH7780_CS3_BASE_ADDR ,
. size = 0x04000000 ,
} ,
2006-09-27 16:43:28 +09:00
. flags = SH4_PCIC_NO_RESET ,
2006-09-27 15:59:17 +09:00
} ;
int __init pcibios_init_platform ( void )
{
return sh7780_pcic_init ( & sh7780_pci_map ) ;
}