Linux kernel and device drivers for NXP i.MX platforms
 help / color / mirror / Atom feed
From: sashiko-bot@kernel.org
To: "Lukasz Majewski" <lukma@nabladev.com>
Cc: devicetree@vger.kernel.org, imx@lists.linux.dev, robh@kernel.org,
	conor+dt@kernel.org, Frank.Li@kernel.org
Subject: Re: [PATCH] arm64: dts: freescale: Add device tree definition for Cloos CBASE with i.MX8MM
Date: Tue, 10 Nov 2026 15:27:53 +0000	[thread overview]
Message-ID: <sashiko-outbox-207264@kernel.org> (raw)
In-Reply-To: <20261110150546.1535950-1-lukma@nabladev.com>

Thank you for your contribution! Sashiko AI review found 6 potential
issues to consider:
- [High] arm64: dts: freescale: usdhc2 fails probe due to disabled
  reg_usdhc2_vqmmc
- [Medium] arm64: dts: freescale: missing Makefile entry for
  imx8mm-cbase.dtb
- [Medium] arm64: dts: freescale: lcdif enabled without mipi_dsi or
  display bridge
- [Medium] arm64: dts: freescale: undocumented compatibles and missing
  lm77 OF table
- [Low] arm64: dts: freescale: decimal unit-address port@10 for reg =
  <10>
- [Low] arm64: dts: freescale: flexspi left enabled after deleting
  flash0 node
--

commit ed8bce86f8c6ce432aef83c22f5cd48f6151d1c7
Author: Lukasz Majewski <lukma@nabladev.com>

arm64: dts: freescale: Add device tree definition for Cloos CBASE with i.MX8MM

This commit adds the device tree source for the Cloos CBASE board based on
the i.MX8MM TQMa8MQML system-on-module.

> diff --git a/arch/arm64/boot/dts/freescale/imx8mm-cbase.dts b/arch/arm64/boot/dts/freescale/imx8mm-cbase.dts
> new file mode 100644
> index 0000000000000..0bbd724f3aabc
> --- /dev/null
> +++ b/arch/arm64/boot/dts/freescale/imx8mm-cbase.dts
> @@ -0,0 +1,577 @@
> +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
> +/*
> + * Copyright 2022 Fabio Estevam <festevam@denx.de>
> + * Copyright 2026 Lukasz Majewski <lukma@nabladev.com>
> + */
> +
> +/dts-v1/;
> +
> +#include "imx8mm-tqma8mqml.dtsi"
> +
> +/ {
> +	model = "Cloos i.MX8MM CBASE board";
> +	compatible = "cloos,imx8mm-cbase", "tq,imx8mm-tqma8mqml", "fsl,imx8mm";

[Severity: Medium]
Should arch/arm64/boot/dts/freescale/Makefile also add
dtb-$(CONFIG_ARCH_MXC) += imx8mm-cbase.dtb?  Without that entry, kbuild
never compiles imx8mm-cbase.dts during make dtbs or make dtbs_check.

[ ... ]

> +				port@9 {
> +					reg = <9>;
> +					label = "lan-sfp1";
> +					phy-mode = "sgmii";
> +					sfp = <&sfp_top>;
> +					managed = "in-band-status";
> +				};
> +
> +				port@10 {
> +					reg = <10>;
> +					label = "lan-sfp2";
> +					phy-mode = "sgmii";
> +					sfp = <&sfp_bot>;
> +					managed = "in-band-status";
> +				};

[Severity: Low]
Should port@10 be named port@a to match reg = <10>?  Unit-addresses in node
names are hexadecimal, so port@10 triggers a dtc unit_address_vs_reg warning
and fails dtbs_check against ethernet-switch.yaml.

[ ... ]

> +&i2c2 {
> +	clock-frequency = <100000>;
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&pinctrl_i2c2>;
> +	status = "okay";
> +
> +	onewire@18 {
> +		compatible = "maxim,ds2484";
> +		reg = <0x18>;
> +	};
> +
> +	temp@49 {
> +		compatible = "national,lm77";
> +		reg = <0x49>;
> +	};
> +};

[Severity: Medium]
Will temp@49 fail module autoloading and schema validation?

drivers/hwmon/lm77.c only defines an i2c_device_id table and has no
of_device_id table, while i2c_device_uevent() emits an OF modalias for DT
nodes, so the lm77 module will not autoload when CONFIG_SENSORS_LM77=m.
In addition, neither "national,lm77" (nor the node name temp@49 instead of
temperature-sensor@49) nor the board compatible "cloos,imx8mm-cbase" is
documented in the Devicetree bindings, which causes make dtbs_check to fail.

[ ... ]

> +&lcdif {
> +	status = "okay";
> +};

[Severity: Medium]
Why is lcdif enabled here when mipi_dsi remains disabled and no display
bridge or panel is defined?

In imx8mm.dtsi, lcdif's output endpoint connects to mipi_dsi, which defaults
to status = "disabled".  During boot, mxsfb_probe() -> mxsfb_load() ->
mxsfb_attach_bridge() fails to find an enabled remote bridge or panel and
aborts probe with -ENODEV ("Cannot connect bridge").

[ ... ]

> +&usdhc2 {
> +	assigned-clocks = <&clk IMX8MM_CLK_USDHC2>;
> +	assigned-clock-rates = <400000000>;
> +	assigned-clock-parents = <&clk IMX8MM_SYS_PLL1_400M>;
> +	pinctrl-names = "default", "state_100mhz", "state_200mhz";
> +	pinctrl-0 = <&pinctrl_usdhc2>, <&pinctrl_usdhc2_gpio>;
> +	pinctrl-1 = <&pinctrl_usdhc2_100mhz>, <&pinctrl_usdhc2_gpio>;
> +	pinctrl-2 = <&pinctrl_usdhc2_200mhz>, <&pinctrl_usdhc2_gpio>;
> +	bus-width = <4>;
> +	cd-gpios = <&gpio2 12 GPIO_ACTIVE_LOW>;
> +	disable-wp;
> +	no-mmc;
> +	no-sdio;
> +	sd-uhs-sdr104;
> +	sd-uhs-ddr50;
> +	vmmc-supply = <&reg_usdhc2_vmmc>;
> +	status = "okay";
> +};

[Severity: High]
Does usdhc2 fail to probe because reg_usdhc2_vqmmc is left disabled?

imx8mm-tqma8mqml.dtsi sets vqmmc-supply = <&reg_usdhc2_vqmmc> on usdhc2,
where reg_usdhc2_vqmmc has status = "disabled":

arch/arm64/boot/dts/freescale/imx8mm-tqma8mqml.dtsi:
	reg_usdhc2_vqmmc: regulator-usdhc2-vqmmc {
		compatible = "regulator-gpio";
		...
		vin-supply = <&ldo5_reg>;
		status = "disabled";
	};

Because imx8mm-cbase.dts does not enable reg_usdhc2_vqmmc,
sdhci_esdhc_imx_probe() -> mmc_regulator_get_supply() ->
of_regulator_dev_lookup() finds the disabled DT node with no registered
regulator device and returns -EPROBE_DEFER permanently, leaving the SD card
slot unusable.

[ ... ]

> +/* SPI-NOR memory is not mounted on the used SoM */
> +/delete-node/ &flash0;

[Severity: Low]
Should &flexspi be disabled instead of only deleting &flash0?

imx8mm-tqma8mqml.dtsi sets status = "okay" on &flexspi, so deleting only the
child flash0 node leaves the FlexSPI controller enabled to claim its QSPI
pins, IRQ, and clocks in nxp_fspi_probe() with no flash attached.

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20261110150546.1535950-1-lukma@nabladev.com?part=1

  reply	other threads:[~2026-11-10 15:27 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-11-10 15:05 [PATCH] arm64: dts: freescale: Add device tree definition for Cloos CBASE with i.MX8MM Lukasz Majewski
2026-11-10 15:27 ` sashiko-bot [this message]
2026-11-10 18:41 ` Fabio Estevam
2026-11-11  8:26   ` Łukasz Majewski
2026-11-11  8:54     ` Daniel Baluta

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-207264@kernel.org \
    --to=sashiko-bot@kernel.org \
    --cc=Frank.Li@kernel.org \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=imx@lists.linux.dev \
    --cc=lukma@nabladev.com \
    --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