Re: [net-next PATCH RFC v3 1/8] dt-bindings: net: document ethernet PHY package nodes

From: Andrew Lunn
Date: Tue Jan 09 2024 - 08:48:48 EST


>
> __| |_______________| |__
> | PCS0 | |PCS1 |
> |______| |_____|
> |_______ |<---- REF clock 50MHZ
> | |------------ |
> |NSSCC | |clks |rsts|<---- GPIO reset
> |______| | | |
> | V V |
> |_______________________|
> | | | | |
> |PHY1 |PHY2 |PHY3 |PHY4 |
> |_____|_____|_____|_____|

Not the best of improvements. So the ref clock goes to the package,
and then magically somehow gets to the NSSCC? Are there any more
blocks it goes through before reaching the NSSCC? How does the GPIO
reset get converted into multiple reset inside the package? Details,
details, details.

> There are difference clock trees generated from NSSCC for the different
> PHYs, all clocks and resets for qca8084 CHIP working are internally
> provided by the NSSCC.

So show this in the block diagram.

> Yes, Andrew, the NSSCC provider driver is probed based on the MDIO
> device, the PHY CHIP occupies the MDIO addresses, so the NSSCC is
> registered as the MDIO device.
>
> DT of the NSSCC device node:
> mdio {
> #address-cells = <1>;
> #size-cells = <0>;
>
> clock-controller@18 {
> compatible = "qcom,qca8084-nsscc";
> reg = <0x18>;
> clocks = <&qca8k_xo>,
> <&qca8k_uniphy0_rx>,
> <&qca8k_uniphy0_tx>,
> <&qca8k_uniphy1_rx>,
> <&qca8k_uniphy1_tx>,
> <&qca8k_uniphy1_rx312p5m>,
> <&qca8k_uniphy1_tx312p5m>;
> #clock-cells = <1>;
> #reset-cells = <1>;
> #power-domain-cells = <1>;
> };
> };

This does not make any sense. You have one clock input, 50MHz. So why
are you listing 6 consumer clocks, not one? And where are the clocks
this clock controller provides, clock-output-names=<...>;

I give up. Please consider this PHY driver NACKed.

Get Linaro, or some other organisation with a lot of experience with
mainline to take over the work.

Andrew