// SPDX-License-Identifier: (GPL-2.0+ OR MIT) /* * Copyright (C) 2022 Marek Vasut * * DHCOM iMX8MP variant: * DHCM-iMX8ML8-C160-R409-F1638-SPI16-GE-CAN2-SD-RTC-WBTA-ADC-T-RGB-CSI2-HS-I-01D2 * DHCOM PCB number: 660-100 or newer * PDK2 PCB number: 516-400 or newer */ /dts-v1/; #include #include #include "imx8mp-dhcom-som.dtsi" / { model = "DH electronics i.MX8M Plus DHCOM Premium Developer Kit (2)"; compatible = "dh,imx8mp-dhcom-pdk2", "dh,imx8mp-dhcom-som", "fsl,imx8mp"; chosen { stdout-path = &uart1; }; clk_ext_audio_codec: clock-codec { compatible = "fixed-clock"; #clock-cells = <0>; clock-frequency = <24000000>; }; gpio-keys { compatible = "gpio-keys"; button-0 { gpios = <&gpio1 9 GPIO_ACTIVE_LOW>; /* GPIO A */ label = "TA1-GPIO-A"; linux,code = ; pinctrl-0 = <&pinctrl_dhcom_a>; pinctrl-names = "default"; wakeup-source; }; button-1 { gpios = <&gpio1 8 GPIO_ACTIVE_LOW>; /* GPIO B */ label = "TA2-GPIO-B"; linux,code = ; pinctrl-0 = <&pinctrl_dhcom_b>; pinctrl-names = "default"; wakeup-source; }; button-2 { gpios = <&gpio5 2 GPIO_ACTIVE_LOW>; /* GPIO C */ label = "TA3-GPIO-C"; linux,code = ; pinctrl-0 = <&pinctrl_dhcom_c>; pinctrl-names = "default"; wakeup-source; }; button-3 { gpios = <&gpio4 27 GPIO_ACTIVE_LOW>; /* GPIO D */ label = "TA4-GPIO-D"; linux,code = ; pinctrl-0 = <&pinctrl_dhcom_d>; pinctrl-names = "default"; wakeup-source; }; }; hdmi-connector { compatible = "hdmi-connector"; label = "X38"; type = "a"; port { hdmi_connector_in: endpoint { remote-endpoint = <&hdmi_tx_out>; }; }; }; led { compatible = "gpio-leds"; led-0 { color = ; default-state = "off"; function = LED_FUNCTION_INDICATOR; gpios = <&gpio5 22 GPIO_ACTIVE_HIGH>; /* GPIO E */ pinctrl-0 = <&pinctrl_dhcom_e>; pinctrl-names = "default"; }; led-1 { color = ; default-state = "off"; function = LED_FUNCTION_INDICATOR; gpios = <&gpio5 23 GPIO_ACTIVE_HIGH>; /* GPIO F */ pinctrl-0 = <&pinctrl_dhcom_f>; pinctrl-names = "default"; }; led-2 { color = ; default-state = "off"; function = LED_FUNCTION_INDICATOR; gpios = <&gpio1 11 GPIO_ACTIVE_HIGH>; /* GPIO H */ pinctrl-0 = <&pinctrl_dhcom_h>; pinctrl-names = "default"; }; led-3 { color = ; default-state = "off"; function = LED_FUNCTION_INDICATOR; gpios = <&gpio1 5 GPIO_ACTIVE_HIGH>; /* GPIO I */ pinctrl-0 = <&pinctrl_dhcom_i>; pinctrl-names = "default"; }; }; reg_3p3vdd: regulator-3p3vdd { /* 3.3VDD */ compatible = "regulator-fixed"; regulator-always-on; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; regulator-name = "3P3VDD"; }; sound { compatible = "simple-audio-card"; simple-audio-card,name = "SGTL5000-Card"; simple-audio-card,format = "i2s"; simple-audio-card,bitclock-master = <&codec_dai>; simple-audio-card,frame-master = <&codec_dai>; simple-audio-card,widgets = "Headphone", "Headphone Jack"; simple-audio-card,routing = "Headphone Jack", "HP_OUT"; cpu_dai: simple-audio-card,cpu { sound-dai = <&sai3>; }; codec_dai: simple-audio-card,codec { sound-dai = <&sgtl5000>; }; }; }; &i2c5 { sgtl5000: codec@a { compatible = "fsl,sgtl5000"; reg = <0x0a>; #sound-dai-cells = <0>; clocks = <&clk_ext_audio_codec>; VDDA-supply = <®_3p3vdd>; VDDIO-supply = <®_vdd_3p3v_awo>; }; }; &fec { /* Second ethernet */ pinctrl-0 = <&pinctrl_fec_rgmii>; phy-handle = <ðphypdk>; phy-mode = "rgmii"; mdio { ethphypdk: ethernet-phy@7 { /* KSZ 9021 */ compatible = "ethernet-phy-ieee802.3-c22"; pinctrl-0 = <&pinctrl_ethphy1>; pinctrl-names = "default"; interrupt-parent = <&gpio4>; interrupts = <3 IRQ_TYPE_LEVEL_LOW>; max-speed = <100>; reg = <7>; reset-assert-us = <1000>; reset-deassert-us = <1000>; reset-gpios = <&gpio4 2 GPIO_ACTIVE_LOW>; rxc-skew-ps = <3000>; rxd0-skew-ps = <0>; rxd1-skew-ps = <0>; rxd2-skew-ps = <0>; rxd3-skew-ps = <0>; rxdv-skew-ps = <0>; txc-skew-ps = <3000>; txd0-skew-ps = <0>; txd1-skew-ps = <0>; txd2-skew-ps = <0>; txd3-skew-ps = <0>; txen-skew-ps = <0>; }; }; }; &flexcan1 { status = "okay"; }; &hdmi_pvi { status = "okay"; }; &hdmi_tx { ddc-i2c-bus = <&i2c5>; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_hdmi>; status = "okay"; ports { port@1 { hdmi_tx_out: endpoint { remote-endpoint = <&hdmi_connector_in>; }; }; }; }; &hdmi_tx_phy { status = "okay"; }; &lcdif3 { status = "okay"; }; &pcie_phy { clock-names = "ref"; clocks = <&hsio_blk_ctrl>; fsl,clkreq-unsupported; fsl,refclk-pad-mode = ; status = "okay"; }; &pcie { fsl,max-link-speed = <1>; reset-gpio = <&gpio1 6 GPIO_ACTIVE_LOW>; /* GPIO J */ status = "okay"; }; &sai3 { #sound-dai-cells = <0>; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_sai3>; assigned-clocks = <&clk IMX8MP_CLK_SAI3>; assigned-clock-parents = <&clk IMX8MP_AUDIO_PLL1_OUT>; assigned-clock-rates = <12288000>; fsl,sai-mclk-direction-output; status = "okay"; }; &usb3_1 { fsl,over-current-active-low; }; &iomuxc { /* * GPIO_A,B,C,D are connected to buttons. * GPIO_E,F,H,I are connected to LEDs. * GPIO_M is connected to CLKOUT1. */ pinctrl-0 = <&pinctrl_hog_base &pinctrl_dhcom_g &pinctrl_dhcom_j &pinctrl_dhcom_k &pinctrl_dhcom_l &pinctrl_dhcom_int>; };