2 * pci.c -- WindRiver SBC8349 PCI board support.
3 * Copyright (c) 2006 Wind River Systems, Inc.
4 * Copyright (C) 2006-2009 Freescale Semiconductor, Inc.
6 * Based on MPC8349 PCI support but w/o PIB related code.
8 * SPDX-License-Identifier: GPL-2.0+
17 #include <asm/fsl_i2c.h>
19 DECLARE_GLOBAL_DATA_PTR
;
21 static struct pci_region pci1_regions
[] = {
23 bus_start
: CONFIG_SYS_PCI1_MEM_BASE
,
24 phys_start
: CONFIG_SYS_PCI1_MEM_PHYS
,
25 size
: CONFIG_SYS_PCI1_MEM_SIZE
,
26 flags
: PCI_REGION_MEM
| PCI_REGION_PREFETCH
29 bus_start
: CONFIG_SYS_PCI1_IO_BASE
,
30 phys_start
: CONFIG_SYS_PCI1_IO_PHYS
,
31 size
: CONFIG_SYS_PCI1_IO_SIZE
,
35 bus_start
: CONFIG_SYS_PCI1_MMIO_BASE
,
36 phys_start
: CONFIG_SYS_PCI1_MMIO_PHYS
,
37 size
: CONFIG_SYS_PCI1_MMIO_SIZE
,
45 * NOTICE: PCI2 is not supported. There is only one
46 * physical PCI slot on the board.
52 volatile immap_t
*immr
= (volatile immap_t
*)CONFIG_SYS_IMMR
;
53 volatile clk83xx_t
*clk
= (volatile clk83xx_t
*)&immr
->clk
;
54 volatile law83xx_t
*pci_law
= immr
->sysconf
.pcilaw
;
55 struct pci_region
*reg
[] = { pci1_regions
};
57 /* Enable all 8 PCI_CLK_OUTPUTS */
58 clk
->occr
= 0xff000000;
61 /* Configure PCI Local Access Windows */
62 pci_law
[0].bar
= CONFIG_SYS_PCI1_MEM_PHYS
& LAWBAR_BAR
;
63 pci_law
[0].ar
= LAWAR_EN
| LAWAR_SIZE_1G
;
65 pci_law
[1].bar
= CONFIG_SYS_PCI1_IO_PHYS
& LAWBAR_BAR
;
66 pci_law
[1].ar
= LAWAR_EN
| LAWAR_SIZE_4M
;
70 mpc83xx_pci_init(1, reg
);