[PATCH 2/5] dt-bindings: connector: Add fsl,io-connector binding
Chancel Liu
chancel.liu at nxp.com
Sun May 17 21:18:42 PDT 2026
> > +description:
> > + The NXP I/O connector represents a physically present I/O connector
> > +on the
> > + base board. It acts as a nexus that exposes a constrained set of
> > +I/O
> > + resources, such as GPIOs, clocks, PWMs and interrupts, through
> > +fixed
> > + electrical wiring. All actual hardware providers reside on the base board.
> > + The connector node only defines index-based mappings to those
> providers.
> > +
> > +properties:
> > + compatible:
> > + const: fsl,io-connector
>
> Everything is IO. Everything is connector, so your compatible does not match
> requirements from writing bindings.
>
Yes, this compatible is too generic. I will rename the compatible to
fsl,aud-io-connector.
> > +
> > + gpio-controller: true
> > +
> > + '#gpio-cells':
> > + const: 2
> > +
> > + gpio-map:
> > + $ref: /schemas/types.yaml#/definitions/uint32-matrix
>
> You do not need to redefine the types. You need constraints, though.
>
OK. I will add proper constraints.
> > +
> > + gpio-map-mask:
> > + $ref: /schemas/types.yaml#/definitions/uint32-array
> > +
> > + gpio-map-pass-thru:
> > + $ref: /schemas/types.yaml#/definitions/uint32-array
> > +
> > + '#clock-cells':
> > + const: 1
> > +
> > + clock-map:
> > + $ref: /schemas/types.yaml#/definitions/uint32-matrix
> > +
> > + clock-map-mask:
> > + $ref: /schemas/types.yaml#/definitions/uint32-array
> > +
> > + clock-map-pass-thru:
> > + $ref: /schemas/types.yaml#/definitions/uint32-array
>
> I do not see these defined anywhere. I also checked cover letter for
> references for pulls to dtschema.
>
Nexus nodes are already in the device-tree specification:
https://github.com/devicetree-org/devicetree-specification/blob/v0.4/source/chapter2-devicetree-basics.rst#nexus-nodes-and-specifier-mapping
For reference, current kernel has supported it:
* Nexus OF support:
commit bd6f2fd5a1d5 ("of: Support parsing phandle argument lists through a nexus node")
* GPIO adoption:
commit c11e6f0f04db ("gpio: Support gpio nexus dt bindings")
* PWM adoption:
commit e71e46a6f19c ("pwm: Add support for pwm nexus dt bindings")
Clock adoption is ongoing:
https://lore.kernel.org/all/20260327-schneider-v7-0-rc1-crypto-v1-10-5e6ff7853994@bootlin.com/
> > +
> > + pwm-map:
> > + $ref: /schemas/types.yaml#/definitions/uint32-matrix
> > +
> > + pwm-map-mask:
> > + $ref: /schemas/types.yaml#/definitions/uint32-array
> > +
> > + pwm-map-pass-thru:
> > + $ref: /schemas/types.yaml#/definitions/uint32-array
> > +
> > + '#address-cells':
> > + const: 0
> > +
> > + interrupt-controller: true
> > +
> > + "#interrupt-cells":
>
> Use consistent quotes.
>
I will fix it in next revision.
> > + const: 2
> > +
> > + interrupt-map: true
> > +
> > + interrupt-map-mask: true
> > +
> > +required:
> > + - compatible
>
> You need to require the properties. You have a FIXED connector, so it has
> fixed set of features.
>
> Best regards,
> Krzysztof
I will make gpio related properties required because they are mandatory
for DT. Clock and interrupt mappings are board/configuration dependent
so I prefer to use dependentRequired when they are present.
Regards,
Chancel Liu
More information about the linux-arm-kernel
mailing list