On 16/10/24 19:41, Krzysztof Kozlowski wrote: > On Wed, Oct 16, 2024 at 11:59:45AM +1300, Chris Packham wrote: >> +properties: >> + compatible: >> + oneOf: >> + - items: >> + - enum: >> + - realtek,rtl9302b-i2c >> + - realtek,rtl9302c-i2c >> + - realtek,rtl9303-i2c >> + - const: realtek,rtl9301-i2c >> + - const: realtek,rtl9301-i2c >> + >> + reg: >> + description: Register offset and size this I2C controller. >> + >> + "#address-cells": >> + const: 1 >> + >> + "#size-cells": >> + const: 0 >> + >> +patternProperties: >> + '^i2c@[0-7]$': >> + $ref: /schemas/i2c/i2c-controller.yaml >> + unevaluatedProperties: false >> + >> + properties: >> + reg: >> + description: The SDA pin associated with the I2C bus. >> + maxItems: 1 >> + >> + required: >> + - reg >> + >> +required: >> + - compatible >> + - reg >> + >> +unevaluatedProperties: false > This has to be: additionalProperties: false Hmm, when I do that the dt_binding_check complains Documentation/devicetree/bindings/mfd/realtek,rtl9301-switch.example.dtb: ethernet-switch@1b000000: i2c@36c:i2c@0: '#address-cells', '#size-cells', 'gpio@20' do not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/mfd/realtek,rtl9301-switch.yaml# Documentation/devicetree/bindings/mfd/realtek,rtl9301-switch.example.dtb: ethernet-switch@1b000000: i2c@36c:i2c@2: '#address-cells', '#size-cells', 'gpio@20' do not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/mfd/realtek,rtl9301-switch.yaml# Documentation/devicetree/bindings/mfd/realtek,rtl9301-switch.example.dtb: ethernet-switch@1b000000: i2c@388:i2c@7: '#address-cells', '#size-cells', 'gpio@20' do not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/mfd/realtek,rtl9301-switch.yaml# Documentation/devicetree/bindings/mfd/realtek,rtl9301-switch.example.dtb: i2c@36c: i2c@0: '#address-cells', '#size-cells', 'gpio@20' do not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/i2c/realtek,rtl9301-i2c.yaml# Documentation/devicetree/bindings/mfd/realtek,rtl9301-switch.example.dtb: i2c@36c: i2c@2: '#address-cells', '#size-cells', 'gpio@20' do not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/i2c/realtek,rtl9301-i2c.yaml# Documentation/devicetree/bindings/mfd/realtek,rtl9301-switch.example.dtb: i2c@388: i2c@7: '#address-cells', '#size-cells', 'gpio@20' do not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/i2c/realtek,rtl9301-i2c.yaml# Those properties should be getting defined via the i2c-controller.yaml schema so I must be missing something, I'm just not sure what. > >> + >> +examples: >> + - | >> + i2c@36c { >> + compatible = "realtek,rtl9301-i2c"; >> + reg = <0x36c 0x14>; >> + #address-cells = <1>; >> + #size-cells = <0>; >> + >> + i2c@0 { >> + reg = <0>; >> + #address-cells = <1>; >> + #size-cells = <0>; >> + gpio@20 { >> + compatible = "nxp,pca9555"; >> + gpio-controller; >> + #gpio-cells = <2>; >> + reg = <0x20>; >> + }; >> + }; >> + >> + i2c@2 { >> + reg = <2>; >> + #address-cells = <1>; >> + #size-cells = <0>; >> + gpio@20 { >> + compatible = "nxp,pca9555"; >> + gpio-controller; >> + #gpio-cells = <2>; >> + reg = <0x20>; >> + }; >> + }; >> + }; >> + i2c@388 { >> + compatible = "realtek,rtl9301-i2c"; >> + reg = <0x388 0x14>; >> + #address-cells = <1>; >> + #size-cells = <0>; >> + >> + i2c@7 { >> + reg = <7>; >> + #address-cells = <1>; >> + #size-cells = <0>; >> + }; >> + }; > Yoy have now multiple same examples. Keep only one, complete in the parent > schema. OK. I'll keep one example of a controller with a non-zero channel in the i2c binding and leave a more complete example in the mfd. >> diff --git a/Documentation/devicetree/bindings/mfd/realtek,rtl9301-switch.yaml b/Documentation/devicetree/bindings/mfd/realtek,rtl9301-switch.yaml >> new file mode 100644 >> index 000000000000..f053303ab1e6 >> --- /dev/null >> +++ b/Documentation/devicetree/bindings/mfd/realtek,rtl9301-switch.yaml >> @@ -0,0 +1,114 @@ >> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) >> +%YAML 1.2 > Best regards, > Krzysztof >