From: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
To: Sergio Paracuellos <sergio.paracuellos@gmail.com>
Cc: "open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS"
<devicetree@vger.kernel.org>,
"Thomas Bogendoerfer" <tsbogend@alpha.franken.de>,
"Rob Herring" <robh+dt@kernel.org>,
"Krzysztof Kozlowski" <krzk+dt@kernel.org>,
"Arınç ÜNAL" <arinc.unal@arinc9.com>
Subject: Re: [PATCH v2] dt-bindings: mips: add CPU bindings for MIPS architecture
Date: Mon, 19 Sep 2022 18:08:07 +0200 [thread overview]
Message-ID: <c04461c0-e16a-6dcc-4fc0-f6c80263bd71@linaro.org> (raw)
In-Reply-To: <CAMhs-H-JokHX+XNNE0TQf78ORQbNz2fTd9hfgmv_s6OPT=Wh0w@mail.gmail.com>
On 19/09/2022 15:41, Sergio Paracuellos wrote:
> Hi Krzysztof,
>
> On Mon, Sep 19, 2022 at 2:48 PM Krzysztof Kozlowski
> <krzysztof.kozlowski@linaro.org> wrote:
>>
>> On 19/09/2022 14:29, Sergio Paracuellos wrote:
>>>>
>>>> else mips-hpt-frequency: false
>>>>
>>>>> +
>>>>> +required:
>>>>> + - compatible
>>>>> +
>>>>> +additionalProperties: true
>>>>
>>>> and this is why you did not notice errors...
>>>
>>> Current arch/mips/boot/dts folder dts files are a mess for cpu nodes,
>>> so I set additionalProperties to true and only make required for
>>> 'compatible'. What should be the correct approach?
>>
>> This is okay, but it caused you did not notice errors...
>>
>>>
>>>>
>>>>> +
>>>>> +examples:
>>>>> + - |
>>>>> + cpus {
>>>>> + #size-cells = <0>;
>>>>> + #address-cells = <1>;
>>>>> +
>>>>> + cpu@0 {
>>>>> + device_type = "cpu";
>>>>> + compatible = "mips,mips1004Kc";
>>>>> + reg = <0>;
>>>>> + };
>>>>> +
>>>>> + cpu@1 {
>>>>> + device_type = "cpu";
>>>>> + compatible = "mips,mips1004Kc";
>>>>> + reg = <1>;
>>>>> + };
>>>>> + };
>>>>> +
>>>>> + - |
>>>>> + // Example 2 (BMIPS CPU)
>>>>> + cpus {
>>>>> + #address-cells = <1>;
>>>>> + #size-cells = <0>;
>>>>> +
>>>>> + mips-hpt-frequency = <150000000>;
>>>>
>>>> Does not match your bindings. Are you sure you tested the patches?
>>>
>>> Yes I did:
>>>
>>> $ make dt_binding_check
>>> DT_SCHEMA_FILES=Documentation/devicetree/bindings/mips/cpus.yaml
>>> LINT Documentation/devicetree/bindings
>>> CHKDT Documentation/devicetree/bindings/processed-schema.json
>>> SCHEMA Documentation/devicetree/bindings/processed-schema.json
>>> DTEX Documentation/devicetree/bindings/mips/cpus.example.dts
>>> DTC Documentation/devicetree/bindings/mips/cpus.example.dtb
>>> ' CHECK Documentation/devicetree/bindings/mips/cpus.example.dtb
>>>
>>> Can you please point me to a sample of how to make required in a
>>> parent node of cpu@X property 'mips-hpt-frequency' only for some
>>> compatible strings inside the node? What can this be properly
>>> expressed using schema??
>>> I was looking and testing different things for a while without success at all.
>>
>> You either define new schema for /cpus node (and match by name, define
>> children etc) or include it in schema for top-level properties. The
>> first is tricky, because the cpus node does not have compatible (like
>> nvidia,tegra194-ccplex.yaml).
>>
>> The second should work, but then it's a bit cluttered (top-level mixed
>> with cpus).
>
> I don't know if I am understanding you but maybe it is because my
> explanation about the requirement was not good at all. So let me
> explain a bit better.
>
> This is the normal way of definition of cpus for BMIPS:
I know, I checked the DTS.
>
> cpus {
> #address-cells = <1>;
> #size-cells = <0>;
>
> mips-hpt-frequency = <150000000>;
>
> cpu@0 {
> compatible = "brcm,bmips4350";
> device_type = "cpu";
> reg = <0>;
> };
>
> cpu@1 {
> compatible = "brcm,bmips4350";
> device_type = "cpu";
> reg = <1>;
> };
> };
>
> What I need to say in schema is that 'mips-hpt-frequency' must be only
> present if cpu@0 and cpu@1 nodes contain a compatible matching
> brcm,bmips*. In the same cpu@0 or cpu@1 node
> the following below will be sufficient. How can I express the same but
> referring that 'mips-hpt-frequency' must be on the parent node?
As I said you had two ways. In your current patch, I think you cannot.
> Because as it is below the validator complains because
> 'mips-hpt-frequency'
> is not present in cpu@0 and cpu@1 nodes:
>
> allOf:
> - if:
> properties:
> compatible:
> enum:
> - brcm,bmips3300
> - brcm,bmips4350
> - brcm,bmips4380
> - brcm,bmips5000
> - brcm,bmips5200
> then:
> required:
> - mips-hpt-frequency
> else:
> properties:
> mips-hpt-frequency: false
>
Best regards,
Krzysztof
next prev parent reply other threads:[~2022-09-19 16:08 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-09-17 4:11 [PATCH v2] dt-bindings: mips: add CPU bindings for MIPS architecture Sergio Paracuellos
2022-09-18 11:22 ` Thomas Bogendoerfer
2022-09-18 15:15 ` Sergio Paracuellos
2022-09-19 11:17 ` Krzysztof Kozlowski
2022-09-19 12:29 ` Sergio Paracuellos
2022-09-19 12:48 ` Krzysztof Kozlowski
2022-09-19 13:41 ` Sergio Paracuellos
2022-09-19 16:08 ` Krzysztof Kozlowski [this message]
2022-09-20 5:51 ` Sergio Paracuellos
2022-09-21 6:42 ` Krzysztof Kozlowski
2022-09-21 7:18 ` Sergio Paracuellos
2022-09-21 7:51 ` Krzysztof Kozlowski
2022-09-21 8:11 ` Sergio Paracuellos
2022-09-21 11:40 ` Sergio Paracuellos
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=c04461c0-e16a-6dcc-4fc0-f6c80263bd71@linaro.org \
--to=krzysztof.kozlowski@linaro.org \
--cc=arinc.unal@arinc9.com \
--cc=devicetree@vger.kernel.org \
--cc=krzk+dt@kernel.org \
--cc=robh+dt@kernel.org \
--cc=sergio.paracuellos@gmail.com \
--cc=tsbogend@alpha.franken.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox