diff options
| author | Wolfgang Denk <wd@denx.de> | 2008-01-09 21:34:46 +0100 | 
|---|---|---|
| committer | Wolfgang Denk <wd@denx.de> | 2008-01-09 21:34:46 +0100 | 
| commit | 3b93020d74630f0574cbd26d200a82c00dd11eaa (patch) | |
| tree | fdf53ce4da01d337ceb71cadf496a9fc8d2fb62c /cpu/mpc83xx/pci.c | |
| parent | c83d7ca4dadd44ae430235077f63b64a11f36f6e (diff) | |
| parent | 6007f3251c0967adc13f2ed8be1b924ddc30124d (diff) | |
| download | olio-uboot-2014.01-3b93020d74630f0574cbd26d200a82c00dd11eaa.tar.xz olio-uboot-2014.01-3b93020d74630f0574cbd26d200a82c00dd11eaa.zip  | |
Merge branch 'master' of /home/wd/git/u-boot/master/
Diffstat (limited to 'cpu/mpc83xx/pci.c')
| -rw-r--r-- | cpu/mpc83xx/pci.c | 75 | 
1 files changed, 26 insertions, 49 deletions
diff --git a/cpu/mpc83xx/pci.c b/cpu/mpc83xx/pci.c index 0defb0ec8..18558db53 100644 --- a/cpu/mpc83xx/pci.c +++ b/cpu/mpc83xx/pci.c @@ -28,8 +28,7 @@  #if defined(CONFIG_OF_LIBFDT)  #include <libfdt.h> -#elif defined(CONFIG_OF_FLAT_TREE) -#include <ft_build.h> +#include <fdt_support.h>  #endif  #include <asm/mpc8349_pci.h> @@ -173,63 +172,41 @@ void mpc83xx_pci_init(int num_buses, struct pci_region **reg, int warmboot)  void ft_pci_setup(void *blob, bd_t *bd)  {  	int nodeoffset; -	int err;  	int tmp[2]; +	const char *path;  	if (pci_num_buses < 1)  		return; -	nodeoffset = fdt_path_offset(blob, "/" OF_SOC "/pci@8500"); +	nodeoffset = fdt_path_offset(blob, "/aliases");  	if (nodeoffset >= 0) { -		tmp[0] = cpu_to_be32(pci_hose[0].first_busno); -		tmp[1] = cpu_to_be32(pci_hose[0].last_busno); -		err = fdt_setprop(blob, nodeoffset, "bus-range", -				  tmp, sizeof(tmp)); +		path = fdt_getprop(blob, nodeoffset, "pci0", NULL); +		if (path) { +			tmp[0] = cpu_to_be32(pci_hose[0].first_busno); +			tmp[1] = cpu_to_be32(pci_hose[0].last_busno); +			do_fixup_by_path(blob, path, "bus-range", +				&tmp, sizeof(tmp), 1); -		tmp[0] = cpu_to_be32(gd->pci_clk); -		err = fdt_setprop(blob, nodeoffset, "clock-frequency", -				  tmp, sizeof(tmp[0])); -	} - -	if (pci_num_buses < 2) -		return; - -	nodeoffset = fdt_path_offset(blob, "/" OF_SOC "/pci@8600"); -	if (nodeoffset >= 0) { -		tmp[0] = cpu_to_be32(pci_hose[0].first_busno); -		tmp[1] = cpu_to_be32(pci_hose[0].last_busno); -		err = fdt_setprop(blob, nodeoffset, "bus-range", -				  tmp, sizeof(tmp)); - -		tmp[0] = cpu_to_be32(gd->pci_clk); -		err = fdt_setprop(blob, nodeoffset, "clock-frequency", -				  tmp, sizeof(tmp[0])); -	} -} -#elif CONFIG_OF_FLAT_TREE -void ft_pci_setup(void *blob, bd_t *bd) -{ -	u32 *p; -	int len; - -	if (pci_num_buses < 1) -		return; +			tmp[0] = cpu_to_be32(gd->pci_clk); +			do_fixup_by_path(blob, path, "clock-frequency", +				&tmp, sizeof(tmp[0]), 1); +		} -	p = (u32 *)ft_get_prop(blob, "/" OF_SOC "/pci@8500/bus-range", &len); -	if (p) { -		p[0] = pci_hose[0].first_busno; -		p[1] = pci_hose[0].last_busno; -	} +		if (pci_num_buses < 2) +			return; -	if (pci_num_buses < 2) -		return; +		path = fdt_getprop(blob, nodeoffset, "pci1", NULL); +		if (path) { +			tmp[0] = cpu_to_be32(pci_hose[0].first_busno); +			tmp[1] = cpu_to_be32(pci_hose[0].last_busno); +			do_fixup_by_path(blob, path, "bus-range", +				&tmp, sizeof(tmp), 1); -	p = (u32 *)ft_get_prop(blob, "/" OF_SOC "/pci@8600/bus-range", &len); -	if (p) { -		p[0] = pci_hose[1].first_busno; -		p[1] = pci_hose[1].last_busno; +			tmp[0] = cpu_to_be32(gd->pci_clk); +			do_fixup_by_path(blob, path, "clock-frequency", +				&tmp, sizeof(tmp[0]), 1); +		}  	}  } -#endif /* CONFIG_OF_FLAT_TREE */ - +#endif /* CONFIG_OF_LIBFDT */  #endif /* CONFIG_83XX_GENERIC_PCI */  |