| Support for MCA UARTs is no longer available as of firmware version 1.22. If you would like to continue using this feature, you must program a version lower than 1.22. |
The MCA implements a UART in its firmware (starting from firmware version 1.1).
When enabled, the serial port is listed as /dev/ttyMCA0.
The configuration options are limited to:
-
Baud rates: from 1200 up to 230400 bps. Note that the throughput is limited by the I2C bus speed (100 KHz) so, for higher baudrates than 9600, flow control is recommended.
-
Parity: none, even, or odd.
-
Stop Bits: 1 or 2.
-
Hardware flow-control through CTS and RTS lines.
The RX and TX lines are fixed into MCA_IO1 and MCA_IO2, respectively. You can use the device tree binding to configure the optional RTS and CTS lines in any other GPIO-capable MCA line.
| Manual handling of the RTS and CTS lines through standard TIOCMGET and TIOCMSET ioctls is not supported. |
Kernel configuration
You can manage the MCA UART driver support through the following kernel configuration option:
-
Digi ConnectCore 6UL Micro Controller Assist assist UART (
CONFIG_SERIAL_MCA_CC6UL)
This option is enabled as built-in on the default ConnectCore 6UL kernel configuration file.
Kernel driver
The MCA UART driver is located at:
| File | Description |
|---|---|
UART driver for MCA |
Device tree bindings and customization
The MCA UART device tree binding is documented at Documentation/devicetree/bindings/serial/digi,mca-cc6ul-uart.txt.
Example: MCA UART on the ConnectCore 6UL SBC Pro
UART controller inside the MCA
mca_cc6ul: mca@7e {
...
mca_uart: uart {
compatible = "digi,mca-cc6ul-uart";
status = "disabled";
};
};
MCA UART enabling
/*
* Uncomment to enable MCA UART:
* - MCA_IO1 (TX)
* - MCA_IO2 (RX)
*/
&mca_uart {
status = "okay";
/* Uncomment to enable CTS and/or RTS in any MCA GPIO-capable line */
//rts-pin = <3>;
//cts-pin = <5>;
};
Power management
The MCA UART is capable of waking the system from suspend and from power-off states.
Wake from suspend
To allow the MCA UART to resume the system from suspend when a character is received (and not losing data), run the following command:
# echo enabled > /sys/class/tty/ttyMCA0/power/wakeup
| An application must be reading from the device or the system will not wake up when a character is received. |
Power on the system
To allow the MCA UART to power on the system, you can execute the following command:
# echo enabled > /sys/class/tty/ttyMCA0/power_extra_opts/power_on_rx
In this case there is no need for the port to be open. The UART remains with the latest configuration of baud rate, parity, and stop bits.
| This setting does not persist across reset or power cycles, so you must enable it each time. |