83xx: mpc8315erdb: add support for switching between ULPI/UTMI USB PHYs

Freescale ships MPC8315E-RDB boards either with TSEC1 and USB UTMI
support, or without TSEC1 but with USB ULPI PHY support in addition.
With this patch user can specify desired USB PHY.

Also, it seems that we can't distinguish the two boards in software, so
user have to set `mpc8315erdb' environment variable to either 'tsec1'
(TSEC1 enabled) or `ulpi' (board with ULPI PHY, TSEC1 disabled), so that
Linux will not probe for TSEC1.

Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
This commit is contained in:
Anton Vorontsov 2008-07-08 21:00:04 +04:00 committed by Kim Phillips
parent 015b27b9e1
commit 25f5f0d49a
2 changed files with 38 additions and 2 deletions

View File

@ -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,46 @@ 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) {
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

View File

@ -321,6 +321,8 @@
#define CONFIG_NET_MULTI 1
#endif
#define CONFIG_HAS_FSL_DR_USB
/*
* TSEC
*/