2023-05-30 08:49:54

by Oleksij Rempel

[permalink] [raw]
Subject: [PATCH v2 0/3] Extend dt-bindings for PSE-PD controllers and update prtt1c dts

changes v2:
- extend ethernet-pse regexp in the PoDL PSE dt-bindings

This patch set comes in response to issues identified while adding PoDL
PSE support to the stm32 prtt1c device tree. The existing pse-pd device
tree bindings did not allow node name patterns like "ethernet-pse-0" and
"ethernet-pse-1", leading to validation failures.

To address these false positives in validation, the device tree bindings
are extended to support these node name patterns. Alongside this, an
example node is added to aid in the improved validation process.
Following these changes, the updated PoDL PSE regulator nodes are then
added to the stm32 prtt1c device tree.

Oleksij Rempel (3):
dt-bindings: net: pse-pd: Update regex pattern for ethernet-pse nodes
dt-bindings: net: pse-pd: Add "ethernet-pse-0" example to improve
validation in podl-pse-regulator DT binding
ARM: dts: stm32: prtt1c: Add PoDL PSE regulator nodes

.../net/pse-pd/podl-pse-regulator.yaml | 6 ++++
.../bindings/net/pse-pd/pse-controller.yaml | 2 +-
arch/arm/boot/dts/stm32mp151a-prtt1c.dts | 32 +++++++++++++++++++
3 files changed, 39 insertions(+), 1 deletion(-)

--
2.39.2



2023-05-30 08:50:11

by Oleksij Rempel

[permalink] [raw]
Subject: [PATCH v2 3/3] ARM: dts: stm32: prtt1c: Add PoDL PSE regulator nodes

This commit introduces Power over Data Line (PoDL) Power Source
Equipment (PSE) regulator nodes to the PRTT1C devicetree. The addition
of these nodes enables support for PoDL in PRTT1C devices, allowing
power delivery and data transmission over a single twisted pair.

The new PoDL PSE regulator nodes provide voltage capability information
of the current board design, which can be used as a hint for system
administrators when configuring and managing power settings. This update
enhances the versatility and simplifies the power management of PRTT1C
devices while ensuring compatibility with connected Powered Devices
(PDs).

After applying this patch, the power delivery can be controlled from
user space with a patched [1] ethtool version using the following commands:
ethtool --set-pse t1l2 podl-pse-admin-control enable
to enable power delivery, and
ethtool --show-pse t1l2
to display the PoDL PSE settings.

By integrating PoDL PSE support into the PRTT1C devicetree, users can
benefit from streamlined power and data connections in their
deployments, improving overall system efficiency and reducing cabling
complexity.

[1] https://lore.kernel.org/all/[email protected]/

Signed-off-by: Oleksij Rempel <[email protected]>
---
arch/arm/boot/dts/stm32mp151a-prtt1c.dts | 32 ++++++++++++++++++++++++
1 file changed, 32 insertions(+)

diff --git a/arch/arm/boot/dts/stm32mp151a-prtt1c.dts b/arch/arm/boot/dts/stm32mp151a-prtt1c.dts
index 58bb05a8c685..ca0d3329cfd7 100644
--- a/arch/arm/boot/dts/stm32mp151a-prtt1c.dts
+++ b/arch/arm/boot/dts/stm32mp151a-prtt1c.dts
@@ -23,6 +23,18 @@ clock_sja1105: clock-sja1105 {
clock-frequency = <25000000>;
};

+ pse_t1l1: ethernet-pse-1 {
+ compatible = "podl-pse-regulator";
+ pse-supply = <&reg_t1l1>;
+ #pse-cells = <0>;
+ };
+
+ pse_t1l2: ethernet-pse-2 {
+ compatible = "podl-pse-regulator";
+ pse-supply = <&reg_t1l2>;
+ #pse-cells = <0>;
+ };
+
mdio0: mdio {
compatible = "virtual,mdio-gpio";
#address-cells = <1>;
@@ -32,6 +44,24 @@ mdio0: mdio {

};

+ reg_t1l1: regulator-pse-t1l1 {
+ compatible = "regulator-fixed";
+ regulator-name = "pse-t1l1";
+ regulator-min-microvolt = <12000000>;
+ regulator-max-microvolt = <12000000>;
+ gpio = <&gpiog 13 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+ };
+
+ reg_t1l2: regulator-pse-t1l2 {
+ compatible = "regulator-fixed";
+ regulator-name = "pse-t1l2";
+ regulator-min-microvolt = <12000000>;
+ regulator-max-microvolt = <12000000>;
+ gpio = <&gpiog 14 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+ };
+
wifi_pwrseq: wifi-pwrseq {
compatible = "mmc-pwrseq-simple";
reset-gpios = <&gpiod 8 GPIO_ACTIVE_LOW>;
@@ -92,6 +122,7 @@ t1l1_phy: ethernet-phy@7 {
reset-gpios = <&gpiog 12 GPIO_ACTIVE_LOW>;
reset-assert-us = <10>;
reset-deassert-us = <35>;
+ pses = <&pse_t1l1>;
};

/* TI DP83TD510E */
@@ -102,6 +133,7 @@ t1l2_phy: ethernet-phy@10 {
reset-gpios = <&gpiog 11 GPIO_ACTIVE_LOW>;
reset-assert-us = <10>;
reset-deassert-us = <35>;
+ pses = <&pse_t1l2>;
};

/* Micrel KSZ9031 */
--
2.39.2


2023-05-30 09:06:05

by Oleksij Rempel

[permalink] [raw]
Subject: [PATCH v2 2/3] dt-bindings: net: pse-pd: Add "ethernet-pse-0" example to improve validation in podl-pse-regulator DT binding

This change adds a new example, "ethernet-pse-0", to the device tree
binding for podl-pse-regulator. This helps improve validation by
supporting more types of node names.

Signed-off-by: Oleksij Rempel <[email protected]>
---
.../devicetree/bindings/net/pse-pd/podl-pse-regulator.yaml | 6 ++++++
1 file changed, 6 insertions(+)

diff --git a/Documentation/devicetree/bindings/net/pse-pd/podl-pse-regulator.yaml b/Documentation/devicetree/bindings/net/pse-pd/podl-pse-regulator.yaml
index 94a527e6aa1b..25d237e0f406 100644
--- a/Documentation/devicetree/bindings/net/pse-pd/podl-pse-regulator.yaml
+++ b/Documentation/devicetree/bindings/net/pse-pd/podl-pse-regulator.yaml
@@ -38,3 +38,9 @@ examples:
pse-supply = <&reg_t1l1>;
#pse-cells = <0>;
};
+ - |
+ ethernet-pse-0 {
+ compatible = "podl-pse-regulator";
+ pse-supply = <&reg_t1l1>;
+ #pse-cells = <0>;
+ };
--
2.39.2


2023-05-30 09:12:07

by Oleksij Rempel

[permalink] [raw]
Subject: [PATCH v2 1/3] dt-bindings: net: pse-pd: Update regex pattern for ethernet-pse nodes

This patch modifies the regex pattern for the $nodename property in the
device tree bindings documentation for PSE-PD controllers. The updated
pattern allows for additional node names, including those with a hyphen
followed by a hexadecimal digit.

Before this change, the pattern ^ethernet-pse(@.*)?$ only allowed for
node names like "ethernet-pse" or "ethernet-pse@1". With the new pattern
node names like "ethernet-pse-1" are now also valid.

Signed-off-by: Oleksij Rempel <[email protected]>
---
.../devicetree/bindings/net/pse-pd/pse-controller.yaml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/Documentation/devicetree/bindings/net/pse-pd/pse-controller.yaml b/Documentation/devicetree/bindings/net/pse-pd/pse-controller.yaml
index b110abb42597..3548efc2191c 100644
--- a/Documentation/devicetree/bindings/net/pse-pd/pse-controller.yaml
+++ b/Documentation/devicetree/bindings/net/pse-pd/pse-controller.yaml
@@ -16,7 +16,7 @@ maintainers:

properties:
$nodename:
- pattern: "^ethernet-pse(@.*)?$"
+ pattern: "^ethernet-pse(@[0-9a-f]+|-([0-9a-f]+))?$"

"#pse-cells":
description:
--
2.39.2


2023-05-30 14:19:09

by Krzysztof Kozlowski

[permalink] [raw]
Subject: Re: [PATCH v2 2/3] dt-bindings: net: pse-pd: Add "ethernet-pse-0" example to improve validation in podl-pse-regulator DT binding

On 30/05/2023 10:37, Oleksij Rempel wrote:
> This change adds a new example, "ethernet-pse-0", to the device tree
> binding for podl-pse-regulator. This helps improve validation by
> supporting more types of node names.
>
> Signed-off-by: Oleksij Rempel <[email protected]>
> ---
> .../devicetree/bindings/net/pse-pd/podl-pse-regulator.yaml | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/Documentation/devicetree/bindings/net/pse-pd/podl-pse-regulator.yaml b/Documentation/devicetree/bindings/net/pse-pd/podl-pse-regulator.yaml
> index 94a527e6aa1b..25d237e0f406 100644
> --- a/Documentation/devicetree/bindings/net/pse-pd/podl-pse-regulator.yaml
> +++ b/Documentation/devicetree/bindings/net/pse-pd/podl-pse-regulator.yaml
> @@ -38,3 +38,9 @@ examples:
> pse-supply = <&reg_t1l1>;
> #pse-cells = <0>;
> };
> + - |
> + ethernet-pse-0 {

It's the same example. No need for new one with different node names.

Best regards,
Krzysztof


2023-05-30 14:23:26

by Krzysztof Kozlowski

[permalink] [raw]
Subject: Re: [PATCH v2 1/3] dt-bindings: net: pse-pd: Update regex pattern for ethernet-pse nodes

On 30/05/2023 10:37, Oleksij Rempel wrote:
> This patch modifies the regex pattern for the $nodename property in the

Please do not use "This commit/patch", but imperative mood. See longer
explanation here:
https://elixir.bootlin.com/linux/v5.17.1/source/Documentation/process/submitting-patches.rst#L95

> device tree bindings documentation for PSE-PD controllers. The updated
> pattern allows for additional node names, including those with a hyphen
> followed by a hexadecimal digit.
>
> Before this change, the pattern ^ethernet-pse(@.*)?$ only allowed for
> node names like "ethernet-pse" or "ethernet-pse@1". With the new pattern
> node names like "ethernet-pse-1" are now also valid.

This part is duplicating first paragraph. What you should have here is
answer to why we need it.

>
> Signed-off-by: Oleksij Rempel <[email protected]>
> ---
> .../devicetree/bindings/net/pse-pd/pse-controller.yaml | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/Documentation/devicetree/bindings/net/pse-pd/pse-controller.yaml b/Documentation/devicetree/bindings/net/pse-pd/pse-controller.yaml
> index b110abb42597..3548efc2191c 100644
> --- a/Documentation/devicetree/bindings/net/pse-pd/pse-controller.yaml
> +++ b/Documentation/devicetree/bindings/net/pse-pd/pse-controller.yaml
> @@ -16,7 +16,7 @@ maintainers:
>
> properties:
> $nodename:
> - pattern: "^ethernet-pse(@.*)?$"
> + pattern: "^ethernet-pse(@[0-9a-f]+|-([0-9a-f]+))?$"

No need for inner ()

Let's make -N suffix only decimal, as discussed here:
https://lore.kernel.org/all/[email protected]/

I will send a patch for other files.

>
> "#pse-cells":
> description:

Best regards,
Krzysztof