linux/arch/arm64/boot/dts/freescale/imx8mp-tx8p-ml81.dtsi
Maud Spierings bac63d7c5f arm64: dts: freescale: add Ka-Ro Electronics tx8p-ml81 COM
The Ka-Ro Electronics tx8p-ml81 is a COM based on the imx8mp SOC. It has
2 GB of ram and 8 GB of eMMC storage on board.

Add it to enable boards based on this Module

Signed-off-by: Maud Spierings <maudspierings@gocontroll.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2025-06-20 09:28:55 +08:00

548 lines
13 KiB
Text

// SPDX-License-Identifier: (GPL-2.0 OR MIT)
/*
* Copyright (C) 2020 Lothar Waßmann <LW@KARO-electronics.de>
* 2025 Maud Spierings <maudspierings@gocontroll.com>
*/
#include "imx8mp.dtsi"
/ {
/* PHY regulator */
regulator-3v3-etn {
compatible = "regulator-fixed";
gpios = <&gpio1 23 GPIO_ACTIVE_HIGH>;
enable-active-high;
pinctrl-0 = <&pinctrl_reg_3v3_etn>;
pinctrl-names = "default";
regulator-always-on;
regulator-boot-on;
regulator-max-microvolt = <3300000>;
regulator-min-microvolt = <3300000>;
regulator-name = "3v3-etn";
vin-supply = <&reg_vdd_3v3>;
};
};
&A53_0 {
cpu-supply = <&reg_vdd_arm>;
};
&A53_1 {
cpu-supply = <&reg_vdd_arm>;
};
&A53_2 {
cpu-supply = <&reg_vdd_arm>;
};
&A53_3 {
cpu-supply = <&reg_vdd_arm>;
};
&eqos {
assigned-clocks = <&clk IMX8MP_CLK_ENET_AXI>,
<&clk IMX8MP_CLK_ENET_QOS_TIMER>,
<&clk IMX8MP_CLK_ENET_QOS>;
assigned-clock-parents = <&clk IMX8MP_SYS_PLL1_266M>,
<&clk IMX8MP_SYS_PLL2_100M>,
<&clk IMX8MP_SYS_PLL2_50M>;
assigned-clock-rates = <266000000>, <100000000>, <50000000>;
phy-handle = <&ethphy0>;
phy-mode = "rmii";
pinctrl-0 = <&pinctrl_eqos>;
pinctrl-1 = <&pinctrl_eqos_sleep>;
pinctrl-names = "default", "sleep";
status = "okay";
mdio {
compatible = "snps,dwmac-mdio";
#address-cells = <1>;
#size-cells = <0>;
pinctrl-0 = <&pinctrl_ethphy_rst_b>;
pinctrl-names = "default";
reset-delay-us = <25000>;
reset-gpios = <&gpio4 22 GPIO_ACTIVE_LOW>;
ethphy0: ethernet-phy@0 {
reg = <0>;
interrupt-parent = <&gpio4>;
interrupts = <21 IRQ_TYPE_EDGE_FALLING>;
clocks = <&clk IMX8MP_CLK_ENET_QOS>;
pinctrl-0 = <&pinctrl_ethphy_int_b>;
pinctrl-names = "default";
smsc,disable-energy-detect;
};
};
};
&gpio1 {
gpio-line-names = "SODIMM_152",
"SODIMM_42",
"PMIC_WDOG_B SODIMM_153",
"PMIC_IRQ_B",
"SODIMM_154",
"SODIMM_155",
"SODIMM_156",
"SODIMM_157",
"SODIMM_158",
"SODIMM_159",
"SODIMM_161",
"SODIMM_162",
"SODIMM_34",
"SODIMM_36",
"SODIMM_27",
"SODIMM_28",
"ENET_MDC",
"ENET_MDIO",
"",
"ENET_XTAL1/CLKIN",
"ENET_TXD1",
"ENET_TXD0",
"ENET_TXEN",
"ENET_POWER",
"ENET_COL/CRS_DV",
"ENET_RXER",
"ENET_RXD0",
"ENET_RXD1",
"",
"",
"",
"";
};
&gpio2 {
gpio-line-names = "",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"SODIMM_51",
"SODIMM_57",
"SODIMM_56",
"SODIMM_52",
"SODIMM_53",
"SODIMM_54",
"SODIMM_55",
"SODIMM_15",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"";
};
&gpio3 {
gpio-line-names = "",
"",
"EMMC_DS",
"EMMC_DAT5",
"EMMC_DAT6",
"EMMC_DAT7",
"",
"",
"",
"",
"EMMC_DAT0",
"EMMC_DAT1",
"EMMC_DAT2",
"EMMC_DAT3",
"",
"EMMC_DAT4",
"",
"EMMC_CLK",
"EMMC_CMD",
"SODIMM_75",
"SODIMM_145",
"SODIMM_163",
"SODIMM_164",
"SODIMM_165",
"SODIMM_143",
"SODIMM_144",
"SODIMM_72",
"SODIMM_73",
"SODIMM_74",
"SODIMM_93",
"",
"";
};
&gpio4 {
gpio-line-names = "SODIMM_98",
"SODIMM_99",
"SODIMM_100",
"SODIMM_101",
"SODIMM_45",
"SODIMM_43",
"SODIMM_105",
"SODIMM_106",
"SODIMM_107",
"SODIMM_108",
"SODIMM_104",
"SODIMM_103",
"SODIMM_115",
"SODIMM_114",
"SODIMM_113",
"SODIMM_112",
"SODIMM_109",
"SODIMM_110",
"SODIMM_95",
"SODIMM_96",
"SODIMM_97",
"ENET_nINT",
"ENET_nRST",
"SODIMM_84",
"SODIMM_87",
"SODIMM_86",
"SODIMM_85",
"SODIMM_83",
"",
"SODIMM_66",
"SODIMM_65",
"";
};
&gpio5 {
gpio-line-names = "",
"",
"",
"SODIMM_76",
"SODIMM_81",
"SODIMM_146",
"SODIMM_48",
"SODIMM_46",
"SODIMM_47",
"SODIMM_44",
"SODIMM_49",
"",
"SODIMM_70",
"SODIMM_69",
"PMIC_SCL",
"PMIC_SDA",
"SODIMM_41",
"SODIMM_40",
"SODIMM_148",
"SODIMM_149",
"SODIMM_150",
"SODIMM_151",
"SODIMM_60",
"SODIMM_59",
"SODIMM_64",
"SODIMM_63",
"SODIMM_62",
"SODIMM_61",
"SODIMM_68",
"SODIMM_67",
"",
"";
};
&i2c1 {
clock-frequency = <400000>;
pinctrl-0 = <&pinctrl_i2c1>;
pinctrl-1 = <&pinctrl_i2c1_gpio>;
pinctrl-names = "default", "gpio";
scl-gpios = <&gpio5 14 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
sda-gpios = <&gpio5 15 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
status = "okay";
pmic@25 {
compatible = "nxp,pca9450c";
reg = <0x25>;
interrupt-parent = <&gpio1>;
interrupts = <3 IRQ_TYPE_EDGE_FALLING>;
pinctrl-0 = <&pinctrl_pmic>;
pinctrl-names = "default";
regulators {
reg_vdd_soc: BUCK1 {
regulator-always-on;
regulator-boot-on;
regulator-max-microvolt = <900000>;
regulator-min-microvolt = <805000>;
regulator-name = "vdd-soc";
regulator-ramp-delay = <3125>;
};
reg_vdd_arm: BUCK2 {
regulator-always-on;
regulator-boot-on;
regulator-max-microvolt = <950000>;
regulator-min-microvolt = <805000>;
regulator-name = "vdd-core";
regulator-ramp-delay = <3125>;
nxp,dvs-run-voltage = <950000>;
nxp,dvs-standby-voltage = <850000>;
};
reg_vdd_3v3: BUCK4 {
regulator-always-on;
regulator-boot-on;
regulator-max-microvolt = <3300000>;
regulator-min-microvolt = <3300000>;
regulator-name = "3v3";
};
reg_nvcc_nand: BUCK5 {
regulator-always-on;
regulator-boot-on;
regulator-max-microvolt = <1800000>;
regulator-min-microvolt = <1800000>;
regulator-name = "nvcc-nand";
};
reg_nvcc_dram: BUCK6 {
regulator-always-on;
regulator-boot-on;
regulator-max-microvolt = <1100000>;
regulator-min-microvolt = <1100000>;
regulator-name = "nvcc-dram";
};
reg_snvs_1v8: LDO1 {
regulator-always-on;
regulator-boot-on;
regulator-max-microvolt = <1800000>;
regulator-min-microvolt = <1800000>;
regulator-name = "snvs-1v8";
};
ldo2_reg: LDO2 {
regulator-always-on;
regulator-max-microvolt = <1150000>;
regulator-min-microvolt = <800000>;
regulator-name = "LDO2";
};
reg_vdda_1v8: LDO3 {
regulator-always-on;
regulator-boot-on;
regulator-max-microvolt = <1800000>;
regulator-min-microvolt = <1800000>;
regulator-name = "vdda-1v8";
};
ldo4_reg: LDO4 {
regulator-max-microvolt = <3300000>;
regulator-min-microvolt = <800000>;
regulator-name = "LDO4";
};
ldo5_reg: LDO5 {
regulator-always-on;
regulator-boot-on;
regulator-max-microvolt = <3300000>;
regulator-min-microvolt = <1800000>;
regulator-name = "LDO5";
};
};
};
};
&iomuxc {
pinctrl_eqos: eqosgrp {
fsl,pins = <
MX8MP_IOMUXC_ENET_TD2__CCM_ENET_QOS_CLOCK_GENERATE_REF_CLK
(MX8MP_DSE_X4 | MX8MP_PULL_UP | MX8MP_PULL_ENABLE | MX8MP_SION)
MX8MP_IOMUXC_ENET_MDC__ENET_QOS_MDC
(MX8MP_DSE_X4 | MX8MP_PULL_UP | MX8MP_PULL_ENABLE)
MX8MP_IOMUXC_ENET_MDIO__ENET_QOS_MDIO
(MX8MP_DSE_X4 | MX8MP_PULL_UP | MX8MP_PULL_ENABLE)
MX8MP_IOMUXC_ENET_TD0__ENET_QOS_RGMII_TD0
(MX8MP_DSE_X6 | MX8MP_FSEL_FAST)
MX8MP_IOMUXC_ENET_TD1__ENET_QOS_RGMII_TD1
(MX8MP_DSE_X6 | MX8MP_FSEL_FAST)
MX8MP_IOMUXC_ENET_RD0__ENET_QOS_RGMII_RD0
(MX8MP_FSEL_FAST | MX8MP_PULL_UP | MX8MP_PULL_ENABLE)
MX8MP_IOMUXC_ENET_RD1__ENET_QOS_RGMII_RD1
(MX8MP_FSEL_FAST | MX8MP_PULL_UP | MX8MP_PULL_ENABLE)
MX8MP_IOMUXC_ENET_RXC__ENET_QOS_RX_ER
(MX8MP_FSEL_FAST | MX8MP_PULL_ENABLE)
MX8MP_IOMUXC_ENET_RX_CTL__ENET_QOS_RGMII_RX_CTL
(MX8MP_DSE_X6 | MX8MP_FSEL_FAST | MX8MP_PULL_ENABLE)
MX8MP_IOMUXC_ENET_TX_CTL__ENET_QOS_RGMII_TX_CTL
(MX8MP_DSE_X6 | MX8MP_FSEL_FAST)
>;
};
pinctrl_eqos_sleep: eqos-sleep-grp {
fsl,pins = <
MX8MP_IOMUXC_ENET_TD2__GPIO1_IO19
(MX8MP_ODE_ENABLE | MX8MP_PULL_ENABLE)
MX8MP_IOMUXC_ENET_MDC__GPIO1_IO16
(MX8MP_ODE_ENABLE | MX8MP_PULL_ENABLE)
MX8MP_IOMUXC_ENET_MDIO__GPIO1_IO17
(MX8MP_ODE_ENABLE | MX8MP_PULL_ENABLE)
MX8MP_IOMUXC_ENET_TD0__GPIO1_IO21
(MX8MP_ODE_ENABLE | MX8MP_PULL_ENABLE)
MX8MP_IOMUXC_ENET_TD1__GPIO1_IO20
(MX8MP_ODE_ENABLE | MX8MP_PULL_ENABLE)
MX8MP_IOMUXC_ENET_RD0__GPIO1_IO26
(MX8MP_ODE_ENABLE | MX8MP_PULL_ENABLE)
MX8MP_IOMUXC_ENET_RD1__GPIO1_IO27
(MX8MP_ODE_ENABLE | MX8MP_PULL_ENABLE)
MX8MP_IOMUXC_ENET_RXC__GPIO1_IO25
(MX8MP_ODE_ENABLE | MX8MP_PULL_ENABLE)
MX8MP_IOMUXC_ENET_RX_CTL__GPIO1_IO24
(MX8MP_ODE_ENABLE | MX8MP_PULL_ENABLE)
MX8MP_IOMUXC_ENET_TX_CTL__GPIO1_IO22
(MX8MP_ODE_ENABLE | MX8MP_PULL_ENABLE)
>;
};
pinctrl_ethphy_int_b: ethphy-int-bgrp {
fsl,pins = <
MX8MP_IOMUXC_SAI2_RXFS__GPIO4_IO21
(MX8MP_FSEL_FAST | MX8MP_HYS_SCHMITT)
>;
};
pinctrl_ethphy_rst_b: ethphy-rst-bgrp {
fsl,pins = <
MX8MP_IOMUXC_SAI2_RXC__GPIO4_IO22
(MX8MP_PULL_UP | MX8MP_PULL_ENABLE)
>;
};
pinctrl_i2c1: i2c1grp {
fsl,pins = <
MX8MP_IOMUXC_I2C1_SCL__I2C1_SCL
MX8MP_I2C_DEFAULT
MX8MP_IOMUXC_I2C1_SDA__I2C1_SDA
MX8MP_I2C_DEFAULT
>;
};
pinctrl_i2c1_gpio: i2c1-gpiogrp {
fsl,pins = <
MX8MP_IOMUXC_I2C1_SCL__GPIO5_IO14
MX8MP_I2C_DEFAULT
MX8MP_IOMUXC_I2C1_SDA__GPIO5_IO15
MX8MP_I2C_DEFAULT
>;
};
pinctrl_pmic: pmicgrp {
fsl,pins = <
MX8MP_IOMUXC_GPIO1_IO03__GPIO1_IO03
(MX8MP_PULL_UP | MX8MP_HYS_SCHMITT | MX8MP_PULL_ENABLE)
>;
};
pinctrl_reg_3v3_etn: reg-3v3-etngrp {
fsl,pins = <
MX8MP_IOMUXC_ENET_TXC__GPIO1_IO23
(MX8MP_PULL_UP | MX8MP_PULL_ENABLE)
>;
};
pinctrl_usdhc3: usdhc3grp {
fsl,pins = <
MX8MP_IOMUXC_NAND_WE_B__USDHC3_CLK
(MX8MP_FSEL_FAST | MX8MP_HYS_SCHMITT | MX8MP_PULL_ENABLE)
MX8MP_IOMUXC_NAND_WP_B__USDHC3_CMD
MX8MP_USDHC_DATA_DEFAULT
MX8MP_IOMUXC_NAND_DATA04__USDHC3_DATA0
MX8MP_USDHC_DATA_DEFAULT
MX8MP_IOMUXC_NAND_DATA05__USDHC3_DATA1
MX8MP_USDHC_DATA_DEFAULT
MX8MP_IOMUXC_NAND_DATA06__USDHC3_DATA2
MX8MP_USDHC_DATA_DEFAULT
MX8MP_IOMUXC_NAND_DATA07__USDHC3_DATA3
MX8MP_USDHC_DATA_DEFAULT
MX8MP_IOMUXC_NAND_RE_B__USDHC3_DATA4
MX8MP_USDHC_DATA_DEFAULT
MX8MP_IOMUXC_NAND_CE2_B__USDHC3_DATA5
MX8MP_USDHC_DATA_DEFAULT
MX8MP_IOMUXC_NAND_CE3_B__USDHC3_DATA6
MX8MP_USDHC_DATA_DEFAULT
MX8MP_IOMUXC_NAND_CLE__USDHC3_DATA7
MX8MP_USDHC_DATA_DEFAULT
MX8MP_IOMUXC_NAND_CE1_B__USDHC3_STROBE
(MX8MP_FSEL_FAST | MX8MP_HYS_SCHMITT | MX8MP_PULL_ENABLE)
>;
};
pinctrl_usdhc3_100mhz: usdhc3-100mhzgrp {
fsl,pins = <
MX8MP_IOMUXC_NAND_WE_B__USDHC3_CLK
(MX8MP_DSE_X2 | MX8MP_FSEL_FAST | MX8MP_HYS_SCHMITT | MX8MP_PULL_ENABLE)
MX8MP_IOMUXC_NAND_WP_B__USDHC3_CMD
(MX8MP_DSE_X2 | MX8MP_USDHC_DATA_DEFAULT)
MX8MP_IOMUXC_NAND_DATA04__USDHC3_DATA0
(MX8MP_DSE_X2 | MX8MP_USDHC_DATA_DEFAULT)
MX8MP_IOMUXC_NAND_DATA05__USDHC3_DATA1
(MX8MP_DSE_X2 | MX8MP_USDHC_DATA_DEFAULT)
MX8MP_IOMUXC_NAND_DATA06__USDHC3_DATA2
(MX8MP_DSE_X2 | MX8MP_USDHC_DATA_DEFAULT)
MX8MP_IOMUXC_NAND_DATA07__USDHC3_DATA3
(MX8MP_DSE_X2 | MX8MP_USDHC_DATA_DEFAULT)
MX8MP_IOMUXC_NAND_RE_B__USDHC3_DATA4
(MX8MP_DSE_X2 | MX8MP_USDHC_DATA_DEFAULT)
MX8MP_IOMUXC_NAND_CE2_B__USDHC3_DATA5
(MX8MP_DSE_X2 | MX8MP_USDHC_DATA_DEFAULT)
MX8MP_IOMUXC_NAND_CE3_B__USDHC3_DATA6
(MX8MP_DSE_X2 | MX8MP_USDHC_DATA_DEFAULT)
MX8MP_IOMUXC_NAND_CLE__USDHC3_DATA7
(MX8MP_DSE_X2 | MX8MP_USDHC_DATA_DEFAULT)
MX8MP_IOMUXC_NAND_CE1_B__USDHC3_STROBE
(MX8MP_DSE_X2 | MX8MP_FSEL_FAST | MX8MP_HYS_SCHMITT | MX8MP_PULL_ENABLE)
>;
};
pinctrl_usdhc3_200mhz: usdhc3-200mhzgrp {
fsl,pins = <
MX8MP_IOMUXC_NAND_WE_B__USDHC3_CLK
(MX8MP_DSE_X6 | MX8MP_FSEL_FAST | MX8MP_HYS_SCHMITT | MX8MP_PULL_ENABLE)
MX8MP_IOMUXC_NAND_WP_B__USDHC3_CMD
(MX8MP_DSE_X6 | MX8MP_USDHC_DATA_DEFAULT)
MX8MP_IOMUXC_NAND_DATA04__USDHC3_DATA0
(MX8MP_DSE_X6 | MX8MP_USDHC_DATA_DEFAULT)
MX8MP_IOMUXC_NAND_DATA05__USDHC3_DATA1
(MX8MP_DSE_X6 | MX8MP_USDHC_DATA_DEFAULT)
MX8MP_IOMUXC_NAND_DATA06__USDHC3_DATA2
(MX8MP_DSE_X6 | MX8MP_USDHC_DATA_DEFAULT)
MX8MP_IOMUXC_NAND_DATA07__USDHC3_DATA3
(MX8MP_DSE_X6 | MX8MP_USDHC_DATA_DEFAULT)
MX8MP_IOMUXC_NAND_RE_B__USDHC3_DATA4
(MX8MP_DSE_X6 | MX8MP_USDHC_DATA_DEFAULT)
MX8MP_IOMUXC_NAND_CE2_B__USDHC3_DATA5
(MX8MP_DSE_X6 | MX8MP_USDHC_DATA_DEFAULT)
MX8MP_IOMUXC_NAND_CE3_B__USDHC3_DATA6
(MX8MP_DSE_X6 | MX8MP_USDHC_DATA_DEFAULT)
MX8MP_IOMUXC_NAND_CLE__USDHC3_DATA7
(MX8MP_DSE_X6 | MX8MP_USDHC_DATA_DEFAULT)
MX8MP_IOMUXC_NAND_CE1_B__USDHC3_STROBE
(MX8MP_DSE_X6 | MX8MP_FSEL_FAST | MX8MP_HYS_SCHMITT | MX8MP_PULL_ENABLE)
>;
};
};
&usdhc3 {
assigned-clocks = <&clk IMX8MP_CLK_USDHC3>;
assigned-clock-rates = <200000000>;
bus-width = <8>;
max-frequency = <200000000>;
non-removable;
pinctrl-0 = <&pinctrl_usdhc3>;
pinctrl-1 = <&pinctrl_usdhc3_100mhz>;
pinctrl-2 = <&pinctrl_usdhc3_200mhz>;
pinctrl-names = "default", "state_100mhz", "state_200mhz";
vmmc-supply = <&reg_vdd_3v3>;
voltage-ranges = <3300 3300>;
vqmmc-supply = <&reg_nvcc_nand>;
status = "okay";
};