Re: [PATCH v1 14/14] arm64: dts: freescale: add initial support for verdin imx8m mini

From: Marcel Ziswiler
Date: Fri Jan 14 2022 - 08:28:16 EST


On Mon, 2022-01-10 at 09:47 +0100, Krzysztof Kozlowski wrote:
> On 07/01/2022 19:03, Marcel Ziswiler wrote:
> > From: Marcel Ziswiler <marcel.ziswiler@xxxxxxxxxxx>
> >
> > This patch adds the device tree to support Toradex Verdin iMX8M Mini a
> > computer on module which can be used on different carrier boards.
> >
> > The module consists of an NXP i.MX 8M Mini family SoC (either i.MX 8M
> > Mini Quad or 8M Mini DualLite), a PCA9450A PMIC, a Gigabit Ethernet PHY,
> > 1 or 2 GB of LPDDR4 RAM, an eMMC, a TLA2024 ADC, an I2C EEPROM, an
> > RX8130 RTC, an optional SPI CAN controller plus an optional Bluetooth/
> > Wi-Fi module.
> >
> > Anything that is not self-contained on the module is disabled by
> > default.
> >
> > The device tree for the Dahlia includes the module's device tree and
> > enables the supported peripherals of the carrier board.
> >
> > The device tree for the Verdin Development Board includes the module's
> > device tree as well as the Dahlia one as it is a superset and supports
> > almost all peripherals available.
> >
> > So far there is no display functionality supported at all but basic
> > console UART, USB host, eMMC and Ethernet and PCIe functionality work
> > fine.
> >
> > Signed-off-by: Marcel Ziswiler <marcel.ziswiler@xxxxxxxxxxx>
> >
> > ---
> >
> >  arch/arm64/boot/dts/freescale/Makefile        |    4 +
> >  .../dts/freescale/imx8mm-verdin-dahlia.dtsi   |  143 ++
> >  .../boot/dts/freescale/imx8mm-verdin-dev.dtsi |   67 +
> >  .../imx8mm-verdin-nonwifi-dahlia.dts          |   18 +
> >  .../freescale/imx8mm-verdin-nonwifi-dev.dts   |   18 +
> >  .../dts/freescale/imx8mm-verdin-nonwifi.dtsi  |   75 +
> >  .../freescale/imx8mm-verdin-wifi-dahlia.dts   |   18 +
> >  .../dts/freescale/imx8mm-verdin-wifi-dev.dts  |   18 +
> >  .../dts/freescale/imx8mm-verdin-wifi.dtsi     |   95 ++
> >  .../boot/dts/freescale/imx8mm-verdin.dtsi     | 1277 +++++++++++++++++
> >  10 files changed, 1733 insertions(+)
> >  create mode 100644 arch/arm64/boot/dts/freescale/imx8mm-verdin-dahlia.dtsi
> >  create mode 100644 arch/arm64/boot/dts/freescale/imx8mm-verdin-dev.dtsi
> >  create mode 100644 arch/arm64/boot/dts/freescale/imx8mm-verdin-nonwifi-dahlia.dts
> >  create mode 100644 arch/arm64/boot/dts/freescale/imx8mm-verdin-nonwifi-dev.dts
> >  create mode 100644 arch/arm64/boot/dts/freescale/imx8mm-verdin-nonwifi.dtsi
> >  create mode 100644 arch/arm64/boot/dts/freescale/imx8mm-verdin-wifi-dahlia.dts
> >  create mode 100644 arch/arm64/boot/dts/freescale/imx8mm-verdin-wifi-dev.dts
> >  create mode 100644 arch/arm64/boot/dts/freescale/imx8mm-verdin-wifi.dtsi
> >  create mode 100644 arch/arm64/boot/dts/freescale/imx8mm-verdin.dtsi
> >
>
> (...)
>
> > diff --git a/arch/arm64/boot/dts/freescale/imx8mm-verdin.dtsi b/arch/arm64/boot/dts/freescale/imx8mm-
> > verdin.dtsi
> > new file mode 100644
> > index 000000000000..23eb695a5266
> > --- /dev/null
> > +++ b/arch/arm64/boot/dts/freescale/imx8mm-verdin.dtsi
> > @@ -0,0 +1,1277 @@
> > +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
> > +/*
> > + * Copyright 2022 Toradex
> > + */
> > +
> > +#include "dt-bindings/pwm/pwm.h"
> > +#include "imx8mm.dtsi"
> > +
> > +/ {
> > +       chosen {
> > +               bootargs = "console=ttymxc0,115200 earlycon";
>
> earlycon is a debug tool, so should not be part of mainline DTS by
> default. Entire bootargs property looks actually not needed.

Yes, I will remove it in v2.

> > +               stdout-path = &uart1;
> > +       };
> > +
>
> (...)
>
> > +/* Verdin ETH_1 (On-module PHY) */
> > +&fec1 {
> > +       fsl,magic-packet;
> > +       phy-handle = <&ethphy0>;
> > +       phy-mode = "rgmii-id";
> > +       phy-supply = <&reg_ethphy>;
> > +       pinctrl-names = "default", "sleep";
> > +       pinctrl-0 = <&pinctrl_fec1>;
> > +       pinctrl-1 = <&pinctrl_fec1_sleep>;
> > +
> > +       mdio {
> > +               #address-cells = <1>;
> > +               #size-cells = <0>;
> > +
> > +               ethphy0: ethernet-phy@7 {
> > +                       compatible = "ethernet-phy-ieee802.3-c22";
> > +                       interrupt-parent = <&gpio1>;
> > +                       interrupts = <10 IRQ_TYPE_LEVEL_LOW>;
> > +                       micrel,led-mode = <0>;
> > +                       reg = <7>;
> > +               };
> > +       };
> > +};
> > +
> > +/* Verdin QSPI_1 */
> > +&flexspi {
> > +       pinctrl-names = "default";
> > +       pinctrl-0 = <&pinctrl_flexspi0>;
> > +#if 0
>
> Please drop it or explain with a comment why we need dead code in Linux
> kernel.

Yes, I agree.

> > +       flash@0 {
> > +               #address-cells = <1>;
> > +               #size-cells = <1>;
> > +               compatible = "jedec,spi-nor";
> > +               reg = <0>;
> > +               spi-max-frequency = <80000000>;
> > +       };
> > +#endif
> > +};
> > +

Thanks for your review.

> Best regards,
> Krzysztof

Cheers

Marcel