mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Jonas Jelonek <jelonek.jonas@gmail.com>
To: Krzysztof Kozlowski <krzk@kernel.org>
Cc: linux-i2c@vger.kernel.org,
	Chris Packham <chris.packham@alliedtelesis.co.nz>,
	Andi Shyti <andi.shyti@kernel.org>, Rob Herring <robh@kernel.org>,
	Krzysztof Kozlowski <krzk+dt@kernel.org>,
	Conor Dooley <conor+dt@kernel.org>,
	devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
	Markus Stockhausen <markus.stockhausen@gmx.de>
Subject: Re: [PATCH v2 2/3] dt-bindings: i2c: realtek,rtl9301-i2c: extend for RTL9310 support
Date: Tue, 22 Jul 2025 20:25:58 +0200	[thread overview]
Message-ID: <7b0c1f38-51f9-46a7-8e38-1fbeb189133c@gmail.com> (raw)
In-Reply-To: <df947cbe-e207-4619-957f-0c961c6d7139@kernel.org>

Hi Krzysztoof,

On 21.07.2025 09:02, Krzysztof Kozlowski wrote:
>>>> +    minimum: 1
>>>> +    maximum: 2
>>>> +
>>>>  patternProperties:
>>>> -  '^i2c@[0-7]$':
>>>> +  '^i2c@([0-9]|1[0-1])$':
>>>>      $ref: /schemas/i2c/i2c-controller.yaml
>>>>      unevaluatedProperties: false
>>>>  
>>> As mentioned last time, missing constraints.
>>>
>>> How did you solve this:
>>>
>>> "you should clearly narrow this per variant"?
>>>
>>> See example schema. It has EXACTLY this case.
>>>
>>> https://elixir.bootlin.com/linux/v5.19/source/Documentation/devicetree/bindings/example-schema.yaml#L212
>>>
>>> You also need to narrow the number of children.
>> I missed that from your previous review by mistake, sorry for that.
>>
>> I managed to narrow it per variant whether 'realtek,mst-id' is required or not.
>> But I'm not really able to do the same for the different regex patterns or the
>> number of children. Although I'm trying to follow various examples,
>> dt_binding_check just fails not taking the regex patterns into account.
>>
>> Since you have a lot of expertise on that and I obviously fail to find
>> documentation that helps me to do that properly, could you give me some hints
>> on how that has to look? I'd really appreciate this.
>
> So in your if:then: block where you narrow mst-id, you add on same level
> as properties:
>
> patternProperties:
>   YOUR_REGEX: false

How I thought of narrowing that in the first place was to make mst-id required
for RTL9310 but optional for RTL9300. In terms of describing the hardware, this
is valid for RTL9300 too (but there's no need for the driver or anything else to
know that).

But I don't mind if you'd rather have it only defined in the 'then' block, or
just disallowed for RTL9300, effectively forbidding the usage for RTL9300.

Either way, it seems I'm still doing it wrong with the regex. Adding as you
suggested:

if:
    properties:
        compatible:
            contains:
                const: realtek,rtl9301-i2c
then:
    patternProperties:
        '^i2c@([0-9]|1[0-1])$': false

breaks validation of the RTL9300 example. Probably I don't see how this
is expected to look like in a working state.

Doing it like the following, very verbose and redundant but at least obvious to
me what it should achieve:

if:
    ...
then:
    patternProperties:
        '^i2c@([0-9]|1[0-1])$':
            ...
else:
    patternProperties:
        '^i2c@[0-7]$':
            ....

breaks validation of both example. To be honest I don't know why.

>
> Best regards,
> Krzysztof

Best regards,
Jonas Jelonek

  reply	other threads:[~2025-07-22 18:26 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-07-12 19:42 [PATCH v2 0/3] i2c: rework and extend RTL9300 I2C driver Jonas Jelonek
2025-07-12 19:42 ` [PATCH v2 1/3] i2c: rework RTL9300 I2C controller driver Jonas Jelonek
2025-07-12 19:42 ` [PATCH v2 2/3] dt-bindings: i2c: realtek,rtl9301-i2c: extend for RTL9310 support Jonas Jelonek
2025-07-12 21:22   ` Rob Herring (Arm)
2025-07-14  6:00   ` Krzysztof Kozlowski
2025-07-20 19:51     ` Jonas Jelonek
2025-07-21  7:02       ` Krzysztof Kozlowski
2025-07-22 18:25         ` Jonas Jelonek [this message]
2025-07-23  6:22           ` Krzysztof Kozlowski
2025-07-23  7:49             ` Jonas Jelonek
2025-07-12 19:42 ` [PATCH v2 3/3] i2c: add RTL9310 support to RTL9300 I2C controller driver Jonas Jelonek

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=7b0c1f38-51f9-46a7-8e38-1fbeb189133c@gmail.com \
    --to=jelonek.jonas@gmail.com \
    --cc=andi.shyti@kernel.org \
    --cc=chris.packham@alliedtelesis.co.nz \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=krzk+dt@kernel.org \
    --cc=krzk@kernel.org \
    --cc=linux-i2c@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=markus.stockhausen@gmx.de \
    --cc=robh@kernel.org \
    /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

all inboxes | Powered by JetHome®