Hi, On Wed, May 11, 2022 at 6:39 PM Stephen Boyd <swboyd@xxxxxxxxxxxx> wrote: > > Various properties in the cros-ec binding only apply to different > compatible strings. For example, the interrupts and reg property are > required for all cros-ec devices except for the rpmsg version. Add some > conditions to update the availability of properties so that they can't > be used with compatibles that don't support them. > > Cc: Rob Herring <robh+dt@xxxxxxxxxx> > Cc: Krzysztof Kozlowski <krzysztof.kozlowski+dt@xxxxxxxxxx> > Cc: <devicetree@xxxxxxxxxxxxxxx> > Cc: <chrome-platform@xxxxxxxxxxxxxxx> > Cc: Guenter Roeck <groeck@xxxxxxxxxxxx> > Cc: Douglas Anderson <dianders@xxxxxxxxxxxx> > Cc: Craig Hesling <hesling@xxxxxxxxxxxx> > Cc: Tom Hughes <tomhughes@xxxxxxxxxxxx> > Cc: Alexandru M Stan <amstan@xxxxxxxxxxxx> > Cc: Tzung-Bi Shih <tzungbi@xxxxxxxxxx> > Cc: Matthias Kaehlcke <mka@xxxxxxxxxxxx> > Cc: Benson Leung <bleung@xxxxxxxxxxxx> > Cc: Lee Jones <lee.jones@xxxxxxxxxx> > Signed-off-by: Stephen Boyd <swboyd@xxxxxxxxxxxx> > --- > .../bindings/mfd/google,cros-ec.yaml | 39 +++++++++++++------ > 1 file changed, 27 insertions(+), 12 deletions(-) > > diff --git a/Documentation/devicetree/bindings/mfd/google,cros-ec.yaml b/Documentation/devicetree/bindings/mfd/google,cros-ec.yaml > index 99eda9ab0651..409ecef967ce 100644 > --- a/Documentation/devicetree/bindings/mfd/google,cros-ec.yaml > +++ b/Documentation/devicetree/bindings/mfd/google,cros-ec.yaml > @@ -148,18 +148,33 @@ patternProperties: > required: > - compatible > > -if: > - properties: > - compatible: > - contains: > - enum: > - - google,cros-ec-i2c > - - google,cros-ec-rpmsg > -then: > - properties: > - google,cros-ec-spi-pre-delay: false > - google,cros-ec-spi-msg-delay: false > - spi-max-frequency: false > +allOf: > + - if: > + properties: > + compatible: > + not: > + contains: > + const: google,cros-ec-spi > + then: > + properties: > + controller-data: false > + google,cros-ec-spi-pre-delay: false > + google,cros-ec-spi-msg-delay: false > + spi-max-frequency: false > + > + - if: > + properties: > + compatible: > + not: > + contains: > + const: google,cros-ec-rpmsg > + then: > + properties: > + mediatek,rpmsg-name: false > + > + required: > + - reg > + - interrupts Is it worth having an "else" clause here? to explicitly make "mediatek,rpmsg-name" required for mediatek? In any case, this seems right from my (albeit) limited yaml knowledge and seems like an improvement. Reviewed-by: Douglas Anderson <dianders@xxxxxxxxxxxx>