[PATCH net-next RFC 0/5] net: phy: Introduce a port representation
Kory Maincent
kory.maincent at bootlin.com
Sat Jan 4 14:23:59 PST 2025
On Sun, 22 Dec 2024 19:54:37 +0100
Oleksij Rempel <o.rempel at pengutronix.de> wrote:
> transformer {
> model = "ABC123"; /* Transformer model number */
> manufacturer = "TransformerCo"; /* Manufacturer name */
>
> pairs {
> pair at 0 {
> name = "A"; /* Pair A */
> pins = <1 2>; /* Connector pins */
> phy-mapping = <PHY_TX0_P PHY_TX0_N>; /* PHY pin mapping */
> center-tap = "CT0"; /* Central tap identifier */
> /* if pse-positive and pse-negative are present -
> polarity is configurable */ pse-positive = <PSE_OUT0_0>; /* PSE-controlled
> positive pin -> CT0 */ pse-negative = <PSE_OUT0_1>; /* PSE-controlled
> negative pin -> CT0 */ };
> pair at 1 {
> name = "B"; /* Pair B */
> pins = <3 6>; /* Connector pins */
> phy-mapping = <PHY_RX0_P PHY_RX0_N>;
> center-tap = "CT1"; /* Central tap identifier */
> pse-positive = <PSE_OUT1_0>;
> pse-negative = <PSE_OUT1_1>;
> };
> pair at 2 {
> name = "C"; /* Pair C */
> pins = <4 5>; /* Connector pins */
> phy-mapping = <PHY_TXRX1_P PHY_TXRX1_N>; /* PHY
> connection only */ center-tap = "CT2"; /* Central tap identifier */
> pse-positive = <PSE_OUT2_0>;
> pse-negative = <PSE_OUT2_1>;
> };
> pair at 3 {
> name = "D"; /* Pair D */
> pins = <7 8>; /* Connector pins */
> phy-mapping = <PHY_TXRX2_P PHY_TXRX2_N>; /* PHY
> connection only */ center-tap = "CT3"; /* Central tap identifier */
> pse-positive = <PSE_OUT3_0>;
> pse-negative = <PSE_OUT3_1>;
> };
> };
> };
>
> pse = <&pse1>; /* Reference to the attached PSE controller */
The PSE pairset and polarity are already described in the PSE bindings.
https://elixir.bootlin.com/linux/v6.12.6/source/Documentation/devicetree/bindings/net/pse-pd/pse-controller.yaml
I am not sure it is a good idea to have PSE information at two different places.
> leds {
> ethernet-leds {
> link = <ð_led0>; /* Link status LED */
> activity = <ð_led1>; /* Activity LED */
> speed = <ð_led2>; /* Speed indication LED */
> };
>
> poe-leds {
> power = <&poe_led0>; /* PoE power status LED */
> fault = <&poe_led1>; /* PoE fault indication LED */
> budget = <&poe_led2>; /* PoE budget usage LED */
> };
> };
Maybe the PoE leds should also land in our pse-pis binding.
> In case of PoDL, we will have something like this:
>
> pair at 0 {
> name = "A"; /* Single pair for 10BaseT1L */
> pins = <1 2>; /* Connector pins */
> phy-mapping = <PHY_TXRX0_P PHY_TXRX0_N>; /* PHY pin mapping */
> podl-mapping = <PODL_OUT0_P PODL_OUT0_N>; /* PoDL mapping: Positive and
> negative outputs */ };
We should do the same for PoDL. Put all information in the same place, the PSE
bindings.
Regards,
--
Köry Maincent, Bootlin
Embedded Linux and kernel engineering
https://bootlin.com
More information about the linux-arm-kernel
mailing list