On Mon, May 16, 2022 at 12:23:03PM -0700, Stephen Boyd wrote: > Quoting Rob Herring (2022-05-16 08:20:03) > > On Wed, May 11, 2022 at 06:39:21PM -0700, Stephen Boyd wrote: > > > diff --git a/Documentation/devicetree/bindings/mfd/google,cros-ec.yaml b/Documentation/devicetree/bindings/mfd/google,cros-ec.yaml > > > index 409ecef967ce..e5fe60beb9fe 100644 > > > --- a/Documentation/devicetree/bindings/mfd/google,cros-ec.yaml > > > +++ b/Documentation/devicetree/bindings/mfd/google,cros-ec.yaml > > > @@ -19,15 +19,19 @@ description: > > > properties: > > > compatible: > > > oneOf: > > > - - description: > > > - For implementations of the EC is connected through I2C. > > > - const: google,cros-ec-i2c > > > - - description: > > > - For implementations of the EC is connected through SPI. > > > - const: google,cros-ec-spi > > > - - description: > > > - For implementations of the EC is connected through RPMSG. > > > - const: google,cros-ec-rpmsg > > > + # For implementations of the EC is connected through I2C. > > > > Using 'description' was preferred. > > I just learned that I should use anyOf instead of oneOf. Confusing! Uhh, no. It can only be one of these entries at a time. > > > > > + - items: > > > + - const: google,cros-ec-i2c > > > + # For implementations of the FPMCU connected through SPI. > > > + - items: > > > + - const: google,cros-ec-fp > > > + - const: google,cros-ec-spi > > > + # For implementations of the EC is connected through SPI. > > > + - items: > > > + - const: google,cros-ec-spi > > > + # For implementations of the EC is connected through RPMSG. > > > + - items: > > > + - const: google,cros-ec-rpmsg > > > > > > controller-data: > > > description: > > > @@ -176,6 +189,37 @@ allOf: > > > - reg > > > - interrupts > > > > > > + - if: > > > + properties: > > > + compatible: > > > + contains: > > > + const: google,cros-ec-fp > > > + then: > > > + properties: > > > + '#address-cells': false > > > + '#size-cells': false > > > + typec: false > > > + ec-pwm: false > > > + keyboard-controller: false > > > + proximity: false > > > + codecs: false > > > + cbas: false > > > + > > > + patternProperties: > > > + "^i2c-tunnel[0-9]*$": false > > > + "^regulator@[0-9]+$": false > > > + "^extcon[0-9]*$": false > > > > Is the list of what's allowed shorter? If so, you could list those > > properties and use 'additionalProperties: false'. > > Yes. > > > > > Or maybe this is a sign that this should be a separate schema document. > > I couldn't figure that out. I tried to add new properties here but it > didn't work. Like this?: then: properties: allowed-prop-1: true allowed-prop-2: true allowed-prop-3: true additionalProperties: false > And then when I tried to make a different schema document > it complained that the example for google,cros-ec-spi in here had a > problem. You probably need a custom 'select' so that both schemas aren't matching. Otherwise a schema is applied if any of the compatible strings match. > Can properties be defined in this section? Yes, but discouraged for vendor specific properties. The if/then should really be just additional constraints. Rob