162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0+ OR BSD-3-Clause 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * Copyright (C) 2023 DH electronics GmbH 462306a36Sopenharmony_ci * 562306a36Sopenharmony_ci * DHCOM iMX6ULL variant: 662306a36Sopenharmony_ci * DHCM-iMX6ULL-C080-R051-F0409-SPI-E2-CAN2-SD-RTC-ADC-I-01D2 762306a36Sopenharmony_ci * DHCOR PCB number: 578-200 or newer 862306a36Sopenharmony_ci * DHCOM PCB number: 579-200 or newer 962306a36Sopenharmony_ci * DRC02 PCB number: 568-100 or newer (2nd ethernet by SoM) 1062306a36Sopenharmony_ci */ 1162306a36Sopenharmony_ci/dts-v1/; 1262306a36Sopenharmony_ci 1362306a36Sopenharmony_ci#include "imx6ull-dhcom-som.dtsi" 1462306a36Sopenharmony_ci#include "imx6ull-dhcom-som-cfg-sdcard.dtsi" 1562306a36Sopenharmony_ci 1662306a36Sopenharmony_ci/ { 1762306a36Sopenharmony_ci model = "DH electronics i.MX6ULL DHCOM on DRC02"; 1862306a36Sopenharmony_ci compatible = "dh,imx6ull-dhcom-drc02", "dh,imx6ull-dhcom-som", 1962306a36Sopenharmony_ci "dh,imx6ull-dhcor-som", "fsl,imx6ull"; 2062306a36Sopenharmony_ci}; 2162306a36Sopenharmony_ci 2262306a36Sopenharmony_ci/* 2362306a36Sopenharmony_ci * The signals for CAN2 TX and RX are routed to the DHCOM UART1 RTS/CTS pins. 2462306a36Sopenharmony_ci * Therefore the UART RTS/CTS must be output on other DHCOM pins, see uart1 2562306a36Sopenharmony_ci * node below. 2662306a36Sopenharmony_ci */ 2762306a36Sopenharmony_ci&can2 { 2862306a36Sopenharmony_ci status = "okay"; 2962306a36Sopenharmony_ci}; 3062306a36Sopenharmony_ci 3162306a36Sopenharmony_ci&gpio1 { 3262306a36Sopenharmony_ci gpio-line-names = 3362306a36Sopenharmony_ci "", "", "", "", 3462306a36Sopenharmony_ci "", "", "", "", 3562306a36Sopenharmony_ci "", "", "", "DRC02-In2", 3662306a36Sopenharmony_ci "", "", "", "", 3762306a36Sopenharmony_ci "", "", "DHCOM-I", "", 3862306a36Sopenharmony_ci "", "", "", "", 3962306a36Sopenharmony_ci "", "", "", "", 4062306a36Sopenharmony_ci "", "", "", ""; 4162306a36Sopenharmony_ci}; 4262306a36Sopenharmony_ci 4362306a36Sopenharmony_ci&gpio4 { 4462306a36Sopenharmony_ci gpio-line-names = 4562306a36Sopenharmony_ci "", "", "", "", 4662306a36Sopenharmony_ci "", "", "", "", 4762306a36Sopenharmony_ci "", "", "", "", 4862306a36Sopenharmony_ci "", "", "", "", 4962306a36Sopenharmony_ci "", "DRC02-HW0", "DRC02-HW1", "DHCOM-M", 5062306a36Sopenharmony_ci "DRC02-HW2", "DHCOM-U", "DHCOM-T", "DHCOM-S", 5162306a36Sopenharmony_ci "DHCOM-R", "DHCOM-Q", "DHCOM-P", "DHCOM-O", 5262306a36Sopenharmony_ci "DHCOM-N", "", "", ""; 5362306a36Sopenharmony_ci /* 5462306a36Sopenharmony_ci * NOTE: On DRC02, the RS485_RX_En is controlled by a separate 5562306a36Sopenharmony_ci * GPIO line, however the i.MX6ULL UART driver assumes RX happens 5662306a36Sopenharmony_ci * during TX anyway and that it only controls drive enable DE 5762306a36Sopenharmony_ci * line. Hence, the RX is always enabled here. 5862306a36Sopenharmony_ci */ 5962306a36Sopenharmony_ci rs485-rx-en-hog { 6062306a36Sopenharmony_ci gpio-hog; 6162306a36Sopenharmony_ci gpios = <25 0>; /* GPIO Q */ 6262306a36Sopenharmony_ci line-name = "rs485-rx-en"; 6362306a36Sopenharmony_ci output-low; 6462306a36Sopenharmony_ci }; 6562306a36Sopenharmony_ci}; 6662306a36Sopenharmony_ci 6762306a36Sopenharmony_ci&gpio5 { 6862306a36Sopenharmony_ci gpio-line-names = 6962306a36Sopenharmony_ci "DHCOM-A", "DHCOM-B", "DHCOM-C", "DRC02-Out2", 7062306a36Sopenharmony_ci "DHCOM-E", "", "", "DRC02-Out1", 7162306a36Sopenharmony_ci "DRC02-In1", "DHCOM-H", "", "", 7262306a36Sopenharmony_ci "", "", "", "", 7362306a36Sopenharmony_ci "", "", "", "", 7462306a36Sopenharmony_ci "", "", "", "", 7562306a36Sopenharmony_ci "", "", "", "", 7662306a36Sopenharmony_ci "", "", "", ""; 7762306a36Sopenharmony_ci}; 7862306a36Sopenharmony_ci 7962306a36Sopenharmony_ci/* DHCOM I2C2 */ 8062306a36Sopenharmony_ci&i2c1 { 8162306a36Sopenharmony_ci eeprom@56 { 8262306a36Sopenharmony_ci compatible = "atmel,24c04"; 8362306a36Sopenharmony_ci reg = <0x56>; 8462306a36Sopenharmony_ci pagesize = <16>; 8562306a36Sopenharmony_ci }; 8662306a36Sopenharmony_ci}; 8762306a36Sopenharmony_ci 8862306a36Sopenharmony_ci&uart1 { 8962306a36Sopenharmony_ci /delete-property/ uart-has-rtscts; 9062306a36Sopenharmony_ci rts-gpios = <&gpio1 18 GPIO_ACTIVE_HIGH>; /* GPIO I */ 9162306a36Sopenharmony_ci cts-gpios = <&gpio4 19 GPIO_ACTIVE_HIGH>; /* GPIO M */ 9262306a36Sopenharmony_ci}; 9362306a36Sopenharmony_ci 9462306a36Sopenharmony_ci/* Use UART as RS485 */ 9562306a36Sopenharmony_ci&uart2 { 9662306a36Sopenharmony_ci /delete-property/ uart-has-rtscts; 9762306a36Sopenharmony_ci linux,rs485-enabled-at-boot-time; 9862306a36Sopenharmony_ci rts-gpios = <&gpio4 26 GPIO_ACTIVE_HIGH>; /* GPIO P */ 9962306a36Sopenharmony_ci}; 100