summaryrefslogtreecommitdiff
path: root/include/netdev.h
diff options
context:
space:
mode:
authorPrafulla Wadaskar <prafulla@marvell.com>2009-05-19 01:40:16 +0530
committerBen Warren <biggerbadderben@gmail.com>2009-06-15 00:13:54 -0700
commit6f51deb7f298413cfcb0a36d24c97ef7dd69d48f (patch)
treee876999ab729c88c3d5434d976c1e5d19d8f056e /include/netdev.h
parent091dc9f6adaf572b067ae91af92c4e7db33d7903 (diff)
downloadu-boot-imx-6f51deb7f298413cfcb0a36d24c97ef7dd69d48f.zip
u-boot-imx-6f51deb7f298413cfcb0a36d24c97ef7dd69d48f.tar.gz
u-boot-imx-6f51deb7f298413cfcb0a36d24c97ef7dd69d48f.tar.bz2
Marvell MV88E61XX Switch Driver support
Chips supported:- 1. 88E6161 6 port gbe swtich with 5 integrated PHYs 2. 88E6165 6 port gbe swtich with 5 integrated PHYs 2. 88E6132 3 port gbe swtich with 2 integrated PHYs Platform specific configuration supported for:- default or router port vlan configuration led_init configuration mdip/n polarity reversal configuration Note: This driver is supported and tested against kirkwood egiga interface Contributors: Yotam Admon <yotam@marvell.com> Michael Blostein <michaelbl@marvell.com Reviewed by: Ronen Shitrit <rshitrit@marvell.com> Signed-off-by: Prafulla Wadaskar <prafulla@marvell.com> Signed-off-by: Ben Warren <biggerbadderben@gmail.com>
Diffstat (limited to 'include/netdev.h')
-rw-r--r--include/netdev.h47
1 files changed, 47 insertions, 0 deletions
diff --git a/include/netdev.h b/include/netdev.h
index 63cf730..4f2b23a 100644
--- a/include/netdev.h
+++ b/include/netdev.h
@@ -116,4 +116,51 @@ static inline int pci_eth_init(bd_t *bis)
return num;
}
+/*
+ * Boards with mv88e61xx switch can use this by defining
+ * CONFIG_MV88E61XX_SWITCH in respective board configheader file
+ * the stuct and enums here are used to specify switch configuration params
+ */
+#if defined(CONFIG_MV88E61XX_SWITCH)
+enum mv88e61xx_cfg_vlan {
+ MV88E61XX_VLANCFG_DEFAULT,
+ MV88E61XX_VLANCFG_ROUTER
+};
+
+enum mv88e61xx_cfg_mdip {
+ MV88E61XX_MDIP_NOCHANGE,
+ MV88E61XX_MDIP_REVERSE
+};
+
+enum mv88e61xx_cfg_ledinit {
+ MV88E61XX_LED_INIT_DIS,
+ MV88E61XX_LED_INIT_EN
+};
+
+enum mv88e61xx_cfg_rgmiid {
+ MV88E61XX_RGMII_DELAY_DIS,
+ MV88E61XX_RGMII_DELAY_EN
+};
+
+enum mv88e61xx_cfg_prtstt {
+ MV88E61XX_PORTSTT_DISABLED,
+ MV88E61XX_PORTSTT_BLOCKING,
+ MV88E61XX_PORTSTT_LEARNING,
+ MV88E61XX_PORTSTT_FORWARDING
+};
+
+struct mv88e61xx_config {
+ char *name;
+ enum mv88e61xx_cfg_vlan vlancfg;
+ enum mv88e61xx_cfg_rgmiid rgmii_delay;
+ enum mv88e61xx_cfg_prtstt portstate;
+ enum mv88e61xx_cfg_ledinit led_init;
+ enum mv88e61xx_cfg_mdip mdip;
+ u32 ports_enabled;
+ u8 cpuport;
+};
+
+int mv88e61xx_switch_initialize(struct mv88e61xx_config *swconfig);
+#endif /* CONFIG_MV88E61XX_SWITCH */
+
#endif /* _NETDEV_H_ */