* [PATCH net-next 0/2] net: pse-pd: Plain I2C transport for Realtek Gen1
@ 2026-10-18 16:12 Sander Vanheule
2026-10-18 16:12 ` [PATCH net-next 1/2] dt-bindings: net: pse-pd: realtek,pse: add gen1 I2C transport Sander Vanheule
2026-10-18 16:12 ` [PATCH net-next 2/2] net: pse-pd: realtek-pse-mcu: " Sander Vanheule
0 siblings, 2 replies; 3+ messages in thread
From: Sander Vanheule @ 2026-10-18 16:12 UTC (permalink / raw)
To: Jonas Jelonek, Oleksij Rempel, Kory Maincent, Andrew Lunn,
David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
Rob Herring, Krzysztof Kozlowski, Conor Dooley
Cc: netdev, devicetree, linux-kernel, Sander Vanheule
While for the Gen2 protocol both a plain I2C transport and an SMBus
transport were provided, Gen1 only got SMBus. The Unifi Switch Lite 16
PoE uses the Gen1 protocol to manage a single BCM59121, but does to
using plain I2C.
These patches simply add a new compatible for the plain I2C transport
and the associated match data. This is sufficient to let the existing
code talk to the management MCU.
Sander Vanheule (2):
dt-bindings: net: pse-pd: realtek,pse: add gen1 I2C transport
net: pse-pd: realtek-pse-mcu: add gen1 I2C transport
.../bindings/net/pse-pd/realtek,pse-mcu-gen1.yaml | 7 +++++++
drivers/net/pse-pd/realtek-pse-mcu-core.c | 8 +++++++-
drivers/net/pse-pd/realtek-pse-mcu-i2c.c | 1 +
drivers/net/pse-pd/realtek-pse-mcu.h | 1 +
4 files changed, 16 insertions(+), 1 deletion(-)
--
2.56.0
^ permalink raw reply [flat|nested] 3+ messages in thread
* [PATCH net-next 1/2] dt-bindings: net: pse-pd: realtek,pse: add gen1 I2C transport
2026-10-18 16:12 [PATCH net-next 0/2] net: pse-pd: Plain I2C transport for Realtek Gen1 Sander Vanheule
@ 2026-10-18 16:12 ` Sander Vanheule
2026-10-18 16:12 ` [PATCH net-next 2/2] net: pse-pd: realtek-pse-mcu: " Sander Vanheule
1 sibling, 0 replies; 3+ messages in thread
From: Sander Vanheule @ 2026-10-18 16:12 UTC (permalink / raw)
To: Jonas Jelonek, Oleksij Rempel, Kory Maincent, Andrew Lunn,
David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
Rob Herring, Krzysztof Kozlowski, Conor Dooley
Cc: netdev, devicetree, linux-kernel, Sander Vanheule
Like the gen2 protocol, the gen1 protocol can also be used over both a
raw I2C transport and an SMBUs transport. Add a compatible for the
former and the compatible for the Ubiquiti Unifi Switch Lite 16 PoE
device that uses it.
Signed-off-by: Sander Vanheule <sander@svanheule.net>
---
.../bindings/net/pse-pd/realtek,pse-mcu-gen1.yaml | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/Documentation/devicetree/bindings/net/pse-pd/realtek,pse-mcu-gen1.yaml b/Documentation/devicetree/bindings/net/pse-pd/realtek,pse-mcu-gen1.yaml
index 3bb32349c28c..526f8525bb4d 100644
--- a/Documentation/devicetree/bindings/net/pse-pd/realtek,pse-mcu-gen1.yaml
+++ b/Documentation/devicetree/bindings/net/pse-pd/realtek,pse-mcu-gen1.yaml
@@ -54,6 +54,12 @@ properties:
- zyxel,gs1920-24hp-v2-pse
- const: realtek,pse-mcu-gen1-smbus
+ # I2C, raw framing
+ - items:
+ - enum:
+ - ubnt,usw-lite-16-poe-pse
+ - const: realtek,pse-mcu-gen1-i2c
+
# UART
- items:
- enum:
@@ -100,6 +106,7 @@ allOf:
contains:
enum:
- realtek,pse-mcu-gen1-smbus
+ - realtek,pse-mcu-gen1-i2c
- realtek,pse-mcu-gen2-smbus
- realtek,pse-mcu-gen2-i2c
then:
--
2.56.0
^ permalink raw reply related [flat|nested] 3+ messages in thread
* [PATCH net-next 2/2] net: pse-pd: realtek-pse-mcu: add gen1 I2C transport
2026-10-18 16:12 [PATCH net-next 0/2] net: pse-pd: Plain I2C transport for Realtek Gen1 Sander Vanheule
2026-10-18 16:12 ` [PATCH net-next 1/2] dt-bindings: net: pse-pd: realtek,pse: add gen1 I2C transport Sander Vanheule
@ 2026-10-18 16:12 ` Sander Vanheule
1 sibling, 0 replies; 3+ messages in thread
From: Sander Vanheule @ 2026-10-18 16:12 UTC (permalink / raw)
To: Jonas Jelonek, Oleksij Rempel, Kory Maincent, Andrew Lunn,
David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
Rob Herring, Krzysztof Kozlowski, Conor Dooley
Cc: netdev, devicetree, linux-kernel, Sander Vanheule
Provide the required data for the gen1 raw I2C binding, which like for
gen2 is simply the gen1 protocol data with the native_i2c flag set.
Signed-off-by: Sander Vanheule <sander@svanheule.net>
---
drivers/net/pse-pd/realtek-pse-mcu-core.c | 8 +++++++-
drivers/net/pse-pd/realtek-pse-mcu-i2c.c | 1 +
drivers/net/pse-pd/realtek-pse-mcu.h | 1 +
3 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/drivers/net/pse-pd/realtek-pse-mcu-core.c b/drivers/net/pse-pd/realtek-pse-mcu-core.c
index e64f13ea6e4e..c70b09ca2012 100644
--- a/drivers/net/pse-pd/realtek-pse-mcu-core.c
+++ b/drivers/net/pse-pd/realtek-pse-mcu-core.c
@@ -986,7 +986,13 @@ const struct rtpse_mcu_match_data rtpse_mcu_gen2_data = {
};
EXPORT_SYMBOL_GPL(rtpse_mcu_gen2_data);
-/* Same dialect as gen2, but the MCU expects raw-I2C framing. */
+/* Same dialects as above, but the MCU expects raw-I2C framing. */
+const struct rtpse_mcu_match_data rtpse_mcu_gen1_i2c_data = {
+ .dialect = &rtpse_mcu_dialect_gen1,
+ .native_i2c = true,
+};
+EXPORT_SYMBOL_GPL(rtpse_mcu_gen1_i2c_data);
+
const struct rtpse_mcu_match_data rtpse_mcu_gen2_i2c_data = {
.dialect = &rtpse_mcu_dialect_gen2,
.native_i2c = true,
diff --git a/drivers/net/pse-pd/realtek-pse-mcu-i2c.c b/drivers/net/pse-pd/realtek-pse-mcu-i2c.c
index b6769ac1d470..bbded772eddf 100644
--- a/drivers/net/pse-pd/realtek-pse-mcu-i2c.c
+++ b/drivers/net/pse-pd/realtek-pse-mcu-i2c.c
@@ -128,6 +128,7 @@ static int rtpse_mcu_i2c_probe(struct i2c_client *client)
static const struct of_device_id rtpse_mcu_i2c_of_match[] = {
{ .compatible = "realtek,pse-mcu-gen1-smbus", .data = &rtpse_mcu_gen1_data },
+ { .compatible = "realtek,pse-mcu-gen1-i2c", .data = &rtpse_mcu_gen1_i2c_data },
{ .compatible = "realtek,pse-mcu-gen2-smbus", .data = &rtpse_mcu_gen2_data },
{ .compatible = "realtek,pse-mcu-gen2-i2c", .data = &rtpse_mcu_gen2_i2c_data },
{ /* sentinel */ }
diff --git a/drivers/net/pse-pd/realtek-pse-mcu.h b/drivers/net/pse-pd/realtek-pse-mcu.h
index d75e91669b8f..5e31dd0993dd 100644
--- a/drivers/net/pse-pd/realtek-pse-mcu.h
+++ b/drivers/net/pse-pd/realtek-pse-mcu.h
@@ -88,6 +88,7 @@ struct rtpse_mcu_ctrl {
int rtpse_mcu_register(struct rtpse_mcu_ctrl *pse);
extern const struct rtpse_mcu_match_data rtpse_mcu_gen1_data;
+extern const struct rtpse_mcu_match_data rtpse_mcu_gen1_i2c_data;
extern const struct rtpse_mcu_match_data rtpse_mcu_gen2_data;
extern const struct rtpse_mcu_match_data rtpse_mcu_gen2_i2c_data;
--
2.56.0
^ permalink raw reply related [flat|nested] 3+ messages in thread
end of thread, other threads:[~2026-10-18 16:22 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-10-18 16:12 [PATCH net-next 0/2] net: pse-pd: Plain I2C transport for Realtek Gen1 Sander Vanheule
2026-10-18 16:12 ` [PATCH net-next 1/2] dt-bindings: net: pse-pd: realtek,pse: add gen1 I2C transport Sander Vanheule
2026-10-18 16:12 ` [PATCH net-next 2/2] net: pse-pd: realtek-pse-mcu: " Sander Vanheule
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox