1b97ee269SEmmanuel Vadot// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2b97ee269SEmmanuel Vadot/* 3b97ee269SEmmanuel Vadot * Copyright (C) 2022 Marek Vasut <marex@denx.de> 47ef62cebSEmmanuel Vadot * 57ef62cebSEmmanuel Vadot * DHCOM iMX8MP variant: 67ef62cebSEmmanuel Vadot * DHCM-iMX8ML8-C160-R409-F1638-SPI16-GE-CAN2-SD-RTC-WBTA-ADC-T-RGB-CSI2-HS-I-01D2 77ef62cebSEmmanuel Vadot * DHCOM PCB number: 660-100 or newer 87ef62cebSEmmanuel Vadot * PDK2 PCB number: 516-400 or newer 9b97ee269SEmmanuel Vadot */ 10b97ee269SEmmanuel Vadot 11b97ee269SEmmanuel Vadot/dts-v1/; 12b97ee269SEmmanuel Vadot 13b97ee269SEmmanuel Vadot#include <dt-bindings/leds/common.h> 14b97ee269SEmmanuel Vadot#include <dt-bindings/phy/phy-imx8-pcie.h> 15b97ee269SEmmanuel Vadot#include "imx8mp-dhcom-som.dtsi" 16b97ee269SEmmanuel Vadot 17b97ee269SEmmanuel Vadot/ { 18b97ee269SEmmanuel Vadot model = "DH electronics i.MX8M Plus DHCOM Premium Developer Kit (2)"; 197ef62cebSEmmanuel Vadot compatible = "dh,imx8mp-dhcom-pdk2", "dh,imx8mp-dhcom-som", 207ef62cebSEmmanuel Vadot "fsl,imx8mp"; 21b97ee269SEmmanuel Vadot 22b97ee269SEmmanuel Vadot chosen { 23b97ee269SEmmanuel Vadot stdout-path = &uart1; 24b97ee269SEmmanuel Vadot }; 25b97ee269SEmmanuel Vadot 26f126890aSEmmanuel Vadot clk_ext_audio_codec: clock-codec { 27f126890aSEmmanuel Vadot compatible = "fixed-clock"; 28f126890aSEmmanuel Vadot #clock-cells = <0>; 29f126890aSEmmanuel Vadot clock-frequency = <24000000>; 30f126890aSEmmanuel Vadot }; 31f126890aSEmmanuel Vadot 32b97ee269SEmmanuel Vadot gpio-keys { 33b97ee269SEmmanuel Vadot compatible = "gpio-keys"; 34b97ee269SEmmanuel Vadot 35b97ee269SEmmanuel Vadot button-0 { 36b97ee269SEmmanuel Vadot gpios = <&gpio1 9 GPIO_ACTIVE_LOW>; /* GPIO A */ 37b97ee269SEmmanuel Vadot label = "TA1-GPIO-A"; 38b97ee269SEmmanuel Vadot linux,code = <KEY_A>; 39b97ee269SEmmanuel Vadot pinctrl-0 = <&pinctrl_dhcom_a>; 40b97ee269SEmmanuel Vadot pinctrl-names = "default"; 41b97ee269SEmmanuel Vadot wakeup-source; 42b97ee269SEmmanuel Vadot }; 43b97ee269SEmmanuel Vadot 44b97ee269SEmmanuel Vadot button-1 { 45b97ee269SEmmanuel Vadot gpios = <&gpio1 8 GPIO_ACTIVE_LOW>; /* GPIO B */ 46b97ee269SEmmanuel Vadot label = "TA2-GPIO-B"; 47b97ee269SEmmanuel Vadot linux,code = <KEY_B>; 48b97ee269SEmmanuel Vadot pinctrl-0 = <&pinctrl_dhcom_b>; 49b97ee269SEmmanuel Vadot pinctrl-names = "default"; 50b97ee269SEmmanuel Vadot wakeup-source; 51b97ee269SEmmanuel Vadot }; 52b97ee269SEmmanuel Vadot 53b97ee269SEmmanuel Vadot button-2 { 54b97ee269SEmmanuel Vadot gpios = <&gpio5 2 GPIO_ACTIVE_LOW>; /* GPIO C */ 55b97ee269SEmmanuel Vadot label = "TA3-GPIO-C"; 56b97ee269SEmmanuel Vadot linux,code = <KEY_C>; 57b97ee269SEmmanuel Vadot pinctrl-0 = <&pinctrl_dhcom_c>; 58b97ee269SEmmanuel Vadot pinctrl-names = "default"; 59b97ee269SEmmanuel Vadot wakeup-source; 60b97ee269SEmmanuel Vadot }; 61b97ee269SEmmanuel Vadot 62b97ee269SEmmanuel Vadot button-3 { 63b97ee269SEmmanuel Vadot gpios = <&gpio4 27 GPIO_ACTIVE_LOW>; /* GPIO D */ 64b97ee269SEmmanuel Vadot label = "TA4-GPIO-D"; 65b97ee269SEmmanuel Vadot linux,code = <KEY_D>; 66b97ee269SEmmanuel Vadot pinctrl-0 = <&pinctrl_dhcom_d>; 67b97ee269SEmmanuel Vadot pinctrl-names = "default"; 68b97ee269SEmmanuel Vadot wakeup-source; 69b97ee269SEmmanuel Vadot }; 70b97ee269SEmmanuel Vadot }; 71b97ee269SEmmanuel Vadot 72*0e8011faSEmmanuel Vadot hdmi-connector { 73*0e8011faSEmmanuel Vadot compatible = "hdmi-connector"; 74*0e8011faSEmmanuel Vadot label = "X38"; 75*0e8011faSEmmanuel Vadot type = "a"; 76*0e8011faSEmmanuel Vadot 77*0e8011faSEmmanuel Vadot port { 78*0e8011faSEmmanuel Vadot hdmi_connector_in: endpoint { 79*0e8011faSEmmanuel Vadot remote-endpoint = <&hdmi_tx_out>; 80*0e8011faSEmmanuel Vadot }; 81*0e8011faSEmmanuel Vadot }; 82*0e8011faSEmmanuel Vadot }; 83*0e8011faSEmmanuel Vadot 84b97ee269SEmmanuel Vadot led { 85b97ee269SEmmanuel Vadot compatible = "gpio-leds"; 86b97ee269SEmmanuel Vadot 87b97ee269SEmmanuel Vadot led-0 { 88b97ee269SEmmanuel Vadot color = <LED_COLOR_ID_GREEN>; 89b97ee269SEmmanuel Vadot default-state = "off"; 90b97ee269SEmmanuel Vadot function = LED_FUNCTION_INDICATOR; 91b97ee269SEmmanuel Vadot gpios = <&gpio5 22 GPIO_ACTIVE_HIGH>; /* GPIO E */ 92b97ee269SEmmanuel Vadot pinctrl-0 = <&pinctrl_dhcom_e>; 93b97ee269SEmmanuel Vadot pinctrl-names = "default"; 94b97ee269SEmmanuel Vadot }; 95b97ee269SEmmanuel Vadot 96b97ee269SEmmanuel Vadot led-1 { 97b97ee269SEmmanuel Vadot color = <LED_COLOR_ID_GREEN>; 98b97ee269SEmmanuel Vadot default-state = "off"; 99b97ee269SEmmanuel Vadot function = LED_FUNCTION_INDICATOR; 100b97ee269SEmmanuel Vadot gpios = <&gpio5 23 GPIO_ACTIVE_HIGH>; /* GPIO F */ 101b97ee269SEmmanuel Vadot pinctrl-0 = <&pinctrl_dhcom_f>; 102b97ee269SEmmanuel Vadot pinctrl-names = "default"; 103b97ee269SEmmanuel Vadot }; 104b97ee269SEmmanuel Vadot 105b97ee269SEmmanuel Vadot led-2 { 106b97ee269SEmmanuel Vadot color = <LED_COLOR_ID_GREEN>; 107b97ee269SEmmanuel Vadot default-state = "off"; 108b97ee269SEmmanuel Vadot function = LED_FUNCTION_INDICATOR; 109b97ee269SEmmanuel Vadot gpios = <&gpio1 11 GPIO_ACTIVE_HIGH>; /* GPIO H */ 110b97ee269SEmmanuel Vadot pinctrl-0 = <&pinctrl_dhcom_h>; 111b97ee269SEmmanuel Vadot pinctrl-names = "default"; 112b97ee269SEmmanuel Vadot }; 113b97ee269SEmmanuel Vadot 114b97ee269SEmmanuel Vadot led-3 { 115b97ee269SEmmanuel Vadot color = <LED_COLOR_ID_GREEN>; 116b97ee269SEmmanuel Vadot default-state = "off"; 117b97ee269SEmmanuel Vadot function = LED_FUNCTION_INDICATOR; 118b97ee269SEmmanuel Vadot gpios = <&gpio1 5 GPIO_ACTIVE_HIGH>; /* GPIO I */ 119b97ee269SEmmanuel Vadot pinctrl-0 = <&pinctrl_dhcom_i>; 120b97ee269SEmmanuel Vadot pinctrl-names = "default"; 121b97ee269SEmmanuel Vadot }; 122b97ee269SEmmanuel Vadot }; 123f126890aSEmmanuel Vadot 124f126890aSEmmanuel Vadot reg_3p3vdd: regulator-3p3vdd { /* 3.3VDD */ 125f126890aSEmmanuel Vadot compatible = "regulator-fixed"; 126f126890aSEmmanuel Vadot regulator-always-on; 127f126890aSEmmanuel Vadot regulator-min-microvolt = <3300000>; 128f126890aSEmmanuel Vadot regulator-max-microvolt = <3300000>; 129f126890aSEmmanuel Vadot regulator-name = "3P3VDD"; 130f126890aSEmmanuel Vadot }; 131f126890aSEmmanuel Vadot 132f126890aSEmmanuel Vadot sound { 133f126890aSEmmanuel Vadot compatible = "simple-audio-card"; 134f126890aSEmmanuel Vadot simple-audio-card,name = "SGTL5000-Card"; 135f126890aSEmmanuel Vadot simple-audio-card,format = "i2s"; 136f126890aSEmmanuel Vadot simple-audio-card,bitclock-master = <&codec_dai>; 137f126890aSEmmanuel Vadot simple-audio-card,frame-master = <&codec_dai>; 138f126890aSEmmanuel Vadot simple-audio-card,widgets = "Headphone", "Headphone Jack"; 139f126890aSEmmanuel Vadot simple-audio-card,routing = "Headphone Jack", "HP_OUT"; 140f126890aSEmmanuel Vadot 141f126890aSEmmanuel Vadot cpu_dai: simple-audio-card,cpu { 142f126890aSEmmanuel Vadot sound-dai = <&sai3>; 143f126890aSEmmanuel Vadot }; 144f126890aSEmmanuel Vadot 145f126890aSEmmanuel Vadot codec_dai: simple-audio-card,codec { 146f126890aSEmmanuel Vadot sound-dai = <&sgtl5000>; 147f126890aSEmmanuel Vadot }; 148f126890aSEmmanuel Vadot }; 149f126890aSEmmanuel Vadot}; 150f126890aSEmmanuel Vadot 151f126890aSEmmanuel Vadot&i2c5 { 152f126890aSEmmanuel Vadot sgtl5000: codec@a { 153f126890aSEmmanuel Vadot compatible = "fsl,sgtl5000"; 154f126890aSEmmanuel Vadot reg = <0x0a>; 155f126890aSEmmanuel Vadot #sound-dai-cells = <0>; 156f126890aSEmmanuel Vadot clocks = <&clk_ext_audio_codec>; 157f126890aSEmmanuel Vadot VDDA-supply = <®_3p3vdd>; 158f126890aSEmmanuel Vadot VDDIO-supply = <®_vdd_3p3v_awo>; 159f126890aSEmmanuel Vadot }; 160b97ee269SEmmanuel Vadot}; 161b97ee269SEmmanuel Vadot 162b97ee269SEmmanuel Vadot&fec { /* Second ethernet */ 163fac71e4eSEmmanuel Vadot pinctrl-0 = <&pinctrl_fec_rgmii>; 164b97ee269SEmmanuel Vadot phy-handle = <ðphypdk>; 165fac71e4eSEmmanuel Vadot phy-mode = "rgmii"; 166b97ee269SEmmanuel Vadot 167b97ee269SEmmanuel Vadot mdio { 168b97ee269SEmmanuel Vadot ethphypdk: ethernet-phy@7 { /* KSZ 9021 */ 169b97ee269SEmmanuel Vadot compatible = "ethernet-phy-ieee802.3-c22"; 170b97ee269SEmmanuel Vadot pinctrl-0 = <&pinctrl_ethphy1>; 171b97ee269SEmmanuel Vadot pinctrl-names = "default"; 172b97ee269SEmmanuel Vadot interrupt-parent = <&gpio4>; 173b97ee269SEmmanuel Vadot interrupts = <3 IRQ_TYPE_LEVEL_LOW>; 174b97ee269SEmmanuel Vadot max-speed = <100>; 175b97ee269SEmmanuel Vadot reg = <7>; 176b97ee269SEmmanuel Vadot reset-assert-us = <1000>; 177b97ee269SEmmanuel Vadot reset-deassert-us = <1000>; 178b97ee269SEmmanuel Vadot reset-gpios = <&gpio4 2 GPIO_ACTIVE_LOW>; 179b97ee269SEmmanuel Vadot rxc-skew-ps = <3000>; 180b97ee269SEmmanuel Vadot rxd0-skew-ps = <0>; 181b97ee269SEmmanuel Vadot rxd1-skew-ps = <0>; 182b97ee269SEmmanuel Vadot rxd2-skew-ps = <0>; 183b97ee269SEmmanuel Vadot rxd3-skew-ps = <0>; 184b97ee269SEmmanuel Vadot rxdv-skew-ps = <0>; 185b97ee269SEmmanuel Vadot txc-skew-ps = <3000>; 186b97ee269SEmmanuel Vadot txd0-skew-ps = <0>; 187b97ee269SEmmanuel Vadot txd1-skew-ps = <0>; 188b97ee269SEmmanuel Vadot txd2-skew-ps = <0>; 189b97ee269SEmmanuel Vadot txd3-skew-ps = <0>; 190b97ee269SEmmanuel Vadot txen-skew-ps = <0>; 191b97ee269SEmmanuel Vadot }; 192b97ee269SEmmanuel Vadot }; 193b97ee269SEmmanuel Vadot}; 194b97ee269SEmmanuel Vadot 195b97ee269SEmmanuel Vadot&flexcan1 { 196b97ee269SEmmanuel Vadot status = "okay"; 197b97ee269SEmmanuel Vadot}; 198b97ee269SEmmanuel Vadot 199*0e8011faSEmmanuel Vadot&hdmi_pvi { 200*0e8011faSEmmanuel Vadot status = "okay"; 201*0e8011faSEmmanuel Vadot}; 202*0e8011faSEmmanuel Vadot 203*0e8011faSEmmanuel Vadot&hdmi_tx { 204*0e8011faSEmmanuel Vadot ddc-i2c-bus = <&i2c5>; 205*0e8011faSEmmanuel Vadot pinctrl-names = "default"; 206*0e8011faSEmmanuel Vadot pinctrl-0 = <&pinctrl_hdmi>; 207*0e8011faSEmmanuel Vadot status = "okay"; 208*0e8011faSEmmanuel Vadot 209*0e8011faSEmmanuel Vadot ports { 210*0e8011faSEmmanuel Vadot port@1 { 211*0e8011faSEmmanuel Vadot hdmi_tx_out: endpoint { 212*0e8011faSEmmanuel Vadot remote-endpoint = <&hdmi_connector_in>; 213*0e8011faSEmmanuel Vadot }; 214*0e8011faSEmmanuel Vadot }; 215*0e8011faSEmmanuel Vadot }; 216*0e8011faSEmmanuel Vadot}; 217*0e8011faSEmmanuel Vadot 218*0e8011faSEmmanuel Vadot&hdmi_tx_phy { 219*0e8011faSEmmanuel Vadot status = "okay"; 220*0e8011faSEmmanuel Vadot}; 221*0e8011faSEmmanuel Vadot 222*0e8011faSEmmanuel Vadot&lcdif3 { 223*0e8011faSEmmanuel Vadot status = "okay"; 224*0e8011faSEmmanuel Vadot}; 225*0e8011faSEmmanuel Vadot 226fac71e4eSEmmanuel Vadot&pcie_phy { 227fac71e4eSEmmanuel Vadot clock-names = "ref"; 22884943d6fSEmmanuel Vadot clocks = <&hsio_blk_ctrl>; 229fac71e4eSEmmanuel Vadot fsl,clkreq-unsupported; 23084943d6fSEmmanuel Vadot fsl,refclk-pad-mode = <IMX8_PCIE_REFCLK_PAD_OUTPUT>; 231fac71e4eSEmmanuel Vadot status = "okay"; 232fac71e4eSEmmanuel Vadot}; 233fac71e4eSEmmanuel Vadot 234fac71e4eSEmmanuel Vadot&pcie { 235fac71e4eSEmmanuel Vadot fsl,max-link-speed = <1>; 236fac71e4eSEmmanuel Vadot reset-gpio = <&gpio1 6 GPIO_ACTIVE_LOW>; /* GPIO J */ 237fac71e4eSEmmanuel Vadot status = "okay"; 238fac71e4eSEmmanuel Vadot}; 239fac71e4eSEmmanuel Vadot 240f126890aSEmmanuel Vadot&sai3 { 241f126890aSEmmanuel Vadot #sound-dai-cells = <0>; 242f126890aSEmmanuel Vadot pinctrl-names = "default"; 243f126890aSEmmanuel Vadot pinctrl-0 = <&pinctrl_sai3>; 244f126890aSEmmanuel Vadot assigned-clocks = <&clk IMX8MP_CLK_SAI3>; 245f126890aSEmmanuel Vadot assigned-clock-parents = <&clk IMX8MP_AUDIO_PLL1_OUT>; 246f126890aSEmmanuel Vadot assigned-clock-rates = <12288000>; 247f126890aSEmmanuel Vadot fsl,sai-mclk-direction-output; 248f126890aSEmmanuel Vadot status = "okay"; 249f126890aSEmmanuel Vadot}; 250f126890aSEmmanuel Vadot 251b97ee269SEmmanuel Vadot&usb3_1 { 252b97ee269SEmmanuel Vadot fsl,over-current-active-low; 253b97ee269SEmmanuel Vadot}; 254b97ee269SEmmanuel Vadot 255b97ee269SEmmanuel Vadot&iomuxc { 256b97ee269SEmmanuel Vadot /* 257b97ee269SEmmanuel Vadot * GPIO_A,B,C,D are connected to buttons. 258b97ee269SEmmanuel Vadot * GPIO_E,F,H,I are connected to LEDs. 259fac71e4eSEmmanuel Vadot * GPIO_M is connected to CLKOUT1. 260b97ee269SEmmanuel Vadot */ 261b97ee269SEmmanuel Vadot pinctrl-0 = <&pinctrl_hog_base 262b97ee269SEmmanuel Vadot &pinctrl_dhcom_g &pinctrl_dhcom_j 263b97ee269SEmmanuel Vadot &pinctrl_dhcom_k &pinctrl_dhcom_l 264b97ee269SEmmanuel Vadot &pinctrl_dhcom_int>; 265b97ee269SEmmanuel Vadot}; 266