// SPDX-License-Identifier: GPL-2.0+
/*
 * Copyright 2018-2019 Purism SPC
 */

/dts-v1/;

#include "dt-bindings/input/input.h"
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/leds/common.h>
#include "dt-bindings/pwm/pwm.h"
#include "dt-bindings/usb/pd.h"
#include "imx8mq.dtsi"

/ {
	model = "Purism Librem 5 devkit";
	compatible = "purism,librem5-devkit", "fsl,imx8mq";

	backlight_dsi: backlight-dsi {
		compatible = "pwm-backlight";
		/* 200 Hz for the PAM2841 */
		pwms = <&pwm1 0 5000000 0>;
		brightness-levels = <0 100>;
		num-interpolated-steps = <100>;
		/* Default brightness level (index into the array defined by */
		/* the "brightness-levels" property) */
		default-brightness-level = <0>;
		power-supply = <&reg_22v4_p>;
	};

	chosen {
		stdout-path = &uart1;
	};

	gpio-keys {
		compatible = "gpio-keys";
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_gpio_keys>;

		button-1 {
			label = "VOL_UP";
			gpios = <&gpio4 21 GPIO_ACTIVE_LOW>;
			wakeup-source;
			linux,code = <KEY_VOLUMEUP>;
		};

		button-2 {
			label = "VOL_DOWN";
			gpios = <&gpio4 22 GPIO_ACTIVE_LOW>;
			wakeup-source;
			linux,code = <KEY_VOLUMEDOWN>;
		};

		button-3 {
			label = "WWAN_WAKE";
			gpios = <&gpio3 8 GPIO_ACTIVE_LOW>;
			interrupt-parent = <&gpio3>;
			interrupts = <8 IRQ_TYPE_LEVEL_LOW>;
			wakeup-source;
			linux,code = <KEY_PHONE>;
		};
	};

	leds {
		compatible = "pwm-leds";

		led1 {
			function = LED_FUNCTION_STATUS;
			color = <LED_COLOR_ID_RED>;
			max-brightness = <248>;
			pwms = <&pwm2 0 50000 0>;
		};
	};

	pmic_osc: clock-pmic {
		compatible = "fixed-clock";
		#clock-cells = <0>;
		clock-frequency = <32768>;
		clock-output-names = "pmic_osc";
	};

	reg_1v8_p: regulator-1v8-p {
		compatible = "regulator-fixed";
		regulator-name = "1v8_p";
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <1800000>;
		vin-supply = <&reg_pwr_en>;
	};

	reg_2v8_p: regulator-2v8-p {
		compatible = "regulator-fixed";
		regulator-name = "2v8_p";
		regulator-min-microvolt = <2800000>;
		regulator-max-microvolt = <2800000>;
		vin-supply = <&reg_pwr_en>;
	};

	reg_3v3_p: regulator-3v3-p {
		compatible = "regulator-fixed";
		regulator-name = "3v3_p";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
		vin-supply = <&reg_pwr_en>;

		regulator-state-mem {
			regulator-on-in-suspend;
		};
	};

	reg_5v_p: regulator-5v-p {
		compatible = "regulator-fixed";
		regulator-name = "5v_p";
		regulator-min-microvolt = <5000000>;
		regulator-max-microvolt = <5000000>;
		vin-supply = <&reg_pwr_en>;

		regulator-state-mem {
			regulator-on-in-suspend;
		};
	};

	reg_22v4_p: regulator-22v4-p  {
		compatible = "regulator-fixed";
		regulator-name = "22v4_P";
		regulator-min-microvolt = <22400000>;
		regulator-max-microvolt = <22400000>;
		vin-supply = <&reg_pwr_en>;
	};

	reg_pwr_en: regulator-pwr-en {
		compatible = "regulator-fixed";
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_pwr_en>;
		regulator-name = "PWR_EN";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
		gpio = <&gpio1 8 GPIO_ACTIVE_HIGH>;
		enable-active-high;
		regulator-always-on;
	};

	reg_usdhc2_vmmc: regulator-usdhc2-vmmc {
		compatible = "regulator-fixed";
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_usdhc2_pwr>;
		regulator-name = "VSD_3V3";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
		gpio = <&gpio2 19 GPIO_ACTIVE_HIGH>;
		enable-active-high;
		regulator-always-on;
	};

	wwan_codec: sound-wwan-codec {
		compatible = "option,gtm601";
		#sound-dai-cells = <0>;
	};

	mic_mux: mic-mux {
		compatible = "simple-audio-mux";
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_micsel>;
		mux-gpios = <&gpio5 5 GPIO_ACTIVE_LOW>;
		sound-name-prefix = "Mic Mux";
	};

	sound {
		compatible = "simple-audio-card";
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_hpdet>;
		simple-audio-card,aux-devs = <&speaker_amp>, <&mic_mux>;
		simple-audio-card,name = "Librem 5 Devkit";
		simple-audio-card,format = "i2s";
		simple-audio-card,widgets =
			"Microphone", "Builtin Microphone",
			"Microphone", "Headset Microphone",
			"Headphone", "Headphones",
			"Speaker", "Builtin Speaker";
		simple-audio-card,routing =
			"MIC_IN", "Mic Mux OUT",
			"Mic Mux IN1", "Headset Microphone",
			"Mic Mux IN2", "Builtin Microphone",
			"Mic Mux OUT", "Mic Bias",
			"Headphones", "HP_OUT",
			"Builtin Speaker", "Speaker Amp OUTR",
			"Speaker Amp INR", "LINE_OUT";
		simple-audio-card,hp-det-gpio = <&gpio3 20 GPIO_ACTIVE_HIGH>;

		simple-audio-card,cpu {
			sound-dai = <&sai2>;
		};

		simple-audio-card,codec {
			sound-dai = <&sgtl5000>;
			clocks = <&clk IMX8MQ_CLK_SAI2_ROOT>;
			frame-master;
			bitclock-master;
		};
	};

	sound-wwan {
		compatible = "simple-audio-card";
		simple-audio-card,name = "SIMCom SIM7100";
		simple-audio-card,format = "dsp_a";

		simple-audio-card,cpu {
			sound-dai = <&sai6>;
		};

		telephony_link_master: simple-audio-card,codec {
			sound-dai = <&wwan_codec>;
			frame-master;
			bitclock-master;
		};
	};

	speaker_amp: speaker-amp {
		compatible = "simple-audio-amplifier";
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_spkamp>;
		VCC-supply = <&reg_3v3_p>;
		sound-name-prefix = "Speaker Amp";
		enable-gpios = <&gpio5 3 GPIO_ACTIVE_HIGH>;
	};

	vibrator {
		compatible = "gpio-vibrator";
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_haptic>;
	        enable-gpios = <&gpio5 4 GPIO_ACTIVE_LOW>;
		vcc-supply = <&reg_3v3_p>;
	};

	wifi_pwr_en: regulator-wifi-en {
		compatible = "regulator-fixed";
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_wifi_pwr_en>;
		regulator-name = "WIFI_EN";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
		gpio = <&gpio3 5 GPIO_ACTIVE_HIGH>;
		enable-active-high;
		regulator-always-on;
	};
};

&A53_0 {
	cpu-supply = <&buck2_reg>;
};

&A53_1 {
	cpu-supply = <&buck2_reg>;
};

&A53_2 {
	cpu-supply = <&buck2_reg>;
};

&A53_3 {
	cpu-supply = <&buck2_reg>;
};

&dphy {
	status = "okay";
};

&fec1 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_fec1>;
	phy-mode = "rgmii-id";
	phy-handle = <&ethphy0>;
	fsl,magic-packet;
	phy-supply = <&reg_3v3_p>;
	status = "okay";

	mdio {
		#address-cells = <1>;
		#size-cells = <0>;

		ethphy0: ethernet-phy@1 {
			compatible = "ethernet-phy-ieee802.3-c22";
			reg = <1>;
		};
	};
};

&i2c1 {
	clock-frequency = <100000>;
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_i2c1>;
	status = "okay";

	pmic: pmic@4b {
		compatible = "rohm,bd71837";
		reg = <0x4b>;
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_pmic>;
		clocks = <&pmic_osc>;
		clock-names = "osc";
		#clock-cells = <0>;
		clock-output-names = "pmic_clk";
		interrupt-parent = <&gpio1>;
		interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
		rohm,reset-snvs-powered;

		regulators {
			buck1_reg: BUCK1 {
				regulator-name = "buck1";
				regulator-min-microvolt = <700000>;
				regulator-max-microvolt = <1300000>;
				regulator-boot-on;
				regulator-always-on;
				regulator-ramp-delay = <1250>;
				rohm,dvs-run-voltage = <900000>;
				rohm,dvs-idle-voltage = <850000>;
				rohm,dvs-suspend-voltage = <800000>;
			};

			buck2_reg: BUCK2 {
				regulator-name = "buck2";
				regulator-min-microvolt = <700000>;
				regulator-max-microvolt = <1300000>;
				regulator-boot-on;
				regulator-ramp-delay = <1250>;
				rohm,dvs-run-voltage = <1000000>;
				rohm,dvs-idle-voltage = <900000>;
			};

			buck3_reg: BUCK3 {
				regulator-name = "buck3";
				regulator-min-microvolt = <700000>;
				regulator-max-microvolt = <1300000>;
				regulator-boot-on;
				rohm,dvs-run-voltage = <900000>;
			};

			buck4_reg: BUCK4 {
				regulator-name = "buck4";
				regulator-min-microvolt = <700000>;
				regulator-max-microvolt = <1300000>;
				rohm,dvs-run-voltage = <1000000>;
			};

			buck5_reg: BUCK5 {
				regulator-name = "buck5";
				regulator-min-microvolt = <700000>;
				regulator-max-microvolt = <1350000>;
				regulator-boot-on;
				regulator-always-on;
			};

			buck6_reg: BUCK6 {
				regulator-name = "buck6";
				regulator-min-microvolt = <3000000>;
				regulator-max-microvolt = <3300000>;
				regulator-boot-on;
				regulator-always-on;
			};

			buck7_reg: BUCK7 {
				regulator-name = "buck7";
				regulator-min-microvolt = <1605000>;
				regulator-max-microvolt = <1995000>;
				regulator-boot-on;
				regulator-always-on;
			};

			buck8_reg: BUCK8 {
				regulator-name = "buck8";
				regulator-min-microvolt = <800000>;
				regulator-max-microvolt = <1400000>;
				regulator-boot-on;
				regulator-always-on;
			};

			ldo1_reg: LDO1 {
				regulator-name = "ldo1";
				regulator-min-microvolt = <3000000>;
				regulator-max-microvolt = <3300000>;
				regulator-boot-on;
				/* leave on for snvs power button */
				regulator-always-on;
			};

			ldo2_reg: LDO2 {
				regulator-name = "ldo2";
				regulator-min-microvolt = <900000>;
				regulator-max-microvolt = <900000>;
				regulator-boot-on;
				/* leave on for snvs power button */
				regulator-always-on;
			};

			ldo3_reg: LDO3 {
				regulator-name = "ldo3";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <3300000>;
				regulator-boot-on;
				regulator-always-on;
			};

			ldo4_reg: LDO4 {
				regulator-name = "ldo4";
				regulator-min-microvolt = <900000>;
				regulator-max-microvolt = <1800000>;
				regulator-boot-on;
				regulator-always-on;
			};

			ldo5_reg: LDO5 {
				regulator-name = "ldo5";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <3300000>;
				regulator-always-on;
			};

			ldo6_reg: LDO6 {
				regulator-name = "ldo6";
				regulator-min-microvolt = <900000>;
				regulator-max-microvolt = <1800000>;
				regulator-boot-on;
				regulator-always-on;
			};

			ldo7_reg: LDO7 {
				regulator-name = "ldo7";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <3300000>;
				regulator-boot-on;
				regulator-always-on;
			};
		};
	};

	typec_ptn5100: usb-typec@52 {
		compatible = "nxp,ptn5110";
		reg = <0x52>;
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_typec>;
		interrupt-parent = <&gpio3>;
		interrupts = <1 IRQ_TYPE_LEVEL_LOW>;

		connector {
			compatible = "usb-c-connector";
			label = "USB-C";
			data-role = "dual";
			power-role = "dual";
			try-power-role = "sink";
			source-pdos = <PDO_FIXED(5000, 2000,
				PDO_FIXED_USB_COMM |
				PDO_FIXED_DUAL_ROLE |
				PDO_FIXED_DATA_SWAP )>;
			sink-pdos = <PDO_FIXED(5000, 3500, PDO_FIXED_USB_COMM |
				PDO_FIXED_DUAL_ROLE |
				PDO_FIXED_DATA_SWAP )
			     PDO_VAR(5000, 5000, 3500)>;
			op-sink-microwatt = <10000000>;

			ports {
				#address-cells = <1>;
				#size-cells = <0>;

				port@0 {
					reg = <0>;

					usb_con_hs: endpoint {
						remote-endpoint = <&typec_hs>;
					};
				};

				port@1 {
					reg = <1>;

					usb_con_ss: endpoint {
						remote-endpoint = <&typec_ss>;
					};
				};
			};
		};
	};

	rtc@68 {
		compatible = "microcrystal,rv4162";
		reg = <0x68>;
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_rtc>;
		interrupt-parent = <&gpio4>;
		interrupts = <29 IRQ_TYPE_LEVEL_LOW>;
	};

	charger@6b { /* bq25896 */
		compatible = "ti,bq25890";
		reg = <0x6b>;
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_charger>;
		interrupt-parent = <&gpio3>;
		interrupts = <25 IRQ_TYPE_EDGE_FALLING>;
		ti,battery-regulation-voltage = <4192000>; /* 4.192V */
		ti,charge-current = <1600000>; /* 1.6A */
		ti,termination-current = <66000>;  /* 66mA */
		ti,precharge-current = <130000>; /* 130mA */
		ti,minimum-sys-voltage = <3000000>; /* 3V */
		ti,boost-voltage = <5000000>; /* 5V */
		ti,boost-max-current = <50000>; /* 50mA */
	};
};

&i2c3 {
	clock-frequency = <100000>;
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_i2c3>;
	status = "okay";

	magnetometer@1e	{
		compatible = "st,lsm9ds1-magn";
		reg = <0x1e>;
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_imu>;
		interrupt-parent = <&gpio3>;
		interrupts = <19 IRQ_TYPE_LEVEL_HIGH>;
		vdd-supply = <&reg_3v3_p>;
		vddio-supply = <&reg_3v3_p>;
	};

	sgtl5000: audio-codec@a {
		compatible = "fsl,sgtl5000";
		clocks = <&clk IMX8MQ_CLK_SAI2_ROOT>;
		assigned-clocks = <&clk IMX8MQ_CLK_SAI2>;
		assigned-clock-parents = <&clk IMX8MQ_AUDIO_PLL1_OUT>;
		assigned-clock-rates = <24576000>;
		#sound-dai-cells = <0>;
		reg = <0x0a>;
		VDDD-supply = <&reg_1v8_p>;
		VDDIO-supply = <&reg_3v3_p>;
		VDDA-supply = <&reg_3v3_p>;
	};

	touchscreen@5d {
		compatible = "goodix,gt5688";
		reg = <0x5d>;
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_ts>;
		interrupt-parent = <&gpio3>;
		interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
		reset-gpios = <&gpio1 5 GPIO_ACTIVE_HIGH>;
		irq-gpios = <&gpio3 0 GPIO_ACTIVE_HIGH>;
		touchscreen-size-x = <720>;
		touchscreen-size-y = <1440>;
		AVDD28-supply = <&reg_2v8_p>;
		VDDIO-supply = <&reg_1v8_p>;
	};

	proximity-sensor@60 {
		compatible = "vishay,vcnl4040";
		reg = <0x60>;
		pinctrl-0 = <&pinctrl_prox>;
	};

	accel-gyro@6a {
		compatible = "st,lsm9ds1-imu";
		reg = <0x6a>;
		vdd-supply = <&reg_3v3_p>;
		vddio-supply = <&reg_3v3_p>;
		mount-matrix =  "1",  "0",  "0",
				"0",  "1",  "0",
				"0",  "0", "-1";
	};
};

&iomuxc {
	pinctrl_bl: blgrp {
		fsl,pins = <
			MX8MQ_IOMUXC_GPIO1_IO01_PWM1_OUT	0x6 /* DSI_BL_PWM */
		>;
	};

	pinctrl_bt: btgrp {
		fsl,pins = <
			MX8MQ_IOMUXC_NAND_DATA05_GPIO3_IO11	0x16 /* nBT_DISABLE */
			MX8MQ_IOMUXC_NAND_DATA01_GPIO3_IO7	0x10 /* BT_HOST_WAKE */
		>;
	};

	pinctrl_charger: chargergrp {
		fsl,pins = <
			MX8MQ_IOMUXC_SAI5_MCLK_GPIO3_IO25	0x80 /* CHRG_nINT */
		>;
	};

	pinctrl_fec1: fec1grp {
		fsl,pins = <
			MX8MQ_IOMUXC_ENET_MDC_ENET1_MDC			0x3
			MX8MQ_IOMUXC_ENET_MDIO_ENET1_MDIO		0x3
			MX8MQ_IOMUXC_ENET_TD3_ENET1_RGMII_TD3		0x1f
			MX8MQ_IOMUXC_ENET_TD2_ENET1_RGMII_TD2		0x1f
			MX8MQ_IOMUXC_ENET_TD1_ENET1_RGMII_TD1		0x1f
			MX8MQ_IOMUXC_ENET_TD0_ENET1_RGMII_TD0		0x1f
			MX8MQ_IOMUXC_ENET_RD3_ENET1_RGMII_RD3		0x91
			MX8MQ_IOMUXC_ENET_RD2_ENET1_RGMII_RD2		0x91
			MX8MQ_IOMUXC_ENET_RD1_ENET1_RGMII_RD1		0x91
			MX8MQ_IOMUXC_ENET_RD0_ENET1_RGMII_RD0		0x91
			MX8MQ_IOMUXC_ENET_TXC_ENET1_RGMII_TXC		0x1f
			MX8MQ_IOMUXC_ENET_RXC_ENET1_RGMII_RXC		0x91
			MX8MQ_IOMUXC_ENET_RX_CTL_ENET1_RGMII_RX_CTL	0x91
			MX8MQ_IOMUXC_ENET_TX_CTL_ENET1_RGMII_TX_CTL	0x1f
			MX8MQ_IOMUXC_GPIO1_IO09_GPIO1_IO9		0x19
			MX8MQ_IOMUXC_GPIO1_IO15_CCMSRCGPCMIX_CLKO2      0x1f
		>;
	};

	pinctrl_ts: tsgrp {
		fsl,pins = <
			MX8MQ_IOMUXC_NAND_ALE_GPIO3_IO0		0x16  /* TOUCH INT */
			MX8MQ_IOMUXC_GPIO1_IO05_GPIO1_IO5	0x19  /* TOUCH RST */
		>;
	};

	pinctrl_pwm_led: pwmledgrp {
		fsl,pins = <
			MX8MQ_IOMUXC_GPIO1_IO13_PWM2_OUT	0x16
		>;
	};

	pinctrl_gpio_keys: gpiokeygrp {
		fsl,pins = <
			MX8MQ_IOMUXC_SAI2_RXFS_GPIO4_IO21	0x16
			MX8MQ_IOMUXC_SAI2_RXC_GPIO4_IO22	0x16
			MX8MQ_IOMUXC_NAND_DATA02_GPIO3_IO8	0x80   /* nWoWWAN */
		>;
	};

	pinctrl_haptic: hapticgrp {
		fsl,pins = <
			MX8MQ_IOMUXC_SPDIF_RX_GPIO5_IO4		0xc6   /* nHAPTIC */
		>;
	};

	pinctrl_hpdet: hpdetgrp {
		fsl,pins = <
			MX8MQ_IOMUXC_SAI5_RXC_GPIO3_IO20	0xC0   /* HP_DET */
		>;
	};

	pinctrl_i2c1: i2c1grp {
		fsl,pins = <
			MX8MQ_IOMUXC_I2C1_SCL_I2C1_SCL		0x4000001f
			MX8MQ_IOMUXC_I2C1_SDA_I2C1_SDA		0x4000001f
		>;
	};

	pinctrl_i2c3: i2c3grp {
		fsl,pins = <
			MX8MQ_IOMUXC_I2C3_SCL_I2C3_SCL		0x4000001f
			MX8MQ_IOMUXC_I2C3_SDA_I2C3_SDA		0x4000001f
		>;
	};

	pinctrl_imu: imugrp {
		fsl,pins = <
			MX8MQ_IOMUXC_SAI5_RXFS_GPIO3_IO19	0x8  /* IMU_INT */
		>;
	};

	pinctrl_micsel: micselgrp {
		fsl,pins = <
			MX8MQ_IOMUXC_SPDIF_EXT_CLK_GPIO5_IO5	0xc6  /* MIC_SEL */
		>;
	};

	pinctrl_spkamp: spkamp {
		fsl,pins = <
			MX8MQ_IOMUXC_SPDIF_TX_GPIO5_IO3		0x81  /* MUTE */
		>;
	};

	pinctrl_pmic: pmicgrp {
		fsl,pins = <
			MX8MQ_IOMUXC_GPIO1_IO03_GPIO1_IO3	0x80  /* PMIC intr */
		>;
	};

	pinctrl_prox: proxgrp {
		fsl,pins = <
			MX8MQ_IOMUXC_GPIO1_IO12_GPIO1_IO12	0x80  /* prox intr */
		>;
	};

	pinctrl_pwr_en: pwrengrp {
		fsl,pins = <
			MX8MQ_IOMUXC_GPIO1_IO08_GPIO1_IO8	0x06
		>;
	};

	pinctrl_rtc: rtcgrp {
		fsl,pins = <
			MX8MQ_IOMUXC_SAI3_RXC_GPIO4_IO29	0x80  /* RTC intr */
		>;
	};

	pinctrl_sai2: sai2grp {
		fsl,pins = <
			MX8MQ_IOMUXC_SAI2_TXFS_SAI2_TX_SYNC	0xd6
			MX8MQ_IOMUXC_SAI2_TXC_SAI2_TX_BCLK	0xd6
			MX8MQ_IOMUXC_SAI2_TXD0_SAI2_TX_DATA0	0xd6
			MX8MQ_IOMUXC_SAI2_RXD0_SAI2_RX_DATA0	0xd6
			MX8MQ_IOMUXC_SAI2_MCLK_SAI2_MCLK	0xd6
		>;
	};

	pinctrl_sai6: sai6grp {
		fsl,pins = <
			MX8MQ_IOMUXC_SAI1_RXD5_SAI6_RX_DATA0	0xd6
			MX8MQ_IOMUXC_SAI1_RXD6_SAI6_RX_SYNC	0xd6
			MX8MQ_IOMUXC_SAI1_TXD4_SAI6_RX_BCLK     0xd6
			MX8MQ_IOMUXC_SAI1_TXD5_SAI6_TX_DATA0	0xd6
		>;
	};

	pinctrl_typec: typecgrp {
		fsl,pins = <
			MX8MQ_IOMUXC_NAND_DATA06_GPIO3_IO12		0x16
			MX8MQ_IOMUXC_NAND_CE0_B_GPIO3_IO1		0x80
		>;
	};

	pinctrl_uart1: uart1grp {
		fsl,pins = <
			MX8MQ_IOMUXC_UART1_RXD_UART1_DCE_RX		0x49
			MX8MQ_IOMUXC_UART1_TXD_UART1_DCE_TX		0x49
		>;
	};

	pinctrl_uart2: uart2grp {
		fsl,pins = <
			MX8MQ_IOMUXC_UART2_TXD_UART2_DCE_TX		0x49
			MX8MQ_IOMUXC_UART2_RXD_UART2_DCE_RX		0x49
			MX8MQ_IOMUXC_UART4_RXD_UART2_DCE_CTS_B		0x49
			MX8MQ_IOMUXC_UART4_TXD_UART2_DCE_RTS_B		0x49
		>;
	};

	pinctrl_uart3: uart3grp {
		fsl,pins = <
			MX8MQ_IOMUXC_UART3_RXD_UART3_DCE_RX		0x49
			MX8MQ_IOMUXC_UART3_TXD_UART3_DCE_TX		0x49
		>;
	};

	pinctrl_uart4: uart4grp {
		fsl,pins = <
			MX8MQ_IOMUXC_ECSPI2_SCLK_UART4_DCE_RX		0x49
			MX8MQ_IOMUXC_ECSPI2_MOSI_UART4_DCE_TX		0x49
			MX8MQ_IOMUXC_ECSPI2_MISO_UART4_DCE_CTS_B	0x49
			MX8MQ_IOMUXC_ECSPI2_SS0_UART4_DCE_RTS_B		0x49
			MX8MQ_IOMUXC_GPIO1_IO00_ANAMIX_REF_CLK_32K	0x49
		>;
	};

	pinctrl_usdhc1: usdhc1grp {
		fsl,pins = <
			MX8MQ_IOMUXC_SD1_CLK_USDHC1_CLK			0x83
			MX8MQ_IOMUXC_SD1_CMD_USDHC1_CMD			0xc3
			MX8MQ_IOMUXC_SD1_DATA0_USDHC1_DATA0		0xc3
			MX8MQ_IOMUXC_SD1_DATA1_USDHC1_DATA1		0xc3
			MX8MQ_IOMUXC_SD1_DATA2_USDHC1_DATA2		0xc3
			MX8MQ_IOMUXC_SD1_DATA3_USDHC1_DATA3		0xc3
			MX8MQ_IOMUXC_SD1_DATA4_USDHC1_DATA4		0xc3
			MX8MQ_IOMUXC_SD1_DATA5_USDHC1_DATA5		0xc3
			MX8MQ_IOMUXC_SD1_DATA6_USDHC1_DATA6		0xc3
			MX8MQ_IOMUXC_SD1_DATA7_USDHC1_DATA7		0xc3
			MX8MQ_IOMUXC_SD1_STROBE_USDHC1_STROBE		0x83
			MX8MQ_IOMUXC_SD1_RESET_B_USDHC1_RESET_B		0xc1
		>;
	};

	pinctrl_usdhc1_100mhz: usdhc1-100mhzgrp {
		fsl,pins = <
			MX8MQ_IOMUXC_SD1_CLK_USDHC1_CLK			0x8d
			MX8MQ_IOMUXC_SD1_CMD_USDHC1_CMD			0xcd
			MX8MQ_IOMUXC_SD1_DATA0_USDHC1_DATA0		0xcd
			MX8MQ_IOMUXC_SD1_DATA1_USDHC1_DATA1		0xcd
			MX8MQ_IOMUXC_SD1_DATA2_USDHC1_DATA2		0xcd
			MX8MQ_IOMUXC_SD1_DATA3_USDHC1_DATA3		0xcd
			MX8MQ_IOMUXC_SD1_DATA4_USDHC1_DATA4		0xcd
			MX8MQ_IOMUXC_SD1_DATA5_USDHC1_DATA5		0xcd
			MX8MQ_IOMUXC_SD1_DATA6_USDHC1_DATA6		0xcd
			MX8MQ_IOMUXC_SD1_DATA7_USDHC1_DATA7		0xcd
			MX8MQ_IOMUXC_SD1_STROBE_USDHC1_STROBE		0x8d
			MX8MQ_IOMUXC_SD1_RESET_B_USDHC1_RESET_B		0xc1
		>;
	};

	pinctrl_usdhc1_200mhz: usdhc1-200mhzgrp {
		fsl,pins = <
			MX8MQ_IOMUXC_SD1_CLK_USDHC1_CLK			0x9f
			MX8MQ_IOMUXC_SD1_CMD_USDHC1_CMD			0xdf
			MX8MQ_IOMUXC_SD1_DATA0_USDHC1_DATA0		0xdf
			MX8MQ_IOMUXC_SD1_DATA1_USDHC1_DATA1		0xdf
			MX8MQ_IOMUXC_SD1_DATA2_USDHC1_DATA2		0xdf
			MX8MQ_IOMUXC_SD1_DATA3_USDHC1_DATA3		0xdf
			MX8MQ_IOMUXC_SD1_DATA4_USDHC1_DATA4		0xdf
			MX8MQ_IOMUXC_SD1_DATA5_USDHC1_DATA5		0xdf
			MX8MQ_IOMUXC_SD1_DATA6_USDHC1_DATA6		0xdf
			MX8MQ_IOMUXC_SD1_DATA7_USDHC1_DATA7		0xdf
			MX8MQ_IOMUXC_SD1_STROBE_USDHC1_STROBE		0x9f
			MX8MQ_IOMUXC_SD1_RESET_B_USDHC1_RESET_B		0xc1
		>;
	};

	pinctrl_usdhc2_pwr: usdhc2pwrgrp {
		fsl,pins = <
			MX8MQ_IOMUXC_SD2_RESET_B_GPIO2_IO19	0x41
		>;
	};

	pinctrl_usdhc2_gpio: usdhc2gpiogrp {
		fsl,pins = <
			MX8MQ_IOMUXC_SD2_WP_GPIO2_IO20		0x80 /* WIFI_WAKE */
		>;
	};

	pinctrl_usdhc2: usdhc2grp {
		fsl,pins = <
			MX8MQ_IOMUXC_SD2_CLK_USDHC2_CLK		0x83
			MX8MQ_IOMUXC_SD2_CMD_USDHC2_CMD		0xc3
			MX8MQ_IOMUXC_SD2_DATA0_USDHC2_DATA0	0xc3
			MX8MQ_IOMUXC_SD2_DATA1_USDHC2_DATA1	0xc3
			MX8MQ_IOMUXC_SD2_DATA2_USDHC2_DATA2	0xc3
			MX8MQ_IOMUXC_SD2_DATA3_USDHC2_DATA3	0xc3
		>;
	};

	pinctrl_usdhc2_100mhz: usdhc2-100mhzgrp {
		fsl,pins = <
			MX8MQ_IOMUXC_SD2_CLK_USDHC2_CLK		0x8d
			MX8MQ_IOMUXC_SD2_CMD_USDHC2_CMD		0xcd
			MX8MQ_IOMUXC_SD2_DATA0_USDHC2_DATA0	0xcd
			MX8MQ_IOMUXC_SD2_DATA1_USDHC2_DATA1	0xcd
			MX8MQ_IOMUXC_SD2_DATA2_USDHC2_DATA2	0xcd
			MX8MQ_IOMUXC_SD2_DATA3_USDHC2_DATA3	0xcd
		>;
	};

	pinctrl_usdhc2_200mhz: usdhc2-200mhzgrp {
		fsl,pins = <
			MX8MQ_IOMUXC_SD2_CLK_USDHC2_CLK		0x9f
			MX8MQ_IOMUXC_SD2_CMD_USDHC2_CMD		0xcf
			MX8MQ_IOMUXC_SD2_DATA0_USDHC2_DATA0	0xcf
			MX8MQ_IOMUXC_SD2_DATA1_USDHC2_DATA1	0xcf
			MX8MQ_IOMUXC_SD2_DATA2_USDHC2_DATA2	0xcf
			MX8MQ_IOMUXC_SD2_DATA3_USDHC2_DATA3	0xcf
		>;
	};

	pinctrl_wdog: wdoggrp {
		fsl,pins = <
			MX8MQ_IOMUXC_GPIO1_IO02_WDOG1_WDOG_B	0xc6
		>;
	};

	pinctrl_wifi_pwr_en: wifipwrengrp {
		fsl,pins = <
			MX8MQ_IOMUXC_NAND_CLE_GPIO3_IO5         0x06
		>;
	};

	pinctrl_wwan: wwangrp {
		fsl,pins = <
			MX8MQ_IOMUXC_NAND_CE3_B_GPIO3_IO4	0x09 /* nWWAN_DISABLE */
			MX8MQ_IOMUXC_NAND_DATA02_GPIO3_IO8	0x80 /* nWoWWAN */
			MX8MQ_IOMUXC_NAND_DATA03_GPIO3_IO9	0x19 /* WWAN_RESET */
		>;
	};
};

&lcdif {
	status = "okay";
};

&mipi_dsi {
	status = "okay";
	#address-cells = <1>;
	#size-cells = <0>;

	panel@0 {
		compatible = "rocktech,jh057n00900";
		reg = <0>;
		backlight = <&backlight_dsi>;
		reset-gpios = <&gpio3 13 GPIO_ACTIVE_LOW>;
		iovcc-supply = <&reg_1v8_p>;
		vcc-supply = <&reg_2v8_p>;
		port {
			panel_in: endpoint {
				remote-endpoint = <&mipi_dsi_out>;
			};
		};
	};

	ports {
		port@1 {
			reg = <1>;
			mipi_dsi_out: endpoint {
				remote-endpoint = <&panel_in>;
			};
		};
	};
};

&pgc_gpu {
	power-supply = <&buck3_reg>;
};

&pgc_vpu {
	power-supply = <&buck4_reg>;
};

&pwm1 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_bl>;
	status = "okay";
};

&pwm2 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_pwm_led>;
	status = "okay";
};

&snvs_pwrkey {
	status = "okay";
};

&snvs_rtc {
	status = "disabled";
};

&sai2 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_sai2>;
	assigned-clocks = <&clk IMX8MQ_CLK_SAI2>;
	assigned-clock-parents = <&clk IMX8MQ_AUDIO_PLL1_OUT>;
	assigned-clock-rates = <24576000>;
	status = "okay";
};

&sai6 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_sai6>;
	assigned-clocks = <&clk IMX8MQ_CLK_SAI6>;
	assigned-clock-parents = <&clk IMX8MQ_AUDIO_PLL1_OUT>;
	assigned-clock-rates = <24576000>;
	fsl,sai-synchronous-rx;
	status = "okay";
};

&uart1 { /* console */
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_uart1>;
	status = "okay";
};

&uart3 { /* GNSS */
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_uart3>;
	status = "okay";
};

&uart4 { /* BT */
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_uart4>, <&pinctrl_bt>;
	uart-has-rtscts;
	status = "okay";
};

&usb3_phy0 {
	vbus-supply = <&reg_5v_p>;
	status = "okay";
};

&usb3_phy1 {
	vbus-supply = <&reg_5v_p>;
	status = "okay";
};

&usb_dwc3_0 {
	#address-cells = <1>;
	#size-cells = <0>;
	dr_mode = "otg";
	status = "okay";

	port@0 {
		reg = <0>;

		typec_hs: endpoint {
			remote-endpoint = <&usb_con_hs>;
		};
	};

	port@1 {
		reg = <1>;

		typec_ss: endpoint {
			remote-endpoint = <&usb_con_ss>;
		};
	};
};

&usb_dwc3_1 {
	dr_mode = "host";
	status = "okay";
};

&usdhc1 {
	assigned-clocks = <&clk IMX8MQ_CLK_USDHC1>;
	assigned-clock-rates = <400000000>;
	pinctrl-names = "default", "state_100mhz", "state_200mhz";
	pinctrl-0 = <&pinctrl_usdhc1>;
	pinctrl-1 = <&pinctrl_usdhc1_100mhz>;
	pinctrl-2 = <&pinctrl_usdhc1_200mhz>;
	bus-width = <8>;
	non-removable;
	status = "okay";
};

&usdhc2 {
	assigned-clocks = <&clk IMX8MQ_CLK_USDHC2>;
	assigned-clock-rates = <200000000>;
	pinctrl-names = "default", "state_100mhz", "state_200mhz";
	pinctrl-0 = <&pinctrl_usdhc2>;
	pinctrl-1 = <&pinctrl_usdhc2_100mhz>;
	pinctrl-2 = <&pinctrl_usdhc2_200mhz>;
	bus-width = <4>;
	vmmc-supply = <&reg_usdhc2_vmmc>;
	power-supply = <&wifi_pwr_en>;
	broken-cd;
	disable-wp;
	cap-sdio-irq;
	keep-power-in-suspend;
	wakeup-source;
	status = "okay";
};

&wdog1 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_wdog>;
	fsl,ext-reset-output;
	status = "okay";
};
