From: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
To: "Arınç ÜNAL" <arinc.unal@arinc9.com>,
"Andrew Lunn" <andrew@lunn.ch>,
"Vivien Didelot" <vivien.didelot@gmail.com>,
"Florian Fainelli" <f.fainelli@gmail.com>,
"Vladimir Oltean" <olteanv@gmail.com>,
"David S . Miller" <davem@davemloft.net>,
"Eric Dumazet" <edumazet@google.com>,
"Jakub Kicinski" <kuba@kernel.org>,
"Paolo Abeni" <pabeni@redhat.com>,
"Rob Herring" <robh+dt@kernel.org>,
"Krzysztof Kozlowski" <krzysztof.kozlowski+dt@linaro.org>,
"Matthias Brugger" <matthias.bgg@gmail.com>,
"Sean Wang" <sean.wang@mediatek.com>,
"Landen Chao" <Landen.Chao@mediatek.com>,
"DENG Qingfang" <dqfext@gmail.com>,
"Frank Wunderlich" <frank-w@public-files.de>,
"Luiz Angelo Daros de Luca" <luizluca@gmail.com>,
"Sander Vanheule" <sander@svanheule.net>,
"René van Dorst" <opensource@vdorst.com>,
"Daniel Golle" <daniel@makrotopia.org>,
erkin.bozoglu@xeront.com,
"Sergio Paracuellos" <sergio.paracuellos@gmail.com>
Cc: netdev@vger.kernel.org, devicetree@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
linux-mediatek@lists.infradead.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 4/4] dt-bindings: net: dsa: mediatek,mt7530: update json-schema
Date: Fri, 12 Aug 2022 16:48:43 +0300 [thread overview]
Message-ID: <3731cd56-f7e8-6807-06b5-b8b176b078b6@linaro.org> (raw)
In-Reply-To: <70e246af-c336-0896-95b5-9e42a17a239d@arinc9.com>
On 12/08/2022 16:41, Arınç ÜNAL wrote:
> On 12.08.2022 10:01, Krzysztof Kozlowski wrote:
>> On 12/08/2022 09:57, Krzysztof Kozlowski wrote:
>>> On 12/08/2022 01:09, Arınç ÜNAL wrote:
>>>>>> -patternProperties:
>>>>>> - "^(ethernet-)?ports$":
>>>>>> - type: object
>>>>>
>>>>> Actually four patches...
>>>>>
>>>>> I don't find this change explained in commit msg. What is more, it looks
>>>>> incorrect. All properties and patternProperties should be explained in
>>>>> top-level part.
>>>>>
>>>>> Defining such properties (with big piece of YAML) in each if:then: is no
>>>>> readable.
>>>>
>>>> I can't figure out another way. I need to require certain properties for
>>>> a compatible string AND certain enum/const for certain properties which
>>>> are inside patternProperties for "^(ethernet-)?port@[0-9]+$" by reading
>>>> the compatible string.
>>>
>>> requiring properties is not equal to defining them and nothing stops you
>>> from defining all properties top-level and requiring them in
>>> allOf:if:then:patternProperties.
>>>
>>>
>>>> If I put allOf:if:then under patternProperties, I can't do the latter.
>>>
>>> You can.
>
> Am I supposed to do something like this:
>
> patternProperties:
> "^(ethernet-)?ports$":
> type: object
>
> patternProperties:
> "^(ethernet-)?port@[0-9]+$":
> type: object
> description: Ethernet switch ports
>
> unevaluatedProperties: false
>
> properties:
> reg:
> description:
> Port address described must be 5 or 6 for CPU port and
> from 0 to 5 for user ports.
>
> allOf:
> - $ref: dsa-port.yaml#
> - if:
> properties:
> label:
> items:
> - const: cpu
> then:
> allOf:
> - if:
> properties:
Not really, this is absolutely unreadable.
Usually the way it is handled is:
patternProperties:
"^(ethernet-)?ports$":
type: object
patternProperties:
"^(ethernet-)?port@[0-9]+$":
type: object
description: Ethernet switch ports
unevaluatedProperties: false
... regular stuff follows
allOf:
- if:
properties:
compatible:
.....
then:
patternProperties:
"^(ethernet-)?ports$":
patternProperties:
"^(ethernet-)?port@[0-9]+$":
properties:
reg:
const: 5
I admit that it is still difficult to parse, which could justify
splitting to separate schema. Anyway the point of my comment was to
define all properties in top level, not in allOf.
allOf should be used to constrain these properties.
Best regards,
Krzysztof
next prev parent reply other threads:[~2022-08-12 13:49 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-07-30 14:26 [PATCH 0/4] completely rework mediatek,mt7530 binding Arınç ÜNAL
2022-07-30 14:26 ` [PATCH 1/4] dt-bindings: net: dsa: mediatek,mt7530: make trivial changes Arınç ÜNAL
2022-08-02 8:41 ` Krzysztof Kozlowski
2022-08-11 22:09 ` Arınç ÜNAL
2022-07-30 14:26 ` [PATCH 2/4] dt-bindings: net: dsa: mediatek,mt7530: update examples Arınç ÜNAL
2022-08-02 8:43 ` Krzysztof Kozlowski
2022-07-30 14:26 ` [PATCH 3/4] dt-bindings: net: dsa: mediatek,mt7530: update binding description Arınç ÜNAL
2022-07-30 14:26 ` [PATCH 4/4] dt-bindings: net: dsa: mediatek,mt7530: update json-schema Arınç ÜNAL
2022-08-02 8:46 ` Krzysztof Kozlowski
2022-08-11 22:09 ` Arınç ÜNAL
2022-08-12 6:57 ` Krzysztof Kozlowski
2022-08-12 7:01 ` Krzysztof Kozlowski
2022-08-12 13:41 ` Arınç ÜNAL
2022-08-12 13:48 ` Krzysztof Kozlowski [this message]
2022-08-12 14:06 ` Arınç ÜNAL
2022-08-19 12:40 ` Krzysztof Kozlowski
2022-07-31 8:53 ` [PATCH 0/4] completely rework mediatek,mt7530 binding Arınç ÜNAL
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=3731cd56-f7e8-6807-06b5-b8b176b078b6@linaro.org \
--to=krzysztof.kozlowski@linaro.org \
--cc=Landen.Chao@mediatek.com \
--cc=andrew@lunn.ch \
--cc=arinc.unal@arinc9.com \
--cc=daniel@makrotopia.org \
--cc=davem@davemloft.net \
--cc=devicetree@vger.kernel.org \
--cc=dqfext@gmail.com \
--cc=edumazet@google.com \
--cc=erkin.bozoglu@xeront.com \
--cc=f.fainelli@gmail.com \
--cc=frank-w@public-files.de \
--cc=krzysztof.kozlowski+dt@linaro.org \
--cc=kuba@kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mediatek@lists.infradead.org \
--cc=luizluca@gmail.com \
--cc=matthias.bgg@gmail.com \
--cc=netdev@vger.kernel.org \
--cc=olteanv@gmail.com \
--cc=opensource@vdorst.com \
--cc=pabeni@redhat.com \
--cc=robh+dt@kernel.org \
--cc=sander@svanheule.net \
--cc=sean.wang@mediatek.com \
--cc=sergio.paracuellos@gmail.com \
--cc=vivien.didelot@gmail.com \
/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;
as well as URLs for NNTP newsgroup(s).