ARM: dts: stm32: prtt1c: Add PoDL PSE regulator nodes
authorOleksij Rempel <o.rempel@pengutronix.de>
Tue, 11 Jul 2023 12:25:31 +0000 (14:25 +0200)
committerAlexandre Torgue <alexandre.torgue@foss.st.com>
Tue, 11 Jul 2023 12:26:58 +0000 (14:26 +0200)
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/20230317093024.1051999-1-o.rempel@pengutronix.de/

Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de>
Signed-off-by: Alexandre Torgue <alexandre.torgue@foss.st.com>
arch/arm/boot/dts/st/stm32mp151a-prtt1c.dts

index 7ecf31263abc4ecaa3b94d647821a3e963a30aad..c90d815f906b8fff1be6895106ff98669641e899 100644 (file)
                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>;
 
        };
 
+       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>;
                reset-gpios = <&gpiog 12 GPIO_ACTIVE_LOW>;
                reset-assert-us = <10>;
                reset-deassert-us = <35>;
+               pses = <&pse_t1l1>;
        };
 
        /* TI DP83TD510E */
                reset-gpios = <&gpiog 11 GPIO_ACTIVE_LOW>;
                reset-assert-us = <10>;
                reset-deassert-us = <35>;
+               pses = <&pse_t1l2>;
        };
 
        /* Micrel KSZ9031 */