diff options
Diffstat (limited to 'include')
| -rw-r--r-- | include/fm_eth.h | 45 | ||||
| -rw-r--r-- | include/fsl_mdio.h | 6 | 
2 files changed, 48 insertions, 3 deletions
| diff --git a/include/fm_eth.h b/include/fm_eth.h index 5d80e4962..495765b93 100644 --- a/include/fm_eth.h +++ b/include/fm_eth.h @@ -1,5 +1,5 @@  /* - * Copyright 2009-2011 Freescale Semiconductor, Inc. + * Copyright 2009-2012 Freescale Semiconductor, Inc.   *   * This program is free software; you can redistribute it and/or   * modify it under the terms of the GNU General Public License as @@ -53,8 +53,15 @@ enum fm_eth_type {  	FM_ETH_10G_E,  }; +#ifdef CONFIG_SYS_FMAN_V3 +#define CONFIG_SYS_FM1_DTSEC_MDIO_ADDR	(CONFIG_SYS_FSL_FM1_ADDR + 0xfc000) +#define CONFIG_SYS_FM1_TGEC_MDIO_ADDR	(CONFIG_SYS_FSL_FM1_ADDR + 0xfd000) +#define CONFIG_SYS_FM2_DTSEC_MDIO_ADDR	(CONFIG_SYS_FSL_FM2_ADDR + 0xfc000) +#define CONFIG_SYS_FM2_TGEC_MDIO_ADDR	(CONFIG_SYS_FSL_FM2_ADDR + 0xfd000) +#else  #define CONFIG_SYS_FM1_DTSEC1_MDIO_ADDR	(CONFIG_SYS_FSL_FM1_ADDR + 0xe1120)  #define CONFIG_SYS_FM1_TGEC_MDIO_ADDR	(CONFIG_SYS_FSL_FM1_ADDR + 0xf1000) +#endif  #define DEFAULT_FM_MDIO_NAME "FSL_MDIO0"  #define DEFAULT_FM_TGEC_MDIO_NAME "FM_TGEC_MDIO" @@ -65,6 +72,33 @@ enum fm_eth_type {  	.phy_regs	= (void *)pregs,				\  	.enet_if	= PHY_INTERFACE_MODE_NONE,			\ +#ifdef CONFIG_SYS_FMAN_V3 +#define FM_DTSEC_INFO_INITIALIZER(idx, n) \ +{									\ +	FM_ETH_INFO_INITIALIZER(idx, CONFIG_SYS_FM1_DTSEC_MDIO_ADDR)	\ +	.index		= idx,						\ +	.num		= n - 1,					\ +	.type		= FM_ETH_1G_E,					\ +	.port		= FM##idx##_DTSEC##n,				\ +	.rx_port_id	= RX_PORT_1G_BASE + n - 1,			\ +	.tx_port_id	= TX_PORT_1G_BASE + n - 1,			\ +	.compat_offset	= CONFIG_SYS_FSL_FM##idx##_OFFSET +		\ +				offsetof(struct ccsr_fman, memac[n-1]),\ +} + +#define FM_TGEC_INFO_INITIALIZER(idx, n) \ +{									\ +	FM_ETH_INFO_INITIALIZER(idx, CONFIG_SYS_FM1_TGEC_MDIO_ADDR)	\ +	.index		= idx,						\ +	.num		= n - 1,					\ +	.type		= FM_ETH_10G_E,					\ +	.port		= FM##idx##_10GEC##n,				\ +	.rx_port_id	= RX_PORT_10G_BASE + n - 1,			\ +	.tx_port_id	= TX_PORT_10G_BASE + n - 1,			\ +	.compat_offset	= CONFIG_SYS_FSL_FM##idx##_OFFSET +		\ +				offsetof(struct ccsr_fman, memac[n-1]),\ +} +#else  #define FM_DTSEC_INFO_INITIALIZER(idx, n) \  {									\  	FM_ETH_INFO_INITIALIZER(idx, CONFIG_SYS_FM1_DTSEC1_MDIO_ADDR)	\ @@ -90,7 +124,7 @@ enum fm_eth_type {  	.compat_offset	= CONFIG_SYS_FSL_FM##idx##_OFFSET +		\  				offsetof(struct ccsr_fman, mac_10g[n-1]),\  } - +#endif  struct fm_eth_info {  	u8 enabled;  	u8 fm; @@ -112,7 +146,14 @@ struct tgec_mdio_info {  	char *name;  }; +struct memac_mdio_info { +	struct memac_mdio_controller *regs; +	char *name; +}; +  int fm_tgec_mdio_init(bd_t *bis, struct tgec_mdio_info *info); +int fm_memac_mdio_init(bd_t *bis, struct memac_mdio_info *info); +  int fm_standard_init(bd_t *bis);  void fman_enet_init(void);  void fdt_fixup_fman_ethernet(void *fdt); diff --git a/include/fsl_mdio.h b/include/fsl_mdio.h index ea8b54b56..e24e828cd 100644 --- a/include/fsl_mdio.h +++ b/include/fsl_mdio.h @@ -1,5 +1,5 @@  /* - * Copyright 2009-2010 Freescale Semiconductor, Inc. + * Copyright 2009-2012 Freescale Semiconductor, Inc.   *	Jun-jie Zhang <b18070@freescale.com>   *	Mingkai Hu <Mingkai.hu@freescale.com>   * @@ -51,6 +51,10 @@ int tsec_local_mdio_read(struct tsec_mii_mng *phyregs, int port_addr,  int tsec_phy_read(struct mii_dev *bus, int addr, int dev_addr, int regnum);  int tsec_phy_write(struct mii_dev *bus, int addr, int dev_addr, int regnum,  		u16 value); +int memac_mdio_write(struct mii_dev *bus, int port_addr, int dev_addr, +		int regnum, u16 value); +int memac_mdio_read(struct mii_dev *bus, int port_addr, int dev_addr, +		int regnum);  struct fsl_pq_mdio_info {  	struct tsec_mii_mng *regs; |