[PATCH net-next v9 00/14] net: Add support for Power over Ethernet (PoE)

Kory Maincent posted 14 patches 2 weeks ago
.../bindings/net/pse-pd/microchip,pd692x0.yaml     |  169 +++
.../bindings/net/pse-pd/pse-controller.yaml        |  101 +-
.../bindings/net/pse-pd/ti,tps23881.yaml           |   95 ++
Documentation/netlink/specs/ethtool.yaml           |   33 +-
Documentation/networking/ethtool-netlink.rst       |   20 +
Documentation/networking/index.rst                 |    1 +
Documentation/networking/pse-pd/index.rst          |   10 +
Documentation/networking/pse-pd/introduction.rst   |   73 ++
Documentation/networking/pse-pd/pse-pi.rst         |  302 +++++
MAINTAINERS                                        |    1 +
drivers/net/pse-pd/Kconfig                         |   20 +
drivers/net/pse-pd/Makefile                        |    2 +
drivers/net/pse-pd/pd692x0.c                       | 1223 ++++++++++++++++++++
drivers/net/pse-pd/pse_core.c                      |  515 ++++++++-
drivers/net/pse-pd/pse_regulator.c                 |   49 +-
drivers/net/pse-pd/tps23881.c                      |  820 +++++++++++++
include/linux/pse-pd/pse.h                         |   79 +-
include/uapi/linux/ethtool.h                       |   55 +
include/uapi/linux/ethtool_netlink.h               |    3 +
net/ethtool/pse-pd.c                               |   60 +-
20 files changed, 3534 insertions(+), 97 deletions(-)
[PATCH net-next v9 00/14] net: Add support for Power over Ethernet (PoE)
Posted by Kory Maincent 2 weeks ago
From: Kory Maincent (Dent Project) <kory.maincent@bootlin.com>

This patch series aims at adding support for PoE (Power over Ethernet),
based on the already existing support for PoDL (Power over Data Line)
implementation. In addition, it adds support for two specific PoE
controller, the Microchip PD692x0 and the TI TPS23881.

3 patches has already been merged thanks to Jakub.

In detail:
- Patch 1 to 10 prepare net to support PoE devices.
- Patch 11 and 12 add PD692x0 PoE PSE controller driver and its binding.
- Patch 13 and 14 add TI TPS23881 PSE controller driver and its binding.

Changes in v9:
- Fix few kdoc return description missing.
- Fix a reference leak.
- Link to v8: https://lore.kernel.org/r/20240414-feature_poe-v8-0-e4bf1e860da5@bootlin.com

Changes in v8:
- Fix a build error due to an artifact from an ancient version of the
  series.
- Link to v7: https://lore.kernel.org/r/20240409-feature_poe-v7-0-11e38efd4dee@bootlin.com

Changes in v7:
- Fix code, doc and kdoc nit.
- Fix few pd692x0 dt binding issues.
- Rename *flash_fw* functions to *flash_sram_fw* in tps23881 driver.
- Link to v6: https://lore.kernel.org/r/20240326-feature_poe-v6-0-c1011b6ea1cb@bootlin.com

Changes in v6:
- TPS23881 fix firmware management release missing.
- Use pcdev device pointer as regulator consumer and provider.
- Rename of_legacy to no_of_pse_pi.
- Add kdoc, and separate functions for better readability.
- Add vpwr-supply regulator parent.
- Link to v5: https://lore.kernel.org/r/20240227-feature_poe-v5-0-28f0aa48246d@bootlin.com

Changes in v5:
- Fix bindings nit.
- Add supported-polarity parameter to bindings.
- Fix yamllint binding errors.
- Remove the nested lock brought by the use of regulator framework.
- Link to v4: https://lore.kernel.org/r/20240215-feature_poe-v4-0-35bb4c23266c@bootlin.com

Changes in v4:
- Replaced sponsored-by tag by a simple sentence.
- Fix pse_pi node bindings.
- Add pse pi documentation written by Oleksij.
- Link to v3: https://lore.kernel.org/r/20240208-feature_poe-v3-0-531d2674469e@bootlin.com

Changes in v3:
- Add patches to add Oleksij and myself to PSE MAINTAINERS.
- Add patches to add pse devlink.
- Add TI TPS23881 PSE controller driver with its binding.
- Replace pse_get_types helper by pse_has_podl and pse_has_c33
- Changed the PSE core bindings.
- Add a setup_pi_matrix callback.
- Register regulator for each PSE PI (Power Interface).
- Changed the PD692x0 bindings.
- Updated PD692x0 drivers to new bindings and PSE PI description.
- Updated PD692x0 drivers according to the reviews and made fixes.
- Link to v2: https://lore.kernel.org/r/20231201-feature_poe-v2-0-56d8cac607fa@bootlin.com

Changes in v2:
- Extract "firmware_loader: Expand Firmware upload error codes patches" to
  send it alone and get it merge in an immutable branch.
- Add "c33" prefix for PoE variables and enums.
- Enhance few comments.
- Add PSE Documentation.
- Make several changes in pd692x0 driver, mainly for readibility.
- Link to v1: https://lore.kernel.org/r/20231116-feature_poe-v1-0-be48044bf249@bootlin.com

Signed-off-by: Kory Maincent <kory.maincent@bootlin.com>
---
Kory Maincent (14):
      ethtool: Expand Ethernet Power Equipment with c33 (PoE) alongside PoDL
      net: pse-pd: Introduce PSE types enumeration
      net: ethtool: pse-pd: Expand pse commands with the PSE PoE interface
      netlink: specs: Modify pse attribute prefix
      netlink: specs: Expand the pse netlink command with PoE interface
      MAINTAINERS: Add myself to pse networking maintainer
      net: pse-pd: Add support for PSE PIs
      dt-bindings: net: pse-pd: Add another way of describing several PSE PIs
      net: pse-pd: Add support for setup_pi_matrix callback
      net: pse-pd: Use regulator framework within PSE framework
      dt-bindings: net: pse-pd: Add bindings for PD692x0 PSE controller
      net: pse-pd: Add PD692x0 PSE controller driver
      dt-bindings: net: pse-pd: Add bindings for TPS23881 PSE controller
      net: pse-pd: Add TI TPS23881 PSE controller driver

 .../bindings/net/pse-pd/microchip,pd692x0.yaml     |  169 +++
 .../bindings/net/pse-pd/pse-controller.yaml        |  101 +-
 .../bindings/net/pse-pd/ti,tps23881.yaml           |   95 ++
 Documentation/netlink/specs/ethtool.yaml           |   33 +-
 Documentation/networking/ethtool-netlink.rst       |   20 +
 Documentation/networking/index.rst                 |    1 +
 Documentation/networking/pse-pd/index.rst          |   10 +
 Documentation/networking/pse-pd/introduction.rst   |   73 ++
 Documentation/networking/pse-pd/pse-pi.rst         |  302 +++++
 MAINTAINERS                                        |    1 +
 drivers/net/pse-pd/Kconfig                         |   20 +
 drivers/net/pse-pd/Makefile                        |    2 +
 drivers/net/pse-pd/pd692x0.c                       | 1223 ++++++++++++++++++++
 drivers/net/pse-pd/pse_core.c                      |  515 ++++++++-
 drivers/net/pse-pd/pse_regulator.c                 |   49 +-
 drivers/net/pse-pd/tps23881.c                      |  820 +++++++++++++
 include/linux/pse-pd/pse.h                         |   79 +-
 include/uapi/linux/ethtool.h                       |   55 +
 include/uapi/linux/ethtool_netlink.h               |    3 +
 net/ethtool/pse-pd.c                               |   60 +-
 20 files changed, 3534 insertions(+), 97 deletions(-)
---
base-commit: 4103ffb31295dee66eaa0deba04b36c5051a2db4
change-id: 20231024-feature_poe-139490e73403

Best regards,
-- 
K�ry Maincent, Bootlin
Embedded Linux and kernel engineering
https://bootlin.com

Re: [PATCH net-next v9 00/14] net: Add support for Power over Ethernet (PoE)
Posted by Kyle Swenson 2 weeks ago
On Wed, Apr 17, 2024 at 04:39:48PM +0200, Kory Maincent wrote:
> From: Kory Maincent (Dent Project) <kory.maincent@bootlin.com>
> 
> This patch series aims at adding support for PoE (Power over Ethernet),
> based on the already existing support for PoDL (Power over Data Line)
> implementation. In addition, it adds support for two specific PoE
> controller, the Microchip PD692x0 and the TI TPS23881.
> 

I don't have much in the way of review comments, it all looks pretty
good to me, for whatever that's worth.  I am excited for this support to
be mainlined, it will be super useful for our routers and provides and
extensible way I can eventually add support for additional PSE chipsets,
like the LTC4266 from Linear Technology.

I look forward to working with this to add support for port priorities
and power management given a system-level power budget that is less than
the sum of total power that could be supplied by all ports.  I don't
know exactly how this will look, but I do know that without this first
part, it wouldn't be possible.

So, great work, and thanks for the effort.  It's appreciated and will be
very useful for us.  I look forward to working with you to build on top
of this.

Thanks so much,
Kyle