Re: [PATCH RFC 1/4] dt-binding: phy: hisi-inno-usb2: convert to YAML

From: Yang Xiwen
Date: Sat Feb 17 2024 - 05:55:14 EST


On 2/17/2024 6:29 PM, Krzysztof Kozlowski wrote:
On 17/02/2024 11:24, Yang Xiwen wrote:

+
+examples:
+ - |
+ #include <dt-bindings/clock/histb-clock.h>
+
+ peripheral-controller@8a20000 {
+ compatible = "hisilicon,hi3798cv200-perictrl", "syscon", "simple-mfd";
+ reg = <0x8a20000 0x1000>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+ ranges = <0x0 0x8a20000 0x1000>;
Drop the node, not related to this binding. If this binding is supposed
to be part of other device in case of MFD devices or some tightly
coupled ones, then could be included in the example there.
For CV200, this binding is supposed to be always inside the perictrl
device. The PHY address space are accessed from a bus implemented by
perictrl.
Every node is supposes to be somewhere in something, so with this logic
you would start from soc@. What's wrong in putting it in parent schema?

When the ports reg property only has an dummy address (no size), it must be inside the perictrl node, accessed from the bus implemented by perictrl.

But when the ports has its own MMIO address space (mv200), it should be located under a simple-bus node instead.

So it's either:

perictrl@8a20000 {

    usb2-phy@120: {

        reg = <0x120 0x4>; // this is the register that controls writes and reads to the phy, implemented by perictrl. (just like SPI/I2C)

        phy@0: {

            reg = <0>; // the reg is used as an index

        };

    };

};

or:

soc@0 {

    usb2-phy@f9865000 { // MMIO

        reg = <0xf9865000 0x1000>

        port0@0 {

            reg = <0x0 0x400>; // used as MMIO address space

        };

    };

};

So here is why i include perictrl node in the example. If the ports are not mmio, the phy must be under a perictrl node. Or if the ports has its own address space, it should not be under a perictrl node, but rather an simple-bus node.


Best regards,
Krzysztof


--
Regards,
Yang Xiwen