xref: /openbmc/linux/arch/arm64/boot/dts/freescale/imx8mn-ddr4-evk.dts (revision 089a6adeb0fbea7b8628986fdd7b8528554d7c71)
113cb15e0SAnson Huang// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
213cb15e0SAnson Huang/*
313cb15e0SAnson Huang * Copyright 2019 NXP
413cb15e0SAnson Huang */
513cb15e0SAnson Huang
613cb15e0SAnson Huang/dts-v1/;
713cb15e0SAnson Huang
813cb15e0SAnson Huang#include "imx8mn.dtsi"
913cb15e0SAnson Huang
1013cb15e0SAnson Huang/ {
1113cb15e0SAnson Huang	model = "NXP i.MX8MNano DDR4 EVK board";
1213cb15e0SAnson Huang	compatible = "fsl,imx8mn-ddr4-evk", "fsl,imx8mn";
1313cb15e0SAnson Huang
1413cb15e0SAnson Huang	chosen {
1513cb15e0SAnson Huang		stdout-path = &uart2;
1613cb15e0SAnson Huang	};
1713cb15e0SAnson Huang
1813cb15e0SAnson Huang	reg_usdhc2_vmmc: regulator-usdhc2 {
1913cb15e0SAnson Huang		compatible = "regulator-fixed";
2013cb15e0SAnson Huang		pinctrl-names = "default";
2113cb15e0SAnson Huang		pinctrl-0 = <&pinctrl_reg_usdhc2_vmmc>;
2213cb15e0SAnson Huang		regulator-name = "VSD_3V3";
2313cb15e0SAnson Huang		regulator-min-microvolt = <3300000>;
2413cb15e0SAnson Huang		regulator-max-microvolt = <3300000>;
2513cb15e0SAnson Huang		gpio = <&gpio2 19 GPIO_ACTIVE_HIGH>;
2613cb15e0SAnson Huang		enable-active-high;
2713cb15e0SAnson Huang	};
2813cb15e0SAnson Huang};
2913cb15e0SAnson Huang
3013cb15e0SAnson Huang&iomuxc {
3113cb15e0SAnson Huang	pinctrl-names = "default";
3213cb15e0SAnson Huang
3313cb15e0SAnson Huang	pinctrl_fec1: fec1grp {
3413cb15e0SAnson Huang		fsl,pins = <
3513cb15e0SAnson Huang			MX8MN_IOMUXC_ENET_MDC_ENET1_MDC		0x3
3613cb15e0SAnson Huang			MX8MN_IOMUXC_ENET_MDIO_ENET1_MDIO	0x3
3713cb15e0SAnson Huang			MX8MN_IOMUXC_ENET_TD3_ENET1_RGMII_TD3	0x1f
3813cb15e0SAnson Huang			MX8MN_IOMUXC_ENET_TD2_ENET1_RGMII_TD2	0x1f
3913cb15e0SAnson Huang			MX8MN_IOMUXC_ENET_TD1_ENET1_RGMII_TD1	0x1f
4013cb15e0SAnson Huang			MX8MN_IOMUXC_ENET_TD0_ENET1_RGMII_TD0	0x1f
4113cb15e0SAnson Huang			MX8MN_IOMUXC_ENET_RD3_ENET1_RGMII_RD3	0x91
4213cb15e0SAnson Huang			MX8MN_IOMUXC_ENET_RD2_ENET1_RGMII_RD2	0x91
4313cb15e0SAnson Huang			MX8MN_IOMUXC_ENET_RD1_ENET1_RGMII_RD1	0x91
4413cb15e0SAnson Huang			MX8MN_IOMUXC_ENET_RD0_ENET1_RGMII_RD0	0x91
4513cb15e0SAnson Huang			MX8MN_IOMUXC_ENET_TXC_ENET1_RGMII_TXC	0x1f
4613cb15e0SAnson Huang			MX8MN_IOMUXC_ENET_RXC_ENET1_RGMII_RXC	0x91
4713cb15e0SAnson Huang			MX8MN_IOMUXC_ENET_RX_CTL_ENET1_RGMII_RX_CTL	0x91
4813cb15e0SAnson Huang			MX8MN_IOMUXC_ENET_TX_CTL_ENET1_RGMII_TX_CTL	0x1f
4913cb15e0SAnson Huang			MX8MN_IOMUXC_SAI2_RXC_GPIO4_IO22	0x19
5013cb15e0SAnson Huang		>;
5113cb15e0SAnson Huang	};
5213cb15e0SAnson Huang
53*089a6adeSAnson Huang	pinctrl_i2c1: i2c1grp {
54*089a6adeSAnson Huang		fsl,pins = <
55*089a6adeSAnson Huang			MX8MN_IOMUXC_I2C1_SCL_I2C1_SCL		0x400001c3
56*089a6adeSAnson Huang			MX8MN_IOMUXC_I2C1_SDA_I2C1_SDA		0x400001c3
57*089a6adeSAnson Huang		>;
58*089a6adeSAnson Huang	};
59*089a6adeSAnson Huang
6013cb15e0SAnson Huang	pinctrl_reg_usdhc2_vmmc: regusdhc2vmmc {
6113cb15e0SAnson Huang		fsl,pins = <
6213cb15e0SAnson Huang			MX8MN_IOMUXC_SD2_RESET_B_GPIO2_IO19	0x41
6313cb15e0SAnson Huang		>;
6413cb15e0SAnson Huang	};
6513cb15e0SAnson Huang
6613cb15e0SAnson Huang	pinctrl_uart2: uart2grp {
6713cb15e0SAnson Huang		fsl,pins = <
6813cb15e0SAnson Huang			MX8MN_IOMUXC_UART2_RXD_UART2_DCE_RX	0x140
6913cb15e0SAnson Huang			MX8MN_IOMUXC_UART2_TXD_UART2_DCE_TX	0x140
7013cb15e0SAnson Huang		>;
7113cb15e0SAnson Huang	};
7213cb15e0SAnson Huang
7313cb15e0SAnson Huang	pinctrl_usdhc2_gpio: usdhc2grpgpio {
7413cb15e0SAnson Huang		fsl,pins = <
7513cb15e0SAnson Huang			MX8MN_IOMUXC_GPIO1_IO15_GPIO1_IO15	0x1c4
7613cb15e0SAnson Huang		>;
7713cb15e0SAnson Huang	};
7813cb15e0SAnson Huang
7913cb15e0SAnson Huang	pinctrl_usdhc2: usdhc2grp {
8013cb15e0SAnson Huang		fsl,pins = <
8113cb15e0SAnson Huang			MX8MN_IOMUXC_SD2_CLK_USDHC2_CLK		0x190
8213cb15e0SAnson Huang			MX8MN_IOMUXC_SD2_CMD_USDHC2_CMD		0x1d0
8313cb15e0SAnson Huang			MX8MN_IOMUXC_SD2_DATA0_USDHC2_DATA0	0x1d0
8413cb15e0SAnson Huang			MX8MN_IOMUXC_SD2_DATA1_USDHC2_DATA1	0x1d0
8513cb15e0SAnson Huang			MX8MN_IOMUXC_SD2_DATA2_USDHC2_DATA2	0x1d0
8613cb15e0SAnson Huang			MX8MN_IOMUXC_SD2_DATA3_USDHC2_DATA3	0x1d0
8713cb15e0SAnson Huang			MX8MN_IOMUXC_GPIO1_IO04_USDHC2_VSELECT	0x1d0
8813cb15e0SAnson Huang		>;
8913cb15e0SAnson Huang	};
9013cb15e0SAnson Huang
9113cb15e0SAnson Huang	pinctrl_usdhc2_100mhz: usdhc2grp100mhz {
9213cb15e0SAnson Huang		fsl,pins = <
9313cb15e0SAnson Huang			MX8MN_IOMUXC_SD2_CLK_USDHC2_CLK		0x194
9413cb15e0SAnson Huang			MX8MN_IOMUXC_SD2_CMD_USDHC2_CMD		0x1d4
9513cb15e0SAnson Huang			MX8MN_IOMUXC_SD2_DATA0_USDHC2_DATA0	0x1d4
9613cb15e0SAnson Huang			MX8MN_IOMUXC_SD2_DATA1_USDHC2_DATA1	0x1d4
9713cb15e0SAnson Huang			MX8MN_IOMUXC_SD2_DATA2_USDHC2_DATA2	0x1d4
9813cb15e0SAnson Huang			MX8MN_IOMUXC_SD2_DATA3_USDHC2_DATA3	0x1d4
9913cb15e0SAnson Huang			MX8MN_IOMUXC_GPIO1_IO04_USDHC2_VSELECT	0x1d0
10013cb15e0SAnson Huang		>;
10113cb15e0SAnson Huang	};
10213cb15e0SAnson Huang
10313cb15e0SAnson Huang	pinctrl_usdhc2_200mhz: usdhc2grp200mhz {
10413cb15e0SAnson Huang		fsl,pins = <
10513cb15e0SAnson Huang			MX8MN_IOMUXC_SD2_CLK_USDHC2_CLK		0x196
10613cb15e0SAnson Huang			MX8MN_IOMUXC_SD2_CMD_USDHC2_CMD		0x1d6
10713cb15e0SAnson Huang			MX8MN_IOMUXC_SD2_DATA0_USDHC2_DATA0	0x1d6
10813cb15e0SAnson Huang			MX8MN_IOMUXC_SD2_DATA1_USDHC2_DATA1	0x1d6
10913cb15e0SAnson Huang			MX8MN_IOMUXC_SD2_DATA2_USDHC2_DATA2	0x1d6
11013cb15e0SAnson Huang			MX8MN_IOMUXC_SD2_DATA3_USDHC2_DATA3	0x1d6
11113cb15e0SAnson Huang			MX8MN_IOMUXC_GPIO1_IO04_USDHC2_VSELECT	0x1d0
11213cb15e0SAnson Huang		>;
11313cb15e0SAnson Huang	};
11413cb15e0SAnson Huang
11513cb15e0SAnson Huang	pinctrl_usdhc3: usdhc3grp {
11613cb15e0SAnson Huang		fsl,pins = <
11713cb15e0SAnson Huang			MX8MN_IOMUXC_NAND_WE_B_USDHC3_CLK		0x40000190
11813cb15e0SAnson Huang			MX8MN_IOMUXC_NAND_WP_B_USDHC3_CMD		0x1d0
11913cb15e0SAnson Huang			MX8MN_IOMUXC_NAND_DATA04_USDHC3_DATA0		0x1d0
12013cb15e0SAnson Huang			MX8MN_IOMUXC_NAND_DATA05_USDHC3_DATA1		0x1d0
12113cb15e0SAnson Huang			MX8MN_IOMUXC_NAND_DATA06_USDHC3_DATA2		0x1d0
12213cb15e0SAnson Huang			MX8MN_IOMUXC_NAND_DATA07_USDHC3_DATA3		0x1d0
12313cb15e0SAnson Huang			MX8MN_IOMUXC_NAND_RE_B_USDHC3_DATA4		0x1d0
12413cb15e0SAnson Huang			MX8MN_IOMUXC_NAND_CE2_B_USDHC3_DATA5		0x1d0
12513cb15e0SAnson Huang			MX8MN_IOMUXC_NAND_CE3_B_USDHC3_DATA6		0x1d0
12613cb15e0SAnson Huang			MX8MN_IOMUXC_NAND_CLE_USDHC3_DATA7		0x1d0
12713cb15e0SAnson Huang			MX8MN_IOMUXC_NAND_CE1_B_USDHC3_STROBE		0x190
12813cb15e0SAnson Huang		>;
12913cb15e0SAnson Huang	};
13013cb15e0SAnson Huang
13113cb15e0SAnson Huang	pinctrl_usdhc3_100mhz: usdhc3grp100mhz {
13213cb15e0SAnson Huang		fsl,pins = <
13313cb15e0SAnson Huang			MX8MN_IOMUXC_NAND_WE_B_USDHC3_CLK		0x40000194
13413cb15e0SAnson Huang			MX8MN_IOMUXC_NAND_WP_B_USDHC3_CMD		0x1d4
13513cb15e0SAnson Huang			MX8MN_IOMUXC_NAND_DATA04_USDHC3_DATA0		0x1d4
13613cb15e0SAnson Huang			MX8MN_IOMUXC_NAND_DATA05_USDHC3_DATA1		0x1d4
13713cb15e0SAnson Huang			MX8MN_IOMUXC_NAND_DATA06_USDHC3_DATA2		0x1d4
13813cb15e0SAnson Huang			MX8MN_IOMUXC_NAND_DATA07_USDHC3_DATA3		0x1d4
13913cb15e0SAnson Huang			MX8MN_IOMUXC_NAND_RE_B_USDHC3_DATA4		0x1d4
14013cb15e0SAnson Huang			MX8MN_IOMUXC_NAND_CE2_B_USDHC3_DATA5		0x1d4
14113cb15e0SAnson Huang			MX8MN_IOMUXC_NAND_CE3_B_USDHC3_DATA6		0x1d4
14213cb15e0SAnson Huang			MX8MN_IOMUXC_NAND_CLE_USDHC3_DATA7		0x1d4
14313cb15e0SAnson Huang			MX8MN_IOMUXC_NAND_CE1_B_USDHC3_STROBE		0x194
14413cb15e0SAnson Huang		>;
14513cb15e0SAnson Huang	};
14613cb15e0SAnson Huang
14713cb15e0SAnson Huang	pinctrl_usdhc3_200mhz: usdhc3grp200mhz {
14813cb15e0SAnson Huang		fsl,pins = <
14913cb15e0SAnson Huang			MX8MN_IOMUXC_NAND_WE_B_USDHC3_CLK		0x40000196
15013cb15e0SAnson Huang			MX8MN_IOMUXC_NAND_WP_B_USDHC3_CMD		0x1d6
15113cb15e0SAnson Huang			MX8MN_IOMUXC_NAND_DATA04_USDHC3_DATA0		0x1d6
15213cb15e0SAnson Huang			MX8MN_IOMUXC_NAND_DATA05_USDHC3_DATA1		0x1d6
15313cb15e0SAnson Huang			MX8MN_IOMUXC_NAND_DATA06_USDHC3_DATA2		0x1d6
15413cb15e0SAnson Huang			MX8MN_IOMUXC_NAND_DATA07_USDHC3_DATA3		0x1d6
15513cb15e0SAnson Huang			MX8MN_IOMUXC_NAND_RE_B_USDHC3_DATA4		0x1d6
15613cb15e0SAnson Huang			MX8MN_IOMUXC_NAND_CE2_B_USDHC3_DATA5		0x1d6
15713cb15e0SAnson Huang			MX8MN_IOMUXC_NAND_CE3_B_USDHC3_DATA6		0x1d6
15813cb15e0SAnson Huang			MX8MN_IOMUXC_NAND_CLE_USDHC3_DATA7		0x1d6
15913cb15e0SAnson Huang			MX8MN_IOMUXC_NAND_CE1_B_USDHC3_STROBE		0x196
16013cb15e0SAnson Huang		>;
16113cb15e0SAnson Huang	};
16213cb15e0SAnson Huang
16313cb15e0SAnson Huang	pinctrl_wdog: wdoggrp {
16413cb15e0SAnson Huang		fsl,pins = <
16513cb15e0SAnson Huang			MX8MN_IOMUXC_GPIO1_IO02_WDOG1_WDOG_B		0xc6
16613cb15e0SAnson Huang		>;
16713cb15e0SAnson Huang	};
16813cb15e0SAnson Huang};
16913cb15e0SAnson Huang
17013cb15e0SAnson Huang&fec1 {
17113cb15e0SAnson Huang	pinctrl-names = "default";
17213cb15e0SAnson Huang	pinctrl-0 = <&pinctrl_fec1>;
17313cb15e0SAnson Huang	phy-mode = "rgmii-id";
17413cb15e0SAnson Huang	phy-handle = <&ethphy0>;
17513cb15e0SAnson Huang	fsl,magic-packet;
17613cb15e0SAnson Huang	status = "okay";
17713cb15e0SAnson Huang
17813cb15e0SAnson Huang	mdio {
17913cb15e0SAnson Huang		#address-cells = <1>;
18013cb15e0SAnson Huang		#size-cells = <0>;
18113cb15e0SAnson Huang
18213cb15e0SAnson Huang		ethphy0: ethernet-phy@0 {
18313cb15e0SAnson Huang			compatible = "ethernet-phy-ieee802.3-c22";
18413cb15e0SAnson Huang			reg = <0>;
18513cb15e0SAnson Huang			at803x,led-act-blind-workaround;
18613cb15e0SAnson Huang			at803x,eee-disabled;
18713cb15e0SAnson Huang			at803x,vddio-1p8v;
18813cb15e0SAnson Huang		};
18913cb15e0SAnson Huang	};
19013cb15e0SAnson Huang};
19113cb15e0SAnson Huang
192*089a6adeSAnson Huang&i2c1 {
193*089a6adeSAnson Huang	clock-frequency = <400000>;
194*089a6adeSAnson Huang	pinctrl-names = "default";
195*089a6adeSAnson Huang	pinctrl-0 = <&pinctrl_i2c1>;
196*089a6adeSAnson Huang	status = "okay";
197*089a6adeSAnson Huang};
198*089a6adeSAnson Huang
19913cb15e0SAnson Huang&snvs_pwrkey {
20013cb15e0SAnson Huang	status = "okay";
20113cb15e0SAnson Huang};
20213cb15e0SAnson Huang
20313cb15e0SAnson Huang&uart2 { /* console */
20413cb15e0SAnson Huang	pinctrl-names = "default";
20513cb15e0SAnson Huang	pinctrl-0 = <&pinctrl_uart2>;
20613cb15e0SAnson Huang	status = "okay";
20713cb15e0SAnson Huang};
20813cb15e0SAnson Huang
20913cb15e0SAnson Huang&usdhc2 {
21013cb15e0SAnson Huang	pinctrl-names = "default", "state_100mhz", "state_200mhz";
21113cb15e0SAnson Huang	pinctrl-0 = <&pinctrl_usdhc2>, <&pinctrl_usdhc2_gpio>;
21213cb15e0SAnson Huang	pinctrl-1 = <&pinctrl_usdhc2_100mhz>, <&pinctrl_usdhc2_gpio>;
21313cb15e0SAnson Huang	pinctrl-2 = <&pinctrl_usdhc2_200mhz>, <&pinctrl_usdhc2_gpio>;
21413cb15e0SAnson Huang	cd-gpios = <&gpio1 15 GPIO_ACTIVE_LOW>;
21513cb15e0SAnson Huang	bus-width = <4>;
21613cb15e0SAnson Huang	vmmc-supply = <&reg_usdhc2_vmmc>;
21713cb15e0SAnson Huang	status = "okay";
21813cb15e0SAnson Huang};
21913cb15e0SAnson Huang
22013cb15e0SAnson Huang&usdhc3 {
22113cb15e0SAnson Huang	pinctrl-names = "default", "state_100mhz", "state_200mhz";
22213cb15e0SAnson Huang	pinctrl-0 = <&pinctrl_usdhc3>;
22313cb15e0SAnson Huang	pinctrl-1 = <&pinctrl_usdhc3_100mhz>;
22413cb15e0SAnson Huang	pinctrl-2 = <&pinctrl_usdhc3_200mhz>;
22513cb15e0SAnson Huang	bus-width = <8>;
22613cb15e0SAnson Huang	non-removable;
22713cb15e0SAnson Huang	status = "okay";
22813cb15e0SAnson Huang};
22913cb15e0SAnson Huang
23013cb15e0SAnson Huang&wdog1 {
23113cb15e0SAnson Huang	pinctrl-names = "default";
23213cb15e0SAnson Huang	pinctrl-0 = <&pinctrl_wdog>;
23313cb15e0SAnson Huang	fsl,ext-reset-output;
23413cb15e0SAnson Huang	status = "okay";
23513cb15e0SAnson Huang};
236