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 268d671269SMarek Vasut clk_ext_audio_codec: clock-codec { 278d671269SMarek Vasut compatible = "fixed-clock"; 288d671269SMarek Vasut #clock-cells = <0>; 298d671269SMarek Vasut clock-frequency = <24000000>; 308d671269SMarek Vasut }; 318d671269SMarek 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 728d671269SMarek Vasut led { 738d671269SMarek Vasut compatible = "gpio-leds"; 748d671269SMarek Vasut 758d671269SMarek Vasut led-0 { 768d671269SMarek Vasut color = <LED_COLOR_ID_GREEN>; 778d671269SMarek Vasut default-state = "off"; 788d671269SMarek Vasut function = LED_FUNCTION_INDICATOR; 798d671269SMarek Vasut gpios = <&gpio5 22 GPIO_ACTIVE_HIGH>; /* GPIO E */ 808d671269SMarek Vasut pinctrl-0 = <&pinctrl_dhcom_e>; 818d671269SMarek Vasut pinctrl-names = "default"; 828d671269SMarek Vasut }; 838d671269SMarek Vasut 848d671269SMarek Vasut led-1 { 858d671269SMarek Vasut color = <LED_COLOR_ID_GREEN>; 868d671269SMarek Vasut default-state = "off"; 878d671269SMarek Vasut function = LED_FUNCTION_INDICATOR; 888d671269SMarek Vasut gpios = <&gpio5 23 GPIO_ACTIVE_HIGH>; /* GPIO F */ 898d671269SMarek Vasut pinctrl-0 = <&pinctrl_dhcom_f>; 908d671269SMarek Vasut pinctrl-names = "default"; 918d671269SMarek Vasut }; 928d671269SMarek Vasut 938d671269SMarek Vasut led-2 { 948d671269SMarek Vasut color = <LED_COLOR_ID_GREEN>; 958d671269SMarek Vasut default-state = "off"; 968d671269SMarek Vasut function = LED_FUNCTION_INDICATOR; 978d671269SMarek Vasut gpios = <&gpio1 11 GPIO_ACTIVE_HIGH>; /* GPIO H */ 988d671269SMarek Vasut pinctrl-0 = <&pinctrl_dhcom_h>; 998d671269SMarek Vasut pinctrl-names = "default"; 1008d671269SMarek Vasut }; 1018d671269SMarek Vasut 1028d671269SMarek Vasut led-3 { 1038d671269SMarek Vasut color = <LED_COLOR_ID_GREEN>; 1048d671269SMarek Vasut default-state = "off"; 1058d671269SMarek Vasut function = LED_FUNCTION_INDICATOR; 1068d671269SMarek Vasut gpios = <&gpio1 5 GPIO_ACTIVE_HIGH>; /* GPIO I */ 1078d671269SMarek Vasut pinctrl-0 = <&pinctrl_dhcom_i>; 108*3d274f8bSMarek Vasut pinctrl-names = "default"; 1098d671269SMarek Vasut }; 110*3d274f8bSMarek Vasut }; 1118d671269SMarek Vasut 1128d671269SMarek Vasut reg_3p3vdd: regulator-3p3vdd { /* 3.3VDD */ 1138d671269SMarek Vasut compatible = "regulator-fixed"; 1148d671269SMarek Vasut regulator-always-on; 1158d671269SMarek Vasut regulator-min-microvolt = <3300000>; 1168d671269SMarek Vasut regulator-max-microvolt = <3300000>; 1178d671269SMarek Vasut regulator-name = "3P3VDD"; 1188d671269SMarek Vasut }; 1198d671269SMarek Vasut 1208d671269SMarek Vasut sound { 1218d671269SMarek Vasut compatible = "simple-audio-card"; 1228d671269SMarek Vasut simple-audio-card,name = "SGTL5000-Card"; 1238d671269SMarek Vasut simple-audio-card,format = "i2s"; 1248d671269SMarek Vasut simple-audio-card,bitclock-master = <&codec_dai>; 1258d671269SMarek Vasut simple-audio-card,frame-master = <&codec_dai>; 1268d671269SMarek Vasut simple-audio-card,widgets = "Headphone", "Headphone Jack"; 1278d671269SMarek Vasut simple-audio-card,routing = "Headphone Jack", "HP_OUT"; 1288d671269SMarek Vasut 1298d671269SMarek Vasut cpu_dai: simple-audio-card,cpu { 1308d671269SMarek Vasut sound-dai = <&sai3>; 1318d671269SMarek Vasut }; 1328d671269SMarek Vasut 1338d671269SMarek Vasut codec_dai: simple-audio-card,codec { 1348d671269SMarek Vasut sound-dai = <&sgtl5000>; 1358d671269SMarek Vasut }; 1368d671269SMarek Vasut }; 1378d671269SMarek Vasut}; 1388d671269SMarek Vasut 1398d671269SMarek Vasut&i2c5 { 1408d671269SMarek Vasut sgtl5000: codec@a { 1418d671269SMarek Vasut compatible = "fsl,sgtl5000"; 1428d671269SMarek Vasut reg = <0x0a>; 1438d671269SMarek Vasut #sound-dai-cells = <0>; 1442a136ee0SMarek Vasut clocks = <&clk_ext_audio_codec>; 1452a136ee0SMarek Vasut VDDA-supply = <®_3p3vdd>; 1462a136ee0SMarek Vasut VDDIO-supply = <®_vdd_3p3v_awo>; 1472a136ee0SMarek Vasut }; 1482a136ee0SMarek Vasut}; 1492a136ee0SMarek Vasut 1502a136ee0SMarek Vasut&fec { /* Second ethernet */ 1512a136ee0SMarek Vasut pinctrl-0 = <&pinctrl_fec_rgmii>; 1522a136ee0SMarek Vasut phy-handle = <ðphypdk>; 1532a136ee0SMarek Vasut phy-mode = "rgmii"; 1542a136ee0SMarek Vasut 1552a136ee0SMarek Vasut mdio { 1562a136ee0SMarek Vasut ethphypdk: ethernet-phy@7 { /* KSZ 9021 */ 1572a136ee0SMarek Vasut compatible = "ethernet-phy-ieee802.3-c22"; 1588d671269SMarek Vasut pinctrl-0 = <&pinctrl_ethphy1>; 1598d671269SMarek Vasut pinctrl-names = "default"; 1608d671269SMarek Vasut interrupt-parent = <&gpio4>; 1618d671269SMarek Vasut interrupts = <3 IRQ_TYPE_LEVEL_LOW>; 1628d671269SMarek Vasut max-speed = <100>; 1638d671269SMarek Vasut reg = <7>; 1648d671269SMarek Vasut reset-assert-us = <1000>; 1658d671269SMarek Vasut reset-deassert-us = <1000>; 1663e431f25SMarek Vasut reset-gpios = <&gpio4 2 GPIO_ACTIVE_LOW>; 1678d671269SMarek Vasut rxc-skew-ps = <3000>; 1688d671269SMarek Vasut rxd0-skew-ps = <0>; 1698d671269SMarek Vasut rxd1-skew-ps = <0>; 1708d671269SMarek Vasut rxd2-skew-ps = <0>; 1718d671269SMarek Vasut rxd3-skew-ps = <0>; 1728d671269SMarek Vasut rxdv-skew-ps = <0>; 173 txc-skew-ps = <3000>; 174 txd0-skew-ps = <0>; 175 txd1-skew-ps = <0>; 176 txd2-skew-ps = <0>; 177 txd3-skew-ps = <0>; 178 txen-skew-ps = <0>; 179 }; 180 }; 181}; 182 183&flexcan1 { 184 status = "okay"; 185}; 186 187&pcie_phy { 188 clock-names = "ref"; 189 clocks = <&clk IMX8MP_SYS_PLL2_100M>; 190 fsl,clkreq-unsupported; 191 fsl,refclk-pad-mode = <IMX8_PCIE_REFCLK_PAD_UNUSED>; 192 status = "okay"; 193}; 194 195&pcie { 196 fsl,max-link-speed = <1>; 197 reset-gpio = <&gpio1 6 GPIO_ACTIVE_LOW>; /* GPIO J */ 198 status = "okay"; 199}; 200 201&sai3 { 202 #sound-dai-cells = <0>; 203 pinctrl-names = "default"; 204 pinctrl-0 = <&pinctrl_sai3>; 205 assigned-clocks = <&clk IMX8MP_CLK_SAI3>; 206 assigned-clock-parents = <&clk IMX8MP_AUDIO_PLL1_OUT>; 207 assigned-clock-rates = <12288000>; 208 fsl,sai-mclk-direction-output; 209 status = "okay"; 210}; 211 212&usb3_1 { 213 fsl,over-current-active-low; 214}; 215 216&iomuxc { 217 /* 218 * GPIO_A,B,C,D are connected to buttons. 219 * GPIO_E,F,H,I are connected to LEDs. 220 * GPIO_M is connected to CLKOUT1. 221 */ 222 pinctrl-0 = <&pinctrl_hog_base 223 &pinctrl_dhcom_g &pinctrl_dhcom_j 224 &pinctrl_dhcom_k &pinctrl_dhcom_l 225 &pinctrl_dhcom_int>; 226}; 227