diff options
| -rw-r--r-- | board/freescale/mpc837xerdb/mpc837xerdb.c | 1 | ||||
| -rw-r--r-- | common/fdt_support.c | 25 | ||||
| -rw-r--r-- | include/configs/MPC837XERDB.h | 2 | ||||
| -rw-r--r-- | include/fdt_support.h | 6 | 
4 files changed, 34 insertions, 0 deletions
| diff --git a/board/freescale/mpc837xerdb/mpc837xerdb.c b/board/freescale/mpc837xerdb/mpc837xerdb.c index d09153805..83fb60da0 100644 --- a/board/freescale/mpc837xerdb/mpc837xerdb.c +++ b/board/freescale/mpc837xerdb/mpc837xerdb.c @@ -197,5 +197,6 @@ void ft_board_setup(void *blob, bd_t *bd)  	ft_pci_setup(blob, bd);  #endif  	ft_cpu_setup(blob, bd); +	fdt_fixup_dr_usb(blob, bd);  }  #endif /* CONFIG_OF_BOARD_SETUP */ diff --git a/common/fdt_support.c b/common/fdt_support.c index 36e1469c0..75077442d 100644 --- a/common/fdt_support.c +++ b/common/fdt_support.c @@ -422,3 +422,28 @@ void fdt_fixup_ethernet(void *fdt, bd_t *bd)  	}  }  #endif + +#ifdef CONFIG_HAS_FSL_DR_USB +void fdt_fixup_dr_usb(void *blob, bd_t *bd) +{ +	char *mode; +	const char *compat = "fsl-usb2-dr"; +	const char *prop = "dr_mode"; +	int node_offset; +	int err; + +	mode = getenv("usb_dr_mode"); +	if (!mode) +		return; + +	node_offset = fdt_node_offset_by_compatible(blob, 0, compat); +	if (node_offset < 0) +		printf("WARNING: could not find compatible node %s: %s.\n", +			compat, fdt_strerror(node_offset)); + +	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)); +} +#endif /* CONFIG_HAS_FSL_DR_USB */ diff --git a/include/configs/MPC837XERDB.h b/include/configs/MPC837XERDB.h index b2f54e10b..90812e92a 100644 --- a/include/configs/MPC837XERDB.h +++ b/include/configs/MPC837XERDB.h @@ -591,6 +591,8 @@  #define CONFIG_ETH1ADDR		00:04:9f:ef:04:02  #endif +#define CONFIG_HAS_FSL_DR_USB +  #define CONFIG_IPADDR		10.0.0.2  #define CONFIG_SERVERIP		10.0.0.1  #define CONFIG_GATEWAYIP	10.0.0.1 diff --git a/include/fdt_support.h b/include/fdt_support.h index 5ef69839d..890993ff9 100644 --- a/include/fdt_support.h +++ b/include/fdt_support.h @@ -50,6 +50,12 @@ int fdt_find_and_setprop(void *fdt, const char *node, const char *prop,  			 const void *val, int len, int create);  void fdt_fixup_qe_firmware(void *fdt); +#ifdef CONFIG_HAS_FSL_DR_USB +void fdt_fixup_dr_usb(void *blob, bd_t *bd); +#else +static inline void fdt_fixup_dr_usb(void *blob, bd_t *bd) {} +#endif /* CONFIG_HAS_FSL_DR_USB */ +  #ifdef CONFIG_OF_BOARD_SETUP  void ft_board_setup(void *blob, bd_t *bd);  void ft_cpu_setup(void *blob, bd_t *bd); |