xref: /freebsd-src/sys/contrib/device-tree/src/arm64/freescale/imx8mn-rve-gateway.dts (revision 01950c46b8155250f64374fb72fc11faa44bf099)
18d13bc63SEmmanuel Vadot// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
28d13bc63SEmmanuel Vadot/*
38d13bc63SEmmanuel Vadot * Copyright 2023 DimOnOff
48d13bc63SEmmanuel Vadot */
58d13bc63SEmmanuel Vadot
68d13bc63SEmmanuel Vadot/dts-v1/;
78d13bc63SEmmanuel Vadot
88d13bc63SEmmanuel Vadot#include <dt-bindings/usb/pd.h>
98d13bc63SEmmanuel Vadot#include "imx8mn-var-som.dtsi"
108d13bc63SEmmanuel Vadot
118d13bc63SEmmanuel Vadot/ {
128d13bc63SEmmanuel Vadot	model = "RVE gateway";
13*01950c46SEmmanuel Vadot	compatible = "rve,gateway", "variscite,var-som-mx8mn", "fsl,imx8mn";
148d13bc63SEmmanuel Vadot
158d13bc63SEmmanuel Vadot	crystal_duart_24m: crystal-duart-24m {
168d13bc63SEmmanuel Vadot		compatible = "fixed-clock";
178d13bc63SEmmanuel Vadot		#clock-cells = <0>;
188d13bc63SEmmanuel Vadot		clock-frequency = <24000000>;
198d13bc63SEmmanuel Vadot	};
208d13bc63SEmmanuel Vadot
218d13bc63SEmmanuel Vadot	gpio-keys {
228d13bc63SEmmanuel Vadot		compatible = "gpio-keys";
238d13bc63SEmmanuel Vadot		pinctrl-names = "default";
248d13bc63SEmmanuel Vadot		pinctrl-0 = <&pinctrl_gpio_keys>;
258d13bc63SEmmanuel Vadot
268d13bc63SEmmanuel Vadot		key-enter {
278d13bc63SEmmanuel Vadot			label = "enter";
288d13bc63SEmmanuel Vadot			gpios = <&gpio1 1 GPIO_ACTIVE_LOW>;
298d13bc63SEmmanuel Vadot			linux,code = <KEY_ENTER>;
308d13bc63SEmmanuel Vadot		};
318d13bc63SEmmanuel Vadot
328d13bc63SEmmanuel Vadot		key-exit {
338d13bc63SEmmanuel Vadot			label = "exit";
348d13bc63SEmmanuel Vadot			gpios = <&gpio3 23 GPIO_ACTIVE_LOW>;
358d13bc63SEmmanuel Vadot			linux,code = <KEY_ESC>;
368d13bc63SEmmanuel Vadot		};
378d13bc63SEmmanuel Vadot	};
388d13bc63SEmmanuel Vadot
398d13bc63SEmmanuel Vadot	lcd {
408d13bc63SEmmanuel Vadot		compatible = "hit,hd44780";
418d13bc63SEmmanuel Vadot		display-height-chars = <2>;
428d13bc63SEmmanuel Vadot		display-width-chars = <20>;
438d13bc63SEmmanuel Vadot		pinctrl-names = "default";
448d13bc63SEmmanuel Vadot		pinctrl-0 = <&pinctrl_lcd>;
458d13bc63SEmmanuel Vadot		data-gpios = <&gpio5  1 GPIO_ACTIVE_HIGH>,
468d13bc63SEmmanuel Vadot			     <&gpio1  6 GPIO_ACTIVE_HIGH>,
478d13bc63SEmmanuel Vadot			     <&gpio1 14 GPIO_ACTIVE_HIGH>,
488d13bc63SEmmanuel Vadot			     <&gpio4 28 GPIO_ACTIVE_HIGH>,
498d13bc63SEmmanuel Vadot			     <&gpio5 24 GPIO_ACTIVE_HIGH>,
508d13bc63SEmmanuel Vadot			     <&gpio5  2 GPIO_ACTIVE_HIGH>,
518d13bc63SEmmanuel Vadot			     <&gpio1 12 GPIO_ACTIVE_HIGH>,
528d13bc63SEmmanuel Vadot			     <&gpio5 25 GPIO_ACTIVE_HIGH>;
538d13bc63SEmmanuel Vadot		enable-gpios = <&gpio5 23 GPIO_ACTIVE_HIGH>;
548d13bc63SEmmanuel Vadot		rs-gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>;
558d13bc63SEmmanuel Vadot		rw-gpios = <&gpio4 27 GPIO_ACTIVE_HIGH>;
568d13bc63SEmmanuel Vadot	};
578d13bc63SEmmanuel Vadot
588d13bc63SEmmanuel Vadot	reg_3p3v: regulator-3p3v {
598d13bc63SEmmanuel Vadot		compatible = "regulator-fixed";
608d13bc63SEmmanuel Vadot		regulator-name = "3P3V";
618d13bc63SEmmanuel Vadot		regulator-min-microvolt = <3300000>;
628d13bc63SEmmanuel Vadot		regulator-max-microvolt = <3300000>;
638d13bc63SEmmanuel Vadot		regulator-always-on;
648d13bc63SEmmanuel Vadot	};
658d13bc63SEmmanuel Vadot
668d13bc63SEmmanuel Vadot	/* Bourns PEC12R rotary encoder, 24 steps. */
678d13bc63SEmmanuel Vadot	rotary: rotary-encoder {
688d13bc63SEmmanuel Vadot		compatible = "rotary-encoder";
698d13bc63SEmmanuel Vadot		pinctrl-names = "default";
708d13bc63SEmmanuel Vadot		pinctrl-0 = <&pinctrl_rotary>;
718d13bc63SEmmanuel Vadot		gpios = <&gpio1  5 GPIO_ACTIVE_LOW>, /* A */
728d13bc63SEmmanuel Vadot			<&gpio3 21 GPIO_ACTIVE_LOW>; /* B */
738d13bc63SEmmanuel Vadot		linux,axis = <0>; /* REL_X */
748d13bc63SEmmanuel Vadot		rotary-encoder,encoding = "gray";
758d13bc63SEmmanuel Vadot		rotary-encoder,relative-axis;
768d13bc63SEmmanuel Vadot	};
778d13bc63SEmmanuel Vadot};
788d13bc63SEmmanuel Vadot
798d13bc63SEmmanuel Vadot&ecspi1 {
808d13bc63SEmmanuel Vadot	cs-gpios = <&gpio5 9 GPIO_ACTIVE_LOW>;
818d13bc63SEmmanuel Vadot
828d13bc63SEmmanuel Vadot	duart1: serial@0 {
838d13bc63SEmmanuel Vadot		compatible = "nxp,sc16is752";
848d13bc63SEmmanuel Vadot		reg = <0>;
858d13bc63SEmmanuel Vadot		spi-rx-bus-width = <1>;
868d13bc63SEmmanuel Vadot		spi-tx-bus-width = <1>;
878d13bc63SEmmanuel Vadot		spi-max-frequency = <4000000>;
888d13bc63SEmmanuel Vadot		clocks = <&crystal_duart_24m>;
898d13bc63SEmmanuel Vadot		interrupt-parent = <&gpio3>;
908d13bc63SEmmanuel Vadot		interrupts = <22 IRQ_TYPE_EDGE_FALLING>;
918d13bc63SEmmanuel Vadot		gpio-controller;
928d13bc63SEmmanuel Vadot		#gpio-cells = <2>;
938d13bc63SEmmanuel Vadot		gpio-line-names = "RADIO0", "RADIO1", "RADIO2", "RADIO3",
948d13bc63SEmmanuel Vadot				  "RADIO4", "RADIO_RESET", "TP12", "TP11";
958d13bc63SEmmanuel Vadot		linux,rs485-enabled-at-boot-time;
968d13bc63SEmmanuel Vadot		rs485-rts-active-low;
978d13bc63SEmmanuel Vadot	};
988d13bc63SEmmanuel Vadot
998d13bc63SEmmanuel Vadot	/delete-node/ touchscreen@0;
1008d13bc63SEmmanuel Vadot};
1018d13bc63SEmmanuel Vadot
1028d13bc63SEmmanuel Vadot&ecspi2 {
1038d13bc63SEmmanuel Vadot	pinctrl-names = "default";
1048d13bc63SEmmanuel Vadot	pinctrl-0 = <&pinctrl_ecspi2>;
1058d13bc63SEmmanuel Vadot	cs-gpios = <&gpio5 13 GPIO_ACTIVE_LOW>;
1068d13bc63SEmmanuel Vadot	/delete-property/ dmas;
1078d13bc63SEmmanuel Vadot	/delete-property/ dma-names;
1088d13bc63SEmmanuel Vadot	status = "okay";
1098d13bc63SEmmanuel Vadot
1108d13bc63SEmmanuel Vadot	duart2: serial@0 {
1118d13bc63SEmmanuel Vadot		compatible = "nxp,sc16is752";
1128d13bc63SEmmanuel Vadot		reg = <0>;
1138d13bc63SEmmanuel Vadot		spi-rx-bus-width = <1>;
1148d13bc63SEmmanuel Vadot		spi-tx-bus-width = <1>;
1158d13bc63SEmmanuel Vadot		spi-max-frequency = <4000000>;
1168d13bc63SEmmanuel Vadot		clocks = <&crystal_duart_24m>;
1178d13bc63SEmmanuel Vadot		interrupt-parent = <&gpio3>;
1188d13bc63SEmmanuel Vadot		interrupts = <20 IRQ_TYPE_EDGE_FALLING>;
1198d13bc63SEmmanuel Vadot		gpio-controller;
1208d13bc63SEmmanuel Vadot		#gpio-cells = <2>;
1218d13bc63SEmmanuel Vadot		gpio-line-names = "LED_B_USER", "LED_R_USER", "LED_G_USER",
1228d13bc63SEmmanuel Vadot				  "GPIO_EXT3", "GPIO_EXT2", "GPIO_EXT1",
1238d13bc63SEmmanuel Vadot				  "GPIO_EXT0", "TP13";
1248d13bc63SEmmanuel Vadot		linux,rs485-enabled-at-boot-time;
1258d13bc63SEmmanuel Vadot		rs485-rts-active-low;
1268d13bc63SEmmanuel Vadot	};
1278d13bc63SEmmanuel Vadot};
1288d13bc63SEmmanuel Vadot
1298d13bc63SEmmanuel Vadot/* Configure PWM pins in GPIO mode: */
1308d13bc63SEmmanuel Vadot&gpio5 {
1318d13bc63SEmmanuel Vadot	gpio-line-names = "", "", "", "PWM3", "PWM2", "PWM1";
1328d13bc63SEmmanuel Vadot};
1338d13bc63SEmmanuel Vadot
1348d13bc63SEmmanuel Vadot&gpu {
1358d13bc63SEmmanuel Vadot	status = "disabled";
1368d13bc63SEmmanuel Vadot};
1378d13bc63SEmmanuel Vadot
1388d13bc63SEmmanuel Vadot&i2c2 {
1398d13bc63SEmmanuel Vadot	clock-frequency = <400000>;
1408d13bc63SEmmanuel Vadot	pinctrl-names = "default";
1418d13bc63SEmmanuel Vadot	pinctrl-0 = <&pinctrl_i2c2>;
1428d13bc63SEmmanuel Vadot	status = "okay";
1438d13bc63SEmmanuel Vadot
1448d13bc63SEmmanuel Vadot	/* Carrier board EEPROM */
1458d13bc63SEmmanuel Vadot	eeprom_cb: eeprom@56 {
1468d13bc63SEmmanuel Vadot		compatible = "atmel,24c04";
1478d13bc63SEmmanuel Vadot		reg = <0x56>;
1488d13bc63SEmmanuel Vadot		pagesize = <16>;
1498d13bc63SEmmanuel Vadot		vcc-supply = <&reg_3p3v>;
1508d13bc63SEmmanuel Vadot	};
1518d13bc63SEmmanuel Vadot
1528d13bc63SEmmanuel Vadot	lm75: sensor@48 {
1538d13bc63SEmmanuel Vadot		compatible = "st,stlm75";
1548d13bc63SEmmanuel Vadot		reg = <0x48>;
1558d13bc63SEmmanuel Vadot		vs-supply = <&reg_3p3v>;
1568d13bc63SEmmanuel Vadot	};
1578d13bc63SEmmanuel Vadot
1588d13bc63SEmmanuel Vadot	mcp7940: rtc@6f {
1598d13bc63SEmmanuel Vadot		compatible = "microchip,mcp7940x";
1608d13bc63SEmmanuel Vadot		reg = <0x6f>;
1618d13bc63SEmmanuel Vadot	};
1628d13bc63SEmmanuel Vadot};
1638d13bc63SEmmanuel Vadot
1648d13bc63SEmmanuel Vadot&i2c3 {
1658d13bc63SEmmanuel Vadot	codec@1a {
1668d13bc63SEmmanuel Vadot		status = "disabled";
1678d13bc63SEmmanuel Vadot	};
1688d13bc63SEmmanuel Vadot};
1698d13bc63SEmmanuel Vadot
1708d13bc63SEmmanuel Vadot&i2c4 {
1718d13bc63SEmmanuel Vadot	clock-frequency = <400000>;
1728d13bc63SEmmanuel Vadot	pinctrl-names = "default";
1738d13bc63SEmmanuel Vadot	pinctrl-0 = <&pinctrl_i2c4>;
1748d13bc63SEmmanuel Vadot	status = "okay";
1758d13bc63SEmmanuel Vadot
1768d13bc63SEmmanuel Vadot	pcf8574_1: gpio@38 {
1778d13bc63SEmmanuel Vadot		compatible = "nxp,pcf8574";
1788d13bc63SEmmanuel Vadot		reg = <0x38>;
1798d13bc63SEmmanuel Vadot		gpio-controller;
1808d13bc63SEmmanuel Vadot		#gpio-cells = <2>;
1818d13bc63SEmmanuel Vadot		gpio-line-names = "LED_B_COMM3", "LED_R_COMM3", "LED_G_COMM3",
1828d13bc63SEmmanuel Vadot				  "TP14", "TP15", "LED_G_COMM4", "LED_R_COMM4",
1838d13bc63SEmmanuel Vadot				  "LED_B_COMM4";
1848d13bc63SEmmanuel Vadot	};
1858d13bc63SEmmanuel Vadot
1868d13bc63SEmmanuel Vadot	pcf8574_2: gpio@39 {
1878d13bc63SEmmanuel Vadot		compatible = "nxp,pcf8574";
1888d13bc63SEmmanuel Vadot		reg = <0x39>;
1898d13bc63SEmmanuel Vadot		gpio-controller;
1908d13bc63SEmmanuel Vadot		#gpio-cells = <2>;
1918d13bc63SEmmanuel Vadot		gpio-line-names = "LED_B_COMM2", "LED_G_COMM2", "LED_B_COMM1",
1928d13bc63SEmmanuel Vadot				  "LED_R_COMM2", "LED_R_COMM1", "LED_G_COMM1",
1938d13bc63SEmmanuel Vadot				  "TP16", "TP17";
1948d13bc63SEmmanuel Vadot	};
1958d13bc63SEmmanuel Vadot};
1968d13bc63SEmmanuel Vadot
1978d13bc63SEmmanuel Vadot/* Bluetooth */
1988d13bc63SEmmanuel Vadot&uart2 {
1998d13bc63SEmmanuel Vadot	status = "disabled";
2008d13bc63SEmmanuel Vadot};
2018d13bc63SEmmanuel Vadot
2028d13bc63SEmmanuel Vadot&usbotg1 {
2038d13bc63SEmmanuel Vadot	dr_mode = "host";
2048d13bc63SEmmanuel Vadot	disable-over-current;
2058d13bc63SEmmanuel Vadot	status = "okay";
2068d13bc63SEmmanuel Vadot};
2078d13bc63SEmmanuel Vadot
2088d13bc63SEmmanuel Vadot/* SD interface on expansion connector. */
2098d13bc63SEmmanuel Vadot&usdhc2 {
2108d13bc63SEmmanuel Vadot	vmmc-supply = <&reg_3p3v>;
2118d13bc63SEmmanuel Vadot	cd-gpios = <&gpio1 13 GPIO_ACTIVE_LOW>;
2128d13bc63SEmmanuel Vadot};
2138d13bc63SEmmanuel Vadot
2148d13bc63SEmmanuel Vadot&iomuxc {
2158d13bc63SEmmanuel Vadot	pinctrl_ecspi1: ecspi1grp {
2168d13bc63SEmmanuel Vadot		fsl,pins = <
2178d13bc63SEmmanuel Vadot			MX8MN_IOMUXC_ECSPI1_SCLK_ECSPI1_SCLK	0x13
2188d13bc63SEmmanuel Vadot			MX8MN_IOMUXC_ECSPI1_MOSI_ECSPI1_MOSI	0x13
2198d13bc63SEmmanuel Vadot			MX8MN_IOMUXC_ECSPI1_MISO_ECSPI1_MISO	0x13
2208d13bc63SEmmanuel Vadot			MX8MN_IOMUXC_ECSPI1_SS0_GPIO5_IO9	0x13 /* SS0 */
2218d13bc63SEmmanuel Vadot			MX8MN_IOMUXC_SAI5_RXD1_GPIO3_IO22	0x13 /* SC16 IRQ */
2228d13bc63SEmmanuel Vadot		>;
2238d13bc63SEmmanuel Vadot	};
2248d13bc63SEmmanuel Vadot
2258d13bc63SEmmanuel Vadot	pinctrl_ecspi2: ecspi2grp {
2268d13bc63SEmmanuel Vadot		fsl,pins = <
2278d13bc63SEmmanuel Vadot			MX8MN_IOMUXC_ECSPI2_SCLK_ECSPI2_SCLK	0x13
2288d13bc63SEmmanuel Vadot			MX8MN_IOMUXC_ECSPI2_MOSI_ECSPI2_MOSI	0x13
2298d13bc63SEmmanuel Vadot			MX8MN_IOMUXC_ECSPI2_MISO_ECSPI2_MISO	0x13
2308d13bc63SEmmanuel Vadot			MX8MN_IOMUXC_ECSPI2_SS0_GPIO5_IO13	0x13 /* SS0 */
2318d13bc63SEmmanuel Vadot			MX8MN_IOMUXC_SAI5_RXC_GPIO3_IO20	0x13 /* SC16 IRQ */
2328d13bc63SEmmanuel Vadot		>;
2338d13bc63SEmmanuel Vadot	};
2348d13bc63SEmmanuel Vadot
2358d13bc63SEmmanuel Vadot	pinctrl_gpio_keys: gpiokeysgrp {
2368d13bc63SEmmanuel Vadot		fsl,pins = <
2378d13bc63SEmmanuel Vadot			MX8MN_IOMUXC_GPIO1_IO01_GPIO1_IO1	0xc6 /* Enter */
2388d13bc63SEmmanuel Vadot			MX8MN_IOMUXC_SAI5_RXD2_GPIO3_IO23	0xc6 /* Exit */
2398d13bc63SEmmanuel Vadot		>;
2408d13bc63SEmmanuel Vadot	};
2418d13bc63SEmmanuel Vadot
2428d13bc63SEmmanuel Vadot	pinctrl_i2c2: i2c2grp {
2438d13bc63SEmmanuel Vadot		fsl,pins = <
2448d13bc63SEmmanuel Vadot			MX8MN_IOMUXC_I2C2_SCL_I2C2_SCL		0x400001c3
2458d13bc63SEmmanuel Vadot			MX8MN_IOMUXC_I2C2_SDA_I2C2_SDA		0x400001c3
2468d13bc63SEmmanuel Vadot		>;
2478d13bc63SEmmanuel Vadot	};
2488d13bc63SEmmanuel Vadot
2498d13bc63SEmmanuel Vadot	pinctrl_i2c4: i2c4grp {
2508d13bc63SEmmanuel Vadot		fsl,pins = <
2518d13bc63SEmmanuel Vadot			MX8MN_IOMUXC_I2C4_SCL_I2C4_SCL		0x400001c3
2528d13bc63SEmmanuel Vadot			MX8MN_IOMUXC_I2C4_SDA_I2C4_SDA		0x400001c3
2538d13bc63SEmmanuel Vadot		>;
2548d13bc63SEmmanuel Vadot	};
2558d13bc63SEmmanuel Vadot
2568d13bc63SEmmanuel Vadot	pinctrl_lcd: lcdgrp {
2578d13bc63SEmmanuel Vadot		fsl,pins = <
2588d13bc63SEmmanuel Vadot			MX8MN_IOMUXC_SAI3_TXD_GPIO5_IO1		0x00000156 /* D0 */
2598d13bc63SEmmanuel Vadot			MX8MN_IOMUXC_GPIO1_IO06_GPIO1_IO6	0x00000156 /* D1 */
2608d13bc63SEmmanuel Vadot			MX8MN_IOMUXC_GPIO1_IO14_GPIO1_IO14	0x00000156 /* D2 */
2618d13bc63SEmmanuel Vadot			MX8MN_IOMUXC_SAI3_RXFS_GPIO4_IO28	0x00000156 /* D3 */
2628d13bc63SEmmanuel Vadot			MX8MN_IOMUXC_UART2_RXD_GPIO5_IO24	0x00000156 /* D4 */
2638d13bc63SEmmanuel Vadot			MX8MN_IOMUXC_SAI3_MCLK_GPIO5_IO2	0x00000156 /* D5 */
2648d13bc63SEmmanuel Vadot			MX8MN_IOMUXC_GPIO1_IO12_GPIO1_IO12	0x00000156 /* D6 */
2658d13bc63SEmmanuel Vadot			MX8MN_IOMUXC_UART2_TXD_GPIO5_IO25	0x00000156 /* D7 */
2668d13bc63SEmmanuel Vadot			MX8MN_IOMUXC_UART1_TXD_GPIO5_IO23	0x00000156 /* E */
2678d13bc63SEmmanuel Vadot			MX8MN_IOMUXC_GPIO1_IO07_GPIO1_IO7	0x00000156 /* RS */
2688d13bc63SEmmanuel Vadot			MX8MN_IOMUXC_SAI2_MCLK_GPIO4_IO27	0x00000156 /* R/W */
2698d13bc63SEmmanuel Vadot		>;
2708d13bc63SEmmanuel Vadot	};
2718d13bc63SEmmanuel Vadot
2728d13bc63SEmmanuel Vadot	pinctrl_rotary: rotarygrp {
2738d13bc63SEmmanuel Vadot		fsl,pins = <
2748d13bc63SEmmanuel Vadot			MX8MN_IOMUXC_GPIO1_IO05_GPIO1_IO5	0x00000156 /* A */
2758d13bc63SEmmanuel Vadot			MX8MN_IOMUXC_SAI5_RXD0_GPIO3_IO21	0x00000156 /* B */
2768d13bc63SEmmanuel Vadot		>;
2778d13bc63SEmmanuel Vadot	};
2788d13bc63SEmmanuel Vadot
2798d13bc63SEmmanuel Vadot	/* Override Card Detect function GPIO value (GPIO1_IO10) from SOM: */
2808d13bc63SEmmanuel Vadot	pinctrl_usdhc2_gpio: usdhc2gpiogrp {
2818d13bc63SEmmanuel Vadot		fsl,pins = <
2828d13bc63SEmmanuel Vadot			MX8MN_IOMUXC_GPIO1_IO13_GPIO1_IO13	0x41
2838d13bc63SEmmanuel Vadot		>;
2848d13bc63SEmmanuel Vadot	};
2858d13bc63SEmmanuel Vadot};
286