lkml.org 
[lkml]   [2022]   [Jan]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.16 0591/1039] serial: 8250_dw: Add StarFive JH7100 quirk
    Date
    From: Emil Renner Berthing <kernel@esmil.dk>

    [ Upstream commit 57dcb6ec85d59e04285b7dcf10924bb819c8e46f ]

    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@esmil.dk>
    Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
    Reviewed-by: Geert Uytterhoeven <geert@linux-m68k.org>
    Link: https://lore.kernel.org/r/20211116150119.2171-15-kernel@esmil.dk
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/tty/serial/8250/8250_dw.c | 3 +++
    1 file changed, 3 insertions(+)

    diff --git a/drivers/tty/serial/8250/8250_dw.c b/drivers/tty/serial/8250/8250_dw.c
    index 53f57c3b9f42c..1769808031c52 100644
    --- 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;

    } 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 */ }
    };
    MODULE_DEVICE_TABLE(of, dw8250_of_match);
    --
    2.34.1


    \
     
     \ /
      Last update: 2022-01-25 01:12    [W:3.928 / U:0.300 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site