diff options
| author | Kim Phillips <kim.phillips@freescale.com> | 2008-08-25 17:02:10 -0500 | 
|---|---|---|
| committer | Kim Phillips <kim.phillips@freescale.com> | 2008-08-25 17:02:10 -0500 | 
| commit | ce0eb70333331da6942167c41e6841c8c7994a33 (patch) | |
| tree | 225f0feda257a0c63f6226a421abf8873254a374 | |
| parent | a49d10cf027d059ee15c262010a05cdaec0961e1 (diff) | |
| parent | 021f6df6e96af5b387810cf96d24848da1faa55c (diff) | |
| download | olio-uboot-2014.01-ce0eb70333331da6942167c41e6841c8c7994a33.tar.xz olio-uboot-2014.01-ce0eb70333331da6942167c41e6841c8c7994a33.zip | |
Merge branch 'next'
| -rw-r--r-- | board/freescale/mpc8315erdb/mpc8315erdb.c | 39 | ||||
| -rw-r--r-- | common/fdt_support.c | 30 | ||||
| -rw-r--r-- | include/configs/MPC8315ERDB.h | 2 | 
3 files changed, 62 insertions, 9 deletions
| diff --git a/board/freescale/mpc8315erdb/mpc8315erdb.c b/board/freescale/mpc8315erdb/mpc8315erdb.c index 7af36ddb9..3eecee251 100644 --- a/board/freescale/mpc8315erdb/mpc8315erdb.c +++ b/board/freescale/mpc8315erdb/mpc8315erdb.c @@ -25,9 +25,8 @@  #include <common.h>  #include <i2c.h> -#if defined(CONFIG_OF_LIBFDT)  #include <libfdt.h> -#endif +#include <fdt_support.h>  #include <pci.h>  #include <mpc83xx.h> @@ -122,11 +121,47 @@ void pci_init_board(void)  }  #if defined(CONFIG_OF_BOARD_SETUP) +void fdt_tsec1_fixup(void *fdt, bd_t *bd) +{ +	char *mpc8315erdb = getenv("mpc8315erdb"); +	const char disabled[] = "disabled"; +	const char *path; +	int ret; + +	if (!mpc8315erdb) +		return; + +	if (!strcmp(mpc8315erdb, "tsec1")) { +		return; +	} else if (strcmp(mpc8315erdb, "ulpi")) { +		printf("WARNING: wrong `mpc8315erdb' environment " +		       "variable specified: `%s'. Should be `ulpi' " +		       "or `tsec1'.\n", mpc8315erdb); +		return; +	} + +	ret = fdt_path_offset(fdt, "/aliases"); +	if (ret < 0) { +		printf("WARNING: can't find /aliases node\n"); +		return; +	} + +	path = fdt_getprop(fdt, ret, "ethernet0", NULL); +	if (!path) { +		printf("WARNING: can't find ethernet0 alias\n"); +		return; +	} + +	do_fixup_by_path(fdt, path, "status", disabled, sizeof(disabled), 1); +} +  void ft_board_setup(void *blob, bd_t *bd)  {  	ft_cpu_setup(blob, bd);  #ifdef CONFIG_PCI  	ft_pci_setup(blob, bd);  #endif +	fdt_fixup_dr_usb(blob, bd); +	fdt_tsec1_fixup(blob, bd);  }  #endif diff --git a/common/fdt_support.c b/common/fdt_support.c index e57ac0a54..405b9dbda 100644 --- a/common/fdt_support.c +++ b/common/fdt_support.c @@ -408,24 +408,40 @@ void fdt_fixup_ethernet(void *fdt)  void fdt_fixup_dr_usb(void *blob, bd_t *bd)  {  	char *mode; +	char *type;  	const char *compat = "fsl-usb2-dr"; -	const char *prop = "dr_mode"; +	const char *prop_mode = "dr_mode"; +	const char *prop_type = "phy_type";  	int node_offset;  	int err;  	mode = getenv("usb_dr_mode"); -	if (!mode) +	type = getenv("usb_phy_type"); +	if (!mode && !type)  		return;  	node_offset = fdt_node_offset_by_compatible(blob, 0, compat); -	if (node_offset < 0) +	if (node_offset < 0) {  		printf("WARNING: could not find compatible node %s: %s.\n",  			compat, fdt_strerror(node_offset)); +		return; +	} -	err = fdt_setprop(blob, node_offset, prop, mode, strlen(mode) + 1); -	if (err < 0) -		printf("WARNING: could not set %s for %s: %s.\n", -		       prop, compat, fdt_strerror(err)); +	if (mode) { +		err = fdt_setprop(blob, node_offset, prop_mode, mode, +				  strlen(mode) + 1); +		if (err < 0) +			printf("WARNING: could not set %s for %s: %s.\n", +			       prop_mode, compat, fdt_strerror(err)); +	} + +	if (type) { +		err = fdt_setprop(blob, node_offset, prop_type, type, +				  strlen(type) + 1); +		if (err < 0) +			printf("WARNING: could not set %s for %s: %s.\n", +			       prop_type, compat, fdt_strerror(err)); +	}  }  #endif /* CONFIG_HAS_FSL_DR_USB */ diff --git a/include/configs/MPC8315ERDB.h b/include/configs/MPC8315ERDB.h index b0cc36dce..006b93a0b 100644 --- a/include/configs/MPC8315ERDB.h +++ b/include/configs/MPC8315ERDB.h @@ -321,6 +321,8 @@  #define CONFIG_NET_MULTI	1  #endif +#define CONFIG_HAS_FSL_DR_USB +  /*   * TSEC   */ |