From: sashiko-bot@kernel.org
To: "Chancel Liu" <chancel.liu@oss.nxp.com>
Cc: devicetree@vger.kernel.org, imx@lists.linux.dev, robh@kernel.org,
conor+dt@kernel.org, Frank.Li@kernel.org
Subject: Re: [PATCH v3 1/4] dt-bindings: connector: Add fsl,aud-io-slot binding
Date: Tue, 03 Nov 2026 07:32:16 +0000 [thread overview]
Message-ID: <sashiko-outbox-194715@kernel.org> (raw)
In-Reply-To: <20261103070433.2307145-2-chancel.liu@oss.nxp.com>
Thank you for your contribution! Sashiko AI review found 3 potential issue(s) to consider:
- [Medium] dt-bindings: connector: controller properties on passive nexus node
- [Low] dt-bindings: connector: reference to non-existent gpio-nexus-node.yaml
- [Low] dt-bindings: connector: 2-space indent and raw GPIO flag in example
--
commit e914717ab225094e8907a50041ee664ef2ac92f2
Author: Chancel Liu <chancel.liu@nxp.com>
dt-bindings: connector: Add fsl,aud-io-slot binding
This patch adds a Device Tree binding schema for the NXP AUD-IO slot
connector found on the i.MX95 19x19 EVK and i.MX952 EVK base boards. The
connector acts as a nexus node that remaps GPIOs, clocks, and interrupts
to base board providers for the IMX-AUD-IO expansion card.
> diff --git a/Documentation/devicetree/bindings/connector/fsl,aud-io-slot.yaml b/Documentation/devicetree/bindings/connector/fsl,aud-io-slot.yaml
> new file mode 100644
> index 0000000000000..fc3896d0fafab
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/connector/fsl,aud-io-slot.yaml
> @@ -0,0 +1,106 @@
[ ... ]
> + gpio-controller: true
> +
> + '#gpio-cells':
> + const: 2
> +
> + gpio-map:
> + minItems: 1
> + maxItems: 3
> +
> + gpio-map-mask:
> + items:
> + - const: 0xf
> + - const: 0x0
> +
> + gpio-map-pass-thru:
> + items:
> + - const: 0x0
> + - const: 0x1
> +
> + '#clock-cells':
> + const: 1
> +
> + clock-map:
> + minItems: 1
> + maxItems: 2
> +
> + '#address-cells':
> + const: 0
> +
> + interrupt-controller: true
> +
> + '#interrupt-cells':
> + const: 2
> +
> + interrupt-map:
> + minItems: 1
> + maxItems: 2
> +
> + interrupt-map-mask:
> + items:
> + - const: 0xf
> + - const: 0x0
> +
> +allOf:
> + - $ref: /schemas/gpio/gpio-nexus-node.yaml#
> + - $ref: /schemas/clock/clock-nexus-node.yaml#
[Severity: Low]
Will this cause dt_binding_check to fail when resolving the allOf references?
There is no Documentation/devicetree/bindings/gpio/gpio-nexus-node.yaml in
the kernel tree or in dtschema (where gpio-map, gpio-map-mask, and
gpio-map-pass-thru are defined in schemas/gpio/gpio.yaml).
Also, Documentation/devicetree/bindings/clock/clock-nexus-node.yaml defines
select: true so it is applied globally by dtschema rather than being
referenced via allOf in individual bindings. Should the allOf block be
dropped here?
> +
> +required:
> + - compatible
> + - gpio-controller
[Severity: Medium]
Should a passive connector nexus node declare or require gpio-controller and
interrupt-controller?
The binding description notes that all actual hardware providers reside on
the base board and the connector node only defines index-based mappings via
gpio-map, clock-map, and interrupt-map. Per the Devicetree Specification, a
nexus node that remaps specifiers is not itself a controller.
In the kernel, gpio_shared_of_traverse() in drivers/gpio/gpiolib-shared.c
calls of_parse_phandle_with_args() (which does not traverse gpio-map) and
checks for gpio-controller to identify the backing hardware controller:
drivers/gpio/gpiolib-shared.c:gpio_shared_of_traverse() {
...
ret = of_parse_phandle_with_args(curr, prop->name,
"#gpio-cells", i,
&args);
if (ret)
continue;
np = args.np;
if (!of_property_present(np, "gpio-controller"))
continue;
...
}
When gpio-controller is present on the connector node, gpiolib-shared
records the passive connector node as the GPIO controller device instead of
the actual GPIO controller on the base board.
Similarly, in of_irq_parse_raw() in drivers/of/irq.c:
drivers/of/irq.c:of_irq_parse_raw() {
...
bool intc = of_property_read_bool(ipar, "interrupt-controller");
imap = of_get_property(ipar, "interrupt-map", &imaplen);
if (intc &&
(!imap || of_device_compatible_match(ipar, of_irq_imap_abusers))) {
pr_debug(" -> got it !\n");
return 0;
}
...
}
If a node sets interrupt-controller without interrupt-map (which is optional
in this schema), interrupt resolution stops at the passive connector node
where no irq_domain exists.
Could gpio-controller and interrupt-controller be removed from properties,
required, and the example?
> + - '#gpio-cells'
> + - gpio-map
> + - gpio-map-mask
> + - gpio-map-pass-thru
> +
> +additionalProperties: false
> +
> +examples:
> + - |
> + #include <dt-bindings/interrupt-controller/irq.h>
> +
> + connector {
> + compatible = "fsl,imx95-19x19-evk-aud-io";
> + gpio-controller;
> + #gpio-cells = <2>;
> + gpio-map = <0 0 &gpio1 8 1>;
> + gpio-map-mask = <0xf 0x0>;
> + gpio-map-pass-thru = <0x0 0x1>;
> + #clock-cells = <1>;
> + clock-map = <0 &clk 1>;
> + #address-cells = <0>;
> + interrupt-controller;
> + #interrupt-cells = <2>;
> + interrupt-map-mask = <0xf 0x0>;
> + interrupt-map = <0 0 &gpio2 27 IRQ_TYPE_LEVEL_LOW>;
> + };
[Severity: Low]
This isn't a bug, but the properties inside the connector node in the
example use 2-space indentation instead of 4-space indentation, which
triggers a warning in scripts/dtc/dt-check-style --mode=strict. Also,
could gpio-map include dt-bindings/gpio/gpio.h and use a symbolic GPIO flag
macro instead of the raw integer 1?
--
Sashiko AI review · https://sashiko.dev/#/patchset/20261103070433.2307145-1-chancel.liu@oss.nxp.com?part=1
next prev parent reply other threads:[~2026-11-03 7:32 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-11-03 7:04 [PATCH v3 0/4] arm64: dts: freescale: Add IMX-AUD-IO add-on board support Chancel Liu
2026-11-03 7:04 ` [PATCH v3 1/4] dt-bindings: connector: Add fsl,aud-io-slot binding Chancel Liu
2026-11-03 7:32 ` sashiko-bot [this message]
2026-11-03 15:26 ` Frank Li
2026-11-04 2:13 ` Chancel Liu
2026-11-04 3:33 ` Frank Li
2026-11-03 7:04 ` [PATCH v3 2/4] arm64: dts: freescale: imx95-19x19-evk: Add IMX-AUD-IO board support Chancel Liu
2026-11-03 7:04 ` [PATCH v3 3/4] arm64: dts: freescale: imx952-evk: " Chancel Liu
2026-11-03 7:04 ` [PATCH v3 4/4] arm64: dts: freescale: Add common DTS overlay for IMX-AUD-IO add-on board Chancel Liu
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=sashiko-outbox-194715@kernel.org \
--to=sashiko-bot@kernel.org \
--cc=Frank.Li@kernel.org \
--cc=chancel.liu@oss.nxp.com \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=imx@lists.linux.dev \
--cc=robh@kernel.org \
--cc=sashiko-reviews@lists.linux.dev \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.