[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <712f8904-4b63-4a3b-8135-f17f41bbb501@linaro.org>
Date: Sat, 17 Feb 2024 14:39:28 +0100
From: Krzysztof Kozlowski <krzysztof.kozlowski@...aro.org>
To: Yang Xiwen <forbidden405@...look.com>, 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 17/02/2024 11:54, Yang Xiwen wrote:
> 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.
I don't understand why you keep insisting and discussing this. You are
adding other compatibles to this schema example, which usually we try to
avoid. You entirely ignored my comment above and pasted DTS which is no
related to the topic we discuss here. I did not question whether this
can be or cannot be in some node.
Best regards,
Krzysztof
Powered by blists - more mailing lists