[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID:
<SEZPR06MB695983231D04A2E1947AF61896532@SEZPR06MB6959.apcprd06.prod.outlook.com>
Date: Sat, 17 Feb 2024 18:54:51 +0800
From: Yang Xiwen <forbidden405@...look.com>
To: Krzysztof Kozlowski <krzysztof.kozlowski@...aro.org>,
Vinod Koul <vkoul@...nel.org>, Kishon Vijay Abraham I <kishon@...nel.org>,
Rob Herring <robh+dt@...nel.org>,
Krzysztof Kozlowski <krzysztof.kozlowski+dt@...aro.org>,
Conor Dooley <conor+dt@...nel.org>,
Jiancheng Xue <xuejiancheng@...ilicon.com>,
Pengcheng Li <lpc.li@...ilicon.com>, Shawn Guo <shawn.guo@...aro.org>
Cc: linux-phy@...ts.infradead.org, devicetree@...r.kernel.org,
linux-kernel@...r.kernel.org, Kishon Vijay Abraham I <kishon@...com>,
David Yang <mmyangfl@...il.com>
Subject: Re: [PATCH RFC 1/4] dt-binding: phy: hisi-inno-usb2: convert to YAML
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@...0000 {
>>>> + 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@...0000 {
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@...65000 { // 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
Powered by blists - more mailing lists