+/* SPDX-License-Identifier: GPL-2.0 */
/*
- * Driver for MediaTek MT753x gigabit switch
- *
- * Copyright (C) 2018 MediaTek Inc. All Rights Reserved.
- *
+ * Copyright (c) 2018 MediaTek Inc.
* Author: Weijie Gao <weijie.gao@mediatek.com>
- *
- * SPDX-License-Identifier: GPL-2.0+
*/
#ifndef _MT753X_H_
#include <linux/switch.h>
#endif
+#include "mt753x_vlan.h"
+
#define MT753X_DFL_CPU_PORT 6
-#define MT753X_NUM_PORTS 7
#define MT753X_NUM_PHYS 5
-#define MT753X_NUM_VLANS 4095
-
-#define MT753X_MAX_VID 4095
-#define MT753X_MIN_VID 0
#define MT753X_DFL_SMI_ADDR 0x1f
#define MT753X_SMI_ADDR_MASK 0x1f
MT7531 = 0x7531
};
-struct mt753x_port_entry {
- u16 pvid;
-};
-
-struct mt753x_vlan_entry {
- u16 vid;
- u8 member;
- u8 etags;
-};
-
struct mt753x_port_cfg {
struct device_node *np;
int phy_mode;
struct mt753x_port_cfg port5_cfg;
struct mt753x_port_cfg port6_cfg;
- bool phy_status_poll;
+ int phy_status_poll;
struct mt753x_phy phys[MT753X_NUM_PHYS];
int phy_link_sts;
#ifdef CONFIG_SWCONFIG
struct switch_dev swdev;
+ u32 cpu_port;
+#endif
+ int global_vlan_enable;
struct mt753x_vlan_entry vlan_entries[MT753X_NUM_VLANS];
struct mt753x_port_entry port_entries[MT753X_NUM_PORTS];
- int global_vlan_enable;
- u32 cpu_port;
-#endif
-
int (*mii_read)(struct gsw_mt753x *gsw, int phy, int reg);
void (*mii_write)(struct gsw_mt753x *gsw, int phy, int reg, u16 val);
#define MT753X_REG_PAGE_ADDR_M 0xffc0
#define MT753X_REG_ADDR_S 2
#define MT753X_REG_ADDR_M 0x3c
-
#endif /* _MT753X_H_ */