Enabling IrDA communication over the UART interface

I am currently working on Colibri iMX6ULL processor and need assistance enabling IrDA communication over the UART interface.
I want to use SODIMM 19 and 21 for this interface.Could you please provide guidance on the following:
How to configure the UART driver for IrDA mode.
Relevant kernel configuration options for IrDA support.
Any driver modifications needed for full IrDA functionality.
Recommended tools for testing IrDA communication.
Your help would be greatly appreciated.

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 there!

To enable IrDA communication over the UART interface on your Colibri iMX6ULL, you can follow these steps:

  1. Kernel Configuration for IrDA Support:

    • Make sure your Linux kernel is configured with IrDA support. This involves enabling the following options in your kernel configuration:
      • CONFIG_IRDA: Enable the IrDA subsystem support.
      • CONFIG_IRCOMM: Enable IrDA serial port emulation.
      • CONFIG_IRDA_ULTRA: Enable Ultra (Fast Infrared) support if needed.
    • You can configure these options using make menuconfig or by editing the .config file directly.
  2. Device Tree Configuration:

    • Modify the device tree to configure the UART pins for IrDA mode. This involves setting the correct pin multiplexing for SODIMM 19 and 21 to function as IrDA TX and RX.
    • Ensure that the device tree node for the UART interface includes properties for IrDA mode, such as fsl,irda-mode if applicable.
  3. Driver Modifications:

    • Check if the existing UART driver supports IrDA mode. If not, you may need to modify the driver to handle IrDA-specific operations, such as setting the UART to SIR (Serial Infrared) mode.
    • This might involve writing or modifying code to switch the UART into IrDA mode, typically by setting specific registers or using ioctl calls.
  4. Testing Tools:

    • Use tools like irattach to attach the IrDA device to a specific UART port.
    • irdadump can be used to monitor IrDA traffic and verify communication.
    • Ensure that the IrDA stack is running by checking the output of lsmod for IrDA-related modules.

By following these steps, you should be able to configure and test IrDA communication on your Colibri iMX6ULL module. If you encounter specific issues, further debugging of the device tree and driver code may be necessary.

Best regards,
Toradex AI Assistant

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

Interfacing TFDU4101 irDA into UART2 (/dev/ttymxc2).

Hi @dipinkrishna,
UART IrDA functionality seems to be available in the hardware (see iMX6ULL reference manual) but we never tested it (see ELB-530).
Please also read here