http://www.ti.com/lit/ug/spruh73l/spruh73l.pdf
The available baud rates for UART mode are shown in Table 19-25.
page 4236
Those baud rates are not exhaustive.
The 14-bit divisor of the UART baud rate generator allows for a baud
rate from 300bps to 3.7Mbps.
The formula for actual baud rate is:
[1] baud = uartclk / divisor / {16,13}
uartclk is the uart functional clk, and is typically 48MHz.
The Linux serial core shows the uartclk for a given UART port
at /sys/class/tty/<tty of UART>/uartclk. Eg.
peter@black:~$ sudo cat /sys/class/tty/ttyS4/uartclk
48000000
The {16,13} refers to the fixed oversampling divider.
OMAP has 2 selectable, fixed dividers, 16x or 13x. The linux
kernel driver will compute the error for both and pick the
divider with the smallest absolute error.
To compute the divisor for a given baud rate:
[2] divisor = uartclk / (baud * {16,13})
Eg. to compute the divisor for 5760 baud:
divisor = 48000000 / (5760 * 16) = 520.833 round() => 521
48000000 / (5760 * 13) = 641.025 round() => 641
Substituting both divisors into formula [1] to determine the
actual baud rates,
actual = 48000000 / 521 / 16 = 5758 with error 2
= 48000000 / 641 / 13 = 5760 with error 0
The linux serial driver will select the 13x fixed divider and a
divisor value of 641 to obtain 5760 baud.
Using the BOTHER method of setting a custom baud rate is roughly
outlined in the stackoverflow link noted by William.
I hacked up a quick test to set this baud rate in an i/o validation
test jig and confirmed with a scope the signal period of ~173.6 us
Regards,
Peter Hurley