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 = <®_3p3vdd>; 15804a0b7b8SMarek Vasut VDDIO-supply = <®_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 = <ðphypdk>; 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