summaryrefslogtreecommitdiff
path: root/drivers/tty/serial/8250/8250_dwlib.h
diff options
context:
space:
mode:
authorPhil Edworthy <phil.edworthy@renesas.com>2022-04-22 21:06:07 +0300
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2022-04-26 14:25:46 +0300
commitd9666dfb314e1ffd6eb9c3c4243fe3e094c047a7 (patch)
treec6919cfb979c77d8680c877f2cbce5733c1ad395 /drivers/tty/serial/8250/8250_dwlib.h
parent5390e7f46b9d5546d45a83e6463bc656678b1d0e (diff)
downloadlinux-d9666dfb314e1ffd6eb9c3c4243fe3e094c047a7.tar.xz
serial: 8250: dw: Move definitions to the shared header
Move the per-device structure and a helper out of the main .c file, into a shared header as they will both be reused from another .c file. There is no functional change. Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Signed-off-by: Phil Edworthy <phil.edworthy@renesas.com> [miquel.raynal@bootlin.com: Extracted from a bigger change] Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com> Link: https://lore.kernel.org/r/20220422180615.9098-2-miquel.raynal@bootlin.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/tty/serial/8250/8250_dwlib.h')
-rw-r--r--drivers/tty/serial/8250/8250_dwlib.h26
1 files changed, 26 insertions, 0 deletions
diff --git a/drivers/tty/serial/8250/8250_dwlib.h b/drivers/tty/serial/8250/8250_dwlib.h
index 83d528e5cc21..72e7dbcccad0 100644
--- a/drivers/tty/serial/8250/8250_dwlib.h
+++ b/drivers/tty/serial/8250/8250_dwlib.h
@@ -1,10 +1,15 @@
/* SPDX-License-Identifier: GPL-2.0+ */
/* Synopsys DesignWare 8250 library header file. */
+#include <linux/notifier.h>
#include <linux/types.h>
+#include <linux/workqueue.h>
#include "8250.h"
+struct clk;
+struct reset_control;
+
struct dw8250_port_data {
/* Port properties */
int line;
@@ -16,5 +21,26 @@ struct dw8250_port_data {
u8 dlf_size;
};
+struct dw8250_data {
+ struct dw8250_port_data data;
+
+ u8 usr_reg;
+ int msr_mask_on;
+ int msr_mask_off;
+ struct clk *clk;
+ struct clk *pclk;
+ struct notifier_block clk_notifier;
+ struct work_struct clk_work;
+ struct reset_control *rst;
+
+ unsigned int skip_autocfg:1;
+ unsigned int uart_16550_compatible:1;
+};
+
void dw8250_do_set_termios(struct uart_port *p, struct ktermios *termios, struct ktermios *old);
void dw8250_setup_port(struct uart_port *p);
+
+static inline struct dw8250_data *to_dw8250_data(struct dw8250_port_data *data)
+{
+ return container_of(data, struct dw8250_data, data);
+}