diff options
Diffstat (limited to 'arch/m68k/cpu/mcf5445x/pci.c')
| -rw-r--r-- | arch/m68k/cpu/mcf5445x/pci.c | 74 | 
1 files changed, 39 insertions, 35 deletions
| diff --git a/arch/m68k/cpu/mcf5445x/pci.c b/arch/m68k/cpu/mcf5445x/pci.c index 7f9784c3c..c32fcee7f 100644 --- a/arch/m68k/cpu/mcf5445x/pci.c +++ b/arch/m68k/cpu/mcf5445x/pci.c @@ -1,5 +1,5 @@  /* - * Copyright (C) 2004-2007 Freescale Semiconductor, Inc. + * Copyright (C) 2004-2007, 2012 Freescale Semiconductor, Inc.   * TsiChung Liew (Tsi-Chung.Liew@freescale.com)   *   * See file CREDITS for list of people who contributed to this @@ -60,78 +60,82 @@ PCI_OP(write, dword, u32, out_le32, 0)  void pci_mcf5445x_init(struct pci_controller *hose)  { -	volatile pci_t *pci = (volatile pci_t *)MMAP_PCI; -	volatile pciarb_t *pciarb = (volatile pciarb_t *)MMAP_PCIARB; -	volatile gpio_t *gpio = (gpio_t *) MMAP_GPIO; +	pci_t *pci = (pci_t *)MMAP_PCI; +	pciarb_t *pciarb = (pciarb_t *)MMAP_PCIARB; +	gpio_t *gpio = (gpio_t *) MMAP_GPIO;  	u32 barEn = 0; -	pciarb->acr = 0x001F001F; +	out_be32(&pciarb->acr, 0x001f001f);  	/* Set PCIGNT1, PCIREQ1, PCIREQ0/PCIGNTIN, PCIGNT0/PCIREQOUT,  	   PCIREQ2, PCIGNT2 */ -	gpio->par_pci = -	    GPIO_PAR_PCI_GNT3_GNT3 | GPIO_PAR_PCI_GNT2 | GPIO_PAR_PCI_GNT1 | -	    GPIO_PAR_PCI_GNT0 | GPIO_PAR_PCI_REQ3_REQ3 | GPIO_PAR_PCI_REQ2 | -	    GPIO_PAR_PCI_REQ1 | GPIO_PAR_PCI_REQ0; +	out_be16(&gpio->par_pci, +		GPIO_PAR_PCI_GNT3_GNT3 | GPIO_PAR_PCI_GNT2 | +		GPIO_PAR_PCI_GNT1 | GPIO_PAR_PCI_GNT0 | +		GPIO_PAR_PCI_REQ3_REQ3 | GPIO_PAR_PCI_REQ2 | +		GPIO_PAR_PCI_REQ1 | GPIO_PAR_PCI_REQ0);  	/* Assert reset bit */ -	pci->gscr |= PCI_GSCR_PR; +	setbits_be32(&pci->gscr, PCI_GSCR_PR); -	pci->tcr1 |= PCI_TCR1_P; +	setbits_be32(&pci->tcr1, PCI_TCR1_P);  	/* Initiator windows */ -	pci->iw0btar = CONFIG_SYS_PCI_MEM_PHYS | (CONFIG_SYS_PCI_MEM_PHYS >> 16); -	pci->iw1btar = CONFIG_SYS_PCI_IO_PHYS | (CONFIG_SYS_PCI_IO_PHYS >> 16); -	pci->iw2btar = CONFIG_SYS_PCI_CFG_PHYS | (CONFIG_SYS_PCI_CFG_PHYS >> 16); +	out_be32(&pci->iw0btar, +		CONFIG_SYS_PCI_MEM_PHYS | (CONFIG_SYS_PCI_MEM_PHYS >> 16)); +	out_be32(&pci->iw1btar, +		CONFIG_SYS_PCI_IO_PHYS | (CONFIG_SYS_PCI_IO_PHYS >> 16)); +	out_be32(&pci->iw2btar, +		CONFIG_SYS_PCI_CFG_PHYS | (CONFIG_SYS_PCI_CFG_PHYS >> 16)); -	pci->iwcr = -	    PCI_IWCR_W0C_EN | PCI_IWCR_W1C_EN | PCI_IWCR_W1C_IO | -	    PCI_IWCR_W2C_EN | PCI_IWCR_W2C_IO; +	out_be32(&pci->iwcr, +		PCI_IWCR_W0C_EN | PCI_IWCR_W1C_EN | PCI_IWCR_W1C_IO | +		PCI_IWCR_W2C_EN | PCI_IWCR_W2C_IO); -	pci->icr = 0; +	out_be32(&pci->icr, 0);  	/* Enable bus master and mem access */ -	pci->scr = PCI_SCR_B | PCI_SCR_M; +	out_be32(&pci->scr, PCI_SCR_B | PCI_SCR_M);  	/* Cache line size and master latency */ -	pci->cr1 = PCI_CR1_CLS(8) | PCI_CR1_LTMR(0xF8); -	pci->cr2 = 0; +	out_be32(&pci->cr1, PCI_CR1_CLS(8) | PCI_CR1_LTMR(0xF8)); +	out_be32(&pci->cr2, 0);  #ifdef CONFIG_SYS_PCI_BAR0 -	pci->bar0 = PCI_BAR_BAR0(CONFIG_SYS_PCI_BAR0); -	pci->tbatr0 = CONFIG_SYS_PCI_TBATR0 | PCI_TBATR_EN; +	out_be32(&pci->bar0, PCI_BAR_BAR0(CONFIG_SYS_PCI_BAR0)); +	out_be32(&pci->tbatr0, CONFIG_SYS_PCI_TBATR0 | PCI_TBATR_EN);  	barEn |= PCI_TCR2_B0E;  #endif  #ifdef CONFIG_SYS_PCI_BAR1 -	pci->bar1 = PCI_BAR_BAR1(CONFIG_SYS_PCI_BAR1); -	pci->tbatr1 = CONFIG_SYS_PCI_TBATR1 | PCI_TBATR_EN; +	out_be32(&pci->bar1, PCI_BAR_BAR1(CONFIG_SYS_PCI_BAR1)); +	out_be32(&pci->tbatr1, CONFIG_SYS_PCI_TBATR1 | PCI_TBATR_EN);  	barEn |= PCI_TCR2_B1E;  #endif  #ifdef CONFIG_SYS_PCI_BAR2 -	pci->bar2 = PCI_BAR_BAR2(CONFIG_SYS_PCI_BAR2); -	pci->tbatr2 = CONFIG_SYS_PCI_TBATR2 | PCI_TBATR_EN; +	out_be32(&pci->bar2, PCI_BAR_BAR2(CONFIG_SYS_PCI_BAR2)); +	out_be32(&pci->tbatr2, CONFIG_SYS_PCI_TBATR2 | PCI_TBATR_EN);  	barEn |= PCI_TCR2_B2E;  #endif  #ifdef CONFIG_SYS_PCI_BAR3 -	pci->bar3 = PCI_BAR_BAR3(CONFIG_SYS_PCI_BAR3); -	pci->tbatr3 = CONFIG_SYS_PCI_TBATR3 | PCI_TBATR_EN; +	out_be32(&pci->bar3, PCI_BAR_BAR3(CONFIG_SYS_PCI_BAR3)); +	out_be32(&pci->tbatr3, CONFIG_SYS_PCI_TBATR3 | PCI_TBATR_EN);  	barEn |= PCI_TCR2_B3E;  #endif  #ifdef CONFIG_SYS_PCI_BAR4 -	pci->bar4 = PCI_BAR_BAR4(CONFIG_SYS_PCI_BAR4); -	pci->tbatr4 = CONFIG_SYS_PCI_TBATR4 | PCI_TBATR_EN; +	out_be32(&pci->bar4, PCI_BAR_BAR4(CONFIG_SYS_PCI_BAR4)); +	out_be32(&pci->tbatr4, CONFIG_SYS_PCI_TBATR4 | PCI_TBATR_EN);  	barEn |= PCI_TCR2_B4E;  #endif  #ifdef CONFIG_SYS_PCI_BAR5 -	pci->bar5 = PCI_BAR_BAR5(CONFIG_SYS_PCI_BAR5); -	pci->tbatr5 = CONFIG_SYS_PCI_TBATR5 | PCI_TBATR_EN; +	out_be32(&pci->bar5, PCI_BAR_BAR5(CONFIG_SYS_PCI_BAR5)); +	out_be32(&pci->tbatr5, CONFIG_SYS_PCI_TBATR5 | PCI_TBATR_EN);  	barEn |= PCI_TCR2_B5E;  #endif -	pci->tcr2 = barEn; +	out_be32(&pci->tcr2, barEn);  	/* Deassert reset bit */ -	pci->gscr &= ~PCI_GSCR_PR; +	clrbits_be32(&pci->gscr, PCI_GSCR_PR);  	udelay(1000);  	/* Enable PCI bus master support */ |