[PATCH v3 14/16] serial: 8250_dw: Add StarFive JH7100 quirk
Geert Uytterhoeven
geert at linux-m68k.org
Mon Nov 8 01:32:23 PST 2021
Hi Esmil,
On Tue, Nov 2, 2021 at 5:12 PM Emil Renner Berthing <kernel at esmil.dk> wrote:
> On the StarFive JH7100 RISC-V SoC the UART core clocks can't be set to
> exactly 16 * 115200Hz and many other common bitrates. Trying this will
> only result in a higher input clock, but low enough that the UART's
> internal divisor can't come close enough to the baud rate target.
> So rather than try to set the input clock it's better to skip the
> clk_set_rate call and rely solely on the UART's internal divisor.
>
> Signed-off-by: Emil Renner Berthing <kernel at esmil.dk>
Thanks for your patch!
Reviewed-by: Geert Uytterhoeven <geert at linux-m68k.org>
> --- a/drivers/tty/serial/8250/8250_dw.c
> +++ b/drivers/tty/serial/8250/8250_dw.c
> @@ -414,6 +414,8 @@ static void dw8250_quirks(struct uart_port *p, struct dw8250_data *data)
>
> if (of_device_is_compatible(np, "marvell,armada-38x-uart"))
> p->serial_out = dw8250_serial_out38x;
> + if (of_device_is_compatible(np, "starfive,jh7100-uart"))
> + p->set_termios = dw8250_do_set_termios;
BTW, it would be great for a follow-up patch to get rid of
all these of_device_is_compatible() checks, and start using
dw8250_of_match[...].data instead.
>
> } else if (acpi_dev_present("APMC0D08", NULL, -1)) {
> p->iotype = UPIO_MEM32;
> @@ -696,6 +698,7 @@ static const struct of_device_id dw8250_of_match[] = {
> { .compatible = "cavium,octeon-3860-uart" },
> { .compatible = "marvell,armada-38x-uart" },
> { .compatible = "renesas,rzn1-uart" },
> + { .compatible = "starfive,jh7100-uart" },
> { /* Sentinel */ }
> };
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert at linux-m68k.org
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
More information about the linux-riscv
mailing list