aboutsummaryrefslogtreecommitdiff
path: root/drivers/net/dsa/lan9303.h
diff options
context:
space:
mode:
authorJuergen Beisert <jbe@pengutronix.de>2017-04-18 10:48:25 +0200
committerDavid S. Miller <davem@davemloft.net>2017-04-20 13:48:54 -0400
commita1292595e006075792d6961fcb7de5e862a77aa8 (patch)
tree6e9442bb69f9c49bb70d0711f44b69832bbe591d /drivers/net/dsa/lan9303.h
parente8fe177a62feaf576cd9869d9bfedf9c9574bb12 (diff)
net: dsa: add new DSA switch driver for the SMSC-LAN9303
The SMSC/Microchip LAN9303 is an ethernet switch device with one CPU port and two external ethernet ports with built-in phys. This driver uses the DSA framework, but is currently only capable of separating the two external ports. There is no offload support yet. Signed-off-by: Juergen Borleis <jbe@pengutronix.de> Reviewed-by: Andrew Lunn <andrew@lunn.ch> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/dsa/lan9303.h')
-rw-r--r--drivers/net/dsa/lan9303.h19
1 files changed, 19 insertions, 0 deletions
diff --git a/drivers/net/dsa/lan9303.h b/drivers/net/dsa/lan9303.h
new file mode 100644
index 000000000000..d1512dad2d90
--- /dev/null
+++ b/drivers/net/dsa/lan9303.h
@@ -0,0 +1,19 @@
+#include <linux/regmap.h>
+#include <linux/device.h>
+#include <net/dsa.h>
+
+struct lan9303 {
+ struct device *dev;
+ struct regmap *regmap;
+ struct regmap_irq_chip_data *irq_data;
+ struct gpio_desc *reset_gpio;
+ u32 reset_duration; /* in [ms] */
+ bool phy_addr_sel_strap;
+ struct dsa_switch *ds;
+ struct mutex indirect_mutex; /* protect indexed register access */
+};
+
+extern const struct regmap_access_table lan9303_register_set;
+
+int lan9303_probe(struct lan9303 *chip, struct device_node *np);
+int lan9303_remove(struct lan9303 *chip);