diff options
author | Wolfgang Denk <wd@denx.de> | 2010-08-03 22:45:13 +0200 |
---|---|---|
committer | Wolfgang Denk <wd@denx.de> | 2010-08-03 22:45:13 +0200 |
commit | ac956293befb265b8958654d08c4ad52e605d46e (patch) | |
tree | 4fbfc08b1be8616bc5ee2032b53996ac0c5d64d8 /drivers/pci/fsl_pci_init.c | |
parent | e9aecdec153ae166739858e6a570432449b979f7 (diff) | |
parent | 7385c28e9b5f7d47e6a8f1ad9800e6e70af714e2 (diff) | |
download | u-boot-imx-ac956293befb265b8958654d08c4ad52e605d46e.zip u-boot-imx-ac956293befb265b8958654d08c4ad52e605d46e.tar.gz u-boot-imx-ac956293befb265b8958654d08c4ad52e605d46e.tar.bz2 |
Merge branch 'master' of /home/wd/git/u-boot/master
Diffstat (limited to 'drivers/pci/fsl_pci_init.c')
-rw-r--r-- | drivers/pci/fsl_pci_init.c | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/drivers/pci/fsl_pci_init.c b/drivers/pci/fsl_pci_init.c index 5a63fa2..001e6eb 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; |