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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox