Re: [PATCH v1 14/14] arm64: dts: freescale: add initial support for verdin imx8m mini
From: Krzysztof Kozlowski
Date: Mon Jan 10 2022 - 03:49:09 EST
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