Skip to content
Snippets Groups Projects
Commit ce0eb703 authored by Kim Phillips's avatar Kim Phillips
Browse files

Merge branch 'next'

parents a49d10cf 021f6df6
No related branches found
No related tags found
No related merge requests found
...@@ -25,9 +25,8 @@ ...@@ -25,9 +25,8 @@
#include <common.h> #include <common.h>
#include <i2c.h> #include <i2c.h>
#if defined(CONFIG_OF_LIBFDT)
#include <libfdt.h> #include <libfdt.h>
#endif #include <fdt_support.h>
#include <pci.h> #include <pci.h>
#include <mpc83xx.h> #include <mpc83xx.h>
...@@ -122,11 +121,47 @@ void pci_init_board(void) ...@@ -122,11 +121,47 @@ void pci_init_board(void)
} }
#if defined(CONFIG_OF_BOARD_SETUP) #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) void ft_board_setup(void *blob, bd_t *bd)
{ {
ft_cpu_setup(blob, bd); ft_cpu_setup(blob, bd);
#ifdef CONFIG_PCI #ifdef CONFIG_PCI
ft_pci_setup(blob, bd); ft_pci_setup(blob, bd);
#endif #endif
fdt_fixup_dr_usb(blob, bd);
fdt_tsec1_fixup(blob, bd);
} }
#endif #endif
...@@ -408,24 +408,40 @@ void fdt_fixup_ethernet(void *fdt) ...@@ -408,24 +408,40 @@ void fdt_fixup_ethernet(void *fdt)
void fdt_fixup_dr_usb(void *blob, bd_t *bd) void fdt_fixup_dr_usb(void *blob, bd_t *bd)
{ {
char *mode; char *mode;
char *type;
const char *compat = "fsl-usb2-dr"; 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 node_offset;
int err; int err;
mode = getenv("usb_dr_mode"); mode = getenv("usb_dr_mode");
if (!mode) type = getenv("usb_phy_type");
if (!mode && !type)
return; return;
node_offset = fdt_node_offset_by_compatible(blob, 0, compat); 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", printf("WARNING: could not find compatible node %s: %s.\n",
compat, fdt_strerror(node_offset)); compat, fdt_strerror(node_offset));
return;
}
err = fdt_setprop(blob, node_offset, prop, mode, strlen(mode) + 1); if (mode) {
if (err < 0) err = fdt_setprop(blob, node_offset, prop_mode, mode,
printf("WARNING: could not set %s for %s: %s.\n", strlen(mode) + 1);
prop, compat, fdt_strerror(err)); 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 */ #endif /* CONFIG_HAS_FSL_DR_USB */
......
...@@ -321,6 +321,8 @@ ...@@ -321,6 +321,8 @@
#define CONFIG_NET_MULTI 1 #define CONFIG_NET_MULTI 1
#endif #endif
#define CONFIG_HAS_FSL_DR_USB
/* /*
* TSEC * TSEC
*/ */
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment