Linux Audio

Check our new training course

Embedded Linux Audio

Check our new training course
with Creative Commons CC-BY-SA
lecture materials

Bootlin logo

Elixir Cross Referencer

Loading...
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
 * Copyright (C) 2022 Marek Vasut <marex@denx.de>
 *
 * 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 <dt-bindings/leds/common.h>
#include <dt-bindings/phy/phy-imx8-pcie.h>
#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;
	};

	gpio-keys {
		compatible = "gpio-keys";

		button-0 {
			gpios = <&gpio1 9 GPIO_ACTIVE_LOW>; /* GPIO A */
			label = "TA1-GPIO-A";
			linux,code = <KEY_A>;
			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 = <KEY_B>;
			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 = <KEY_C>;
			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 = <KEY_D>;
			pinctrl-0 = <&pinctrl_dhcom_d>;
			pinctrl-names = "default";
			wakeup-source;
		};
	};

	led {
		compatible = "gpio-leds";

		led-0 {
			color = <LED_COLOR_ID_GREEN>;
			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 = <LED_COLOR_ID_GREEN>;
			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 = <LED_COLOR_ID_GREEN>;
			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 = <LED_COLOR_ID_GREEN>;
			default-state = "off";
			function = LED_FUNCTION_INDICATOR;
			gpios = <&gpio1 5 GPIO_ACTIVE_HIGH>; /* GPIO I */
			pinctrl-0 = <&pinctrl_dhcom_i>;
			pinctrl-names = "default";
		};
	};
};

/*
 * PDK2 carrier board uses SoM with KSZ9131 populated and connected to
 * SoM EQoS ethernet RGMII interface. Remove the other SoM PHY DT node.
 */
/delete-node/ &ethphy0f;

/*
 * PDK2 carrier board has KSZ9021 PHY populated and connected to SoM FEC
 * ethernet RGMII interface. The SoM is not populated with second FEC PHY.
 */
/delete-node/ &ethphy1f;

&fec {	/* Second ethernet */
	phy-handle = <&ethphypdk>;

	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";
};

&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 CLKOUT2.
	 */
	pinctrl-0 = <&pinctrl_hog_base
		     &pinctrl_dhcom_g &pinctrl_dhcom_j
		     &pinctrl_dhcom_k &pinctrl_dhcom_l
		     &pinctrl_dhcom_int>;
};