summaryrefslogtreecommitdiff
path: root/drivers/pci/fsl_pci_init.c
diff options
context:
space:
mode:
authorWolfgang Denk <wd@denx.de>2010-07-24 20:34:29 +0200
committerWolfgang Denk <wd@denx.de>2010-07-24 20:34:29 +0200
commit07c9cd81170335307a3090add3cd37147d29482e (patch)
treee5e98dc33dc17399ad16d85d6df1c36d44e22889 /drivers/pci/fsl_pci_init.c
parent8024ac7a61f235b5444eac1ce0271d86e05d04de (diff)
parent96623171423a94092cde80642328fda58a92c894 (diff)
downloadolio-uboot-2014.01-07c9cd81170335307a3090add3cd37147d29482e.tar.xz
olio-uboot-2014.01-07c9cd81170335307a3090add3cd37147d29482e.zip
Merge branch 'master' of /home/wd/git/u-boot/custodians
Diffstat (limited to 'drivers/pci/fsl_pci_init.c')
-rw-r--r--drivers/pci/fsl_pci_init.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/drivers/pci/fsl_pci_init.c b/drivers/pci/fsl_pci_init.c
index 5a63fa216..001e6eb90 100644
--- a/drivers/pci/fsl_pci_init.c
+++ b/drivers/pci/fsl_pci_init.c
@@ -510,18 +510,25 @@ void fsl_pci_config_unlock(struct pci_controller *hose)
#include <libfdt.h>
#include <fdt_support.h>
-void ft_fsl_pci_setup(void *blob, const char *pci_alias,
- struct pci_controller *hose)
+void ft_fsl_pci_setup(void *blob, const char *pci_compat,
+ struct pci_controller *hose, unsigned long ctrl_addr)
{
- int off = fdt_path_offset(blob, pci_alias);
+ int off;
u32 bus_range[2];
+ phys_addr_t p_ctrl_addr = (phys_addr_t)ctrl_addr;
+
+ /* convert ctrl_addr to true physical address */
+ p_ctrl_addr = (phys_addr_t)ctrl_addr - CONFIG_SYS_CCSRBAR;
+ p_ctrl_addr += CONFIG_SYS_CCSRBAR_PHYS;
+
+ off = fdt_node_offset_by_compat_reg(blob, pci_compat, p_ctrl_addr);
if (off < 0)
return;
/* We assume a cfg_addr not being set means we didn't setup the controller */
if ((hose == NULL) || (hose->cfg_addr == NULL)) {
- fdt_del_node_and_alias(blob, pci_alias);
+ fdt_del_node(blob, off);
} else {
bus_range[0] = 0;
bus_range[1] = hose->last_busno - hose->first_busno;