xref: /linux/arch/arm64/boot/dts/freescale/imx8mp-dhcom-pdk2.dts (revision 11af40dc13f328c76648e16b8c8a6902b35bbd8c)
18d671269SMarek Vasut// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
28d671269SMarek Vasut/*
38d671269SMarek Vasut * Copyright (C) 2022 Marek Vasut <marex@denx.de>
4ceefe3d5SMarek Vasut *
5ceefe3d5SMarek Vasut * DHCOM iMX8MP variant:
6ceefe3d5SMarek Vasut * DHCM-iMX8ML8-C160-R409-F1638-SPI16-GE-CAN2-SD-RTC-WBTA-ADC-T-RGB-CSI2-HS-I-01D2
7ceefe3d5SMarek Vasut * DHCOM PCB number: 660-100 or newer
8ceefe3d5SMarek Vasut * PDK2 PCB number: 516-400 or newer
98d671269SMarek Vasut */
108d671269SMarek Vasut
118d671269SMarek Vasut/dts-v1/;
128d671269SMarek Vasut
138d671269SMarek Vasut#include <dt-bindings/leds/common.h>
148d671269SMarek Vasut#include <dt-bindings/phy/phy-imx8-pcie.h>
158d671269SMarek Vasut#include "imx8mp-dhcom-som.dtsi"
168d671269SMarek Vasut
178d671269SMarek Vasut/ {
188d671269SMarek Vasut	model = "DH electronics i.MX8M Plus DHCOM Premium Developer Kit (2)";
19dcc80ddbSMarek Vasut	compatible = "dh,imx8mp-dhcom-pdk2", "dh,imx8mp-dhcom-som",
20dcc80ddbSMarek Vasut		     "fsl,imx8mp";
218d671269SMarek Vasut
228d671269SMarek Vasut	chosen {
238d671269SMarek Vasut		stdout-path = &uart1;
248d671269SMarek Vasut	};
258d671269SMarek Vasut
2604a0b7b8SMarek Vasut	clk_ext_audio_codec: clock-codec {
2704a0b7b8SMarek Vasut		compatible = "fixed-clock";
2804a0b7b8SMarek Vasut		#clock-cells = <0>;
2904a0b7b8SMarek Vasut		clock-frequency = <24000000>;
3004a0b7b8SMarek Vasut	};
3104a0b7b8SMarek Vasut
328d671269SMarek Vasut	gpio-keys {
338d671269SMarek Vasut		compatible = "gpio-keys";
348d671269SMarek Vasut
358d671269SMarek Vasut		button-0 {
368d671269SMarek Vasut			gpios = <&gpio1 9 GPIO_ACTIVE_LOW>; /* GPIO A */
378d671269SMarek Vasut			label = "TA1-GPIO-A";
388d671269SMarek Vasut			linux,code = <KEY_A>;
398d671269SMarek Vasut			pinctrl-0 = <&pinctrl_dhcom_a>;
408d671269SMarek Vasut			pinctrl-names = "default";
418d671269SMarek Vasut			wakeup-source;
428d671269SMarek Vasut		};
438d671269SMarek Vasut
448d671269SMarek Vasut		button-1 {
458d671269SMarek Vasut			gpios = <&gpio1 8 GPIO_ACTIVE_LOW>; /* GPIO B */
468d671269SMarek Vasut			label = "TA2-GPIO-B";
478d671269SMarek Vasut			linux,code = <KEY_B>;
488d671269SMarek Vasut			pinctrl-0 = <&pinctrl_dhcom_b>;
498d671269SMarek Vasut			pinctrl-names = "default";
508d671269SMarek Vasut			wakeup-source;
518d671269SMarek Vasut		};
528d671269SMarek Vasut
538d671269SMarek Vasut		button-2 {
548d671269SMarek Vasut			gpios = <&gpio5 2 GPIO_ACTIVE_LOW>; /* GPIO C */
558d671269SMarek Vasut			label = "TA3-GPIO-C";
568d671269SMarek Vasut			linux,code = <KEY_C>;
578d671269SMarek Vasut			pinctrl-0 = <&pinctrl_dhcom_c>;
588d671269SMarek Vasut			pinctrl-names = "default";
598d671269SMarek Vasut			wakeup-source;
608d671269SMarek Vasut		};
618d671269SMarek Vasut
628d671269SMarek Vasut		button-3 {
638d671269SMarek Vasut			gpios = <&gpio4 27 GPIO_ACTIVE_LOW>; /* GPIO D */
648d671269SMarek Vasut			label = "TA4-GPIO-D";
658d671269SMarek Vasut			linux,code = <KEY_D>;
668d671269SMarek Vasut			pinctrl-0 = <&pinctrl_dhcom_d>;
678d671269SMarek Vasut			pinctrl-names = "default";
688d671269SMarek Vasut			wakeup-source;
698d671269SMarek Vasut		};
708d671269SMarek Vasut	};
718d671269SMarek Vasut
72*11af40dcSMarek Vasut	hdmi-connector {
73*11af40dcSMarek Vasut		compatible = "hdmi-connector";
74*11af40dcSMarek Vasut		label = "X38";
75*11af40dcSMarek Vasut		type = "a";
76*11af40dcSMarek Vasut
77*11af40dcSMarek Vasut		port {
78*11af40dcSMarek Vasut			hdmi_connector_in: endpoint {
79*11af40dcSMarek Vasut				remote-endpoint = <&hdmi_tx_out>;
80*11af40dcSMarek Vasut			};
81*11af40dcSMarek Vasut		};
82*11af40dcSMarek Vasut	};
83*11af40dcSMarek Vasut
848d671269SMarek Vasut	led {
858d671269SMarek Vasut		compatible = "gpio-leds";
868d671269SMarek Vasut
878d671269SMarek Vasut		led-0 {
888d671269SMarek Vasut			color = <LED_COLOR_ID_GREEN>;
898d671269SMarek Vasut			default-state = "off";
908d671269SMarek Vasut			function = LED_FUNCTION_INDICATOR;
918d671269SMarek Vasut			gpios = <&gpio5 22 GPIO_ACTIVE_HIGH>; /* GPIO E */
928d671269SMarek Vasut			pinctrl-0 = <&pinctrl_dhcom_e>;
938d671269SMarek Vasut			pinctrl-names = "default";
948d671269SMarek Vasut		};
958d671269SMarek Vasut
968d671269SMarek Vasut		led-1 {
978d671269SMarek Vasut			color = <LED_COLOR_ID_GREEN>;
988d671269SMarek Vasut			default-state = "off";
998d671269SMarek Vasut			function = LED_FUNCTION_INDICATOR;
1008d671269SMarek Vasut			gpios = <&gpio5 23 GPIO_ACTIVE_HIGH>; /* GPIO F */
1018d671269SMarek Vasut			pinctrl-0 = <&pinctrl_dhcom_f>;
1028d671269SMarek Vasut			pinctrl-names = "default";
1038d671269SMarek Vasut		};
1048d671269SMarek Vasut
1058d671269SMarek Vasut		led-2 {
1068d671269SMarek Vasut			color = <LED_COLOR_ID_GREEN>;
1078d671269SMarek Vasut			default-state = "off";
1088d671269SMarek Vasut			function = LED_FUNCTION_INDICATOR;
1098d671269SMarek Vasut			gpios = <&gpio1 11 GPIO_ACTIVE_HIGH>; /* GPIO H */
1108d671269SMarek Vasut			pinctrl-0 = <&pinctrl_dhcom_h>;
1118d671269SMarek Vasut			pinctrl-names = "default";
1128d671269SMarek Vasut		};
1138d671269SMarek Vasut
1148d671269SMarek Vasut		led-3 {
1158d671269SMarek Vasut			color = <LED_COLOR_ID_GREEN>;
1168d671269SMarek Vasut			default-state = "off";
1178d671269SMarek Vasut			function = LED_FUNCTION_INDICATOR;
1188d671269SMarek Vasut			gpios = <&gpio1 5 GPIO_ACTIVE_HIGH>; /* GPIO I */
1198d671269SMarek Vasut			pinctrl-0 = <&pinctrl_dhcom_i>;
1208d671269SMarek Vasut			pinctrl-names = "default";
1218d671269SMarek Vasut		};
1228d671269SMarek Vasut	};
12304a0b7b8SMarek Vasut
12404a0b7b8SMarek Vasut	reg_3p3vdd: regulator-3p3vdd {	/* 3.3VDD */
12504a0b7b8SMarek Vasut		compatible = "regulator-fixed";
12604a0b7b8SMarek Vasut		regulator-always-on;
12704a0b7b8SMarek Vasut		regulator-min-microvolt = <3300000>;
12804a0b7b8SMarek Vasut		regulator-max-microvolt = <3300000>;
12904a0b7b8SMarek Vasut		regulator-name = "3P3VDD";
13004a0b7b8SMarek Vasut	};
13104a0b7b8SMarek Vasut
13204a0b7b8SMarek Vasut	sound {
13304a0b7b8SMarek Vasut		compatible = "simple-audio-card";
13404a0b7b8SMarek Vasut		simple-audio-card,name = "SGTL5000-Card";
13504a0b7b8SMarek Vasut		simple-audio-card,format = "i2s";
13604a0b7b8SMarek Vasut		simple-audio-card,bitclock-master = <&codec_dai>;
13704a0b7b8SMarek Vasut		simple-audio-card,frame-master = <&codec_dai>;
13804a0b7b8SMarek Vasut		simple-audio-card,widgets = "Headphone", "Headphone Jack";
13904a0b7b8SMarek Vasut		simple-audio-card,routing = "Headphone Jack", "HP_OUT";
14004a0b7b8SMarek Vasut
14104a0b7b8SMarek Vasut		cpu_dai: simple-audio-card,cpu {
14204a0b7b8SMarek Vasut			sound-dai = <&sai3>;
14304a0b7b8SMarek Vasut		};
14404a0b7b8SMarek Vasut
14504a0b7b8SMarek Vasut		codec_dai: simple-audio-card,codec {
14604a0b7b8SMarek Vasut			sound-dai = <&sgtl5000>;
14704a0b7b8SMarek Vasut		};
14804a0b7b8SMarek Vasut	};
14904a0b7b8SMarek Vasut};
15004a0b7b8SMarek Vasut
15104a0b7b8SMarek Vasut&i2c5 {
15204a0b7b8SMarek Vasut	sgtl5000: codec@a {
15304a0b7b8SMarek Vasut		compatible = "fsl,sgtl5000";
15404a0b7b8SMarek Vasut		reg = <0x0a>;
15504a0b7b8SMarek Vasut		#sound-dai-cells = <0>;
15604a0b7b8SMarek Vasut		clocks = <&clk_ext_audio_codec>;
15704a0b7b8SMarek Vasut		VDDA-supply = <&reg_3p3vdd>;
15804a0b7b8SMarek Vasut		VDDIO-supply = <&reg_vdd_3p3v_awo>;
15904a0b7b8SMarek Vasut	};
1608d671269SMarek Vasut};
1618d671269SMarek Vasut
1628d671269SMarek Vasut&fec {	/* Second ethernet */
1633d274f8bSMarek Vasut	pinctrl-0 = <&pinctrl_fec_rgmii>;
1648d671269SMarek Vasut	phy-handle = <&ethphypdk>;
1653d274f8bSMarek Vasut	phy-mode = "rgmii";
1668d671269SMarek Vasut
1678d671269SMarek Vasut	mdio {
1688d671269SMarek Vasut		ethphypdk: ethernet-phy@7 { /* KSZ 9021 */
1698d671269SMarek Vasut			compatible = "ethernet-phy-ieee802.3-c22";
1708d671269SMarek Vasut			pinctrl-0 = <&pinctrl_ethphy1>;
1718d671269SMarek Vasut			pinctrl-names = "default";
1728d671269SMarek Vasut			interrupt-parent = <&gpio4>;
1738d671269SMarek Vasut			interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
1748d671269SMarek Vasut			max-speed = <100>;
1758d671269SMarek Vasut			reg = <7>;
1768d671269SMarek Vasut			reset-assert-us = <1000>;
1778d671269SMarek Vasut			reset-deassert-us = <1000>;
1788d671269SMarek Vasut			reset-gpios = <&gpio4 2 GPIO_ACTIVE_LOW>;
1798d671269SMarek Vasut			rxc-skew-ps = <3000>;
1808d671269SMarek Vasut			rxd0-skew-ps = <0>;
1818d671269SMarek Vasut			rxd1-skew-ps = <0>;
1828d671269SMarek Vasut			rxd2-skew-ps = <0>;
1838d671269SMarek Vasut			rxd3-skew-ps = <0>;
1848d671269SMarek Vasut			rxdv-skew-ps = <0>;
1858d671269SMarek Vasut			txc-skew-ps = <3000>;
1868d671269SMarek Vasut			txd0-skew-ps = <0>;
1878d671269SMarek Vasut			txd1-skew-ps = <0>;
1888d671269SMarek Vasut			txd2-skew-ps = <0>;
1898d671269SMarek Vasut			txd3-skew-ps = <0>;
1908d671269SMarek Vasut			txen-skew-ps = <0>;
1918d671269SMarek Vasut		};
1928d671269SMarek Vasut	};
1938d671269SMarek Vasut};
1948d671269SMarek Vasut
1958d671269SMarek Vasut&flexcan1 {
1968d671269SMarek Vasut	status = "okay";
1978d671269SMarek Vasut};
1988d671269SMarek Vasut
199*11af40dcSMarek Vasut&hdmi_pvi {
200*11af40dcSMarek Vasut	status = "okay";
201*11af40dcSMarek Vasut};
202*11af40dcSMarek Vasut
203*11af40dcSMarek Vasut&hdmi_tx {
204*11af40dcSMarek Vasut	ddc-i2c-bus = <&i2c5>;
205*11af40dcSMarek Vasut	pinctrl-names = "default";
206*11af40dcSMarek Vasut	pinctrl-0 = <&pinctrl_hdmi>;
207*11af40dcSMarek Vasut	status = "okay";
208*11af40dcSMarek Vasut
209*11af40dcSMarek Vasut	ports {
210*11af40dcSMarek Vasut		port@1 {
211*11af40dcSMarek Vasut			hdmi_tx_out: endpoint {
212*11af40dcSMarek Vasut				remote-endpoint = <&hdmi_connector_in>;
213*11af40dcSMarek Vasut			};
214*11af40dcSMarek Vasut		};
215*11af40dcSMarek Vasut	};
216*11af40dcSMarek Vasut};
217*11af40dcSMarek Vasut
218*11af40dcSMarek Vasut&hdmi_tx_phy {
219*11af40dcSMarek Vasut	status = "okay";
220*11af40dcSMarek Vasut};
221*11af40dcSMarek Vasut
222*11af40dcSMarek Vasut&lcdif3 {
223*11af40dcSMarek Vasut	status = "okay";
224*11af40dcSMarek Vasut};
225*11af40dcSMarek Vasut
2262a136ee0SMarek Vasut&pcie_phy {
2272a136ee0SMarek Vasut	clock-names = "ref";
228929dcf7dSMarek Vasut	clocks = <&hsio_blk_ctrl>;
2292a136ee0SMarek Vasut	fsl,clkreq-unsupported;
230929dcf7dSMarek Vasut	fsl,refclk-pad-mode = <IMX8_PCIE_REFCLK_PAD_OUTPUT>;
2312a136ee0SMarek Vasut	status = "okay";
2322a136ee0SMarek Vasut};
2332a136ee0SMarek Vasut
2342a136ee0SMarek Vasut&pcie {
2352a136ee0SMarek Vasut	fsl,max-link-speed = <1>;
2362a136ee0SMarek Vasut	reset-gpio = <&gpio1 6 GPIO_ACTIVE_LOW>;	/* GPIO J */
2372a136ee0SMarek Vasut	status = "okay";
2382a136ee0SMarek Vasut};
2392a136ee0SMarek Vasut
24004a0b7b8SMarek Vasut&sai3 {
24104a0b7b8SMarek Vasut	#sound-dai-cells = <0>;
24204a0b7b8SMarek Vasut	pinctrl-names = "default";
24304a0b7b8SMarek Vasut	pinctrl-0 = <&pinctrl_sai3>;
24404a0b7b8SMarek Vasut	assigned-clocks = <&clk IMX8MP_CLK_SAI3>;
24504a0b7b8SMarek Vasut	assigned-clock-parents = <&clk IMX8MP_AUDIO_PLL1_OUT>;
24604a0b7b8SMarek Vasut	assigned-clock-rates = <12288000>;
24704a0b7b8SMarek Vasut	fsl,sai-mclk-direction-output;
24804a0b7b8SMarek Vasut	status = "okay";
24904a0b7b8SMarek Vasut};
25004a0b7b8SMarek Vasut
2518d671269SMarek Vasut&usb3_1 {
2528d671269SMarek Vasut	fsl,over-current-active-low;
2538d671269SMarek Vasut};
2548d671269SMarek Vasut
2558d671269SMarek Vasut&iomuxc {
2568d671269SMarek Vasut	/*
2578d671269SMarek Vasut	 * GPIO_A,B,C,D are connected to buttons.
2588d671269SMarek Vasut	 * GPIO_E,F,H,I are connected to LEDs.
2593e431f25SMarek Vasut	 * GPIO_M is connected to CLKOUT1.
2608d671269SMarek Vasut	 */
2618d671269SMarek Vasut	pinctrl-0 = <&pinctrl_hog_base
2628d671269SMarek Vasut		     &pinctrl_dhcom_g &pinctrl_dhcom_j
2638d671269SMarek Vasut		     &pinctrl_dhcom_k &pinctrl_dhcom_l
2648d671269SMarek Vasut		     &pinctrl_dhcom_int>;
2658d671269SMarek Vasut};
266