92df6c1277c3633a472f01add5f7f582678ced22
[linux-2.6-microblaze.git] / arch / arm64 / boot / dts / freescale / imx8mp-dhcom-pdk2.dts
1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2 /*
3  * Copyright (C) 2022 Marek Vasut <marex@denx.de>
4  *
5  * DHCOM iMX8MP variant:
6  * DHCM-iMX8ML8-C160-R409-F1638-SPI16-GE-CAN2-SD-RTC-WBTA-ADC-T-RGB-CSI2-HS-I-01D2
7  * DHCOM PCB number: 660-100 or newer
8  * PDK2 PCB number: 516-400 or newer
9  */
10
11 /dts-v1/;
12
13 #include <dt-bindings/leds/common.h>
14 #include <dt-bindings/phy/phy-imx8-pcie.h>
15 #include "imx8mp-dhcom-som.dtsi"
16
17 / {
18         model = "DH electronics i.MX8M Plus DHCOM Premium Developer Kit (2)";
19         compatible = "dh,imx8mp-dhcom-pdk2", "dh,imx8mp-dhcom-som",
20                      "fsl,imx8mp";
21
22         chosen {
23                 stdout-path = &uart1;
24         };
25
26         gpio-keys {
27                 compatible = "gpio-keys";
28
29                 button-0 {
30                         gpios = <&gpio1 9 GPIO_ACTIVE_LOW>; /* GPIO A */
31                         label = "TA1-GPIO-A";
32                         linux,code = <KEY_A>;
33                         pinctrl-0 = <&pinctrl_dhcom_a>;
34                         pinctrl-names = "default";
35                         wakeup-source;
36                 };
37
38                 button-1 {
39                         gpios = <&gpio1 8 GPIO_ACTIVE_LOW>; /* GPIO B */
40                         label = "TA2-GPIO-B";
41                         linux,code = <KEY_B>;
42                         pinctrl-0 = <&pinctrl_dhcom_b>;
43                         pinctrl-names = "default";
44                         wakeup-source;
45                 };
46
47                 button-2 {
48                         gpios = <&gpio5 2 GPIO_ACTIVE_LOW>; /* GPIO C */
49                         label = "TA3-GPIO-C";
50                         linux,code = <KEY_C>;
51                         pinctrl-0 = <&pinctrl_dhcom_c>;
52                         pinctrl-names = "default";
53                         wakeup-source;
54                 };
55
56                 button-3 {
57                         gpios = <&gpio4 27 GPIO_ACTIVE_LOW>; /* GPIO D */
58                         label = "TA4-GPIO-D";
59                         linux,code = <KEY_D>;
60                         pinctrl-0 = <&pinctrl_dhcom_d>;
61                         pinctrl-names = "default";
62                         wakeup-source;
63                 };
64         };
65
66         led {
67                 compatible = "gpio-leds";
68
69                 led-0 {
70                         color = <LED_COLOR_ID_GREEN>;
71                         default-state = "off";
72                         function = LED_FUNCTION_INDICATOR;
73                         gpios = <&gpio5 22 GPIO_ACTIVE_HIGH>; /* GPIO E */
74                         pinctrl-0 = <&pinctrl_dhcom_e>;
75                         pinctrl-names = "default";
76                 };
77
78                 led-1 {
79                         color = <LED_COLOR_ID_GREEN>;
80                         default-state = "off";
81                         function = LED_FUNCTION_INDICATOR;
82                         gpios = <&gpio5 23 GPIO_ACTIVE_HIGH>; /* GPIO F */
83                         pinctrl-0 = <&pinctrl_dhcom_f>;
84                         pinctrl-names = "default";
85                 };
86
87                 led-2 {
88                         color = <LED_COLOR_ID_GREEN>;
89                         default-state = "off";
90                         function = LED_FUNCTION_INDICATOR;
91                         gpios = <&gpio1 11 GPIO_ACTIVE_HIGH>; /* GPIO H */
92                         pinctrl-0 = <&pinctrl_dhcom_h>;
93                         pinctrl-names = "default";
94                 };
95
96                 led-3 {
97                         color = <LED_COLOR_ID_GREEN>;
98                         default-state = "off";
99                         function = LED_FUNCTION_INDICATOR;
100                         gpios = <&gpio1 5 GPIO_ACTIVE_HIGH>; /* GPIO I */
101                         pinctrl-0 = <&pinctrl_dhcom_i>;
102                         pinctrl-names = "default";
103                 };
104         };
105 };
106
107 &fec {  /* Second ethernet */
108         pinctrl-0 = <&pinctrl_fec_rgmii>;
109         phy-handle = <&ethphypdk>;
110         phy-mode = "rgmii";
111
112         mdio {
113                 ethphypdk: ethernet-phy@7 { /* KSZ 9021 */
114                         compatible = "ethernet-phy-ieee802.3-c22";
115                         pinctrl-0 = <&pinctrl_ethphy1>;
116                         pinctrl-names = "default";
117                         interrupt-parent = <&gpio4>;
118                         interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
119                         max-speed = <100>;
120                         reg = <7>;
121                         reset-assert-us = <1000>;
122                         reset-deassert-us = <1000>;
123                         reset-gpios = <&gpio4 2 GPIO_ACTIVE_LOW>;
124                         rxc-skew-ps = <3000>;
125                         rxd0-skew-ps = <0>;
126                         rxd1-skew-ps = <0>;
127                         rxd2-skew-ps = <0>;
128                         rxd3-skew-ps = <0>;
129                         rxdv-skew-ps = <0>;
130                         txc-skew-ps = <3000>;
131                         txd0-skew-ps = <0>;
132                         txd1-skew-ps = <0>;
133                         txd2-skew-ps = <0>;
134                         txd3-skew-ps = <0>;
135                         txen-skew-ps = <0>;
136                 };
137         };
138 };
139
140 &flexcan1 {
141         status = "okay";
142 };
143
144 &pcie_phy {
145         clock-names = "ref";
146         clocks = <&clk IMX8MP_SYS_PLL2_100M>;
147         fsl,clkreq-unsupported;
148         fsl,refclk-pad-mode = <IMX8_PCIE_REFCLK_PAD_UNUSED>;
149         status = "okay";
150 };
151
152 &pcie {
153         fsl,max-link-speed = <1>;
154         reset-gpio = <&gpio1 6 GPIO_ACTIVE_LOW>;        /* GPIO J */
155         status = "okay";
156 };
157
158 &usb3_1 {
159         fsl,over-current-active-low;
160 };
161
162 &iomuxc {
163         /*
164          * GPIO_A,B,C,D are connected to buttons.
165          * GPIO_E,F,H,I are connected to LEDs.
166          * GPIO_M is connected to CLKOUT1.
167          */
168         pinctrl-0 = <&pinctrl_hog_base
169                      &pinctrl_dhcom_g &pinctrl_dhcom_j
170                      &pinctrl_dhcom_k &pinctrl_dhcom_l
171                      &pinctrl_dhcom_int>;
172 };