| // SPDX-License-Identifier: GPL-2.0+ |
| /* |
| * Copyright (C) 2021 DH electronics GmbH |
| */ |
| |
| / { |
| chosen { |
| stdout-path = "serial0:115200n8"; |
| }; |
| }; |
| |
| /* |
| * Special SoM hardware required which uses the pins from micro SD card. The |
| * pins SD3_DAT0 and SD3_DAT1 are muxed as can2 Tx and Rx. The signals for can2 |
| * Tx and Rx are routed to the DHCOM UART1 rts/cts pins. Therefore the micro SD |
| * card must be disabled and the uart1 rts/cts must be output on other DHCOM |
| * pins, see uart1 and usdhc3 node below. |
| */ |
| &can2 { |
| status = "okay"; |
| }; |
| |
| &gpio1 { |
| /* |
| * NOTE: On DRC02, the RS485_RX_En is controlled by a separate |
| * GPIO line, however the i.MX6 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 = <18 0>; /* GPIO Q */ |
| line-name = "rs485-rx-en"; |
| output-low; |
| }; |
| }; |
| |
| &gpio3 { |
| gpio-line-names = |
| "", "", "", "", "", "", "", "", |
| "", "", "", "", "", "", "", "", |
| "", "", "", "", "", "", "", "", |
| "", "", "", "DRC02-In1", "", "", "", ""; |
| }; |
| |
| &gpio4 { |
| gpio-line-names = |
| "", "", "", "", "", "DHCOM-E", "DRC02-In2", "DHCOM-H", |
| "DHCOM-I", "DRC02-HW0", "", "", "", "", "", "", |
| "", "", "", "", "DRC02-Out1", "", "", "", |
| "", "", "", "", "", "", "", ""; |
| }; |
| |
| &gpio6 { |
| gpio-line-names = |
| "", "", "", "DRC02-Out2", "", "", "SOM-HW1", "", |
| "", "", "", "", "", "", "DRC02-HW2", "DRC02-HW1", |
| "", "", "", "", "", "", "", "", |
| "", "", "", "", "", "", "", ""; |
| }; |
| |
| &i2c1 { |
| eeprom@50 { |
| compatible = "atmel,24c04"; |
| reg = <0x50>; |
| pagesize = <16>; |
| }; |
| }; |
| |
| &uart1 { |
| /* |
| * Due to the use of can2 the signals for can2 Tx and Rx are routed to |
| * DHCOM UART1 rts/cts pins. Therefore this UART have to use DHCOM GPIOs |
| * for rts/cts. So configure DHCOM GPIO I as rts and GPIO M as cts. |
| */ |
| /delete-property/ uart-has-rtscts; |
| cts-gpios = <&gpio7 0 GPIO_ACTIVE_HIGH>; /* GPIO M */ |
| pinctrl-0 = <&pinctrl_uart1 &pinctrl_dhcom_i &pinctrl_dhcom_m>; |
| pinctrl-names = "default"; |
| rts-gpios = <&gpio4 8 GPIO_ACTIVE_HIGH>; /* GPIO I */ |
| }; |
| |
| &uart5 { |
| /* |
| * On DRC02 this UART is used as RS485 interface and RS485_TX_En is |
| * controlled by DHCOM GPIO P. So remove rts/cts pins and the property |
| * uart-has-rtscts from this UART and add the DHCOM GPIO P pin via |
| * rts-gpios. The RS485_RX_En is controlled by DHCOM GPIO Q, see gpio1 |
| * node above. |
| */ |
| /delete-property/ uart-has-rtscts; |
| linux,rs485-enabled-at-boot-time; |
| pinctrl-0 = <&pinctrl_uart5_core &pinctrl_dhcom_p &pinctrl_dhcom_q>; |
| pinctrl-names = "default"; |
| rts-gpios = <&gpio7 13 GPIO_ACTIVE_HIGH>; /* GPIO P */ |
| }; |
| |
| &usdhc2 { /* SD card */ |
| status = "okay"; |
| }; |
| |
| &usdhc3 { |
| /* |
| * Due to the use of can2 the micro SD card on module have to be |
| * disabled, because the pins SD3_DAT0 and SD3_DAT1 are muxed as |
| * can2 Tx and Rx. |
| */ |
| status = "disabled"; |
| }; |
| |
| &iomuxc { |
| pinctrl-0 = < |
| /* |
| * The following DHCOM GPIOs are used on this board. |
| * Therefore, they have been removed from the list below. |
| * I: uart1 rts |
| * M: uart1 cts |
| * P: uart5 rs485-tx-en |
| * Q: uart5 rs485-rx-en |
| */ |
| &pinctrl_hog_base |
| &pinctrl_dhcom_a &pinctrl_dhcom_b &pinctrl_dhcom_c |
| &pinctrl_dhcom_d &pinctrl_dhcom_e &pinctrl_dhcom_f |
| &pinctrl_dhcom_g &pinctrl_dhcom_h |
| &pinctrl_dhcom_j &pinctrl_dhcom_k &pinctrl_dhcom_l |
| &pinctrl_dhcom_n &pinctrl_dhcom_o |
| &pinctrl_dhcom_r |
| &pinctrl_dhcom_s &pinctrl_dhcom_t &pinctrl_dhcom_u |
| &pinctrl_dhcom_v &pinctrl_dhcom_w &pinctrl_dhcom_int |
| >; |
| pinctrl-names = "default"; |
| |
| pinctrl_uart5_core: uart5-core-grp { |
| fsl,pins = < |
| MX6QDL_PAD_CSI0_DAT14__UART5_TX_DATA 0x1b0b1 |
| MX6QDL_PAD_CSI0_DAT15__UART5_RX_DATA 0x1b0b1 |
| >; |
| }; |
| }; |