diff options
| author | Tom Rini <trini@ti.com> | 2012-09-25 12:23:55 -0700 | 
|---|---|---|
| committer | Tom Rini <trini@ti.com> | 2012-09-25 12:23:55 -0700 | 
| commit | 5675b509165b67465a20e5cf71e07f40b449ef0c (patch) | |
| tree | 9886f3e8fa8734ec9f8d9cb484fcaa87ff70203f /board/freescale/common/fman.c | |
| parent | ee1f4caaa2a3f79d692155eec8a4c7289d60e106 (diff) | |
| parent | d69dba367aed051663d0ee1ece013c8232bfa9f5 (diff) | |
| download | olio-uboot-2014.01-5675b509165b67465a20e5cf71e07f40b449ef0c.tar.xz olio-uboot-2014.01-5675b509165b67465a20e5cf71e07f40b449ef0c.zip | |
Merge branch 'master' of git://git.denx.de/u-boot-mpc85xx
Diffstat (limited to 'board/freescale/common/fman.c')
| -rw-r--r-- | board/freescale/common/fman.c | 31 | 
1 files changed, 31 insertions, 0 deletions
| diff --git a/board/freescale/common/fman.c b/board/freescale/common/fman.c index 6ddf81620..3ef49369a 100644 --- a/board/freescale/common/fman.c +++ b/board/freescale/common/fman.c @@ -25,6 +25,9 @@  #include <libfdt_env.h>  #include <fdt_support.h> +#include <fm_eth.h> +#include <asm/fsl_serdes.h> +  /*   * Given the following ...   * @@ -67,3 +70,31 @@ int fdt_set_phy_handle(void *fdt, char *compat, phys_addr_t addr,  	return fdt_setprop(fdt, offset, "phy-handle", &ph, sizeof(ph));  } + +/* + * Return the SerDes device enum for a given Fman port + * + * This function just maps the fm_port namespace to the srds_prtcl namespace. + */ +enum srds_prtcl serdes_device_from_fm_port(enum fm_port port) +{ +	static const enum srds_prtcl srds_table[] = { +		[FM1_DTSEC1] = SGMII_FM1_DTSEC1, +		[FM1_DTSEC2] = SGMII_FM1_DTSEC2, +		[FM1_DTSEC3] = SGMII_FM1_DTSEC3, +		[FM1_DTSEC4] = SGMII_FM1_DTSEC4, +		[FM1_DTSEC5] = SGMII_FM1_DTSEC5, +		[FM1_10GEC1] = XAUI_FM1, +		[FM2_DTSEC1] = SGMII_FM2_DTSEC1, +		[FM2_DTSEC2] = SGMII_FM2_DTSEC2, +		[FM2_DTSEC3] = SGMII_FM2_DTSEC3, +		[FM2_DTSEC4] = SGMII_FM2_DTSEC4, +		[FM2_DTSEC5] = SGMII_FM2_DTSEC5, +		[FM2_10GEC1] = XAUI_FM2, +	}; + +	if ((port < FM1_DTSEC1) || (port > FM2_10GEC1)) +		return NONE; +	else +		return srds_table[port]; +} |