How to use uartC in imx6ull-colibri

in data sheet of Iris carrier boar mentioned as

  • The RS232 serial transceivers can be shut down via two GPIOs that have been
    connected to the ForceOFF# pin. This is needed in order to use the UART signals that are on the extension connector at the TTL logic level.

as per my understand you are telling like " if we are going to use X16 then we have to disable X13 or X14 (102 or 104)".
in device tree where should i make changes.

  • Colibri iMX6ull 512MB
  • Iris Carrier Board V2.0
  • Linux OS

Hi, I’m the Toradex AI Assistant. I’m in early beta, and I would appreciate your feedback.
The Toradex Support team will follow up with you shortly!

Did you like my answer?

:+1: :-1:


To use UART_C on the Colibri iMX6ULL with the Iris Carrier Board and access UART signals at TTL logic level on the extension connector (X16), you indeed need to disable the RS232 transceivers connected to UART_A (X13) and UART_B (X14) by controlling the GPIOs connected to their ForceOFF# pins. This is necessary to prevent the RS232 transceivers from interfering with the TTL signals.

For the Colibri iMX6ULL on the Iris Carrier Board V2.0, the device tree modifications would typically involve configuring the GPIOs used to control the ForceOFF# pins of the RS232 transceivers. These GPIOs are used to shut down the transceivers, thereby enabling the use of UART signals on the extension connector at TTL levels.

  1. Identify the GPIOs: First, you need to identify the exact GPIO numbers assigned to the ForceOFF# pins for UART_A and UART_B in the Iris Carrier Board documentation or schematics.

  2. Device Tree Changes: Once you have the GPIO numbers, you can proceed to make the necessary changes in the device tree. You would typically do this in the board-specific device tree file for the Colibri iMX6ULL, which might be located in a path similar to arch/arm/boot/dts/imx6ull-colibri-iris.dts in the Linux kernel source tree.

Here is an example of how you might configure the GPIOs in the device tree:

&iomuxc {
    pinctrl-names = "default";
    pinctrl-0 = <&pinctrl_gpio1>;

    forceoff_gpios: forceoff-gpios {
        pinctrl_gpio1: gpio1grp {
            fsl,pins = <
                MX6UL_PAD_GPIO1_IO04__GPIO1_IO04 0x14 /* GPIO for UART_A ForceOFF# */
                MX6UL_PAD_GPIO1_IO05__GPIO1_IO05 0x14 /* GPIO for UART_B ForceOFF# */

&gpio1 {
    status = "okay";
  1. Control GPIOs in Software: After configuring the GPIOs in the device tree, you will need to control these GPIOs within your Linux application or initialization script to set them to the appropriate state (high or low) to disable the RS232 transceivers.

This is a simplified example and the actual implementation might vary based on the specific

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

UART (Linux) | Toradex Developer Center.

Hi @Manohara,

Please try as suggested by Toradex AI and let us know if you still not able to use UART
from X16.

Best regards
Ritesh Kumar

I attached my imx6ull-colibri-eval-v3.dtsi file, please suggest me where should i make changes and also what changes.
imx6ull-colibri-eval-v3.dtsi (3.4 KB)

Hi Ritesh,

Waiting for your reply.

Best regards
Phone - +918904013514


Check this thread. I was helped last year to enable two more UARTs, it might help you enable the one you need as well. Adjust it for Iris carier (I was using the dev board)