aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndre Przywara <andre.przywara@arm.com>2014-09-17 14:49:48 +0100
committerGraeme Gregory <graeme.gregory@linaro.org>2015-02-16 09:28:59 +0000
commit66f0930b4806dd54d6bfd9ec0f03c38dd9f59953 (patch)
treef57d3ff47084c1112d99ac65e5ee7f24c87c4ec2
parente146fd5e54c9ec49e8ca0563524ffcb918dc53fe (diff)
drivers: PL011: allow to supply fixed option string
The SBSA UART has a fixed baud rate and flow control setting, which cannot be changed or queried by software. Add a vendor specific property to always return fixed values when trying to read the console options. Signed-off-by: Andre Przywara <andre.przywara@arm.com>
-rw-r--r--drivers/tty/serial/amba-pl011.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/tty/serial/amba-pl011.c b/drivers/tty/serial/amba-pl011.c
index 833c39971d55..a1c929f269df 100644
--- a/drivers/tty/serial/amba-pl011.c
+++ b/drivers/tty/serial/amba-pl011.c
@@ -79,6 +79,7 @@ struct vendor_data {
bool dma_threshold;
bool cts_event_workaround;
bool always_enabled;
+ char *fixed_options;
unsigned int (*get_fifosize)(struct amba_device *dev);
};
@@ -96,6 +97,7 @@ static struct vendor_data vendor_arm = {
.dma_threshold = false,
.cts_event_workaround = false,
.always_enabled = false,
+ .fixed_options = NULL,
.get_fifosize = get_fifosize_arm,
};
@@ -112,6 +114,7 @@ static struct vendor_data vendor_st = {
.dma_threshold = true,
.cts_event_workaround = true,
.always_enabled = false,
+ .fixed_options = NULL,
.get_fifosize = get_fifosize_st,
};
@@ -2109,6 +2112,9 @@ static int __init pl011_console_setup(struct console *co, char *options)
uap->port.uartclk = clk_get_rate(uap->clk);
+ if (!options && uap->vendor->fixed_options)
+ options = uap->vendor->fixed_options;
+
if (options)
uart_parse_options(options, &baud, &parity, &bits, &flow);
else