Re: [PATCH v4 2/5] arm64: dts: freescale: Add i.MX91 dtsi support

Alexander Stein
2025-01-21T08:35:32Z

Am Dienstag, 21. Januar 2025, 08:40:14 CET schrieb Joy Zou:
> From: Pengfei Li <pengfei.li_1@nxp.com>
>
> The i.MX 91 family features an Arm Cortex-A55 running at up to
> 1.4GHz, support for modern LPDDR4 memory to enable platform longevity,
> along with a rich set of peripherals targeting medical, industrial
> and consumer IoT market segments.
>
> The design of the i.MX91 platform is very similar to i.MX93.
> The mainly difference between i.MX91 and i.MX93 is as follows:
> - i.MX91 removed some clocks and modified the names of some clocks.
> - i.MX91 only has one A core
> - i.MX91 has different pinmux
>
> Signed-off-by: Pengfei Li <pengfei.li_1@nxp.com>
> Signed-off-by: Joy Zou <joy.zou@nxp.com>
> ---
> arch/arm64/boot/dts/freescale/imx91-pinfunc.h | 770 ++++++++++++++++++
> arch/arm64/boot/dts/freescale/imx91.dtsi | 70 ++
> 2 files changed, 840 insertions(+)
> create mode 100644 arch/arm64/boot/dts/freescale/imx91-pinfunc.h
> create mode 100644 arch/arm64/boot/dts/freescale/imx91.dtsi
>
> [snip]
> diff --git a/arch/arm64/boot/dts/freescale/imx91.dtsi b/arch/arm64/boot/dts/freescale/imx91.dtsi
> new file mode 100644
> index 000000000000..67a5a487ab57
> --- /dev/null
> +++ b/arch/arm64/boot/dts/freescale/imx91.dtsi
> @@ -0,0 +1,70 @@
> +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
> +/*
> + * Copyright 2024 NXP
> + */
> +
> +#include "imx91-pinfunc.h"
> +#include "imx93.dtsi"
> +
> +/delete-node/ &A55_1;
> +/delete-node/ &cm33;
> +/delete-node/ &mlmix;
> +/delete-node/ &mu1;
> +/delete-node/ &mu2;
> +
> +&clk {
> + compatible = "fsl,imx91-ccm";
> +};
> +
> +&eqos {
> + clocks = <&clk IMX91_CLK_ENET1_QOS_TSN_GATE>,
> + <&clk IMX91_CLK_ENET1_QOS_TSN_GATE>,
> + <&clk IMX91_CLK_ENET_TIMER>,
> + <&clk IMX91_CLK_ENET1_QOS_TSN>,
> + <&clk IMX91_CLK_ENET1_QOS_TSN_GATE>;
> + assigned-clocks = <&clk IMX91_CLK_ENET_TIMER>,
> + <&clk IMX91_CLK_ENET1_QOS_TSN>;
> + assigned-clock-parents = <&clk IMX93_CLK_SYS_PLL_PFD1_DIV2>,
> + <&clk IMX93_CLK_SYS_PLL_PFD0_DIV2>;
> +};
> +
> +&fec {
> + clocks = <&clk IMX91_CLK_ENET2_REGULAR_GATE>,
> + <&clk IMX91_CLK_ENET2_REGULAR_GATE>,
> + <&clk IMX91_CLK_ENET_TIMER>,
> + <&clk IMX91_CLK_ENET2_REGULAR>,
> + <&clk IMX93_CLK_DUMMY>;
> + assigned-clocks = <&clk IMX91_CLK_ENET_TIMER>,
> + <&clk IMX91_CLK_ENET2_REGULAR>;
> + assigned-clock-parents = <&clk IMX93_CLK_SYS_PLL_PFD1_DIV2>,
> + <&clk IMX93_CLK_SYS_PLL_PFD0_DIV2>;
> + assigned-clock-rates = <100000000>, <250000000>;
> +};
> +
> +&i3c1 {
> + clocks = <&clk IMX93_CLK_BUS_AON>,
> + <&clk IMX93_CLK_I3C1_GATE>,
> + <&clk IMX93_CLK_DUMMY>;
> +};
> +
> +&i3c2 {
> + clocks = <&clk IMX93_CLK_BUS_WAKEUP>,
> + <&clk IMX93_CLK_I3C2_GATE>,
> + <&clk IMX93_CLK_DUMMY>;
> +};
> +
> +&iomuxc {
> + compatible = "fsl,imx91-iomuxc";
> +};
> +
> +&tmu {
> + status = "disabled";
> +};
> +
> +&ddr_pmu {
> + compatible = "fsl,imx91-ddr-pmu", "fsl,imx93-ddr-pmu";
> +};
> +
> +&map0 {
> + cooling-device = <&A55_0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
> +};
>

Somehow I don't like it that much. Instead of removing nodes from imx93.dtsi
wouldn't it make more sense to include from imx91.dtsi into imx93.dtsi
and _add_ nodes with are unique to i.MX93? Otherwise each add to imx93.dtsi
requires an remove in imx91.dtsi for this unique to i.MX93, e.g. NPU.

Best regards,
Alexander
--
TQ-Systems GmbH | Mühlstraße 2, Gut Delling | 82229 Seefeld, Germany
Amtsgericht München, HRB 105018
Geschäftsführer: Detlef Schneider, Rüdiger Stahl, Stefan Schneider