162306a36Sopenharmony_ci// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
262306a36Sopenharmony_ci
362306a36Sopenharmony_ci/*
462306a36Sopenharmony_ci * Copyright 2019-2021 MNT Research GmbH
562306a36Sopenharmony_ci * Copyright 2021 Lucas Stach <dev@lynxeye.de>
662306a36Sopenharmony_ci */
762306a36Sopenharmony_ci
862306a36Sopenharmony_ci/dts-v1/;
962306a36Sopenharmony_ci
1062306a36Sopenharmony_ci#include "imx8mq-nitrogen-som.dtsi"
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_ci/ {
1362306a36Sopenharmony_ci	model = "MNT Reform 2";
1462306a36Sopenharmony_ci	compatible = "mntre,reform2", "boundary,imx8mq-nitrogen8m-som", "fsl,imx8mq";
1562306a36Sopenharmony_ci	chassis-type = "laptop";
1662306a36Sopenharmony_ci
1762306a36Sopenharmony_ci	backlight: backlight {
1862306a36Sopenharmony_ci		compatible = "pwm-backlight";
1962306a36Sopenharmony_ci		pinctrl-names = "default";
2062306a36Sopenharmony_ci		pinctrl-0 = <&pinctrl_backlight>;
2162306a36Sopenharmony_ci		pwms = <&pwm2 0 10000 0>;
2262306a36Sopenharmony_ci		power-supply = <&reg_main_usb>;
2362306a36Sopenharmony_ci		enable-gpios = <&gpio1 10 GPIO_ACTIVE_HIGH>;
2462306a36Sopenharmony_ci		brightness-levels = <0 32 64 128 160 200 255>;
2562306a36Sopenharmony_ci		default-brightness-level = <6>;
2662306a36Sopenharmony_ci	};
2762306a36Sopenharmony_ci
2862306a36Sopenharmony_ci	panel {
2962306a36Sopenharmony_ci		compatible = "innolux,n125hce-gn1";
3062306a36Sopenharmony_ci		power-supply = <&reg_main_3v3>;
3162306a36Sopenharmony_ci		backlight = <&backlight>;
3262306a36Sopenharmony_ci		no-hpd;
3362306a36Sopenharmony_ci
3462306a36Sopenharmony_ci		port {
3562306a36Sopenharmony_ci			panel_in: endpoint {
3662306a36Sopenharmony_ci				remote-endpoint = <&edp_bridge_out>;
3762306a36Sopenharmony_ci			};
3862306a36Sopenharmony_ci		};
3962306a36Sopenharmony_ci	};
4062306a36Sopenharmony_ci
4162306a36Sopenharmony_ci	pcie1_refclk: clock-pcie1-refclk {
4262306a36Sopenharmony_ci		compatible = "fixed-clock";
4362306a36Sopenharmony_ci		#clock-cells = <0>;
4462306a36Sopenharmony_ci		clock-frequency = <100000000>;
4562306a36Sopenharmony_ci	};
4662306a36Sopenharmony_ci
4762306a36Sopenharmony_ci	reg_main_5v: regulator-main-5v {
4862306a36Sopenharmony_ci		compatible = "regulator-fixed";
4962306a36Sopenharmony_ci		regulator-name = "5V";
5062306a36Sopenharmony_ci		regulator-min-microvolt = <5000000>;
5162306a36Sopenharmony_ci		regulator-max-microvolt = <5000000>;
5262306a36Sopenharmony_ci	};
5362306a36Sopenharmony_ci
5462306a36Sopenharmony_ci	reg_main_3v3: regulator-main-3v3 {
5562306a36Sopenharmony_ci		compatible = "regulator-fixed";
5662306a36Sopenharmony_ci		regulator-name = "3V3";
5762306a36Sopenharmony_ci		regulator-min-microvolt = <3300000>;
5862306a36Sopenharmony_ci		regulator-max-microvolt = <3300000>;
5962306a36Sopenharmony_ci	};
6062306a36Sopenharmony_ci
6162306a36Sopenharmony_ci	reg_main_usb: regulator-main-usb {
6262306a36Sopenharmony_ci		compatible = "regulator-fixed";
6362306a36Sopenharmony_ci		regulator-name = "USB_PWR";
6462306a36Sopenharmony_ci		regulator-min-microvolt = <5000000>;
6562306a36Sopenharmony_ci		regulator-max-microvolt = <5000000>;
6662306a36Sopenharmony_ci		vin-supply = <&reg_main_5v>;
6762306a36Sopenharmony_ci	};
6862306a36Sopenharmony_ci
6962306a36Sopenharmony_ci	reg_main_1v8: regulator-main-1v8 {
7062306a36Sopenharmony_ci		compatible = "regulator-fixed";
7162306a36Sopenharmony_ci		regulator-name = "1V8";
7262306a36Sopenharmony_ci		regulator-min-microvolt = <1800000>;
7362306a36Sopenharmony_ci		regulator-max-microvolt = <1800000>;
7462306a36Sopenharmony_ci		vin-supply = <&reg_main_3v3>;
7562306a36Sopenharmony_ci	};
7662306a36Sopenharmony_ci
7762306a36Sopenharmony_ci	reg_main_1v2: regulator-main-1v2 {
7862306a36Sopenharmony_ci		compatible = "regulator-fixed";
7962306a36Sopenharmony_ci		regulator-name = "1V2";
8062306a36Sopenharmony_ci		regulator-min-microvolt = <1200000>;
8162306a36Sopenharmony_ci		regulator-max-microvolt = <1200000>;
8262306a36Sopenharmony_ci		vin-supply = <&reg_main_5v>;
8362306a36Sopenharmony_ci	};
8462306a36Sopenharmony_ci
8562306a36Sopenharmony_ci	sound {
8662306a36Sopenharmony_ci		compatible = "fsl,imx-audio-wm8960";
8762306a36Sopenharmony_ci		audio-cpu = <&sai2>;
8862306a36Sopenharmony_ci		audio-codec = <&wm8960>;
8962306a36Sopenharmony_ci		audio-routing =
9062306a36Sopenharmony_ci			"Headphone Jack", "HP_L",
9162306a36Sopenharmony_ci			"Headphone Jack", "HP_R",
9262306a36Sopenharmony_ci			"Ext Spk", "SPK_LP",
9362306a36Sopenharmony_ci			"Ext Spk", "SPK_LN",
9462306a36Sopenharmony_ci			"Ext Spk", "SPK_RP",
9562306a36Sopenharmony_ci			"Ext Spk", "SPK_RN",
9662306a36Sopenharmony_ci			"LINPUT1", "Mic Jack",
9762306a36Sopenharmony_ci			"Mic Jack", "MICB",
9862306a36Sopenharmony_ci			"LINPUT2", "Line In Jack",
9962306a36Sopenharmony_ci			"RINPUT2", "Line In Jack";
10062306a36Sopenharmony_ci		model = "wm8960-audio";
10162306a36Sopenharmony_ci	};
10262306a36Sopenharmony_ci};
10362306a36Sopenharmony_ci
10462306a36Sopenharmony_ci&dphy {
10562306a36Sopenharmony_ci	assigned-clocks = <&clk IMX8MQ_CLK_DSI_PHY_REF>;
10662306a36Sopenharmony_ci	assigned-clock-parents = <&clk IMX8MQ_SYS1_PLL_800M>;
10762306a36Sopenharmony_ci	assigned-clock-rates = <25000000>;
10862306a36Sopenharmony_ci	status = "okay";
10962306a36Sopenharmony_ci};
11062306a36Sopenharmony_ci
11162306a36Sopenharmony_ci&fec1 {
11262306a36Sopenharmony_ci	status = "okay";
11362306a36Sopenharmony_ci};
11462306a36Sopenharmony_ci
11562306a36Sopenharmony_ci&i2c3 {
11662306a36Sopenharmony_ci	pinctrl-names = "default";
11762306a36Sopenharmony_ci	pinctrl-0 = <&pinctrl_i2c3>;
11862306a36Sopenharmony_ci	status = "okay";
11962306a36Sopenharmony_ci
12062306a36Sopenharmony_ci	wm8960: codec@1a {
12162306a36Sopenharmony_ci		compatible = "wlf,wm8960";
12262306a36Sopenharmony_ci		reg = <0x1a>;
12362306a36Sopenharmony_ci		clocks = <&clk IMX8MQ_CLK_SAI2_ROOT>;
12462306a36Sopenharmony_ci		clock-names = "mclk";
12562306a36Sopenharmony_ci		#sound-dai-cells = <0>;
12662306a36Sopenharmony_ci	};
12762306a36Sopenharmony_ci
12862306a36Sopenharmony_ci	rtc@68 {
12962306a36Sopenharmony_ci		compatible = "nxp,pcf8523";
13062306a36Sopenharmony_ci		reg = <0x68>;
13162306a36Sopenharmony_ci	};
13262306a36Sopenharmony_ci};
13362306a36Sopenharmony_ci
13462306a36Sopenharmony_ci&i2c4 {
13562306a36Sopenharmony_ci	pinctrl-names = "default";
13662306a36Sopenharmony_ci	pinctrl-0 = <&pinctrl_i2c4>;
13762306a36Sopenharmony_ci	clock-frequency = <400000>;
13862306a36Sopenharmony_ci	status = "okay";
13962306a36Sopenharmony_ci
14062306a36Sopenharmony_ci	edp_bridge: bridge@2c {
14162306a36Sopenharmony_ci		compatible = "ti,sn65dsi86";
14262306a36Sopenharmony_ci		pinctrl-names = "default";
14362306a36Sopenharmony_ci		pinctrl-0 = <&pinctrl_edp_bridge>;
14462306a36Sopenharmony_ci		reg = <0x2c>;
14562306a36Sopenharmony_ci		enable-gpios = <&gpio3 20 GPIO_ACTIVE_HIGH>;
14662306a36Sopenharmony_ci		vccio-supply = <&reg_main_1v8>;
14762306a36Sopenharmony_ci		vpll-supply = <&reg_main_1v8>;
14862306a36Sopenharmony_ci		vcca-supply = <&reg_main_1v2>;
14962306a36Sopenharmony_ci		vcc-supply = <&reg_main_1v2>;
15062306a36Sopenharmony_ci
15162306a36Sopenharmony_ci		ports {
15262306a36Sopenharmony_ci			#address-cells = <1>;
15362306a36Sopenharmony_ci			#size-cells = <0>;
15462306a36Sopenharmony_ci
15562306a36Sopenharmony_ci			port@0 {
15662306a36Sopenharmony_ci				reg = <0>;
15762306a36Sopenharmony_ci
15862306a36Sopenharmony_ci				edp_bridge_in: endpoint {
15962306a36Sopenharmony_ci					remote-endpoint = <&mipi_dsi_out>;
16062306a36Sopenharmony_ci				};
16162306a36Sopenharmony_ci			};
16262306a36Sopenharmony_ci
16362306a36Sopenharmony_ci			port@1 {
16462306a36Sopenharmony_ci				reg = <1>;
16562306a36Sopenharmony_ci
16662306a36Sopenharmony_ci				edp_bridge_out: endpoint {
16762306a36Sopenharmony_ci					remote-endpoint = <&panel_in>;
16862306a36Sopenharmony_ci				};
16962306a36Sopenharmony_ci			};
17062306a36Sopenharmony_ci		};
17162306a36Sopenharmony_ci	};
17262306a36Sopenharmony_ci};
17362306a36Sopenharmony_ci
17462306a36Sopenharmony_ci&lcdif {
17562306a36Sopenharmony_ci	assigned-clocks = <&clk IMX8MQ_CLK_LCDIF_PIXEL>;
17662306a36Sopenharmony_ci	assigned-clock-parents = <&clk IMX8MQ_SYS1_PLL_800M>;
17762306a36Sopenharmony_ci	/delete-property/assigned-clock-rates;
17862306a36Sopenharmony_ci	status = "okay";
17962306a36Sopenharmony_ci};
18062306a36Sopenharmony_ci
18162306a36Sopenharmony_ci&mipi_dsi {
18262306a36Sopenharmony_ci	status = "okay";
18362306a36Sopenharmony_ci
18462306a36Sopenharmony_ci	ports {
18562306a36Sopenharmony_ci		port@1 {
18662306a36Sopenharmony_ci			reg = <1>;
18762306a36Sopenharmony_ci
18862306a36Sopenharmony_ci			mipi_dsi_out: endpoint {
18962306a36Sopenharmony_ci				remote-endpoint = <&edp_bridge_in>;
19062306a36Sopenharmony_ci			};
19162306a36Sopenharmony_ci		};
19262306a36Sopenharmony_ci	};
19362306a36Sopenharmony_ci};
19462306a36Sopenharmony_ci
19562306a36Sopenharmony_ci&pcie1 {
19662306a36Sopenharmony_ci	pinctrl-names = "default";
19762306a36Sopenharmony_ci	pinctrl-0 = <&pinctrl_pcie1>;
19862306a36Sopenharmony_ci	reset-gpio = <&gpio3 23 GPIO_ACTIVE_LOW>;
19962306a36Sopenharmony_ci	clocks = <&clk IMX8MQ_CLK_PCIE2_ROOT>,
20062306a36Sopenharmony_ci		 <&pcie1_refclk>,
20162306a36Sopenharmony_ci		 <&clk IMX8MQ_CLK_PCIE2_PHY>,
20262306a36Sopenharmony_ci		 <&clk IMX8MQ_CLK_PCIE2_AUX>;
20362306a36Sopenharmony_ci	status = "okay";
20462306a36Sopenharmony_ci};
20562306a36Sopenharmony_ci
20662306a36Sopenharmony_ci&pwm2 {
20762306a36Sopenharmony_ci	pinctrl-names = "default";
20862306a36Sopenharmony_ci	pinctrl-0 = <&pinctrl_pwm2>;
20962306a36Sopenharmony_ci	status = "okay";
21062306a36Sopenharmony_ci};
21162306a36Sopenharmony_ci
21262306a36Sopenharmony_ci&reg_1p8v {
21362306a36Sopenharmony_ci	vin-supply = <&reg_main_5v>;
21462306a36Sopenharmony_ci};
21562306a36Sopenharmony_ci
21662306a36Sopenharmony_ci&reg_snvs {
21762306a36Sopenharmony_ci	vin-supply = <&reg_main_5v>;
21862306a36Sopenharmony_ci};
21962306a36Sopenharmony_ci
22062306a36Sopenharmony_ci&reg_arm_dram {
22162306a36Sopenharmony_ci	vin-supply = <&reg_main_5v>;
22262306a36Sopenharmony_ci};
22362306a36Sopenharmony_ci
22462306a36Sopenharmony_ci&reg_dram_1p1v {
22562306a36Sopenharmony_ci	vin-supply = <&reg_main_5v>;
22662306a36Sopenharmony_ci};
22762306a36Sopenharmony_ci
22862306a36Sopenharmony_ci&reg_soc_gpu_vpu {
22962306a36Sopenharmony_ci	vin-supply = <&reg_main_5v>;
23062306a36Sopenharmony_ci};
23162306a36Sopenharmony_ci
23262306a36Sopenharmony_ci&sai2 {
23362306a36Sopenharmony_ci	pinctrl-names = "default";
23462306a36Sopenharmony_ci	pinctrl-0 = <&pinctrl_sai2>;
23562306a36Sopenharmony_ci	assigned-clocks = <&clk IMX8MQ_CLK_SAI2>;
23662306a36Sopenharmony_ci	assigned-clock-parents = <&clk IMX8MQ_CLK_25M>;
23762306a36Sopenharmony_ci	assigned-clock-rates = <25000000>;
23862306a36Sopenharmony_ci	fsl,sai-mclk-direction-output;
23962306a36Sopenharmony_ci	fsl,sai-asynchronous;
24062306a36Sopenharmony_ci	status = "okay";
24162306a36Sopenharmony_ci};
24262306a36Sopenharmony_ci
24362306a36Sopenharmony_ci&snvs_rtc {
24462306a36Sopenharmony_ci	status = "disabled";
24562306a36Sopenharmony_ci};
24662306a36Sopenharmony_ci
24762306a36Sopenharmony_ci&uart2 {
24862306a36Sopenharmony_ci	pinctrl-names = "default";
24962306a36Sopenharmony_ci	pinctrl-0 = <&pinctrl_uart2>;
25062306a36Sopenharmony_ci	status = "okay";
25162306a36Sopenharmony_ci};
25262306a36Sopenharmony_ci
25362306a36Sopenharmony_ci&usb3_phy0 {
25462306a36Sopenharmony_ci	vbus-supply = <&reg_main_usb>;
25562306a36Sopenharmony_ci	status = "okay";
25662306a36Sopenharmony_ci};
25762306a36Sopenharmony_ci
25862306a36Sopenharmony_ci&usb3_phy1 {
25962306a36Sopenharmony_ci	vbus-supply = <&reg_main_usb>;
26062306a36Sopenharmony_ci	status = "okay";
26162306a36Sopenharmony_ci};
26262306a36Sopenharmony_ci
26362306a36Sopenharmony_ci&usb_dwc3_0 {
26462306a36Sopenharmony_ci	dr_mode = "host";
26562306a36Sopenharmony_ci	status = "okay";
26662306a36Sopenharmony_ci};
26762306a36Sopenharmony_ci
26862306a36Sopenharmony_ci&usb_dwc3_1 {
26962306a36Sopenharmony_ci	dr_mode = "host";
27062306a36Sopenharmony_ci	status = "okay";
27162306a36Sopenharmony_ci};
27262306a36Sopenharmony_ci
27362306a36Sopenharmony_ci&usdhc2 {
27462306a36Sopenharmony_ci	assigned-clocks = <&clk IMX8MQ_CLK_USDHC2>;
27562306a36Sopenharmony_ci	assigned-clock-rates = <200000000>;
27662306a36Sopenharmony_ci	pinctrl-names = "default";
27762306a36Sopenharmony_ci	pinctrl-0 = <&pinctrl_usdhc2>;
27862306a36Sopenharmony_ci	vqmmc-supply = <&reg_main_3v3>;
27962306a36Sopenharmony_ci	vmmc-supply = <&reg_main_3v3>;
28062306a36Sopenharmony_ci	bus-width = <4>;
28162306a36Sopenharmony_ci	status = "okay";
28262306a36Sopenharmony_ci};
28362306a36Sopenharmony_ci
28462306a36Sopenharmony_ci&iomuxc {
28562306a36Sopenharmony_ci	pinctrl_backlight: backlightgrp {
28662306a36Sopenharmony_ci		fsl,pins = <
28762306a36Sopenharmony_ci			MX8MQ_IOMUXC_GPIO1_IO10_GPIO1_IO10		0x3
28862306a36Sopenharmony_ci		>;
28962306a36Sopenharmony_ci	};
29062306a36Sopenharmony_ci
29162306a36Sopenharmony_ci	pinctrl_edp_bridge: edpbridgegrp {
29262306a36Sopenharmony_ci		fsl,pins = <
29362306a36Sopenharmony_ci			MX8MQ_IOMUXC_SAI5_RXC_GPIO3_IO20		0x1
29462306a36Sopenharmony_ci		>;
29562306a36Sopenharmony_ci	};
29662306a36Sopenharmony_ci
29762306a36Sopenharmony_ci	pinctrl_i2c3: i2c3grp {
29862306a36Sopenharmony_ci		fsl,pins = <
29962306a36Sopenharmony_ci			MX8MQ_IOMUXC_I2C3_SCL_I2C3_SCL			0x40000022
30062306a36Sopenharmony_ci			MX8MQ_IOMUXC_I2C3_SDA_I2C3_SDA			0x40000022
30162306a36Sopenharmony_ci		>;
30262306a36Sopenharmony_ci	};
30362306a36Sopenharmony_ci
30462306a36Sopenharmony_ci	pinctrl_i2c4: i2c4grp {
30562306a36Sopenharmony_ci		fsl,pins = <
30662306a36Sopenharmony_ci			MX8MQ_IOMUXC_I2C4_SCL_I2C4_SCL			0x40000022
30762306a36Sopenharmony_ci			MX8MQ_IOMUXC_I2C4_SDA_I2C4_SDA			0x40000022
30862306a36Sopenharmony_ci		>;
30962306a36Sopenharmony_ci	};
31062306a36Sopenharmony_ci
31162306a36Sopenharmony_ci	pinctrl_pcie1: pcie1grp {
31262306a36Sopenharmony_ci		fsl,pins = <
31362306a36Sopenharmony_ci			MX8MQ_IOMUXC_SAI5_RXD2_GPIO3_IO23		0x16
31462306a36Sopenharmony_ci		>;
31562306a36Sopenharmony_ci	};
31662306a36Sopenharmony_ci
31762306a36Sopenharmony_ci	pinctrl_pwm2: pwm2grp {
31862306a36Sopenharmony_ci		fsl,pins = <
31962306a36Sopenharmony_ci			MX8MQ_IOMUXC_SPDIF_RX_PWM2_OUT			0x3
32062306a36Sopenharmony_ci		>;
32162306a36Sopenharmony_ci	};
32262306a36Sopenharmony_ci
32362306a36Sopenharmony_ci	pinctrl_sai2: sai2grp {
32462306a36Sopenharmony_ci		fsl,pins = <
32562306a36Sopenharmony_ci			MX8MQ_IOMUXC_SAI2_RXD0_SAI2_RX_DATA0		0xd6
32662306a36Sopenharmony_ci			MX8MQ_IOMUXC_SAI2_RXFS_SAI2_RX_SYNC		0xd6
32762306a36Sopenharmony_ci			MX8MQ_IOMUXC_SAI2_TXC_SAI2_TX_BCLK		0xd6
32862306a36Sopenharmony_ci			MX8MQ_IOMUXC_SAI2_TXFS_SAI2_TX_SYNC		0xd6
32962306a36Sopenharmony_ci			MX8MQ_IOMUXC_SAI2_RXC_SAI2_RX_BCLK		0xd6
33062306a36Sopenharmony_ci			MX8MQ_IOMUXC_SAI2_MCLK_SAI2_MCLK		0xd6
33162306a36Sopenharmony_ci			MX8MQ_IOMUXC_SAI2_TXD0_SAI2_TX_DATA0		0xd6
33262306a36Sopenharmony_ci		>;
33362306a36Sopenharmony_ci	};
33462306a36Sopenharmony_ci
33562306a36Sopenharmony_ci	pinctrl_uart2: uart2grp {
33662306a36Sopenharmony_ci		fsl,pins = <
33762306a36Sopenharmony_ci			MX8MQ_IOMUXC_UART2_RXD_UART2_DCE_RX		0x45
33862306a36Sopenharmony_ci			MX8MQ_IOMUXC_UART2_TXD_UART2_DCE_TX		0x45
33962306a36Sopenharmony_ci		>;
34062306a36Sopenharmony_ci	};
34162306a36Sopenharmony_ci
34262306a36Sopenharmony_ci	pinctrl_usdhc2: usdhc2grp {
34362306a36Sopenharmony_ci		fsl,pins = <
34462306a36Sopenharmony_ci			MX8MQ_IOMUXC_SD2_CD_B_USDHC2_CD_B		0x0
34562306a36Sopenharmony_ci			MX8MQ_IOMUXC_SD2_CLK_USDHC2_CLK			0x83
34662306a36Sopenharmony_ci			MX8MQ_IOMUXC_SD2_CMD_USDHC2_CMD			0xc3
34762306a36Sopenharmony_ci			MX8MQ_IOMUXC_SD2_DATA0_USDHC2_DATA0		0xc3
34862306a36Sopenharmony_ci			MX8MQ_IOMUXC_SD2_DATA1_USDHC2_DATA1		0xc3
34962306a36Sopenharmony_ci			MX8MQ_IOMUXC_SD2_DATA2_USDHC2_DATA2		0xc3
35062306a36Sopenharmony_ci			MX8MQ_IOMUXC_SD2_DATA3_USDHC2_DATA3		0xc3
35162306a36Sopenharmony_ci		>;
35262306a36Sopenharmony_ci	};
35362306a36Sopenharmony_ci};
354