[PATCH net-next v4 0/9] net: dsa: microchip: provide Wake on LAN support

From: Oleksij Rempel
Date: Mon Oct 16 2023 - 10:13:24 EST


This patch series introduces extensive Wake on LAN (WoL) support for the
Microchip KSZ9477 family of switches, coupled with some code refactoring
and error handling enhancements. The principal aim is to enable and
manage Wake on Magic Packet and other PHY event triggers for waking up
the system, whilst ensuring that the switch isn't reset during a
shutdown if WoL is active.

The Wake on LAN functionality is optional and is particularly beneficial
if the PME pins are connected to the SoC as a wake source or to a PMIC
that can enable or wake the SoC.

changes v4:
- add ksz_switch_shutdown() and do not skip dsa_switch_shutdown() and
etc.
- try to configure MAC address on WAKE_MAGIC. If not possible, prevent
WAKE_MAGIC configuration
- use ksz_switch_macaddr_get() for WAKE_MAGIC.
- prevent ksz_port_set_mac_address if WAKE_MAGIC is active
- do some more refactoring and patch reordering

changes v3:
- use ethernet address of DSA master instead from devicetree
- use dev_ops->wol* instead of list of supported switch
- don't shotdown the switch if WoL is enabled
- rework on top of latest HSR changes

changes v2:
- rebase against latest next

Oleksij Rempel (9):
net: dsa: microchip: Add missing MAC address register offset for
ksz8863
dt-bindings: net: dsa: microchip: add wakeup-source property
net: dsa: microchip: use wakeup-source DT property to enable PME
output
net: dsa: microchip: ksz9477: add Wake on LAN support
net: dsa: microchip: ksz9477: Add Wake on Magic Packet support
net: dsa: microchip: Refactor comment for ksz_switch_macaddr_get()
function
net: dsa: microchip: Add error handling for ksz_switch_macaddr_get()
net: dsa: microchip: Refactor switch shutdown routine for WoL
preparation
net: dsa: microchip: do not reset the switch on shutdown if WoL is
active

.../bindings/net/dsa/microchip,ksz.yaml | 2 +
drivers/net/dsa/microchip/ksz9477.c | 122 ++++++++++++++++++
drivers/net/dsa/microchip/ksz9477.h | 4 +
drivers/net/dsa/microchip/ksz9477_i2c.c | 5 +-
drivers/net/dsa/microchip/ksz_common.c | 115 +++++++++++++++--
drivers/net/dsa/microchip/ksz_common.h | 8 ++
drivers/net/dsa/microchip/ksz_spi.c | 5 +-
7 files changed, 242 insertions(+), 19 deletions(-)

--
2.39.2