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. > + 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. > + flash@0 { > + #address-cells = <1>; > + #size-cells = <1>; > + compatible = "jedec,spi-nor"; > + reg = <0>; > + spi-max-frequency = <80000000>; > + }; > +#endif > +}; > + Best regards, Krzysztof