Re: [PATCH v4 1/4] dt-bindings: clock: add ExynosAuto v920 SoC CMU bindings

From: Krzysztof Kozlowski
Date: Thu Jul 25 2024 - 02:37:18 EST


On 25/07/2024 08:35, sunyeal.hong wrote:
> Hello Krzysztof,
>
>> -----Original Message-----
>> From: Krzysztof Kozlowski <krzk@xxxxxxxxxx>
>> Sent: Thursday, July 25, 2024 3:21 PM
>> To: sunyeal.hong <sunyeal.hong@xxxxxxxxxxx>; 'Rob Herring'
>> <robh@xxxxxxxxxx>
>> Cc: 'Sylwester Nawrocki' <s.nawrocki@xxxxxxxxxxx>; 'Chanwoo Choi'
>> <cw00.choi@xxxxxxxxxxx>; 'Alim Akhtar' <alim.akhtar@xxxxxxxxxxx>; 'Michael
>> Turquette' <mturquette@xxxxxxxxxxxx>; 'Stephen Boyd' <sboyd@xxxxxxxxxx>;
>> 'Conor Dooley' <conor+dt@xxxxxxxxxx>; linux-samsung-soc@xxxxxxxxxxxxxxx;
>> linux-clk@xxxxxxxxxxxxxxx; devicetree@xxxxxxxxxxxxxxx; linux-arm-
>> kernel@xxxxxxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx
>> Subject: Re: [PATCH v4 1/4] dt-bindings: clock: add ExynosAuto v920 SoC
>> CMU bindings
>>
>> On 25/07/2024 05:03, sunyeal.hong wrote:
>>
>>> - dts
>>> cmu_misc: clock-controller@10020000 {
>>> compatible = "samsung,exynosautov920-cmu-misc";
>>> reg = <0x10020000 0x8000>;
>>> #clock-cells = <1>;
>>>
>>> clocks = <&xtcxo>,
>>> <&cmu_top DOUT_CLKCMU_MISC_NOC>;
>>> clock-names = "oscclk",
>>> "noc";
>>> };
>>>
>>> In this case, can you tell me how to handle it?
>>> And if a new clock item is added and a new cmu block uses only the clock
>> item added and oscclk, a problem may occur.
>>
>> The same problem was in your original version, so why suddenly it appeared?
>>
>> Anyway, why clock would be missing? You just wrote in the bindings that
>> there is such input clock.
>>
>> Best regards,
>> Krzysztof
>>
>
> If I reflect Rob's review, it will be changed as below.
>
> - yaml
> properties:
> compatible:
> enum:
> - samsung,exynosautov920-cmu-top
> - samsung,exynosautov920-cmu-peric0
>
> clocks:
> minItems: 1
> items:
> - description: External reference clock (38.4 MHz)
> - description: Block IP clock (from CMU_TOP)
> - description: Block NOC clock (from CMU_TOP)
>
> clock-names:
> minItems: 1
> items:
> - const: oscclk
> - const: ip
> - const: noc
>
> "#clock-cells":
> const: 1
>
> reg:
> maxItems: 1
>
> if:
> properties:
> compatible:
> enum:
> - samsung,exynosautov920-cmu-misc
>
> then:
> properties:
> clocks:
> minItems: 2
> maxItems: 2
>
> clock-names:
> minItems: 2
> maxItems: 2
>
> - device tree
> cmu_misc: clock-controller@10020000 {
> compatible = "samsung,exynosautov920-cmu-misc";
> reg = <0x10020000 0x8000>;
> #clock-cells = <1>;
>
> clocks = <&xtcxo>,
> <&cmu_top DOUT_CLKCMU_MISC_NOC>;
> clock-names = "oscclk",
> "noc";
> };
>
> In this case, ip should be used after oscclk, but misc does not use ip, so there is a problem in dt check.
>
> The code of v4 version has clock items for each block, so there was no problem like this.
> - yaml(v4)
>
> if:
> properties:
> compatible:
> contains:
> const: samsung,exynosautov920-cmu-misc
>
> then:
> properties:
> clocks:
> items:
> - description: External reference clock (38.4 MHz)
> - description: CMU_MISC NOC clock (from CMU_MISC)
>
> clock-names:
> items:
> - const: oscclk
> - const: noc
>
> If there is anything I misunderstand, please guide me.
>

You did not address my questions at all instead just copied again the
same. It is not how it works.

I am not going to discuss like this.

Best regards,
Krzysztof