]> git.kernelconcepts.de Git - karo-tx-uboot.git/blobdiff - include/netdev.h
treewide: include libfdt_env.h before fdt.h
[karo-tx-uboot.git] / include / netdev.h
index b8d303d0895b24dd90607baced372568159282c0..7f158d433ba30aeb5615d541d4c0ef3fda73d2c2 100644 (file)
@@ -163,10 +163,9 @@ static inline int pci_eth_init(bd_t *bis)
  * 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
-};
+
+/* constants for any 88E61xx switch */
+#define MV88E61XX_MAX_PORTS_NUM        6
 
 enum mv88e61xx_cfg_mdip {
        MV88E61XX_MDIP_NOCHANGE,
@@ -192,7 +191,7 @@ enum mv88e61xx_cfg_prtstt {
 
 struct mv88e61xx_config {
        char *name;
-       enum mv88e61xx_cfg_vlan vlancfg;
+       u8 vlancfg[MV88E61XX_MAX_PORTS_NUM];
        enum mv88e61xx_cfg_rgmiid rgmii_delay;
        enum mv88e61xx_cfg_prtstt portstate;
        enum mv88e61xx_cfg_ledinit led_init;
@@ -201,6 +200,18 @@ struct mv88e61xx_config {
        u8 cpuport;
 };
 
+/*
+ * Common mappings for Internal VLANs
+ * These mappings consider that all ports are useable; the driver
+ * will mask inexistent/unused ports.
+ */
+
+/* Switch mode : routes any port to any port */
+#define MV88E61XX_VLANCFG_SWITCH { 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F }
+
+/* Router mode: routes only CPU port 5 to/from non-CPU ports 0-4 */
+#define MV88E61XX_VLANCFG_ROUTER { 0x20, 0x20, 0x20, 0x20, 0x20, 0x1F }
+
 int mv88e61xx_switch_initialize(struct mv88e61xx_config *swconfig);
 #endif /* CONFIG_MV88E61XX_SWITCH */