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

Krzysztof Kozlowski krzk at kernel.org
Mon Jan 10 00:47:37 PST 2022


On 07/01/2022 19:03, Marcel Ziswiler wrote:
> From: Marcel Ziswiler <marcel.ziswiler at toradex.com>
> 
> 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 at toradex.com>
> 
> ---
> 
>  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 = <&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 at 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 at 0 {
> +		#address-cells = <1>;
> +		#size-cells = <1>;
> +		compatible = "jedec,spi-nor";
> +		reg = <0>;
> +		spi-max-frequency = <80000000>;
> +	};
> +#endif
> +};
> +


Best regards,
Krzysztof



More information about the linux-arm-kernel mailing list