On Wed, 06 Nov 2024 13:18:32 +1300, Chris Packham wrote: > Add device tree schema for the Realtek RTL9300 switches. The RTL9300 > family is made up of the RTL9301, RTL9302B, RTL9302C and RTL9303. These > have the same SoC differ in the Ethernet switch/SERDES arrangement. > > Currently the only supported features are the syscon-reboot and i2c > controllers. The syscon-reboot is needed to be able to reboot the board. > The I2C controllers are slightly unusual because they each own an SCL > pin (GPIO8 for the first controller, GPIO 17 for the second) but have 8 > common SDA pins which can be assigned to either controller (but not > both). > > Signed-off-by: Chris Packham <chris.packham@xxxxxxxxxxxxxxxxxxx> > Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@xxxxxxxxxx> > --- > > Notes: > Changes in v9: > - None > Changes in v8: > - Add r-by from Krzysztof > - At Lee's request I've separated the i2c binding into a separate patch. > This one still has a $ref to it so technically the i2c one needs to go > first but they'll be coming in via different trees so they may not > arrive in that order. > Changes in v7: > - Set additionalProperties: false > - Remove extraneous examples from i2c binding > Changes in v6: > - Drop wildcard compatible > - Add specific compatibles for the 4 known SoC variants > - For the i2c part of the binding accept realtek,rtl9301 as a fallback > for the other compatibles > - The overall switches will eventually differ because these will have > different SERDES/port arrangements so they aren't getting the same > fallback treatment > Changes in v5: > I've combined the two series I had in flight so this is the > combination of adding the switch syscon, the reboot and i2c. It makes > the changelog a bit meaningless so I've dropped the earlier > commentary. > > As requested I've put a more complete example in the main > rtl9300-switch.yaml. > > I've kept rtl9300-i2c.yaml separate for now but link to it with a $ref > from rtl9300-switch.yaml to reduce clutter. The example in > rtl9300-i2c.yaml is technically duplicating part of the example from > rtl9300-switch.yaml but I feel it's nice to be able to see the example > next to where the properties are defined. > > .../bindings/mfd/realtek,rtl9301-switch.yaml | 114 ++++++++++++++++++ > 1 file changed, 114 insertions(+) > create mode 100644 Documentation/devicetree/bindings/mfd/realtek,rtl9301-switch.yaml > My bot found errors running 'make dt_binding_check' on your patch: yamllint warnings/errors: dtschema/dtc warnings/errors: /builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/mfd/realtek,rtl9301-switch.example.dtb: ethernet-switch@1b000000: reboot@c: 'offset' is a required property from schema $id: http://devicetree.org/schemas/mfd/realtek,rtl9301-switch.yaml# /builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/mfd/realtek,rtl9301-switch.example.dtb: ethernet-switch@1b000000: reboot@c: 'reg' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/mfd/realtek,rtl9301-switch.yaml# /builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/mfd/realtek,rtl9301-switch.example.dtb: ethernet-switch@1b000000: i2c@36c: False schema does not allow {'compatible': ['realtek,rtl9301-i2c'], 'reg': [[876, 20]], '#address-cells': 1, '#size-cells': 0, 'i2c@0': {'reg': [[0]], '#address-cells': 1, '#size-cells': 0, 'gpio@20': {'compatible': ['nxp,pca9555'], 'gpio-controller': True, '#gpio-cells': 2, 'reg': [[32]]}}, 'i2c@2': {'reg': [[2]], '#address-cells': 1, '#size-cells': 0, 'gpio@20': {'compatible': ['nxp,pca9555'], 'gpio-controller': True, '#gpio-cells': 2, 'reg': [[32]]}}} from schema $id: http://devicetree.org/schemas/mfd/realtek,rtl9301-switch.yaml# /builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/mfd/realtek,rtl9301-switch.example.dtb: ethernet-switch@1b000000: i2c@388: False schema does not allow {'compatible': ['realtek,rtl9301-i2c'], 'reg': [[904, 20]], '#address-cells': 1, '#size-cells': 0, 'i2c@7': {'reg': [[7]], '#address-cells': 1, '#size-cells': 0, 'gpio@20': {'compatible': ['nxp,pca9555'], 'gpio-controller': True, '#gpio-cells': 2, 'reg': [[32]]}}} from schema $id: http://devicetree.org/schemas/mfd/realtek,rtl9301-switch.yaml# /builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/mfd/realtek,rtl9301-switch.example.dtb: reboot@c: 'offset' is a required property from schema $id: http://devicetree.org/schemas/power/reset/syscon-reboot.yaml# /builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/mfd/realtek,rtl9301-switch.example.dtb: reboot@c: 'reg' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/power/reset/syscon-reboot.yaml# Documentation/devicetree/bindings/mfd/realtek,rtl9301-switch.example.dtb: /example-0/ethernet-switch@1b000000/i2c@36c: failed to match any schema with compatible: ['realtek,rtl9301-i2c'] Documentation/devicetree/bindings/mfd/realtek,rtl9301-switch.example.dtb: /example-0/ethernet-switch@1b000000/i2c@388: failed to match any schema with compatible: ['realtek,rtl9301-i2c'] doc reference errors (make refcheckdocs): See https://patchwork.ozlabs.org/project/devicetree-bindings/patch/20241106001835.2725522-2-chris.packham@xxxxxxxxxxxxxxxxxxx The base for the series is generally the latest rc1. A different dependency should be noted in *this* patch. If you already ran 'make dt_binding_check' and didn't see the above error(s), then make sure 'yamllint' is installed and dt-schema is up to date: pip3 install dtschema --upgrade Please check and re-submit after running the above command yourself. Note that DT_SCHEMA_FILES can be set to your schema file to speed up checking your schema. However, it must be unset to test all examples with your schema.