1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
|
// SPDX-License-Identifier: GPL-2.0+ OR BSD-3-Clause
/*
* Copyright (C) 2023 DH electronics GmbH
*
* DHCOM iMX6ULL variant:
* DHCM-iMX6ULL-C080-R051-F0409-SPI-E2-CAN2-SD-RTC-ADC-I-01D2
* DHCOR PCB number: 578-200 or newer
* DHCOM PCB number: 579-200 or newer
* DRC02 PCB number: 568-100 or newer (2nd ethernet by SoM)
*/
/dts-v1/;
#include "imx6ull-dhcom-som.dtsi"
#include "imx6ull-dhcom-som-cfg-sdcard.dtsi"
/ {
model = "DH electronics i.MX6ULL DHCOM on DRC02";
compatible = "dh,imx6ull-dhcom-drc02", "dh,imx6ull-dhcom-som",
"dh,imx6ull-dhcor-som", "fsl,imx6ull";
};
/*
* The signals for CAN2 TX and RX are routed to the DHCOM UART1 RTS/CTS pins.
* Therefore the UART RTS/CTS must be output on other DHCOM pins, see uart1
* node below.
*/
&can2 {
status = "okay";
};
&gpio1 {
gpio-line-names =
"", "", "", "",
"", "", "", "",
"", "", "", "DRC02-In2",
"", "", "", "",
"", "", "DHCOM-I", "",
"", "", "", "",
"", "", "", "",
"", "", "", "";
};
&gpio4 {
gpio-line-names =
"", "", "", "",
"", "", "", "",
"", "", "", "",
"", "", "", "",
"", "DRC02-HW0", "DRC02-HW1", "DHCOM-M",
"DRC02-HW2", "DHCOM-U", "DHCOM-T", "DHCOM-S",
"DHCOM-R", "DHCOM-Q", "DHCOM-P", "DHCOM-O",
"DHCOM-N", "", "", "";
/*
* NOTE: On DRC02, the RS485_RX_En is controlled by a separate
* GPIO line, however the i.MX6ULL UART driver assumes RX happens
* during TX anyway and that it only controls drive enable DE
* line. Hence, the RX is always enabled here.
*/
rs485-rx-en-hog {
gpio-hog;
gpios = <25 0>; /* GPIO Q */
line-name = "rs485-rx-en";
output-low;
};
};
&gpio5 {
gpio-line-names =
"DHCOM-A", "DHCOM-B", "DHCOM-C", "DRC02-Out2",
"DHCOM-E", "", "", "DRC02-Out1",
"DRC02-In1", "DHCOM-H", "", "",
"", "", "", "",
"", "", "", "",
"", "", "", "",
"", "", "", "",
"", "", "", "";
};
/* DHCOM I2C2 */
&i2c1 {
eeprom@56 {
compatible = "atmel,24c04";
reg = <0x56>;
pagesize = <16>;
};
};
&uart1 {
/delete-property/ uart-has-rtscts;
rts-gpios = <&gpio1 18 GPIO_ACTIVE_HIGH>; /* GPIO I */
cts-gpios = <&gpio4 19 GPIO_ACTIVE_HIGH>; /* GPIO M */
};
/* Use UART as RS485 */
&uart2 {
/delete-property/ uart-has-rtscts;
linux,rs485-enabled-at-boot-time;
rts-gpios = <&gpio4 26 GPIO_ACTIVE_HIGH>; /* GPIO P */
};
|