[PATCH net-next v4 0/2] Add Si3474 PSE controller driver
From: Piotr Kubik <hidden>
Date: 2025-06-30 14:56:00
Also in:
linux-devicetree, lkml
From: Piotr Kubik <redacted> These patch series provide support for Skyworks Si3474 I2C Power Sourcing Equipment controller. Based on the TPS23881 driver code. Supported features of Si3474: - get port status, - get port power, - get port voltage, - enable/disable port power Signed-off-by: Piotr Kubik <redacted> --- Changes in v4: - Remove parsing of pse-pis node; now relies solely on the pcdev->pi[x] provided by the framework. - Set the DETECT_CLASS_ENABLE register, ensuring reliable PI power-up without artificial delays. - Introduce helper macros for bit manipulation logic. - Add si3474_get_channels() and si3474_get_chan_client() helpers to reduce redundant code. - Kconfig: Clarify that only 4-pair PSE configurations are supported. - Fix second channel voltage read if the first one is inactive. - Avoid reading currents and computing power when PI voltage is zero. - Link to v3: https://lore.kernel.org/netdev/f975f23e-84a7-48e6-a2b2-18ceb9148675@adtran.com (local) Changes in v3: - Use _scoped version of for_each_child_of_node(). - Remove redundant return value assignments in si3474_get_of_channels(). - Change dev_info() to dev_dbg() on successful probe. - Rename all instances of "slave" to "secondary". - Register devm cleanup action for ancillary i2c, simplifying cleanup logic in si3474_i2c_probe(). - Add explicit return 0 on successful probe. - Drop unnecessary .remove callback. - Update channel node description in device tree binding documentation. - Reorder reg and reg-names properties in device tree binding documentation. - Rename all "slave" references to "secondary" in device tree bindings documentation. - Link to v2: https://lore.kernel.org/netdev/bf9e5c77-512d-4efb-ad1d-f14120c4e06b@adtran.com (local) Changes in v2: - Handle both IC quads via single driver instance - Add architecture & terminology description comment - Change pi_enable, pi_disable, pi_get_admin_state to use PORT_MODE register - Rename power ports to 'pi' - Use i2c_smbus_write_byte_data() for single byte registers - Coding style improvements - Link to v1: https://lore.kernel.org/netdev/a92be603-7ad4-4dd3-b083-548658a4448a@adtran.com (local) --- Piotr Kubik (2): dt-bindings: net: pse-pd: Add bindings for Si3474 PSE controller net: pse-pd: Add Si3474 PSE controller driver .../bindings/net/pse-pd/skyworks,si3474.yaml | 144 +++++ drivers/net/pse-pd/Kconfig | 11 + drivers/net/pse-pd/Makefile | 1 + drivers/net/pse-pd/si3474.c | 584 ++++++++++++++++++ 4 files changed, 740 insertions(+) create mode 100644 Documentation/devicetree/bindings/net/pse-pd/skyworks,si3474.yaml create mode 100644 drivers/net/pse-pd/si3474.c -- 2.43.0 Piotr Kubik piotr.kubik@adtran.com www.adtran.com