162306a36Sopenharmony_ci// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * Copyright (C) 2022 Marek Vasut <marex@denx.de> 462306a36Sopenharmony_ci * 562306a36Sopenharmony_ci * DHCOM iMX8MP variant: 662306a36Sopenharmony_ci * DHCM-iMX8ML8-C160-R409-F1638-SPI16-GE-CAN2-SD-RTC-WBTA-ADC-T-RGB-CSI2-HS-I-01D2 762306a36Sopenharmony_ci * DHCOM PCB number: 660-100 or newer 862306a36Sopenharmony_ci * PDK2 PCB number: 516-400 or newer 962306a36Sopenharmony_ci */ 1062306a36Sopenharmony_ci 1162306a36Sopenharmony_ci/dts-v1/; 1262306a36Sopenharmony_ci 1362306a36Sopenharmony_ci#include <dt-bindings/leds/common.h> 1462306a36Sopenharmony_ci#include <dt-bindings/phy/phy-imx8-pcie.h> 1562306a36Sopenharmony_ci#include "imx8mp-dhcom-som.dtsi" 1662306a36Sopenharmony_ci 1762306a36Sopenharmony_ci/ { 1862306a36Sopenharmony_ci model = "DH electronics i.MX8M Plus DHCOM Premium Developer Kit (2)"; 1962306a36Sopenharmony_ci compatible = "dh,imx8mp-dhcom-pdk2", "dh,imx8mp-dhcom-som", 2062306a36Sopenharmony_ci "fsl,imx8mp"; 2162306a36Sopenharmony_ci 2262306a36Sopenharmony_ci chosen { 2362306a36Sopenharmony_ci stdout-path = &uart1; 2462306a36Sopenharmony_ci }; 2562306a36Sopenharmony_ci 2662306a36Sopenharmony_ci clk_ext_audio_codec: clock-codec { 2762306a36Sopenharmony_ci compatible = "fixed-clock"; 2862306a36Sopenharmony_ci #clock-cells = <0>; 2962306a36Sopenharmony_ci clock-frequency = <24000000>; 3062306a36Sopenharmony_ci }; 3162306a36Sopenharmony_ci 3262306a36Sopenharmony_ci gpio-keys { 3362306a36Sopenharmony_ci compatible = "gpio-keys"; 3462306a36Sopenharmony_ci 3562306a36Sopenharmony_ci button-0 { 3662306a36Sopenharmony_ci gpios = <&gpio1 9 GPIO_ACTIVE_LOW>; /* GPIO A */ 3762306a36Sopenharmony_ci label = "TA1-GPIO-A"; 3862306a36Sopenharmony_ci linux,code = <KEY_A>; 3962306a36Sopenharmony_ci pinctrl-0 = <&pinctrl_dhcom_a>; 4062306a36Sopenharmony_ci pinctrl-names = "default"; 4162306a36Sopenharmony_ci wakeup-source; 4262306a36Sopenharmony_ci }; 4362306a36Sopenharmony_ci 4462306a36Sopenharmony_ci button-1 { 4562306a36Sopenharmony_ci gpios = <&gpio1 8 GPIO_ACTIVE_LOW>; /* GPIO B */ 4662306a36Sopenharmony_ci label = "TA2-GPIO-B"; 4762306a36Sopenharmony_ci linux,code = <KEY_B>; 4862306a36Sopenharmony_ci pinctrl-0 = <&pinctrl_dhcom_b>; 4962306a36Sopenharmony_ci pinctrl-names = "default"; 5062306a36Sopenharmony_ci wakeup-source; 5162306a36Sopenharmony_ci }; 5262306a36Sopenharmony_ci 5362306a36Sopenharmony_ci button-2 { 5462306a36Sopenharmony_ci gpios = <&gpio5 2 GPIO_ACTIVE_LOW>; /* GPIO C */ 5562306a36Sopenharmony_ci label = "TA3-GPIO-C"; 5662306a36Sopenharmony_ci linux,code = <KEY_C>; 5762306a36Sopenharmony_ci pinctrl-0 = <&pinctrl_dhcom_c>; 5862306a36Sopenharmony_ci pinctrl-names = "default"; 5962306a36Sopenharmony_ci wakeup-source; 6062306a36Sopenharmony_ci }; 6162306a36Sopenharmony_ci 6262306a36Sopenharmony_ci button-3 { 6362306a36Sopenharmony_ci gpios = <&gpio4 27 GPIO_ACTIVE_LOW>; /* GPIO D */ 6462306a36Sopenharmony_ci label = "TA4-GPIO-D"; 6562306a36Sopenharmony_ci linux,code = <KEY_D>; 6662306a36Sopenharmony_ci pinctrl-0 = <&pinctrl_dhcom_d>; 6762306a36Sopenharmony_ci pinctrl-names = "default"; 6862306a36Sopenharmony_ci wakeup-source; 6962306a36Sopenharmony_ci }; 7062306a36Sopenharmony_ci }; 7162306a36Sopenharmony_ci 7262306a36Sopenharmony_ci led { 7362306a36Sopenharmony_ci compatible = "gpio-leds"; 7462306a36Sopenharmony_ci 7562306a36Sopenharmony_ci led-0 { 7662306a36Sopenharmony_ci color = <LED_COLOR_ID_GREEN>; 7762306a36Sopenharmony_ci default-state = "off"; 7862306a36Sopenharmony_ci function = LED_FUNCTION_INDICATOR; 7962306a36Sopenharmony_ci gpios = <&gpio5 22 GPIO_ACTIVE_HIGH>; /* GPIO E */ 8062306a36Sopenharmony_ci pinctrl-0 = <&pinctrl_dhcom_e>; 8162306a36Sopenharmony_ci pinctrl-names = "default"; 8262306a36Sopenharmony_ci }; 8362306a36Sopenharmony_ci 8462306a36Sopenharmony_ci led-1 { 8562306a36Sopenharmony_ci color = <LED_COLOR_ID_GREEN>; 8662306a36Sopenharmony_ci default-state = "off"; 8762306a36Sopenharmony_ci function = LED_FUNCTION_INDICATOR; 8862306a36Sopenharmony_ci gpios = <&gpio5 23 GPIO_ACTIVE_HIGH>; /* GPIO F */ 8962306a36Sopenharmony_ci pinctrl-0 = <&pinctrl_dhcom_f>; 9062306a36Sopenharmony_ci pinctrl-names = "default"; 9162306a36Sopenharmony_ci }; 9262306a36Sopenharmony_ci 9362306a36Sopenharmony_ci led-2 { 9462306a36Sopenharmony_ci color = <LED_COLOR_ID_GREEN>; 9562306a36Sopenharmony_ci default-state = "off"; 9662306a36Sopenharmony_ci function = LED_FUNCTION_INDICATOR; 9762306a36Sopenharmony_ci gpios = <&gpio1 11 GPIO_ACTIVE_HIGH>; /* GPIO H */ 9862306a36Sopenharmony_ci pinctrl-0 = <&pinctrl_dhcom_h>; 9962306a36Sopenharmony_ci pinctrl-names = "default"; 10062306a36Sopenharmony_ci }; 10162306a36Sopenharmony_ci 10262306a36Sopenharmony_ci led-3 { 10362306a36Sopenharmony_ci color = <LED_COLOR_ID_GREEN>; 10462306a36Sopenharmony_ci default-state = "off"; 10562306a36Sopenharmony_ci function = LED_FUNCTION_INDICATOR; 10662306a36Sopenharmony_ci gpios = <&gpio1 5 GPIO_ACTIVE_HIGH>; /* GPIO I */ 10762306a36Sopenharmony_ci pinctrl-0 = <&pinctrl_dhcom_i>; 10862306a36Sopenharmony_ci pinctrl-names = "default"; 10962306a36Sopenharmony_ci }; 11062306a36Sopenharmony_ci }; 11162306a36Sopenharmony_ci 11262306a36Sopenharmony_ci reg_3p3vdd: regulator-3p3vdd { /* 3.3VDD */ 11362306a36Sopenharmony_ci compatible = "regulator-fixed"; 11462306a36Sopenharmony_ci regulator-always-on; 11562306a36Sopenharmony_ci regulator-min-microvolt = <3300000>; 11662306a36Sopenharmony_ci regulator-max-microvolt = <3300000>; 11762306a36Sopenharmony_ci regulator-name = "3P3VDD"; 11862306a36Sopenharmony_ci }; 11962306a36Sopenharmony_ci 12062306a36Sopenharmony_ci sound { 12162306a36Sopenharmony_ci compatible = "simple-audio-card"; 12262306a36Sopenharmony_ci simple-audio-card,name = "SGTL5000-Card"; 12362306a36Sopenharmony_ci simple-audio-card,format = "i2s"; 12462306a36Sopenharmony_ci simple-audio-card,bitclock-master = <&codec_dai>; 12562306a36Sopenharmony_ci simple-audio-card,frame-master = <&codec_dai>; 12662306a36Sopenharmony_ci simple-audio-card,widgets = "Headphone", "Headphone Jack"; 12762306a36Sopenharmony_ci simple-audio-card,routing = "Headphone Jack", "HP_OUT"; 12862306a36Sopenharmony_ci 12962306a36Sopenharmony_ci cpu_dai: simple-audio-card,cpu { 13062306a36Sopenharmony_ci sound-dai = <&sai3>; 13162306a36Sopenharmony_ci }; 13262306a36Sopenharmony_ci 13362306a36Sopenharmony_ci codec_dai: simple-audio-card,codec { 13462306a36Sopenharmony_ci sound-dai = <&sgtl5000>; 13562306a36Sopenharmony_ci }; 13662306a36Sopenharmony_ci }; 13762306a36Sopenharmony_ci}; 13862306a36Sopenharmony_ci 13962306a36Sopenharmony_ci&i2c5 { 14062306a36Sopenharmony_ci sgtl5000: codec@a { 14162306a36Sopenharmony_ci compatible = "fsl,sgtl5000"; 14262306a36Sopenharmony_ci reg = <0x0a>; 14362306a36Sopenharmony_ci #sound-dai-cells = <0>; 14462306a36Sopenharmony_ci clocks = <&clk_ext_audio_codec>; 14562306a36Sopenharmony_ci VDDA-supply = <®_3p3vdd>; 14662306a36Sopenharmony_ci VDDIO-supply = <®_vdd_3p3v_awo>; 14762306a36Sopenharmony_ci }; 14862306a36Sopenharmony_ci}; 14962306a36Sopenharmony_ci 15062306a36Sopenharmony_ci&fec { /* Second ethernet */ 15162306a36Sopenharmony_ci pinctrl-0 = <&pinctrl_fec_rgmii>; 15262306a36Sopenharmony_ci phy-handle = <ðphypdk>; 15362306a36Sopenharmony_ci phy-mode = "rgmii"; 15462306a36Sopenharmony_ci 15562306a36Sopenharmony_ci mdio { 15662306a36Sopenharmony_ci ethphypdk: ethernet-phy@7 { /* KSZ 9021 */ 15762306a36Sopenharmony_ci compatible = "ethernet-phy-ieee802.3-c22"; 15862306a36Sopenharmony_ci pinctrl-0 = <&pinctrl_ethphy1>; 15962306a36Sopenharmony_ci pinctrl-names = "default"; 16062306a36Sopenharmony_ci interrupt-parent = <&gpio4>; 16162306a36Sopenharmony_ci interrupts = <3 IRQ_TYPE_LEVEL_LOW>; 16262306a36Sopenharmony_ci max-speed = <100>; 16362306a36Sopenharmony_ci reg = <7>; 16462306a36Sopenharmony_ci reset-assert-us = <1000>; 16562306a36Sopenharmony_ci reset-deassert-us = <1000>; 16662306a36Sopenharmony_ci reset-gpios = <&gpio4 2 GPIO_ACTIVE_LOW>; 16762306a36Sopenharmony_ci rxc-skew-ps = <3000>; 16862306a36Sopenharmony_ci rxd0-skew-ps = <0>; 16962306a36Sopenharmony_ci rxd1-skew-ps = <0>; 17062306a36Sopenharmony_ci rxd2-skew-ps = <0>; 17162306a36Sopenharmony_ci rxd3-skew-ps = <0>; 17262306a36Sopenharmony_ci rxdv-skew-ps = <0>; 17362306a36Sopenharmony_ci txc-skew-ps = <3000>; 17462306a36Sopenharmony_ci txd0-skew-ps = <0>; 17562306a36Sopenharmony_ci txd1-skew-ps = <0>; 17662306a36Sopenharmony_ci txd2-skew-ps = <0>; 17762306a36Sopenharmony_ci txd3-skew-ps = <0>; 17862306a36Sopenharmony_ci txen-skew-ps = <0>; 17962306a36Sopenharmony_ci }; 18062306a36Sopenharmony_ci }; 18162306a36Sopenharmony_ci}; 18262306a36Sopenharmony_ci 18362306a36Sopenharmony_ci&flexcan1 { 18462306a36Sopenharmony_ci status = "okay"; 18562306a36Sopenharmony_ci}; 18662306a36Sopenharmony_ci 18762306a36Sopenharmony_ci&pcie_phy { 18862306a36Sopenharmony_ci clock-names = "ref"; 18962306a36Sopenharmony_ci clocks = <&clk IMX8MP_SYS_PLL2_100M>; 19062306a36Sopenharmony_ci fsl,clkreq-unsupported; 19162306a36Sopenharmony_ci fsl,refclk-pad-mode = <IMX8_PCIE_REFCLK_PAD_UNUSED>; 19262306a36Sopenharmony_ci status = "okay"; 19362306a36Sopenharmony_ci}; 19462306a36Sopenharmony_ci 19562306a36Sopenharmony_ci&pcie { 19662306a36Sopenharmony_ci fsl,max-link-speed = <1>; 19762306a36Sopenharmony_ci reset-gpio = <&gpio1 6 GPIO_ACTIVE_LOW>; /* GPIO J */ 19862306a36Sopenharmony_ci status = "okay"; 19962306a36Sopenharmony_ci}; 20062306a36Sopenharmony_ci 20162306a36Sopenharmony_ci&sai3 { 20262306a36Sopenharmony_ci #sound-dai-cells = <0>; 20362306a36Sopenharmony_ci pinctrl-names = "default"; 20462306a36Sopenharmony_ci pinctrl-0 = <&pinctrl_sai3>; 20562306a36Sopenharmony_ci assigned-clocks = <&clk IMX8MP_CLK_SAI3>; 20662306a36Sopenharmony_ci assigned-clock-parents = <&clk IMX8MP_AUDIO_PLL1_OUT>; 20762306a36Sopenharmony_ci assigned-clock-rates = <12288000>; 20862306a36Sopenharmony_ci fsl,sai-mclk-direction-output; 20962306a36Sopenharmony_ci status = "okay"; 21062306a36Sopenharmony_ci}; 21162306a36Sopenharmony_ci 21262306a36Sopenharmony_ci&usb3_1 { 21362306a36Sopenharmony_ci fsl,over-current-active-low; 21462306a36Sopenharmony_ci}; 21562306a36Sopenharmony_ci 21662306a36Sopenharmony_ci&iomuxc { 21762306a36Sopenharmony_ci /* 21862306a36Sopenharmony_ci * GPIO_A,B,C,D are connected to buttons. 21962306a36Sopenharmony_ci * GPIO_E,F,H,I are connected to LEDs. 22062306a36Sopenharmony_ci * GPIO_M is connected to CLKOUT1. 22162306a36Sopenharmony_ci */ 22262306a36Sopenharmony_ci pinctrl-0 = <&pinctrl_hog_base 22362306a36Sopenharmony_ci &pinctrl_dhcom_g &pinctrl_dhcom_j 22462306a36Sopenharmony_ci &pinctrl_dhcom_k &pinctrl_dhcom_l 22562306a36Sopenharmony_ci &pinctrl_dhcom_int>; 22662306a36Sopenharmony_ci}; 227