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 = <ðphy0>;
> > + phy-mode = "rgmii-id";
> > + phy-supply = <®_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