[linux-yocto] [PATCH 33/94] drivers/tty: Handle baud rate changes. The initial port only ran at 115200.
Bruce Ashfield
bruce.ashfield at windriver.com
Sat Nov 9 06:27:33 PST 2013
The second part of the short log .. should be the long log.
On 11/7/2013, 8:12 PM, Paul Butler wrote:
> From: John Jacques <john.jacques at lsi.com>
>
> Signed-off-by: John Jacques <john.jacques at lsi.com>
> ---
> arch/arm/mach-axxia/clock.c | 64 +++++++++++++++++++++++++++++++++++++++++
> drivers/tty/serial/amba-pl011.c | 4 +--
> 2 files changed, 66 insertions(+), 2 deletions(-)
>
> diff --git a/arch/arm/mach-axxia/clock.c b/arch/arm/mach-axxia/clock.c
> index 619ba5d..27ace6f 100644
> --- a/arch/arm/mach-axxia/clock.c
> +++ b/arch/arm/mach-axxia/clock.c
> @@ -25,6 +25,7 @@
> clkdev_add(cl); \
> } while (0)
>
> +#ifdef CONFIG_ARCH_AXXIA_SIM
>
> void __init
> axxia_init_clocks(void)
> @@ -77,3 +78,66 @@ axxia_init_clocks(void)
> /* PL180 MMCI */
> clk_register_clkdev(clk, NULL, "mmci");
> }
> +
> +#else
> +
> +/*
> + -------------------------------------------------------------------------------
> + axxia_init_clocks
> +
> + Clock setup for Emulation/ASIC systems.
> +*/
> +
> +void __init
> +axxia_init_clocks(void)
> +{
> + struct clk *clk;
> + int i;
> +
> + /* APB clock dummy */
> + clk = clk_register_fixed_rate(NULL, "apb_pclk", NULL,
> + CLK_IS_ROOT, AXXIA_SYS_CLOCK/2);
> + clk_register_clkdev(clk, "apb_pclk", NULL);
> +
> + /* CPU core clock (1400MHz) from CPU_PLL */
> + clk = clk_register_fixed_rate(NULL, "clk_cpu", NULL,
> + CLK_IS_ROOT, AXXIA_CPU_CLOCK);
> +
> + /* APB and System AXI clock from CPU_PLL */
> + clk = clk_register_fixed_rate(NULL, "clk_pclk", NULL,
> + CLK_IS_ROOT, AXXIA_CPU_CLOCK/9);
> +
> + /* DDR3 (interface 1) clock from SMEM1_PLL */
> + clk = clk_register_fixed_rate(NULL, "clk_smem1_2x", NULL,
> + CLK_IS_ROOT, AXXIA_DDR_CLOCK);
> +
> + /* AXIS slow peripheral clock from SMEM1_PLL. */
> + clk = clk_register_fixed_rate(NULL, "clk_per", NULL,
> + CLK_IS_ROOT, 2000000);
> + /* PL011 UART0 */
> + clk_register_clkdev(clk, NULL, "2010080000.uart");
> + /* PL011 UART1 */
> + clk_register_clkdev(clk, NULL, "2010081000.uart");
> + /* PL011 UART2 */
> + clk_register_clkdev(clk, NULL, "2010082000.uart");
> + /* PL011 UART3 */
> + clk_register_clkdev(clk, NULL, "2010083000.uart");
> + /* PL022 SSP */
> + clk_register_clkdev(clk, NULL, "ssp");
> +
> + /* Timers 1MHz clock */
> + clk = clk_register_fixed_rate(NULL, "clk_1mhz", NULL,
> + CLK_IS_ROOT, 1000000);
> + /* SP804 timers */
> + clk_register_clkdev(clk, NULL, "sp804");
> + for (i = 0; i < 8; i++)
> + clk_register_clkdev(clk, NULL, "axxia-timer%d", i);
> +
> + /* Dummy MMC clk */
> + clk = clk_register_fixed_rate(NULL, "clk_mmci", NULL,
> + CLK_IS_ROOT, 25000000);
> + /* PL180 MMCI */
> + clk_register_clkdev(clk, NULL, "mmci");
> +}
> +
> +#endif
> diff --git a/drivers/tty/serial/amba-pl011.c b/drivers/tty/serial/amba-pl011.c
> index abe91eb..aa46383 100644
> --- a/drivers/tty/serial/amba-pl011.c
> +++ b/drivers/tty/serial/amba-pl011.c
> @@ -1378,7 +1378,7 @@ static void pl010_put_poll_char(struct uart_port *port,
>
> #endif /* CONFIG_CONSOLE_POLL */
>
> -static int pl011_startup(struct uart_port *port)
> +/*ZZZ static*/ int pl011_startup(struct uart_port *port)
ZZZ static ?
Bruce
> {
> struct uart_amba_port *uap = (struct uart_amba_port *)port;
> unsigned int cr;
> @@ -1667,7 +1667,7 @@ pl011_set_termios(struct uart_port *port, struct ktermios *termios,
> quot -= 2;
> }
> /* Set baud rate */
> -#if 0
> +#if 1
> writew(quot & 0x3f, port->membase + UART011_FBRD);
> writew(quot >> 6, port->membase + UART011_IBRD);
> #else
>
More information about the linux-yocto
mailing list