The NXP i.MX95 Cortex-A55 has eight UART interfaces that can be used for serial communication with devices either directly or through level adapters.

On the ConnectCore 95 SMT SOM:

  • LPUART1, LPUART3, LPUART5, LPUART6, and LPUART7 are available at the castellated pads and the LGA pads (multiplexed with other functionality).

  • LPUART5 is connected to the Bluetooth chip (on module variants with Bluetooth).

  • All eight LPUARTs (LPUART1..LPUART8) are available at LGA pads (multiplexed with other functionality).

On the ConnectCore 95 SMARC SOM:

  • LPUART5 is routed to SER0 interface of the SMARC connector (LPUART5 is connected in the SMT SOM to the Bluetooth chip so this should only be used on SOMs without Bluetooth).

  • LPUART1 is routed to SER1 interface of the SMARC connector.

  • LPUART7 is routed to SER2 interface of the SMARC connector.

  • LPUART3 is routed to SER3 interface of the SMARC connector.

  • LPUART4 and LPUART6 are available at the SMARC connector pads (multiplexed with other functionality).

On the ConnectCore 95 Development Kit:

  • LPUART5 (SER0 of the SMARC) is unconnected (conflicts with Bluetooth).

  • LPUART1 (SER1 of the SMARC) is routed to the console connector (2-wires: RX/TX).

  • LPUART7 (SER2 of the SMARC) is routed to the XBee connector (4-wires: RX/TX/RTS/CTS).

  • LPUART3 (SER3 of the SMARC) is routed to the RS-485 transceiver (2-wires: RX/TX).

On ConnectCore 95 Development Kit version 2, the DE/RE# line of the RS-485 transceiver is routed to a GPIO of the MCA (MCA_IO18) which cannot toggle in interrupt context. RS-485 transceiver cannot work in this scenario and has been disabled on the default device tree.

This will be resolved in a future redesign of the DVK using a native GPIO of the i.MX95 to drive the DE/RE# line of the RS-485 transceiver.

Kernel configuration

You can manage the LPUART support through the kernel configuration options:

  • Freescale lpuart serial port support (CONFIG_SERIAL_FSL_LPUART)

  • Console on Freescale lpuart serial port (CONFIG_SERIAL_FSL_LPUART_CONSOLE)

These options are enabled as built-in on the default ConnectCore 95 kernel configuration file.

Kernel driver

File Description

drivers/tty/serial/fsl_lpuart.c

Freescale LPUART driver

Device tree bindings and customization

The i.MX95 LPUART interface device tree binding is documented at Documentation/devicetree/bindings/serial/fsl-lpuart.yaml

UART user space usage

The i.MX95 UART bus driver exposes device data through the sysfs at /sys/class/tty/ttyLPN/, where N is the port index, starting at zero.

UART device interface

You can access i.MX95 UART devices from user space through the device node /dev/ttyLPN, where N is the port index, starting at zero.

For information about using the serial port from user space, see the Serial Programming Guide for POSIX Operating Systems.