162306a36Sopenharmony_ci// SPDX-License-Identifier: (GPL-2.0 OR MIT)
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * Copyright (C) 2018 Jon Nettleton <jon@solid-run.com>
462306a36Sopenharmony_ci */
562306a36Sopenharmony_ci
662306a36Sopenharmony_ci#include "imx8mq.dtsi"
762306a36Sopenharmony_ci
862306a36Sopenharmony_ci/ {
962306a36Sopenharmony_ci	reg_vdd_3v3: regulator-vdd-3v3 {
1062306a36Sopenharmony_ci		compatible = "regulator-fixed";
1162306a36Sopenharmony_ci		regulator-always-on;
1262306a36Sopenharmony_ci		regulator-name = "vdd_3v3";
1362306a36Sopenharmony_ci		regulator-min-microvolt = <3300000>;
1462306a36Sopenharmony_ci		regulator-max-microvolt = <3300000>;
1562306a36Sopenharmony_ci	};
1662306a36Sopenharmony_ci};
1762306a36Sopenharmony_ci
1862306a36Sopenharmony_ci&fec1 {
1962306a36Sopenharmony_ci	pinctrl-names = "default";
2062306a36Sopenharmony_ci	pinctrl-0 = <&pinctrl_fec1>;
2162306a36Sopenharmony_ci	phy-mode = "rgmii-id";
2262306a36Sopenharmony_ci	phy-handle = <&ethphy0>;
2362306a36Sopenharmony_ci	fsl,magic-packet;
2462306a36Sopenharmony_ci	status = "okay";
2562306a36Sopenharmony_ci
2662306a36Sopenharmony_ci	mdio {
2762306a36Sopenharmony_ci		#address-cells = <1>;
2862306a36Sopenharmony_ci		#size-cells = <0>;
2962306a36Sopenharmony_ci
3062306a36Sopenharmony_ci		ethphy0: ethernet-phy@4 {
3162306a36Sopenharmony_ci			compatible = "ethernet-phy-ieee802.3-c22";
3262306a36Sopenharmony_ci			reg = <4>;
3362306a36Sopenharmony_ci			reset-gpios = <&gpio1 9 GPIO_ACTIVE_LOW>;
3462306a36Sopenharmony_ci			reset-assert-us = <2000>;
3562306a36Sopenharmony_ci		};
3662306a36Sopenharmony_ci	};
3762306a36Sopenharmony_ci};
3862306a36Sopenharmony_ci
3962306a36Sopenharmony_ci&i2c1 {
4062306a36Sopenharmony_ci	pinctrl-names = "default";
4162306a36Sopenharmony_ci	pinctrl-0 = <&pinctrl_i2c1>;
4262306a36Sopenharmony_ci	clock-frequency = <400000>;
4362306a36Sopenharmony_ci	status = "okay";
4462306a36Sopenharmony_ci
4562306a36Sopenharmony_ci	pmic: pmic@8 {
4662306a36Sopenharmony_ci		compatible = "fsl,pfuze100";
4762306a36Sopenharmony_ci		reg = <0x08>;
4862306a36Sopenharmony_ci
4962306a36Sopenharmony_ci		regulators {
5062306a36Sopenharmony_ci			sw1a_reg: sw1ab {
5162306a36Sopenharmony_ci				regulator-min-microvolt = <300000>;
5262306a36Sopenharmony_ci				regulator-max-microvolt = <1875000>;
5362306a36Sopenharmony_ci			};
5462306a36Sopenharmony_ci
5562306a36Sopenharmony_ci			sw1c_reg: sw1c {
5662306a36Sopenharmony_ci				regulator-min-microvolt = <300000>;
5762306a36Sopenharmony_ci				regulator-max-microvolt = <1875000>;
5862306a36Sopenharmony_ci			};
5962306a36Sopenharmony_ci
6062306a36Sopenharmony_ci			sw2_reg: sw2 {
6162306a36Sopenharmony_ci				regulator-min-microvolt = <800000>;
6262306a36Sopenharmony_ci				regulator-max-microvolt = <3300000>;
6362306a36Sopenharmony_ci				regulator-always-on;
6462306a36Sopenharmony_ci			};
6562306a36Sopenharmony_ci
6662306a36Sopenharmony_ci			sw3a_reg: sw3ab {
6762306a36Sopenharmony_ci				regulator-min-microvolt = <400000>;
6862306a36Sopenharmony_ci				regulator-max-microvolt = <1975000>;
6962306a36Sopenharmony_ci				regulator-always-on;
7062306a36Sopenharmony_ci			};
7162306a36Sopenharmony_ci
7262306a36Sopenharmony_ci			sw4_reg: sw4 {
7362306a36Sopenharmony_ci				regulator-min-microvolt = <800000>;
7462306a36Sopenharmony_ci				regulator-max-microvolt = <3300000>;
7562306a36Sopenharmony_ci				regulator-always-on;
7662306a36Sopenharmony_ci			};
7762306a36Sopenharmony_ci
7862306a36Sopenharmony_ci			swbst_reg: swbst {
7962306a36Sopenharmony_ci				regulator-min-microvolt = <5000000>;
8062306a36Sopenharmony_ci				regulator-max-microvolt = <5150000>;
8162306a36Sopenharmony_ci			};
8262306a36Sopenharmony_ci
8362306a36Sopenharmony_ci			snvs_reg: vsnvs {
8462306a36Sopenharmony_ci				regulator-min-microvolt = <1000000>;
8562306a36Sopenharmony_ci				regulator-max-microvolt = <3000000>;
8662306a36Sopenharmony_ci				regulator-always-on;
8762306a36Sopenharmony_ci			};
8862306a36Sopenharmony_ci
8962306a36Sopenharmony_ci			vref_reg: vrefddr {
9062306a36Sopenharmony_ci				regulator-always-on;
9162306a36Sopenharmony_ci			};
9262306a36Sopenharmony_ci
9362306a36Sopenharmony_ci			vgen1_reg: vgen1 {
9462306a36Sopenharmony_ci				regulator-min-microvolt = <800000>;
9562306a36Sopenharmony_ci				regulator-max-microvolt = <1550000>;
9662306a36Sopenharmony_ci			};
9762306a36Sopenharmony_ci
9862306a36Sopenharmony_ci			vgen2_reg: vgen2 {
9962306a36Sopenharmony_ci				regulator-min-microvolt = <800000>;
10062306a36Sopenharmony_ci				regulator-max-microvolt = <1550000>;
10162306a36Sopenharmony_ci				regulator-always-on;
10262306a36Sopenharmony_ci			};
10362306a36Sopenharmony_ci
10462306a36Sopenharmony_ci			vgen3_reg: vgen3 {
10562306a36Sopenharmony_ci				regulator-min-microvolt = <1800000>;
10662306a36Sopenharmony_ci				regulator-max-microvolt = <3300000>;
10762306a36Sopenharmony_ci				regulator-always-on;
10862306a36Sopenharmony_ci			};
10962306a36Sopenharmony_ci
11062306a36Sopenharmony_ci			vgen4_reg: vgen4 {
11162306a36Sopenharmony_ci				regulator-min-microvolt = <1800000>;
11262306a36Sopenharmony_ci				regulator-max-microvolt = <3300000>;
11362306a36Sopenharmony_ci				regulator-always-on;
11462306a36Sopenharmony_ci			};
11562306a36Sopenharmony_ci
11662306a36Sopenharmony_ci			vgen5_reg: vgen5 {
11762306a36Sopenharmony_ci				regulator-min-microvolt = <1800000>;
11862306a36Sopenharmony_ci				regulator-max-microvolt = <3300000>;
11962306a36Sopenharmony_ci				regulator-always-on;
12062306a36Sopenharmony_ci			};
12162306a36Sopenharmony_ci
12262306a36Sopenharmony_ci			vgen6_reg: vgen6 {
12362306a36Sopenharmony_ci				regulator-min-microvolt = <1800000>;
12462306a36Sopenharmony_ci				regulator-max-microvolt = <3300000>;
12562306a36Sopenharmony_ci			};
12662306a36Sopenharmony_ci		};
12762306a36Sopenharmony_ci	};
12862306a36Sopenharmony_ci
12962306a36Sopenharmony_ci	eeprom@50 {
13062306a36Sopenharmony_ci		compatible = "atmel,24c01";
13162306a36Sopenharmony_ci		reg = <0x50>;
13262306a36Sopenharmony_ci		status = "okay";
13362306a36Sopenharmony_ci	};
13462306a36Sopenharmony_ci};
13562306a36Sopenharmony_ci
13662306a36Sopenharmony_ci&pgc_gpu {
13762306a36Sopenharmony_ci	power-supply = <&sw1a_reg>;
13862306a36Sopenharmony_ci};
13962306a36Sopenharmony_ci
14062306a36Sopenharmony_ci&pgc_vpu {
14162306a36Sopenharmony_ci	power-supply = <&sw1c_reg>;
14262306a36Sopenharmony_ci};
14362306a36Sopenharmony_ci
14462306a36Sopenharmony_ci&qspi0 {
14562306a36Sopenharmony_ci	pinctrl-names = "default";
14662306a36Sopenharmony_ci	pinctrl-0 = <&pinctrl_qspi>;
14762306a36Sopenharmony_ci	status = "okay";
14862306a36Sopenharmony_ci
14962306a36Sopenharmony_ci	/* SPI flash; not assembled by default */
15062306a36Sopenharmony_ci	spi_flash: flash@0 {
15162306a36Sopenharmony_ci		#address-cells = <1>;
15262306a36Sopenharmony_ci		#size-cells = <1>;
15362306a36Sopenharmony_ci		reg = <0>;
15462306a36Sopenharmony_ci		compatible = "micron,n25q256a", "jedec,spi-nor";
15562306a36Sopenharmony_ci		spi-max-frequency = <29000000>;
15662306a36Sopenharmony_ci		status = "disabled";
15762306a36Sopenharmony_ci	};
15862306a36Sopenharmony_ci};
15962306a36Sopenharmony_ci
16062306a36Sopenharmony_ci&uart1 { /* console */
16162306a36Sopenharmony_ci	pinctrl-names = "default";
16262306a36Sopenharmony_ci	pinctrl-0 = <&pinctrl_uart1>;
16362306a36Sopenharmony_ci	assigned-clocks = <&clk IMX8MQ_CLK_UART1>;
16462306a36Sopenharmony_ci	assigned-clock-parents = <&clk IMX8MQ_CLK_25M>;
16562306a36Sopenharmony_ci	assigned-clock-rates = <25000000>;
16662306a36Sopenharmony_ci	status = "okay";
16762306a36Sopenharmony_ci};
16862306a36Sopenharmony_ci
16962306a36Sopenharmony_ci&uart4 { /* ublox BT */
17062306a36Sopenharmony_ci	pinctrl-names = "default";
17162306a36Sopenharmony_ci	pinctrl-0 = <&pinctrl_uart4>;
17262306a36Sopenharmony_ci	assigned-clocks = <&clk IMX8MQ_CLK_UART4>;
17362306a36Sopenharmony_ci	assigned-clock-parents = <&clk IMX8MQ_SYS1_PLL_80M>;
17462306a36Sopenharmony_ci	assigned-clock-rates = <80000000>;
17562306a36Sopenharmony_ci	status = "okay";
17662306a36Sopenharmony_ci};
17762306a36Sopenharmony_ci
17862306a36Sopenharmony_ci&usdhc1 {
17962306a36Sopenharmony_ci	assigned-clocks = <&clk IMX8MQ_CLK_USDHC1>;
18062306a36Sopenharmony_ci	assigned-clock-rates = <400000000>;
18162306a36Sopenharmony_ci	pinctrl-names = "default", "state_100mhz", "state_200mhz";
18262306a36Sopenharmony_ci	pinctrl-0 = <&pinctrl_usdhc1>;
18362306a36Sopenharmony_ci	pinctrl-1 = <&pinctrl_usdhc1_100mhz>;
18462306a36Sopenharmony_ci	pinctrl-2 = <&pinctrl_usdhc1_200mhz>;
18562306a36Sopenharmony_ci	bus-width = <8>;
18662306a36Sopenharmony_ci	non-removable;
18762306a36Sopenharmony_ci	status = "okay";
18862306a36Sopenharmony_ci};
18962306a36Sopenharmony_ci
19062306a36Sopenharmony_ci&wdog1 {
19162306a36Sopenharmony_ci	pinctrl-names = "default";
19262306a36Sopenharmony_ci	pinctrl-0 = <&pinctrl_wdog>;
19362306a36Sopenharmony_ci	fsl,ext-reset-output;
19462306a36Sopenharmony_ci	status = "okay";
19562306a36Sopenharmony_ci};
19662306a36Sopenharmony_ci
19762306a36Sopenharmony_ci&iomuxc {
19862306a36Sopenharmony_ci	pinctrl_fec1: fec1grp {
19962306a36Sopenharmony_ci		fsl,pins = <
20062306a36Sopenharmony_ci			MX8MQ_IOMUXC_ENET_MDC_ENET1_MDC		0x3
20162306a36Sopenharmony_ci			MX8MQ_IOMUXC_ENET_MDIO_ENET1_MDIO	0x23
20262306a36Sopenharmony_ci			MX8MQ_IOMUXC_ENET_TD3_ENET1_RGMII_TD3	0x1f
20362306a36Sopenharmony_ci			MX8MQ_IOMUXC_ENET_TD2_ENET1_RGMII_TD2	0x1f
20462306a36Sopenharmony_ci			MX8MQ_IOMUXC_ENET_TD1_ENET1_RGMII_TD1	0x1f
20562306a36Sopenharmony_ci			MX8MQ_IOMUXC_ENET_TD0_ENET1_RGMII_TD0	0x1f
20662306a36Sopenharmony_ci			MX8MQ_IOMUXC_ENET_RD3_ENET1_RGMII_RD3	0x91
20762306a36Sopenharmony_ci			MX8MQ_IOMUXC_ENET_RD2_ENET1_RGMII_RD2	0x91
20862306a36Sopenharmony_ci			MX8MQ_IOMUXC_ENET_RD1_ENET1_RGMII_RD1	0x91
20962306a36Sopenharmony_ci			MX8MQ_IOMUXC_ENET_RD0_ENET1_RGMII_RD0	0x91
21062306a36Sopenharmony_ci			MX8MQ_IOMUXC_ENET_TXC_ENET1_RGMII_TXC	0x1f
21162306a36Sopenharmony_ci			MX8MQ_IOMUXC_ENET_RXC_ENET1_RGMII_RXC	0x91
21262306a36Sopenharmony_ci			MX8MQ_IOMUXC_ENET_RX_CTL_ENET1_RGMII_RX_CTL	0x91
21362306a36Sopenharmony_ci			MX8MQ_IOMUXC_ENET_TX_CTL_ENET1_RGMII_TX_CTL	0x1f
21462306a36Sopenharmony_ci			MX8MQ_IOMUXC_GPIO1_IO09_GPIO1_IO9	0x19
21562306a36Sopenharmony_ci		>;
21662306a36Sopenharmony_ci	};
21762306a36Sopenharmony_ci
21862306a36Sopenharmony_ci	pinctrl_i2c1: i2c1grp {
21962306a36Sopenharmony_ci		fsl,pins = <
22062306a36Sopenharmony_ci			MX8MQ_IOMUXC_I2C1_SCL_I2C1_SCL			0x4000007f
22162306a36Sopenharmony_ci			MX8MQ_IOMUXC_I2C1_SDA_I2C1_SDA			0x4000007f
22262306a36Sopenharmony_ci		>;
22362306a36Sopenharmony_ci	};
22462306a36Sopenharmony_ci
22562306a36Sopenharmony_ci	pinctrl_pcie0: pcie0grp {
22662306a36Sopenharmony_ci		fsl,pins = <
22762306a36Sopenharmony_ci			MX8MQ_IOMUXC_I2C4_SCL_PCIE1_CLKREQ_B	0x74
22862306a36Sopenharmony_ci			MX8MQ_IOMUXC_SPDIF_EXT_CLK_GPIO5_IO5	0x16
22962306a36Sopenharmony_ci			MX8MQ_IOMUXC_SAI2_RXFS_GPIO4_IO21	0x16
23062306a36Sopenharmony_ci		>;
23162306a36Sopenharmony_ci	};
23262306a36Sopenharmony_ci
23362306a36Sopenharmony_ci	pinctrl_qspi: qspigrp {
23462306a36Sopenharmony_ci		fsl,pins = <
23562306a36Sopenharmony_ci			MX8MQ_IOMUXC_NAND_ALE_QSPI_A_SCLK	0x82
23662306a36Sopenharmony_ci			MX8MQ_IOMUXC_NAND_CE0_B_QSPI_A_SS0_B	0x82
23762306a36Sopenharmony_ci			MX8MQ_IOMUXC_NAND_DATA00_QSPI_A_DATA0	0x82
23862306a36Sopenharmony_ci			MX8MQ_IOMUXC_NAND_DATA01_QSPI_A_DATA1	0x82
23962306a36Sopenharmony_ci			MX8MQ_IOMUXC_NAND_DATA02_QSPI_A_DATA2	0x82
24062306a36Sopenharmony_ci			MX8MQ_IOMUXC_NAND_DATA03_QSPI_A_DATA3	0x82
24162306a36Sopenharmony_ci
24262306a36Sopenharmony_ci		>;
24362306a36Sopenharmony_ci	};
24462306a36Sopenharmony_ci
24562306a36Sopenharmony_ci	pinctrl_uart1: uart1grp {
24662306a36Sopenharmony_ci		fsl,pins = <
24762306a36Sopenharmony_ci			MX8MQ_IOMUXC_UART1_RXD_UART1_DCE_RX		0x49
24862306a36Sopenharmony_ci			MX8MQ_IOMUXC_UART1_TXD_UART1_DCE_TX		0x49
24962306a36Sopenharmony_ci			MX8MQ_IOMUXC_NAND_CE1_B_GPIO3_IO2		0x19
25062306a36Sopenharmony_ci		>;
25162306a36Sopenharmony_ci	};
25262306a36Sopenharmony_ci
25362306a36Sopenharmony_ci	pinctrl_uart4: uart4grp {
25462306a36Sopenharmony_ci		fsl,pins = <
25562306a36Sopenharmony_ci			MX8MQ_IOMUXC_UART4_TXD_UART4_DCE_TX		0x49
25662306a36Sopenharmony_ci			MX8MQ_IOMUXC_UART4_RXD_UART4_DCE_RX		0x49
25762306a36Sopenharmony_ci			MX8MQ_IOMUXC_SAI3_TXD_GPIO5_IO1			0x19
25862306a36Sopenharmony_ci		>;
25962306a36Sopenharmony_ci	};
26062306a36Sopenharmony_ci
26162306a36Sopenharmony_ci	pinctrl_usdhc1: usdhc1grp {
26262306a36Sopenharmony_ci		fsl,pins = <
26362306a36Sopenharmony_ci			MX8MQ_IOMUXC_SD1_CLK_USDHC1_CLK			0x83
26462306a36Sopenharmony_ci			MX8MQ_IOMUXC_SD1_CMD_USDHC1_CMD			0xc3
26562306a36Sopenharmony_ci			MX8MQ_IOMUXC_SD1_DATA0_USDHC1_DATA0		0xc3
26662306a36Sopenharmony_ci			MX8MQ_IOMUXC_SD1_DATA1_USDHC1_DATA1		0xc3
26762306a36Sopenharmony_ci			MX8MQ_IOMUXC_SD1_DATA2_USDHC1_DATA2		0xc3
26862306a36Sopenharmony_ci			MX8MQ_IOMUXC_SD1_DATA3_USDHC1_DATA3		0xc3
26962306a36Sopenharmony_ci			MX8MQ_IOMUXC_SD1_DATA4_USDHC1_DATA4		0xc3
27062306a36Sopenharmony_ci			MX8MQ_IOMUXC_SD1_DATA5_USDHC1_DATA5		0xc3
27162306a36Sopenharmony_ci			MX8MQ_IOMUXC_SD1_DATA6_USDHC1_DATA6		0xc3
27262306a36Sopenharmony_ci			MX8MQ_IOMUXC_SD1_DATA7_USDHC1_DATA7		0xc3
27362306a36Sopenharmony_ci			MX8MQ_IOMUXC_SD1_STROBE_USDHC1_STROBE		0x83
27462306a36Sopenharmony_ci			MX8MQ_IOMUXC_SD1_RESET_B_USDHC1_RESET_B		0xc1
27562306a36Sopenharmony_ci		>;
27662306a36Sopenharmony_ci	};
27762306a36Sopenharmony_ci
27862306a36Sopenharmony_ci	pinctrl_usdhc1_100mhz: usdhc1-100mhzgrp {
27962306a36Sopenharmony_ci		fsl,pins = <
28062306a36Sopenharmony_ci			MX8MQ_IOMUXC_SD1_CLK_USDHC1_CLK			0x8d
28162306a36Sopenharmony_ci			MX8MQ_IOMUXC_SD1_CMD_USDHC1_CMD			0xcd
28262306a36Sopenharmony_ci			MX8MQ_IOMUXC_SD1_DATA0_USDHC1_DATA0		0xcd
28362306a36Sopenharmony_ci			MX8MQ_IOMUXC_SD1_DATA1_USDHC1_DATA1		0xcd
28462306a36Sopenharmony_ci			MX8MQ_IOMUXC_SD1_DATA2_USDHC1_DATA2		0xcd
28562306a36Sopenharmony_ci			MX8MQ_IOMUXC_SD1_DATA3_USDHC1_DATA3		0xcd
28662306a36Sopenharmony_ci			MX8MQ_IOMUXC_SD1_DATA4_USDHC1_DATA4		0xcd
28762306a36Sopenharmony_ci			MX8MQ_IOMUXC_SD1_DATA5_USDHC1_DATA5		0xcd
28862306a36Sopenharmony_ci			MX8MQ_IOMUXC_SD1_DATA6_USDHC1_DATA6		0xcd
28962306a36Sopenharmony_ci			MX8MQ_IOMUXC_SD1_DATA7_USDHC1_DATA7		0xcd
29062306a36Sopenharmony_ci			MX8MQ_IOMUXC_SD1_STROBE_USDHC1_STROBE		0x8d
29162306a36Sopenharmony_ci			MX8MQ_IOMUXC_SD1_RESET_B_USDHC1_RESET_B		0xc1
29262306a36Sopenharmony_ci		>;
29362306a36Sopenharmony_ci	};
29462306a36Sopenharmony_ci
29562306a36Sopenharmony_ci	pinctrl_usdhc1_200mhz: usdhc1-200mhzgrp {
29662306a36Sopenharmony_ci		fsl,pins = <
29762306a36Sopenharmony_ci			MX8MQ_IOMUXC_SD1_CLK_USDHC1_CLK			0x9f
29862306a36Sopenharmony_ci			MX8MQ_IOMUXC_SD1_CMD_USDHC1_CMD			0xdf
29962306a36Sopenharmony_ci			MX8MQ_IOMUXC_SD1_DATA0_USDHC1_DATA0		0xdf
30062306a36Sopenharmony_ci			MX8MQ_IOMUXC_SD1_DATA1_USDHC1_DATA1		0xdf
30162306a36Sopenharmony_ci			MX8MQ_IOMUXC_SD1_DATA2_USDHC1_DATA2		0xdf
30262306a36Sopenharmony_ci			MX8MQ_IOMUXC_SD1_DATA3_USDHC1_DATA3		0xdf
30362306a36Sopenharmony_ci			MX8MQ_IOMUXC_SD1_DATA4_USDHC1_DATA4		0xdf
30462306a36Sopenharmony_ci			MX8MQ_IOMUXC_SD1_DATA5_USDHC1_DATA5		0xdf
30562306a36Sopenharmony_ci			MX8MQ_IOMUXC_SD1_DATA6_USDHC1_DATA6		0xdf
30662306a36Sopenharmony_ci			MX8MQ_IOMUXC_SD1_DATA7_USDHC1_DATA7		0xdf
30762306a36Sopenharmony_ci			MX8MQ_IOMUXC_SD1_STROBE_USDHC1_STROBE		0x9f
30862306a36Sopenharmony_ci			MX8MQ_IOMUXC_SD1_RESET_B_USDHC1_RESET_B		0xc1
30962306a36Sopenharmony_ci		>;
31062306a36Sopenharmony_ci	};
31162306a36Sopenharmony_ci
31262306a36Sopenharmony_ci	pinctrl_wdog: wdoggrp {
31362306a36Sopenharmony_ci		fsl,pins = <
31462306a36Sopenharmony_ci			MX8MQ_IOMUXC_GPIO1_IO02_WDOG1_WDOG_B 0xc6
31562306a36Sopenharmony_ci		>;
31662306a36Sopenharmony_ci	};
31762306a36Sopenharmony_ci};
318