136ca3c8cSAdam Ford// SPDX-License-Identifier: (GPL-2.0 OR MIT)
236ca3c8cSAdam Ford/*
336ca3c8cSAdam Ford * Copyright 2020 Compass Electronics Group, LLC
436ca3c8cSAdam Ford */
536ca3c8cSAdam Ford
636ca3c8cSAdam Ford/ {
736ca3c8cSAdam Ford	leds {
836ca3c8cSAdam Ford		compatible = "gpio-leds";
936ca3c8cSAdam Ford
1036ca3c8cSAdam Ford		led-0 {
1136ca3c8cSAdam Ford			label = "gen_led0";
1236ca3c8cSAdam Ford			gpios = <&pca6416_1 4 GPIO_ACTIVE_HIGH>;
1336ca3c8cSAdam Ford			default-state = "off";
1436ca3c8cSAdam Ford		};
1536ca3c8cSAdam Ford
1636ca3c8cSAdam Ford		led-1 {
1736ca3c8cSAdam Ford			label = "gen_led1";
1836ca3c8cSAdam Ford			gpios = <&pca6416_1 5 GPIO_ACTIVE_HIGH>;
1936ca3c8cSAdam Ford			default-state = "off";
2036ca3c8cSAdam Ford		};
2136ca3c8cSAdam Ford
2236ca3c8cSAdam Ford		led-2 {
2336ca3c8cSAdam Ford			label = "gen_led2";
2436ca3c8cSAdam Ford			gpios = <&pca6416_1 6 GPIO_ACTIVE_HIGH>;
2536ca3c8cSAdam Ford			default-state = "off";
2636ca3c8cSAdam Ford		};
2736ca3c8cSAdam Ford
2836ca3c8cSAdam Ford		led-3 {
2936ca3c8cSAdam Ford			pinctrl-names = "default";
3036ca3c8cSAdam Ford			pinctrl-0 = <&pinctrl_led3>;
3136ca3c8cSAdam Ford			label = "heartbeat";
3236ca3c8cSAdam Ford			gpios = <&gpio4 28 GPIO_ACTIVE_HIGH>;
3336ca3c8cSAdam Ford			linux,default-trigger = "heartbeat";
3436ca3c8cSAdam Ford		};
3536ca3c8cSAdam Ford	};
3636ca3c8cSAdam Ford
3736ca3c8cSAdam Ford	reg_audio: regulator-audio {
3836ca3c8cSAdam Ford		compatible = "regulator-fixed";
3936ca3c8cSAdam Ford		regulator-name = "3v3_aud";
4036ca3c8cSAdam Ford		regulator-min-microvolt = <3300000>;
4136ca3c8cSAdam Ford		regulator-max-microvolt = <3300000>;
4236ca3c8cSAdam Ford		gpio = <&pca6416_1 11 GPIO_ACTIVE_HIGH>;
4336ca3c8cSAdam Ford		enable-active-high;
4436ca3c8cSAdam Ford	};
4536ca3c8cSAdam Ford
4636ca3c8cSAdam Ford	reg_usdhc2_vmmc: regulator-usdhc2 {
4736ca3c8cSAdam Ford		compatible = "regulator-fixed";
4836ca3c8cSAdam Ford		regulator-name = "vsd_3v3";
4936ca3c8cSAdam Ford		regulator-min-microvolt = <3300000>;
5036ca3c8cSAdam Ford		regulator-max-microvolt = <3300000>;
5136ca3c8cSAdam Ford		gpio = <&gpio2 19 GPIO_ACTIVE_HIGH>;
5236ca3c8cSAdam Ford		enable-active-high;
5336ca3c8cSAdam Ford	};
5436ca3c8cSAdam Ford
5536ca3c8cSAdam Ford	reg_usb_otg_vbus: regulator-usb {
5636ca3c8cSAdam Ford		compatible = "regulator-fixed";
5736ca3c8cSAdam Ford		pinctrl-names = "default";
5836ca3c8cSAdam Ford		pinctrl-0 = <&pinctrl_reg_usb_otg>;
5936ca3c8cSAdam Ford		regulator-name = "usb_otg_vbus";
6036ca3c8cSAdam Ford		regulator-min-microvolt = <5000000>;
6136ca3c8cSAdam Ford		regulator-max-microvolt = <5000000>;
6236ca3c8cSAdam Ford		gpio = <&gpio4 29 GPIO_ACTIVE_HIGH>;
6336ca3c8cSAdam Ford		enable-active-high;
6436ca3c8cSAdam Ford	};
6536ca3c8cSAdam Ford
6636ca3c8cSAdam Ford	sound {
6736ca3c8cSAdam Ford		compatible = "fsl,imx-audio-wm8962";
6836ca3c8cSAdam Ford		model = "wm8962-audio";
6936ca3c8cSAdam Ford		audio-cpu = <&sai3>;
7036ca3c8cSAdam Ford		audio-codec = <&wm8962>;
7136ca3c8cSAdam Ford		audio-routing =
7236ca3c8cSAdam Ford			"Headphone Jack", "HPOUTL",
7336ca3c8cSAdam Ford			"Headphone Jack", "HPOUTR",
7436ca3c8cSAdam Ford			"Ext Spk", "SPKOUTL",
7536ca3c8cSAdam Ford			"Ext Spk", "SPKOUTR",
7636ca3c8cSAdam Ford			"AMIC", "MICBIAS",
7736ca3c8cSAdam Ford			"IN3R", "AMIC";
7836ca3c8cSAdam Ford	};
7936ca3c8cSAdam Ford};
8036ca3c8cSAdam Ford
8136ca3c8cSAdam Ford&ecspi2 {
8236ca3c8cSAdam Ford	pinctrl-names = "default";
8336ca3c8cSAdam Ford	pinctrl-0 = <&pinctrl_espi2>;
8436ca3c8cSAdam Ford	cs-gpios = <&gpio5 9 GPIO_ACTIVE_LOW>;
8536ca3c8cSAdam Ford	status = "okay";
8636ca3c8cSAdam Ford
8736ca3c8cSAdam Ford	eeprom@0 {
8836ca3c8cSAdam Ford		compatible = "microchip,at25160bn", "atmel,at25";
8936ca3c8cSAdam Ford		reg = <0>;
9036ca3c8cSAdam Ford		spi-max-frequency = <5000000>;
9136ca3c8cSAdam Ford		spi-cpha;
9236ca3c8cSAdam Ford		spi-cpol;
9336ca3c8cSAdam Ford		pagesize = <32>;
9436ca3c8cSAdam Ford		size = <2048>;
9536ca3c8cSAdam Ford		address-width = <16>;
9636ca3c8cSAdam Ford	};
9736ca3c8cSAdam Ford};
9836ca3c8cSAdam Ford
9936ca3c8cSAdam Ford&i2c4 {
10036ca3c8cSAdam Ford	clock-frequency = <400000>;
10136ca3c8cSAdam Ford	pinctrl-names = "default";
10236ca3c8cSAdam Ford	pinctrl-0 = <&pinctrl_i2c4>;
10336ca3c8cSAdam Ford	status = "okay";
10436ca3c8cSAdam Ford
10536ca3c8cSAdam Ford	pca6416_0: gpio@20 {
10636ca3c8cSAdam Ford		compatible = "nxp,pcal6416";
10736ca3c8cSAdam Ford		reg = <0x20>;
10836ca3c8cSAdam Ford		pinctrl-names = "default";
10936ca3c8cSAdam Ford		pinctrl-0 = <&pinctrl_pcal6414>;
11036ca3c8cSAdam Ford		gpio-controller;
11136ca3c8cSAdam Ford		#gpio-cells = <2>;
11236ca3c8cSAdam Ford		interrupt-parent = <&gpio4>;
11336ca3c8cSAdam Ford		interrupts = <27 IRQ_TYPE_LEVEL_LOW>;
11436ca3c8cSAdam Ford	};
11536ca3c8cSAdam Ford
11636ca3c8cSAdam Ford	pca6416_1: gpio@21 {
11736ca3c8cSAdam Ford		compatible = "nxp,pcal6416";
11836ca3c8cSAdam Ford		reg = <0x21>;
11936ca3c8cSAdam Ford		gpio-controller;
12036ca3c8cSAdam Ford		#gpio-cells = <2>;
12136ca3c8cSAdam Ford		interrupt-parent = <&gpio4>;
12236ca3c8cSAdam Ford		interrupts = <27 IRQ_TYPE_LEVEL_LOW>;
12336ca3c8cSAdam Ford	};
12436ca3c8cSAdam Ford
12536ca3c8cSAdam Ford	wm8962: audio-codec@1a {
12636ca3c8cSAdam Ford		compatible = "wlf,wm8962";
12736ca3c8cSAdam Ford		reg = <0x1a>;
12836ca3c8cSAdam Ford		clocks = <&clk IMX8MN_CLK_SAI3_ROOT>;
12936ca3c8cSAdam Ford		DCVDD-supply = <&reg_audio>;
13036ca3c8cSAdam Ford		DBVDD-supply = <&reg_audio>;
13136ca3c8cSAdam Ford		AVDD-supply = <&reg_audio>;
13236ca3c8cSAdam Ford		CPVDD-supply = <&reg_audio>;
13336ca3c8cSAdam Ford		MICVDD-supply = <&reg_audio>;
13436ca3c8cSAdam Ford		PLLVDD-supply = <&reg_audio>;
13536ca3c8cSAdam Ford		SPKVDD1-supply = <&reg_audio>;
13636ca3c8cSAdam Ford		SPKVDD2-supply = <&reg_audio>;
13736ca3c8cSAdam Ford		gpio-cfg = <
13836ca3c8cSAdam Ford			0x0000 /* 0:Default */
13936ca3c8cSAdam Ford			0x0000 /* 1:Default */
14036ca3c8cSAdam Ford			0x0000 /* 2:FN_DMICCLK */
14136ca3c8cSAdam Ford			0x0000 /* 3:Default */
14236ca3c8cSAdam Ford			0x0000 /* 4:FN_DMICCDAT */
14336ca3c8cSAdam Ford			0x0000 /* 5:Default */
14436ca3c8cSAdam Ford		>;
14536ca3c8cSAdam Ford	};
14636ca3c8cSAdam Ford};
14736ca3c8cSAdam Ford
14836ca3c8cSAdam Ford&easrc {
14936ca3c8cSAdam Ford	fsl,asrc-rate  = <48000>;
15036ca3c8cSAdam Ford	status = "okay";
15136ca3c8cSAdam Ford};
15236ca3c8cSAdam Ford
15336ca3c8cSAdam Ford&sai3 {
15436ca3c8cSAdam Ford	pinctrl-names = "default";
15536ca3c8cSAdam Ford	pinctrl-0 = <&pinctrl_sai3>;
15636ca3c8cSAdam Ford	assigned-clocks = <&clk IMX8MN_CLK_SAI3>;
15736ca3c8cSAdam Ford	assigned-clock-parents = <&clk IMX8MN_AUDIO_PLL1_OUT>;
15836ca3c8cSAdam Ford	assigned-clock-rates = <24576000>;
15936ca3c8cSAdam Ford	fsl,sai-mclk-direction-output;
16036ca3c8cSAdam Ford	status = "okay";
16136ca3c8cSAdam Ford};
16236ca3c8cSAdam Ford
16336ca3c8cSAdam Ford&snvs_pwrkey {
16436ca3c8cSAdam Ford	status = "okay";
16536ca3c8cSAdam Ford};
16636ca3c8cSAdam Ford
16736ca3c8cSAdam Ford&uart2 { /* console */
16836ca3c8cSAdam Ford	pinctrl-names = "default";
16936ca3c8cSAdam Ford	pinctrl-0 = <&pinctrl_uart2>;
17036ca3c8cSAdam Ford	status = "okay";
17136ca3c8cSAdam Ford};
17236ca3c8cSAdam Ford
17336ca3c8cSAdam Ford&uart3 {
17436ca3c8cSAdam Ford	pinctrl-names = "default";
17536ca3c8cSAdam Ford	pinctrl-0 = <&pinctrl_uart3>;
17636ca3c8cSAdam Ford	assigned-clocks = <&clk IMX8MN_CLK_UART3>;
17736ca3c8cSAdam Ford	assigned-clock-parents = <&clk IMX8MN_SYS_PLL1_80M>;
178*5446ff1aSAdam Ford	uart-has-rtscts;
17936ca3c8cSAdam Ford	status = "okay";
18036ca3c8cSAdam Ford};
18136ca3c8cSAdam Ford
18236ca3c8cSAdam Ford&usbotg1 {
18336ca3c8cSAdam Ford	vbus-supply = <&reg_usb_otg_vbus>;
18436ca3c8cSAdam Ford	disable-over-current;
18536ca3c8cSAdam Ford	dr_mode="otg";
18636ca3c8cSAdam Ford	status = "okay";
18736ca3c8cSAdam Ford};
18836ca3c8cSAdam Ford
18936ca3c8cSAdam Ford&usdhc2 {
19036ca3c8cSAdam Ford	pinctrl-names = "default", "state_100mhz", "state_200mhz";
19136ca3c8cSAdam Ford	pinctrl-0 = <&pinctrl_usdhc2>, <&pinctrl_usdhc2_gpio>;
19236ca3c8cSAdam Ford	pinctrl-1 = <&pinctrl_usdhc2_100mhz>;
19336ca3c8cSAdam Ford	pinctrl-2 = <&pinctrl_usdhc2_200mhz>;
19436ca3c8cSAdam Ford	bus-width = <4>;
19536ca3c8cSAdam Ford	vmmc-supply = <&reg_usdhc2_vmmc>;
19636ca3c8cSAdam Ford	status = "okay";
19736ca3c8cSAdam Ford};
19836ca3c8cSAdam Ford
19936ca3c8cSAdam Ford&iomuxc {
20036ca3c8cSAdam Ford	pinctrl_espi2: espi2grp {
20136ca3c8cSAdam Ford		fsl,pins = <
20236ca3c8cSAdam Ford			MX8MN_IOMUXC_ECSPI2_SCLK_ECSPI2_SCLK		0x82
20336ca3c8cSAdam Ford			MX8MN_IOMUXC_ECSPI2_MOSI_ECSPI2_MOSI		0x82
20436ca3c8cSAdam Ford			MX8MN_IOMUXC_ECSPI2_MISO_ECSPI2_MISO		0x82
20536ca3c8cSAdam Ford			MX8MN_IOMUXC_ECSPI1_SS0_GPIO5_IO9		0x41
20636ca3c8cSAdam Ford		>;
20736ca3c8cSAdam Ford	};
20836ca3c8cSAdam Ford
20936ca3c8cSAdam Ford	pinctrl_i2c2: i2c2grp {
21036ca3c8cSAdam Ford		fsl,pins = <
21136ca3c8cSAdam Ford			MX8MN_IOMUXC_I2C2_SCL_I2C2_SCL		0x400001c3
21236ca3c8cSAdam Ford			MX8MN_IOMUXC_I2C2_SDA_I2C2_SDA		0x400001c3
21336ca3c8cSAdam Ford		>;
21436ca3c8cSAdam Ford	};
21536ca3c8cSAdam Ford
21636ca3c8cSAdam Ford	pinctrl_i2c4: i2c4grp {
21736ca3c8cSAdam Ford		fsl,pins = <
21836ca3c8cSAdam Ford			MX8MN_IOMUXC_I2C4_SCL_I2C4_SCL		0x400001c3
21936ca3c8cSAdam Ford			MX8MN_IOMUXC_I2C4_SDA_I2C4_SDA		0x400001c3
22036ca3c8cSAdam Ford		>;
22136ca3c8cSAdam Ford	};
22236ca3c8cSAdam Ford
22336ca3c8cSAdam Ford	pinctrl_led3: led3grp {
22436ca3c8cSAdam Ford		fsl,pins = <
22536ca3c8cSAdam Ford			MX8MN_IOMUXC_SAI3_RXFS_GPIO4_IO28	0x41
22636ca3c8cSAdam Ford		>;
22736ca3c8cSAdam Ford	};
22836ca3c8cSAdam Ford
22936ca3c8cSAdam Ford	pinctrl_pcal6414: pcal6414-gpiogrp {
23036ca3c8cSAdam Ford		fsl,pins = <
23136ca3c8cSAdam Ford			MX8MN_IOMUXC_SAI2_MCLK_GPIO4_IO27		0x19
23236ca3c8cSAdam Ford		>;
23336ca3c8cSAdam Ford	};
23436ca3c8cSAdam Ford
23536ca3c8cSAdam Ford	pinctrl_reg_usb_otg: reg-otggrp {
23636ca3c8cSAdam Ford		fsl,pins = <
23736ca3c8cSAdam Ford			MX8MN_IOMUXC_SAI3_RXC_GPIO4_IO29     0x19
23836ca3c8cSAdam Ford		>;
23936ca3c8cSAdam Ford	};
24036ca3c8cSAdam Ford
24136ca3c8cSAdam Ford	pinctrl_sai3: sai3grp {
24236ca3c8cSAdam Ford		fsl,pins = <
24336ca3c8cSAdam Ford			MX8MN_IOMUXC_SAI3_TXFS_SAI3_TX_SYNC     0xd6
24436ca3c8cSAdam Ford			MX8MN_IOMUXC_SAI3_TXC_SAI3_TX_BCLK      0xd6
24536ca3c8cSAdam Ford			MX8MN_IOMUXC_SAI3_MCLK_SAI3_MCLK        0xd6
24636ca3c8cSAdam Ford			MX8MN_IOMUXC_SAI3_TXD_SAI3_TX_DATA0     0xd6
24736ca3c8cSAdam Ford			MX8MN_IOMUXC_SAI3_RXD_SAI3_RX_DATA0	0xd6
24836ca3c8cSAdam Ford		>;
24936ca3c8cSAdam Ford	};
25036ca3c8cSAdam Ford
25136ca3c8cSAdam Ford	pinctrl_uart2: uart2grp {
25236ca3c8cSAdam Ford		fsl,pins = <
25336ca3c8cSAdam Ford			MX8MN_IOMUXC_UART2_RXD_UART2_DCE_RX	0x140
25436ca3c8cSAdam Ford			MX8MN_IOMUXC_UART2_TXD_UART2_DCE_TX	0x140
25536ca3c8cSAdam Ford		>;
25636ca3c8cSAdam Ford	};
25736ca3c8cSAdam Ford
25836ca3c8cSAdam Ford	pinctrl_uart3: uart3grp {
25936ca3c8cSAdam Ford		fsl,pins = <
26036ca3c8cSAdam Ford			MX8MN_IOMUXC_ECSPI1_SCLK_UART3_DCE_RX	0x40
26136ca3c8cSAdam Ford			MX8MN_IOMUXC_ECSPI1_MOSI_UART3_DCE_TX	0x40
262*5446ff1aSAdam Ford			MX8MN_IOMUXC_ECSPI1_MISO_UART3_DCE_CTS_B	0x40
263*5446ff1aSAdam Ford			MX8MN_IOMUXC_ECSPI1_SS0_UART3_DCE_RTS_B	0x40
26436ca3c8cSAdam Ford		>;
26536ca3c8cSAdam Ford	};
26636ca3c8cSAdam Ford
26736ca3c8cSAdam Ford	pinctrl_usdhc2_gpio: usdhc2gpiogrp {
26836ca3c8cSAdam Ford		fsl,pins = <
26936ca3c8cSAdam Ford			MX8MN_IOMUXC_SD2_CD_B_USDHC2_CD_B	0x41
27036ca3c8cSAdam Ford			MX8MN_IOMUXC_SD2_RESET_B_GPIO2_IO19	0x41
27136ca3c8cSAdam Ford		>;
27236ca3c8cSAdam Ford	};
27336ca3c8cSAdam Ford
27436ca3c8cSAdam Ford	pinctrl_usdhc2: usdhc2grp {
27536ca3c8cSAdam Ford		fsl,pins = <
27636ca3c8cSAdam Ford			MX8MN_IOMUXC_SD2_CLK_USDHC2_CLK	0x190
27736ca3c8cSAdam Ford			MX8MN_IOMUXC_SD2_CMD_USDHC2_CMD	0x1d0
27836ca3c8cSAdam Ford			MX8MN_IOMUXC_SD2_DATA0_USDHC2_DATA0	0x1d0
27936ca3c8cSAdam Ford			MX8MN_IOMUXC_SD2_DATA1_USDHC2_DATA1	0x1d0
28036ca3c8cSAdam Ford			MX8MN_IOMUXC_SD2_DATA2_USDHC2_DATA2	0x1d0
28136ca3c8cSAdam Ford			MX8MN_IOMUXC_SD2_DATA3_USDHC2_DATA3	0x1d0
28236ca3c8cSAdam Ford			MX8MN_IOMUXC_GPIO1_IO04_USDHC2_VSELECT	0x1d0
28336ca3c8cSAdam Ford		>;
28436ca3c8cSAdam Ford	};
28536ca3c8cSAdam Ford
28636ca3c8cSAdam Ford	pinctrl_usdhc2_100mhz: usdhc2-100mhzgrp {
28736ca3c8cSAdam Ford		fsl,pins = <
28836ca3c8cSAdam Ford			MX8MN_IOMUXC_SD2_CLK_USDHC2_CLK	0x194
28936ca3c8cSAdam Ford			MX8MN_IOMUXC_SD2_CMD_USDHC2_CMD	0x1d4
29036ca3c8cSAdam Ford			MX8MN_IOMUXC_SD2_DATA0_USDHC2_DATA0	0x1d4
29136ca3c8cSAdam Ford			MX8MN_IOMUXC_SD2_DATA1_USDHC2_DATA1	0x1d4
29236ca3c8cSAdam Ford			MX8MN_IOMUXC_SD2_DATA2_USDHC2_DATA2	0x1d4
29336ca3c8cSAdam Ford			MX8MN_IOMUXC_SD2_DATA3_USDHC2_DATA3	0x1d4
29436ca3c8cSAdam Ford			MX8MN_IOMUXC_GPIO1_IO04_USDHC2_VSELECT	0x1d0
29536ca3c8cSAdam Ford		>;
29636ca3c8cSAdam Ford	};
29736ca3c8cSAdam Ford
29836ca3c8cSAdam Ford	pinctrl_usdhc2_200mhz: usdhc2-200mhzgrp {
29936ca3c8cSAdam Ford		fsl,pins = <
30036ca3c8cSAdam Ford			MX8MN_IOMUXC_SD2_CLK_USDHC2_CLK	0x196
30136ca3c8cSAdam Ford			MX8MN_IOMUXC_SD2_CMD_USDHC2_CMD	0x1d6
30236ca3c8cSAdam Ford			MX8MN_IOMUXC_SD2_DATA0_USDHC2_DATA0	0x1d6
30336ca3c8cSAdam Ford			MX8MN_IOMUXC_SD2_DATA1_USDHC2_DATA1	0x1d6
30436ca3c8cSAdam Ford			MX8MN_IOMUXC_SD2_DATA2_USDHC2_DATA2	0x1d6
30536ca3c8cSAdam Ford			MX8MN_IOMUXC_SD2_DATA3_USDHC2_DATA3	0x1d6
30636ca3c8cSAdam Ford			MX8MN_IOMUXC_GPIO1_IO04_USDHC2_VSELECT	0x1d0
30736ca3c8cSAdam Ford		>;
30836ca3c8cSAdam Ford	};
30936ca3c8cSAdam Ford};
310