162306a36Sopenharmony_ci// SPDX-License-Identifier: (GPL-2.0-or-later OR MIT)
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * Copyright (c) 2022 TQ-Systems GmbH <linux@ew.tq-group.com>,
462306a36Sopenharmony_ci * D-82229 Seefeld, Germany.
562306a36Sopenharmony_ci * Author: Markus Niebel
662306a36Sopenharmony_ci */
762306a36Sopenharmony_ci
862306a36Sopenharmony_ci#include "imx93.dtsi"
962306a36Sopenharmony_ci
1062306a36Sopenharmony_ci/{
1162306a36Sopenharmony_ci	model = "TQ-Systems i.MX93 TQMa93xxLA/TQMa93xxCA SOM";
1262306a36Sopenharmony_ci	compatible = "tq,imx93-tqma9352", "fsl,imx93";
1362306a36Sopenharmony_ci
1462306a36Sopenharmony_ci	reserved-memory {
1562306a36Sopenharmony_ci		#address-cells = <2>;
1662306a36Sopenharmony_ci		#size-cells = <2>;
1762306a36Sopenharmony_ci		ranges;
1862306a36Sopenharmony_ci
1962306a36Sopenharmony_ci		linux,cma {
2062306a36Sopenharmony_ci			compatible = "shared-dma-pool";
2162306a36Sopenharmony_ci			reusable;
2262306a36Sopenharmony_ci			alloc-ranges = <0 0x60000000 0 0x40000000>;
2362306a36Sopenharmony_ci			size = <0 0x10000000>;
2462306a36Sopenharmony_ci			linux,cma-default;
2562306a36Sopenharmony_ci		};
2662306a36Sopenharmony_ci	};
2762306a36Sopenharmony_ci
2862306a36Sopenharmony_ci	reg_v1v8: regulator-v1v8 {
2962306a36Sopenharmony_ci		compatible = "regulator-fixed";
3062306a36Sopenharmony_ci		regulator-name = "V_1V8";
3162306a36Sopenharmony_ci		regulator-min-microvolt = <1800000>;
3262306a36Sopenharmony_ci		regulator-max-microvolt = <1800000>;
3362306a36Sopenharmony_ci	};
3462306a36Sopenharmony_ci
3562306a36Sopenharmony_ci	reg_v3v3: regulator-v3v3 {
3662306a36Sopenharmony_ci		compatible = "regulator-fixed";
3762306a36Sopenharmony_ci		regulator-name = "V_3V3";
3862306a36Sopenharmony_ci		regulator-min-microvolt = <3300000>;
3962306a36Sopenharmony_ci		regulator-max-microvolt = <3300000>;
4062306a36Sopenharmony_ci	};
4162306a36Sopenharmony_ci
4262306a36Sopenharmony_ci	/* SD2 RST# via PMIC SW_EN */
4362306a36Sopenharmony_ci	reg_usdhc2_vmmc: regulator-usdhc2 {
4462306a36Sopenharmony_ci		compatible = "regulator-fixed";
4562306a36Sopenharmony_ci		pinctrl-names = "default";
4662306a36Sopenharmony_ci		pinctrl-0 = <&pinctrl_reg_usdhc2_vmmc>;
4762306a36Sopenharmony_ci		regulator-name = "VSD_3V3";
4862306a36Sopenharmony_ci		regulator-min-microvolt = <3300000>;
4962306a36Sopenharmony_ci		regulator-max-microvolt = <3300000>;
5062306a36Sopenharmony_ci		vin-supply = <&reg_v3v3>;
5162306a36Sopenharmony_ci		gpio = <&gpio3 7 GPIO_ACTIVE_HIGH>;
5262306a36Sopenharmony_ci		enable-active-high;
5362306a36Sopenharmony_ci	};
5462306a36Sopenharmony_ci};
5562306a36Sopenharmony_ci
5662306a36Sopenharmony_ci&adc1 {
5762306a36Sopenharmony_ci	vref-supply = <&reg_v1v8>;
5862306a36Sopenharmony_ci};
5962306a36Sopenharmony_ci
6062306a36Sopenharmony_ci&flexspi1 {
6162306a36Sopenharmony_ci	pinctrl-names = "default";
6262306a36Sopenharmony_ci	pinctrl-0 = <&pinctrl_flexspi1>;
6362306a36Sopenharmony_ci	status = "okay";
6462306a36Sopenharmony_ci
6562306a36Sopenharmony_ci	flash0: flash@0 {
6662306a36Sopenharmony_ci		compatible = "jedec,spi-nor";
6762306a36Sopenharmony_ci		reg = <0>;
6862306a36Sopenharmony_ci		/*
6962306a36Sopenharmony_ci		 * no DQS, RXCLKSRC internal loop back, max 66 MHz
7062306a36Sopenharmony_ci		 * clk framework uses CLK_DIVIDER_ROUND_CLOSEST
7162306a36Sopenharmony_ci		 * selected value together with root from
7262306a36Sopenharmony_ci		 * IMX93_CLK_SYS_PLL_PFD1 @ 800.000.000 Hz helps to
7362306a36Sopenharmony_ci		 * respect the maximum value.
7462306a36Sopenharmony_ci		 */
7562306a36Sopenharmony_ci		spi-max-frequency = <62000000>;
7662306a36Sopenharmony_ci		spi-tx-bus-width = <4>;
7762306a36Sopenharmony_ci		spi-rx-bus-width = <4>;
7862306a36Sopenharmony_ci	};
7962306a36Sopenharmony_ci};
8062306a36Sopenharmony_ci
8162306a36Sopenharmony_ci&gpio1 {
8262306a36Sopenharmony_ci	pmic-irq-hog {
8362306a36Sopenharmony_ci		gpio-hog;
8462306a36Sopenharmony_ci		gpios = <3 GPIO_ACTIVE_LOW>;
8562306a36Sopenharmony_ci		input;
8662306a36Sopenharmony_ci		line-name = "PMIC_IRQ#";
8762306a36Sopenharmony_ci	};
8862306a36Sopenharmony_ci};
8962306a36Sopenharmony_ci
9062306a36Sopenharmony_ci&lpi2c1 {
9162306a36Sopenharmony_ci	clock-frequency = <400000>;
9262306a36Sopenharmony_ci	pinctrl-names = "default", "sleep";
9362306a36Sopenharmony_ci	pinctrl-0 = <&pinctrl_lpi2c1>;
9462306a36Sopenharmony_ci	pinctrl-1 = <&pinctrl_lpi2c1>;
9562306a36Sopenharmony_ci	status = "okay";
9662306a36Sopenharmony_ci
9762306a36Sopenharmony_ci	se97_som: temperature-sensor@1b {
9862306a36Sopenharmony_ci		compatible = "nxp,se97b", "jedec,jc-42.4-temp";
9962306a36Sopenharmony_ci		reg = <0x1b>;
10062306a36Sopenharmony_ci	};
10162306a36Sopenharmony_ci
10262306a36Sopenharmony_ci	pcf85063: rtc@51 {
10362306a36Sopenharmony_ci		compatible = "nxp,pcf85063a";
10462306a36Sopenharmony_ci		reg = <0x51>;
10562306a36Sopenharmony_ci		quartz-load-femtofarads = <7000>;
10662306a36Sopenharmony_ci	};
10762306a36Sopenharmony_ci
10862306a36Sopenharmony_ci	eeprom0: eeprom@53 {
10962306a36Sopenharmony_ci		compatible = "nxp,se97b", "atmel,24c02";
11062306a36Sopenharmony_ci		reg = <0x53>;
11162306a36Sopenharmony_ci		pagesize = <16>;
11262306a36Sopenharmony_ci		read-only;
11362306a36Sopenharmony_ci		vcc-supply = <&reg_v3v3>;
11462306a36Sopenharmony_ci	};
11562306a36Sopenharmony_ci
11662306a36Sopenharmony_ci	eeprom1: eeprom@57 {
11762306a36Sopenharmony_ci		compatible = "atmel,24c64";
11862306a36Sopenharmony_ci		reg = <0x57>;
11962306a36Sopenharmony_ci		pagesize = <32>;
12062306a36Sopenharmony_ci		vcc-supply = <&reg_v3v3>;
12162306a36Sopenharmony_ci	};
12262306a36Sopenharmony_ci
12362306a36Sopenharmony_ci	/* protectable identification memory (part of M24C64-D @57) */
12462306a36Sopenharmony_ci	eeprom@5f {
12562306a36Sopenharmony_ci		compatible = "st,24c64", "atmel,24c64";
12662306a36Sopenharmony_ci		reg = <0x5f>;
12762306a36Sopenharmony_ci		size = <32>;
12862306a36Sopenharmony_ci		pagesize = <32>;
12962306a36Sopenharmony_ci		vcc-supply = <&reg_v3v3>;
13062306a36Sopenharmony_ci	};
13162306a36Sopenharmony_ci
13262306a36Sopenharmony_ci	imu@6a {
13362306a36Sopenharmony_ci		compatible = "st,ism330dhcx";
13462306a36Sopenharmony_ci		reg = <0x6a>;
13562306a36Sopenharmony_ci		vdd-supply = <&reg_v3v3>;
13662306a36Sopenharmony_ci		vddio-supply = <&reg_v3v3>;
13762306a36Sopenharmony_ci	};
13862306a36Sopenharmony_ci};
13962306a36Sopenharmony_ci
14062306a36Sopenharmony_ci&usdhc1 {
14162306a36Sopenharmony_ci	pinctrl-names = "default", "state_100mhz", "state_200mhz";
14262306a36Sopenharmony_ci	pinctrl-0 = <&pinctrl_usdhc1>;
14362306a36Sopenharmony_ci	pinctrl-1 = <&pinctrl_usdhc1>;
14462306a36Sopenharmony_ci	pinctrl-2 = <&pinctrl_usdhc1>;
14562306a36Sopenharmony_ci	bus-width = <8>;
14662306a36Sopenharmony_ci	non-removable;
14762306a36Sopenharmony_ci	no-sdio;
14862306a36Sopenharmony_ci	no-sd;
14962306a36Sopenharmony_ci	status = "okay";
15062306a36Sopenharmony_ci};
15162306a36Sopenharmony_ci
15262306a36Sopenharmony_ci&wdog3 {
15362306a36Sopenharmony_ci	pinctrl-names = "default";
15462306a36Sopenharmony_ci	pinctrl-0 = <&pinctrl_wdog>;
15562306a36Sopenharmony_ci	status = "okay";
15662306a36Sopenharmony_ci};
15762306a36Sopenharmony_ci
15862306a36Sopenharmony_ci&iomuxc {
15962306a36Sopenharmony_ci	pinctrl_flexspi1: flexspi1grp {
16062306a36Sopenharmony_ci		fsl,pins = <
16162306a36Sopenharmony_ci			MX93_PAD_SD3_CMD__FLEXSPI1_A_SS0_B	0x3fe
16262306a36Sopenharmony_ci			MX93_PAD_SD3_CLK__FLEXSPI1_A_SCLK	0x3fe
16362306a36Sopenharmony_ci			MX93_PAD_SD3_DATA0__FLEXSPI1_A_DATA00	0x3fe
16462306a36Sopenharmony_ci			MX93_PAD_SD3_DATA1__FLEXSPI1_A_DATA01	0x3fe
16562306a36Sopenharmony_ci			MX93_PAD_SD3_DATA2__FLEXSPI1_A_DATA02	0x3fe
16662306a36Sopenharmony_ci			MX93_PAD_SD3_DATA3__FLEXSPI1_A_DATA03	0x3fe
16762306a36Sopenharmony_ci		>;
16862306a36Sopenharmony_ci	};
16962306a36Sopenharmony_ci
17062306a36Sopenharmony_ci	pinctrl_lpi2c1: lpi2c1grp {
17162306a36Sopenharmony_ci		fsl,pins = <
17262306a36Sopenharmony_ci			MX93_PAD_I2C1_SCL__LPI2C1_SCL		0x40000b9e
17362306a36Sopenharmony_ci			MX93_PAD_I2C1_SDA__LPI2C1_SDA		0x40000b9e
17462306a36Sopenharmony_ci		>;
17562306a36Sopenharmony_ci	};
17662306a36Sopenharmony_ci
17762306a36Sopenharmony_ci	pinctrl_pca9451: pca9451grp {
17862306a36Sopenharmony_ci		fsl,pins = <
17962306a36Sopenharmony_ci			MX93_PAD_I2C2_SDA__GPIO1_IO03		0x1306
18062306a36Sopenharmony_ci		>;
18162306a36Sopenharmony_ci	};
18262306a36Sopenharmony_ci
18362306a36Sopenharmony_ci	pinctrl_reg_usdhc2_vmmc: regusdhc2vmmcgrp {
18462306a36Sopenharmony_ci		fsl,pins = <
18562306a36Sopenharmony_ci			MX93_PAD_SD2_RESET_B__GPIO3_IO07	0x1306
18662306a36Sopenharmony_ci		>;
18762306a36Sopenharmony_ci	};
18862306a36Sopenharmony_ci
18962306a36Sopenharmony_ci	pinctrl_usdhc1: usdhc1grp {
19062306a36Sopenharmony_ci		fsl,pins = <
19162306a36Sopenharmony_ci			/* HYS | PU | PD | FSEL_3 | X5 */
19262306a36Sopenharmony_ci			MX93_PAD_SD1_CLK__USDHC1_CLK		0x17be
19362306a36Sopenharmony_ci			MX93_PAD_SD1_STROBE__USDHC1_STROBE	0x17be
19462306a36Sopenharmony_ci			/* HYS | PU | FSEL_3 | X5 */
19562306a36Sopenharmony_ci			MX93_PAD_SD1_CMD__USDHC1_CMD		0x13be
19662306a36Sopenharmony_ci			/* HYS | PU | FSEL_3 | X4 */
19762306a36Sopenharmony_ci			MX93_PAD_SD1_DATA0__USDHC1_DATA0	0x139e
19862306a36Sopenharmony_ci			MX93_PAD_SD1_DATA1__USDHC1_DATA1	0x139e
19962306a36Sopenharmony_ci			MX93_PAD_SD1_DATA2__USDHC1_DATA2	0x139e
20062306a36Sopenharmony_ci			MX93_PAD_SD1_DATA3__USDHC1_DATA3	0x139e
20162306a36Sopenharmony_ci			MX93_PAD_SD1_DATA4__USDHC1_DATA4	0x139e
20262306a36Sopenharmony_ci			MX93_PAD_SD1_DATA5__USDHC1_DATA5	0x139e
20362306a36Sopenharmony_ci			MX93_PAD_SD1_DATA6__USDHC1_DATA6	0x139e
20462306a36Sopenharmony_ci			MX93_PAD_SD1_DATA7__USDHC1_DATA7	0x139e
20562306a36Sopenharmony_ci		>;
20662306a36Sopenharmony_ci	};
20762306a36Sopenharmony_ci
20862306a36Sopenharmony_ci	pinctrl_wdog: wdoggrp {
20962306a36Sopenharmony_ci		fsl,pins = <
21062306a36Sopenharmony_ci			MX93_PAD_WDOG_ANY__WDOG1_WDOG_ANY	0x31e
21162306a36Sopenharmony_ci		>;
21262306a36Sopenharmony_ci	};
21362306a36Sopenharmony_ci};
214