162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * Copyright 2021-2022 TQ-Systems GmbH
462306a36Sopenharmony_ci * Author: Alexander Stein <alexander.stein@tq-group.com>
562306a36Sopenharmony_ci */
662306a36Sopenharmony_ci
762306a36Sopenharmony_ci#include "imx8mp.dtsi"
862306a36Sopenharmony_ci
962306a36Sopenharmony_ci/ {
1062306a36Sopenharmony_ci	model = "TQ-Systems i.MX8MPlus TQMa8MPxL";
1162306a36Sopenharmony_ci	compatible = "tq,imx8mp-tqma8mpql", "fsl,imx8mp";
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_ci	memory@40000000 {
1462306a36Sopenharmony_ci		device_type = "memory";
1562306a36Sopenharmony_ci		reg = <0x0 0x40000000 0 0x80000000>;
1662306a36Sopenharmony_ci	};
1762306a36Sopenharmony_ci
1862306a36Sopenharmony_ci	/* identical to buck4_reg, but should never change */
1962306a36Sopenharmony_ci	reg_vcc3v3: regulator-vcc3v3 {
2062306a36Sopenharmony_ci		compatible = "regulator-fixed";
2162306a36Sopenharmony_ci		regulator-name = "VCC3V3";
2262306a36Sopenharmony_ci		regulator-min-microvolt = <3300000>;
2362306a36Sopenharmony_ci		regulator-max-microvolt = <3300000>;
2462306a36Sopenharmony_ci		regulator-always-on;
2562306a36Sopenharmony_ci	};
2662306a36Sopenharmony_ci
2762306a36Sopenharmony_ci	/* e-MMC IO, needed for HS modes */
2862306a36Sopenharmony_ci	reg_vcc1v8: regulator-vcc1v8 {
2962306a36Sopenharmony_ci		compatible = "regulator-fixed";
3062306a36Sopenharmony_ci		regulator-name = "VCC1V8";
3162306a36Sopenharmony_ci		regulator-min-microvolt = <1800000>;
3262306a36Sopenharmony_ci		regulator-max-microvolt = <1800000>;
3362306a36Sopenharmony_ci		regulator-always-on;
3462306a36Sopenharmony_ci	};
3562306a36Sopenharmony_ci};
3662306a36Sopenharmony_ci
3762306a36Sopenharmony_ci&A53_0 {
3862306a36Sopenharmony_ci	cpu-supply = <&buck2_reg>;
3962306a36Sopenharmony_ci};
4062306a36Sopenharmony_ci
4162306a36Sopenharmony_ci&flexspi {
4262306a36Sopenharmony_ci	pinctrl-names = "default";
4362306a36Sopenharmony_ci	pinctrl-0 = <&pinctrl_flexspi0>;
4462306a36Sopenharmony_ci	status = "okay";
4562306a36Sopenharmony_ci
4662306a36Sopenharmony_ci	flash0: flash@0 {
4762306a36Sopenharmony_ci		reg = <0>;
4862306a36Sopenharmony_ci		#address-cells = <1>;
4962306a36Sopenharmony_ci		#size-cells = <1>;
5062306a36Sopenharmony_ci		compatible = "jedec,spi-nor";
5162306a36Sopenharmony_ci		spi-max-frequency = <80000000>;
5262306a36Sopenharmony_ci		spi-tx-bus-width = <1>;
5362306a36Sopenharmony_ci		spi-rx-bus-width = <4>;
5462306a36Sopenharmony_ci	};
5562306a36Sopenharmony_ci};
5662306a36Sopenharmony_ci
5762306a36Sopenharmony_ci&i2c1 {
5862306a36Sopenharmony_ci	clock-frequency = <384000>;
5962306a36Sopenharmony_ci	pinctrl-names = "default", "gpio";
6062306a36Sopenharmony_ci	pinctrl-0 = <&pinctrl_i2c1>;
6162306a36Sopenharmony_ci	pinctrl-1 = <&pinctrl_i2c1_gpio>;
6262306a36Sopenharmony_ci	scl-gpios = <&gpio5 14 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
6362306a36Sopenharmony_ci	sda-gpios = <&gpio5 15 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
6462306a36Sopenharmony_ci	status = "okay";
6562306a36Sopenharmony_ci
6662306a36Sopenharmony_ci	se97: temperature-sensor@1b {
6762306a36Sopenharmony_ci		compatible = "nxp,se97b", "jedec,jc-42.4-temp";
6862306a36Sopenharmony_ci		reg = <0x1b>;
6962306a36Sopenharmony_ci	};
7062306a36Sopenharmony_ci
7162306a36Sopenharmony_ci	pmic: pmic@25 {
7262306a36Sopenharmony_ci		reg = <0x25>;
7362306a36Sopenharmony_ci		compatible = "nxp,pca9450c";
7462306a36Sopenharmony_ci
7562306a36Sopenharmony_ci		/* PMIC PCA9450 PMIC_nINT GPIO1_IO08 */
7662306a36Sopenharmony_ci		pinctrl-0 = <&pinctrl_pmic>;
7762306a36Sopenharmony_ci		pinctrl-names = "default";
7862306a36Sopenharmony_ci		interrupt-parent = <&gpio1>;
7962306a36Sopenharmony_ci		interrupts = <8 IRQ_TYPE_LEVEL_LOW>;
8062306a36Sopenharmony_ci
8162306a36Sopenharmony_ci		regulators {
8262306a36Sopenharmony_ci			/* V_0V85_SOC: 0.85 .. 0.95 */
8362306a36Sopenharmony_ci			buck1_reg: BUCK1 {
8462306a36Sopenharmony_ci				regulator-name = "BUCK1";
8562306a36Sopenharmony_ci				regulator-min-microvolt = <850000>;
8662306a36Sopenharmony_ci				regulator-max-microvolt = <950000>;
8762306a36Sopenharmony_ci				regulator-boot-on;
8862306a36Sopenharmony_ci				regulator-always-on;
8962306a36Sopenharmony_ci				regulator-ramp-delay = <3125>;
9062306a36Sopenharmony_ci			};
9162306a36Sopenharmony_ci
9262306a36Sopenharmony_ci			/* VDD_ARM */
9362306a36Sopenharmony_ci			buck2_reg: BUCK2 {
9462306a36Sopenharmony_ci				regulator-name = "BUCK2";
9562306a36Sopenharmony_ci				regulator-min-microvolt = <850000>;
9662306a36Sopenharmony_ci				regulator-max-microvolt = <1000000>;
9762306a36Sopenharmony_ci				regulator-boot-on;
9862306a36Sopenharmony_ci				regulator-always-on;
9962306a36Sopenharmony_ci				nxp,dvs-run-voltage = <950000>;
10062306a36Sopenharmony_ci				nxp,dvs-standby-voltage = <850000>;
10162306a36Sopenharmony_ci				regulator-ramp-delay = <3125>;
10262306a36Sopenharmony_ci			};
10362306a36Sopenharmony_ci
10462306a36Sopenharmony_ci			/* VCC3V3 -> VMMC, ... must not be changed */
10562306a36Sopenharmony_ci			buck4_reg: BUCK4 {
10662306a36Sopenharmony_ci				regulator-name = "BUCK4";
10762306a36Sopenharmony_ci				regulator-min-microvolt = <3300000>;
10862306a36Sopenharmony_ci				regulator-max-microvolt = <3300000>;
10962306a36Sopenharmony_ci				regulator-boot-on;
11062306a36Sopenharmony_ci				regulator-always-on;
11162306a36Sopenharmony_ci			};
11262306a36Sopenharmony_ci
11362306a36Sopenharmony_ci			/* V_1V8 -> VQMMC, SPI-NOR, ... must not be changed */
11462306a36Sopenharmony_ci			buck5_reg: BUCK5 {
11562306a36Sopenharmony_ci				regulator-name = "BUCK5";
11662306a36Sopenharmony_ci				regulator-min-microvolt = <1800000>;
11762306a36Sopenharmony_ci				regulator-max-microvolt = <1800000>;
11862306a36Sopenharmony_ci				regulator-boot-on;
11962306a36Sopenharmony_ci				regulator-always-on;
12062306a36Sopenharmony_ci			};
12162306a36Sopenharmony_ci
12262306a36Sopenharmony_ci			/* V_1V1 -> RAM, ... must not be changed */
12362306a36Sopenharmony_ci			buck6_reg: BUCK6 {
12462306a36Sopenharmony_ci				regulator-name = "BUCK6";
12562306a36Sopenharmony_ci				regulator-min-microvolt = <1100000>;
12662306a36Sopenharmony_ci				regulator-max-microvolt = <1100000>;
12762306a36Sopenharmony_ci				regulator-boot-on;
12862306a36Sopenharmony_ci				regulator-always-on;
12962306a36Sopenharmony_ci			};
13062306a36Sopenharmony_ci
13162306a36Sopenharmony_ci			/* V_1V8_SNVS */
13262306a36Sopenharmony_ci			ldo1_reg: LDO1 {
13362306a36Sopenharmony_ci				regulator-name = "LDO1";
13462306a36Sopenharmony_ci				regulator-min-microvolt = <1800000>;
13562306a36Sopenharmony_ci				regulator-max-microvolt = <1800000>;
13662306a36Sopenharmony_ci				regulator-boot-on;
13762306a36Sopenharmony_ci				regulator-always-on;
13862306a36Sopenharmony_ci			};
13962306a36Sopenharmony_ci
14062306a36Sopenharmony_ci			/* V_1V8_ANA */
14162306a36Sopenharmony_ci			ldo3_reg: LDO3 {
14262306a36Sopenharmony_ci				regulator-name = "LDO3";
14362306a36Sopenharmony_ci				regulator-min-microvolt = <1800000>;
14462306a36Sopenharmony_ci				regulator-max-microvolt = <1800000>;
14562306a36Sopenharmony_ci				regulator-boot-on;
14662306a36Sopenharmony_ci				regulator-always-on;
14762306a36Sopenharmony_ci			};
14862306a36Sopenharmony_ci
14962306a36Sopenharmony_ci			/* unused */
15062306a36Sopenharmony_ci			ldo4_reg: LDO4 {
15162306a36Sopenharmony_ci				regulator-name = "LDO4";
15262306a36Sopenharmony_ci				regulator-min-microvolt = <800000>;
15362306a36Sopenharmony_ci				regulator-max-microvolt = <3300000>;
15462306a36Sopenharmony_ci			};
15562306a36Sopenharmony_ci
15662306a36Sopenharmony_ci			/* VCC SD IO - switched using SD2 VSELECT */
15762306a36Sopenharmony_ci			ldo5_reg: LDO5 {
15862306a36Sopenharmony_ci				regulator-name = "LDO5";
15962306a36Sopenharmony_ci				regulator-min-microvolt = <1800000>;
16062306a36Sopenharmony_ci				regulator-max-microvolt = <3300000>;
16162306a36Sopenharmony_ci			};
16262306a36Sopenharmony_ci		};
16362306a36Sopenharmony_ci	};
16462306a36Sopenharmony_ci
16562306a36Sopenharmony_ci	pcf85063: rtc@51 {
16662306a36Sopenharmony_ci		compatible = "nxp,pcf85063a";
16762306a36Sopenharmony_ci		reg = <0x51>;
16862306a36Sopenharmony_ci	};
16962306a36Sopenharmony_ci
17062306a36Sopenharmony_ci	at24c02: eeprom@53 {
17162306a36Sopenharmony_ci		compatible = "nxp,se97b", "atmel,24c02";
17262306a36Sopenharmony_ci		read-only;
17362306a36Sopenharmony_ci		reg = <0x53>;
17462306a36Sopenharmony_ci		pagesize = <16>;
17562306a36Sopenharmony_ci		vcc-supply = <&reg_vcc3v3>;
17662306a36Sopenharmony_ci	};
17762306a36Sopenharmony_ci
17862306a36Sopenharmony_ci	m24c64: eeprom@57 {
17962306a36Sopenharmony_ci		compatible = "atmel,24c64";
18062306a36Sopenharmony_ci		reg = <0x57>;
18162306a36Sopenharmony_ci		pagesize = <32>;
18262306a36Sopenharmony_ci		vcc-supply = <&reg_vcc3v3>;
18362306a36Sopenharmony_ci	};
18462306a36Sopenharmony_ci};
18562306a36Sopenharmony_ci
18662306a36Sopenharmony_ci&usdhc3 {
18762306a36Sopenharmony_ci	pinctrl-names = "default", "state_100mhz", "state_200mhz";
18862306a36Sopenharmony_ci	pinctrl-0 = <&pinctrl_usdhc3>;
18962306a36Sopenharmony_ci	pinctrl-1 = <&pinctrl_usdhc3_100mhz>;
19062306a36Sopenharmony_ci	pinctrl-2 = <&pinctrl_usdhc3_200mhz>;
19162306a36Sopenharmony_ci	bus-width = <8>;
19262306a36Sopenharmony_ci	non-removable;
19362306a36Sopenharmony_ci	no-sd;
19462306a36Sopenharmony_ci	no-sdio;
19562306a36Sopenharmony_ci	vmmc-supply = <&reg_vcc3v3>;
19662306a36Sopenharmony_ci	vqmmc-supply = <&reg_vcc1v8>;
19762306a36Sopenharmony_ci	status = "okay";
19862306a36Sopenharmony_ci};
19962306a36Sopenharmony_ci
20062306a36Sopenharmony_ci&wdog1 {
20162306a36Sopenharmony_ci	pinctrl-names = "default";
20262306a36Sopenharmony_ci	pinctrl-0 = <&pinctrl_wdog>;
20362306a36Sopenharmony_ci	fsl,ext-reset-output;
20462306a36Sopenharmony_ci	status = "okay";
20562306a36Sopenharmony_ci};
20662306a36Sopenharmony_ci
20762306a36Sopenharmony_ci&iomuxc {
20862306a36Sopenharmony_ci	pinctrl_flexspi0: flexspi0grp {
20962306a36Sopenharmony_ci		fsl,pins = <MX8MP_IOMUXC_NAND_ALE__FLEXSPI_A_SCLK	0x142>,
21062306a36Sopenharmony_ci			   <MX8MP_IOMUXC_NAND_CE0_B__FLEXSPI_A_SS0_B	0x82>,
21162306a36Sopenharmony_ci			   <MX8MP_IOMUXC_NAND_DATA00__FLEXSPI_A_DATA00	0x82>,
21262306a36Sopenharmony_ci			   <MX8MP_IOMUXC_NAND_DATA01__FLEXSPI_A_DATA01	0x82>,
21362306a36Sopenharmony_ci			   <MX8MP_IOMUXC_NAND_DATA02__FLEXSPI_A_DATA02	0x82>,
21462306a36Sopenharmony_ci			   <MX8MP_IOMUXC_NAND_DATA03__FLEXSPI_A_DATA03	0x82>;
21562306a36Sopenharmony_ci	};
21662306a36Sopenharmony_ci
21762306a36Sopenharmony_ci	pinctrl_i2c1: i2c1grp {
21862306a36Sopenharmony_ci		fsl,pins = <MX8MP_IOMUXC_I2C1_SCL__I2C1_SCL		0x400001e2>,
21962306a36Sopenharmony_ci			   <MX8MP_IOMUXC_I2C1_SDA__I2C1_SDA		0x400001e2>;
22062306a36Sopenharmony_ci	};
22162306a36Sopenharmony_ci
22262306a36Sopenharmony_ci	pinctrl_i2c1_gpio: i2c1-gpiogrp {
22362306a36Sopenharmony_ci		fsl,pins = <MX8MP_IOMUXC_I2C1_SCL__GPIO5_IO14		0x400001e2>,
22462306a36Sopenharmony_ci			   <MX8MP_IOMUXC_I2C1_SDA__GPIO5_IO15		0x400001e2>;
22562306a36Sopenharmony_ci	};
22662306a36Sopenharmony_ci
22762306a36Sopenharmony_ci	pinctrl_pmic: pmicirqgrp {
22862306a36Sopenharmony_ci		fsl,pins = <MX8MP_IOMUXC_GPIO1_IO08__GPIO1_IO08		0x1c0>;
22962306a36Sopenharmony_ci	};
23062306a36Sopenharmony_ci
23162306a36Sopenharmony_ci	pinctrl_reg_usdhc2_vmmc: regusdhc2vmmcgrp {
23262306a36Sopenharmony_ci		fsl,pins = <MX8MP_IOMUXC_SD2_RESET_B__GPIO2_IO19	0x10>;
23362306a36Sopenharmony_ci	};
23462306a36Sopenharmony_ci
23562306a36Sopenharmony_ci	pinctrl_usdhc3: usdhc3grp {
23662306a36Sopenharmony_ci		fsl,pins = <MX8MP_IOMUXC_NAND_WE_B__USDHC3_CLK		0x194>,
23762306a36Sopenharmony_ci			   <MX8MP_IOMUXC_NAND_WP_B__USDHC3_CMD		0x1d4>,
23862306a36Sopenharmony_ci			   <MX8MP_IOMUXC_NAND_DATA04__USDHC3_DATA0	0x1d4>,
23962306a36Sopenharmony_ci			   <MX8MP_IOMUXC_NAND_DATA05__USDHC3_DATA1	0x1d4>,
24062306a36Sopenharmony_ci			   <MX8MP_IOMUXC_NAND_DATA06__USDHC3_DATA2	0x1d4>,
24162306a36Sopenharmony_ci			   <MX8MP_IOMUXC_NAND_DATA07__USDHC3_DATA3	0x1d4>,
24262306a36Sopenharmony_ci			   <MX8MP_IOMUXC_NAND_RE_B__USDHC3_DATA4	0x1d4>,
24362306a36Sopenharmony_ci			   <MX8MP_IOMUXC_NAND_CE2_B__USDHC3_DATA5	0x1d4>,
24462306a36Sopenharmony_ci			   <MX8MP_IOMUXC_NAND_CE3_B__USDHC3_DATA6	0x1d4>,
24562306a36Sopenharmony_ci			   <MX8MP_IOMUXC_NAND_CLE__USDHC3_DATA7		0x1d4>,
24662306a36Sopenharmony_ci			   <MX8MP_IOMUXC_NAND_CE1_B__USDHC3_STROBE	0x84>,
24762306a36Sopenharmony_ci			   <MX8MP_IOMUXC_NAND_READY_B__USDHC3_RESET_B	0x84>;
24862306a36Sopenharmony_ci	};
24962306a36Sopenharmony_ci
25062306a36Sopenharmony_ci	pinctrl_usdhc3_100mhz: usdhc3-100mhzgrp {
25162306a36Sopenharmony_ci		fsl,pins = <MX8MP_IOMUXC_NAND_WE_B__USDHC3_CLK		0x194>,
25262306a36Sopenharmony_ci			   <MX8MP_IOMUXC_NAND_WP_B__USDHC3_CMD		0x1d4>,
25362306a36Sopenharmony_ci			   <MX8MP_IOMUXC_NAND_DATA04__USDHC3_DATA0	0x1d4>,
25462306a36Sopenharmony_ci			   <MX8MP_IOMUXC_NAND_DATA05__USDHC3_DATA1	0x1d4>,
25562306a36Sopenharmony_ci			   <MX8MP_IOMUXC_NAND_DATA06__USDHC3_DATA2	0x1d4>,
25662306a36Sopenharmony_ci			   <MX8MP_IOMUXC_NAND_DATA07__USDHC3_DATA3	0x1d4>,
25762306a36Sopenharmony_ci			   <MX8MP_IOMUXC_NAND_RE_B__USDHC3_DATA4	0x1d4>,
25862306a36Sopenharmony_ci			   <MX8MP_IOMUXC_NAND_CE2_B__USDHC3_DATA5	0x1d4>,
25962306a36Sopenharmony_ci			   <MX8MP_IOMUXC_NAND_CE3_B__USDHC3_DATA6	0x1d4>,
26062306a36Sopenharmony_ci			   <MX8MP_IOMUXC_NAND_CLE__USDHC3_DATA7		0x1d4>,
26162306a36Sopenharmony_ci			   <MX8MP_IOMUXC_NAND_CE1_B__USDHC3_STROBE	0x84>,
26262306a36Sopenharmony_ci			   <MX8MP_IOMUXC_NAND_READY_B__USDHC3_RESET_B	0x84>;
26362306a36Sopenharmony_ci	};
26462306a36Sopenharmony_ci
26562306a36Sopenharmony_ci	pinctrl_usdhc3_200mhz: usdhc3-200mhzgrp {
26662306a36Sopenharmony_ci		fsl,pins = <MX8MP_IOMUXC_NAND_WE_B__USDHC3_CLK		0x194>,
26762306a36Sopenharmony_ci			   <MX8MP_IOMUXC_NAND_WP_B__USDHC3_CMD		0x1d4>,
26862306a36Sopenharmony_ci			   <MX8MP_IOMUXC_NAND_DATA04__USDHC3_DATA0	0x1d4>,
26962306a36Sopenharmony_ci			   <MX8MP_IOMUXC_NAND_DATA05__USDHC3_DATA1	0x1d4>,
27062306a36Sopenharmony_ci			   <MX8MP_IOMUXC_NAND_DATA06__USDHC3_DATA2	0x1d4>,
27162306a36Sopenharmony_ci			   <MX8MP_IOMUXC_NAND_DATA07__USDHC3_DATA3	0x1d4>,
27262306a36Sopenharmony_ci			   <MX8MP_IOMUXC_NAND_RE_B__USDHC3_DATA4	0x1d4>,
27362306a36Sopenharmony_ci			   <MX8MP_IOMUXC_NAND_CE2_B__USDHC3_DATA5	0x1d4>,
27462306a36Sopenharmony_ci			   <MX8MP_IOMUXC_NAND_CE3_B__USDHC3_DATA6	0x1d4>,
27562306a36Sopenharmony_ci			   <MX8MP_IOMUXC_NAND_CLE__USDHC3_DATA7		0x1d4>,
27662306a36Sopenharmony_ci			   <MX8MP_IOMUXC_NAND_CE1_B__USDHC3_STROBE	0x84>,
27762306a36Sopenharmony_ci			   <MX8MP_IOMUXC_NAND_READY_B__USDHC3_RESET_B	0x84>;
27862306a36Sopenharmony_ci	};
27962306a36Sopenharmony_ci
28062306a36Sopenharmony_ci	pinctrl_wdog: wdoggrp {
28162306a36Sopenharmony_ci		fsl,pins = <MX8MP_IOMUXC_GPIO1_IO02__WDOG1_WDOG_B	0x1c4>;
28262306a36Sopenharmony_ci	};
28362306a36Sopenharmony_ci};
284