mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-11 21:38:32 +08:00
ARM: SAMSUNG: serial: Add FRACVAL support for newer UART
Add support for the FRACVAL register on the newer UART blocks which provides the same function as UDIVSLOT register but the FRACVAL is easier to implement. To support UDIVSLOT register, UDIVSLOT table search is necessary though supporting FRACVAL only needs the index value of UDIVSLOT table. Signed-off-by: Jongpill Lee <boyko.lee@samsung.com> Acked-by: Changhwan Youn <chaos.youn@samsung.com> Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
This commit is contained in:
parent
9fe6206f40
commit
8b526ae4dd
@ -259,6 +259,8 @@ struct s3c2410_uartcfg {
|
||||
unsigned short flags;
|
||||
upf_t uart_flags; /* default uart flags */
|
||||
|
||||
unsigned int has_fracval;
|
||||
|
||||
unsigned long ucon; /* value of ucon for port */
|
||||
unsigned long ulcon; /* value of ulcon for port */
|
||||
unsigned long ufcon; /* value of ufcon for port */
|
||||
|
@ -705,8 +705,13 @@ static void s3c24xx_serial_set_termios(struct uart_port *port,
|
||||
if (ourport->info->has_divslot) {
|
||||
unsigned int div = ourport->baudclk_rate / baud;
|
||||
|
||||
udivslot = udivslot_table[div & 15];
|
||||
dbg("udivslot = %04x (div %d)\n", udivslot, div & 15);
|
||||
if (cfg->has_fracval) {
|
||||
udivslot = (div & 15);
|
||||
dbg("fracval = %04x\n", udivslot);
|
||||
} else {
|
||||
udivslot = udivslot_table[div & 15];
|
||||
dbg("udivslot = %04x (div %d)\n", udivslot, div & 15);
|
||||
}
|
||||
}
|
||||
|
||||
switch (termios->c_cflag & CSIZE) {
|
||||
|
Loading…
Reference in New Issue
Block a user