[PATCH 2/5] dt-bindings: connector: Add fsl,io-connector binding

Chancel Liu chancel.liu at nxp.com
Mon May 18 19:56:24 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.
> 
> aud is not much better. Which boards have it? What's the pinout? What's
> standard? Is it described anywhere? If so, provide reference to spec/docs.
>

This is not an industry standard electrical interface. This connector
is present on i.MX95-19x19-EVK and i.MX952-EVK. For example, the
"i.MX 95 19mm x 19mm Evaluation Kit" homepage[1] publicly documents an
audio board connection through which IMX-AUD-IO card is connected. The
detailed user manual (UM12022) is listed as official documentation[2],
but it is behind an NXP login, so it is not suitable as a public
reference for upstream. Therefore I list it here to illustrate it's
mechanism:

+-----------------------------+                      
|        Base Board           |                      
|   +-----+      +---------+  |           +---------+
|   | SPI +------+         |  |           |         |
|   +-----+      |         |  | GPIO MAP  |         |
|                |         +--|-----------+         |
|   +-----+      |         |  |           |         |
|   | I2C +------+         |  |           |         |
|   +-----+      |         |  | CLOCK MAP |  AUD-IO |
|                |connector+--|-----------+   CARD  |
|   +-----+      |         |  |           |         |
|   | I2S +------+         |  |           |         |
|   +-----+      |         |  |           |         |
|                |         |  | INT MAP   |         |
|   +-----+      |         +--|-----------+         |
|   | I/O +------+         |  |           |         |
|   +-----+      +---------+  |           +---------+
+-----------------------------+                      

[1]https://www.nxp.com/design/design-center/development-boards-and-designs/IMX95LPD5EVK-19
[2]https://docs.nxp.com/bundle/UM12022/page/topics/pcie_interface1.html

> >
> >>> +
> >>> +  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/
>
> DT spec only mentions nexuses, but it is only a spec. Each property from
> the spec must be defined in dtschema or kernel bindings.
> 
> I do not see any dependency mentioned in the cover letter, so how do you
> think we can figure out where is this definition of clock nexus?
> 
> 

I initially tried to add support for clock nexus dt bindings in patch 1,
but I noticed there is already an ongoing series doing the same thing.
([PATCH 10/16] clk: Add support for clock nexus dt bindings). Since that
work is in progress, I think it's better not duplicate it here.

I think we can add a dedicated binding defining the clock nexus
properties(#clock-cells, clock-map, clock-map-mask, clock-map-pass-thru),
in reference of existing pwm-nexus-node.yaml.

In the next revision I will also update the cover letter to explicitly
mention that clock nexus support is ongoing.

> Best regards,
> Krzysztof

Regards, 
Chancel Liu



More information about the linux-arm-kernel mailing list