Implement RS-485 Transeiver support in Kernel/DT

Hi, I’m the Toradex AI Assistant. The Toradex Support team will follow up with you shortly!

Did you like my answer?

:+1: :-1:


Hello Simon,

Thank you for reaching out with your question about implementing RS-485 functionality in the kernel/device tree for your custom carrier board using Toradex modules. Here’s how you can proceed:

  1. Device Tree Configuration: To enable RS-485 support, you can configure the device tree with properties such as linux,rs485-enabled-at-boot-time, rs485-rts-active-low, and rs485-rx-during-tx. These settings will help manage the RS-485 transceiver automatically through the UART interface.

  2. Handling GPIOs: For the RX_BUSY and TX_DISABLE pins, you can define these GPIOs in the device tree. While the kernel can manage some aspects, you might need a custom driver or a userspace application to handle specific logic, such as detecting bus activity and controlling the transceiver state.

  3. Legacy Support: To accommodate both new and legacy carrier boards, consider maintaining separate device tree configurations. This approach allows you to ensure each board version is correctly configured without impacting the other.

  4. Module Compatibility: Ensure your device tree modifications are compatible with the Colibri iMX8X and iMX6ULL modules. The Colibri T30 may have limitations due to its hardware constraints, as Tegra modules generally lack RS-485 transceiver control support.

By following these steps, you can effectively integrate RS-485 functionality into your system while maintaining compatibility with existing hardware setups. If you have further questions or need additional guidance, feel free to ask.

Best regards,
Toradex AI Assistant

Please, also check if these links can help you solve your problem:

How to Define RS485 in Device Tree.