All of lore.kernel.org
 help / color / mirror / Atom feed
From: Rob Herring <robh@kernel.org>
To: Chris Packham <Chris.Packham@alliedtelesis.co.nz>
Cc: "linux@roeck-us.net" <linux@roeck-us.net>,
	"wsa@kernel.org" <wsa@kernel.org>,
	"jdelvare@suse.com" <jdelvare@suse.com>,
	"linux-i2c@vger.kernel.org" <linux-i2c@vger.kernel.org>,
	"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH 2/6] dt-bindings: i2c: convert i2c-mpc to json-schema
Date: Sat, 27 Mar 2021 11:18:41 -0600	[thread overview]
Message-ID: <20210327171841.GA263078@robh.at.kernel.org> (raw)
In-Reply-To: <00052125-3dc3-aad5-35df-957bc09a0840@alliedtelesis.co.nz>

On Wed, Mar 24, 2021 at 03:36:13AM +0000, Chris Packham wrote:
> 
> On 24/03/21 10:59 am, Chris Packham wrote:
> >
> > On 24/03/21 10:15 am, Rob Herring wrote:
> >> On Tue, Mar 23, 2021 at 05:33:27PM +1300, Chris Packham wrote:
> >>> Convert i2c-mpc to YAML.
> >>>
> >>> Signed-off-by: Chris Packham <chris.packham@alliedtelesis.co.nz>
> >>> ---
> <snip>
> >>> --- /dev/null
> >>> +++ b/Documentation/devicetree/bindings/i2c/i2c-mpc.yaml
> >>> @@ -0,0 +1,99 @@
> >>> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> >>> +%YAML 1.2
> >>> +---
> >>> +$id: http://devicetree.org/schemas/i2c/i2c-mpc.yaml#
> >>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> >>> +
> >>> +title: I2C-Bus adapter for MPC824x/83xx/85xx/86xx/512x/52xx SoCs
> >>> +
> >>> +maintainers:
> >>> +  - Chris Packham <chris.packham@alliedtelesis.co.nz>
> >>> +
> >>> +allOf:
> >>> +  - $ref: /schemas/i2c/i2c-controller.yaml#
> >>> +
> >>> +properties:
> >>> +  compatible:
> >>> +    anyOf:
> >>> +      - items:
> >>> +        - enum:
> >>> +          - mpc5200-i2c
> >>> +          - fsl,mpc5200b-i2c
> >>> +          - fsl,mpc5200-i2c
> >>> +          - fsl,mpc5121-i2c
> >>> +          - fsl,mpc8313-i2c
> >>> +          - fsl,mpc8543-i2c
> >>> +          - fsl,mpc8544-i2c
> >>> +
> >>> +        - const: fsl-i2c
> >>> +
> >>> +      - contains:
> >>> +          const: fsl-i2c
> >>> +        minItems: 1
> >>> +        maxItems: 4
> >> Can't we drop this and list out any other compatibles?
> >
> > I'm struggling a little bit with how to get the schema right to allow 
> > one or more of a set of compatible values.
> >
> > Basically I want to allow 'compatible = "fsl-i2c";' or 'compatible = 
> > "fsl,mpc8544-i2c", "fsl-i2c";' but disallow 'compatible = "foobar", 
> > "fsl-i2c";'
> 
> This is what I've ended up with
> 
> properties:
> compatible:
> oneOf:
>        - items:
>            - enum:
>                - mpc5200-i2c
>                - fsl,mpc5200-i2c
>                - fsl,mpc5121-i2c
>                - fsl,mpc8313-i2c
>                - fsl,mpc8543-i2c
>                - fsl,mpc8544-i2c
>                - fsl-i2c

This one should be dropped. '"fsl-i2c", "fsl-i2c"' presumably isn't 
valid. There's a generic check for unique entries anyways, so it would 
still fail.

>            - const: fsl-i2c
>        - items:
>            - const: fsl,mpc5200b-i2c
>            - const: fsl,mpc5200-i2c
>            - const: fsl-i2c
> 
> It passes `make dt_binding_check` and rejects things when I add other 
> non-documented values to the compatible property. I did struggle with it 
> so I'm not confident it's the best approach but it seems to work.

Otherwise, looks right to me.

Rob


  reply	other threads:[~2021-03-27 17:19 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-03-23  4:33 [PATCH 0/6] i2c: mpc: Refactor to improve responsiveness Chris Packham
2021-03-23  4:33 ` [PATCH 1/6] dt-bindings: i2c-mpc: Document interrupt property as required Chris Packham
2021-03-23  4:33 ` [PATCH 2/6] dt-bindings: i2c: convert i2c-mpc to json-schema Chris Packham
2021-03-23 20:16   ` Rob Herring
2021-03-23 20:22     ` Chris Packham
2021-03-23 21:10       ` Rob Herring
2021-03-23 21:15   ` Rob Herring
2021-03-23 21:59     ` Chris Packham
2021-03-24  3:36       ` Chris Packham
2021-03-27 17:18         ` Rob Herring [this message]
2021-03-23  4:33 ` [PATCH 3/6] i2c: mpc: Make use of i2c_recover_bus() Chris Packham
2021-03-23  4:33 ` [PATCH 4/6] i2c: mpc: make interrupt mandatory and remove polling code Chris Packham
2021-03-23  4:33 ` [PATCH 5/6] i2c: mpc: use device managed APIs Chris Packham
2021-03-23  4:33 ` [PATCH 6/6] i2c: mpc: Interrupt driven transfer Chris Packham
2021-03-24  3:43 ` [PATCH 0/6] i2c: mpc: Refactor to improve responsiveness Chris Packham

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=20210327171841.GA263078@robh.at.kernel.org \
    --to=robh@kernel.org \
    --cc=Chris.Packham@alliedtelesis.co.nz \
    --cc=devicetree@vger.kernel.org \
    --cc=jdelvare@suse.com \
    --cc=linux-i2c@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux@roeck-us.net \
    --cc=wsa@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.