[PATCH v1 0/8] Hirschmann Hellcreek DSA driver

Kurt Kanzenbach
2020-07-10T11:36:29Z

Hi,

this series adds a DSA driver for the Hirschmann Hellcreek TSN switch
IP. Characteristics of that IP:

* Full duplex Ethernet interface at 100/1000 Mbps on three ports
* IEEE 802.1Q-compliant Ethernet Switch
* IEEE 802.1Qbv Time-Aware scheduling support
* IEEE 1588 and IEEE 802.1AS support

That IP is used e.g. in

https://www.arrow.com/en/campaigns/arrow-kairos

Due to the hardware setup the switch driver is implemented using DSA. A special
tagging protocol is leveraged. Furthermore, this driver supports PTP, hardware
timestamping and TAPRIO offloading.

This work is part of the AccessTSN project: https://www.accesstsn.com/

The RFC version can be found here:

https://lkml.kernel.org/netdev/20200618064029.32168-1-kurt@linutronix.de/

Changes since RFC ordered by reviewers:

* Andrew Lunn
* Use dev_dbg for debug messages
* Get rid of __ function names where possible
* Use reverse xmas tree variable ordering
* Remove redundant/useless checks
* Improve comments e.g. for PTP
* Fix Kconfig ordering
* Make LED handling more generic and provide info via DT
* Setup advertisement of PHYs according to hardware
* Drop debugfs patch
* Jakub Kicinski
* Fix compiler warnings
* Florian Fainelli
* Switch to YAML DT bindings
* Richard Cochran
* Fix typo
* Add missing NULL checks

And two problems I found myself:

* Fix reg property in DT
* Fix wrong comments

Please note, that this series depends on

https://lkml.kernel.org/netdev/20200710090618.28945-2-kurt@linutronix.de/

Tested on top of 5.8.0-rc2.

Thanks,
Kurt

Kamil Alkhouri (2):
net: dsa: hellcreek: Add PTP clock support
net: dsa: hellcreek: Add support for hardware timestamping

Kurt Kanzenbach (6):
net: dsa: Add tag handling for Hirschmann Hellcreek switches
net: dsa: Add DSA driver for Hirschmann Hellcreek switches
net: dsa: hellcreek: Add TAPRIO offloading support
net: dsa: hellcreek: Add PTP status LEDs
dt-bindings: Add vendor prefix for Hirschmann
dt-bindings: net: dsa: Add documentation for Hellcreek switches

.../bindings/net/dsa/hellcreek.yaml | 132 ++
.../devicetree/bindings/vendor-prefixes.yaml | 2 +
drivers/net/dsa/Kconfig | 2 +
drivers/net/dsa/Makefile | 1 +
drivers/net/dsa/hirschmann/Kconfig | 7 +
drivers/net/dsa/hirschmann/Makefile | 5 +
drivers/net/dsa/hirschmann/hellcreek.c | 1555 +++++++++++++++++
drivers/net/dsa/hirschmann/hellcreek.h | 301 ++++
.../net/dsa/hirschmann/hellcreek_hwtstamp.c | 498 ++++++
.../net/dsa/hirschmann/hellcreek_hwtstamp.h | 58 +
drivers/net/dsa/hirschmann/hellcreek_ptp.c | 452 +++++
drivers/net/dsa/hirschmann/hellcreek_ptp.h | 76 +
include/net/dsa.h | 2 +
net/dsa/Kconfig | 6 +
net/dsa/Makefile | 1 +
net/dsa/tag_hellcreek.c | 101 ++
16 files changed, 3199 insertions(+)
create mode 100644 Documentation/devicetree/bindings/net/dsa/hellcreek.yaml
create mode 100644 drivers/net/dsa/hirschmann/Kconfig
create mode 100644 drivers/net/dsa/hirschmann/Makefile
create mode 100644 drivers/net/dsa/hirschmann/hellcreek.c
create mode 100644 drivers/net/dsa/hirschmann/hellcreek.h
create mode 100644 drivers/net/dsa/hirschmann/hellcreek_hwtstamp.c
create mode 100644 drivers/net/dsa/hirschmann/hellcreek_hwtstamp.h
create mode 100644 drivers/net/dsa/hirschmann/hellcreek_ptp.c
create mode 100644 drivers/net/dsa/hirschmann/hellcreek_ptp.h
create mode 100644 net/dsa/tag_hellcreek.c

--
2.20.1