summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2014-09-22 17:30:57 -0600
committerSimon Glass <sjg@chromium.org>2014-10-22 10:36:57 -0600
commitaed2fbef5e9a0ab5a7cd01e742039a962f0b24ef (patch)
treeb35834c158bf3999a0987b815c2e87fc77b8a9e6 /include
parent41e98e011da9a3a4461e8cb1479ce343898264fe (diff)
downloadu-boot-imx-aed2fbef5e9a0ab5a7cd01e742039a962f0b24ef.zip
u-boot-imx-aed2fbef5e9a0ab5a7cd01e742039a962f0b24ef.tar.gz
u-boot-imx-aed2fbef5e9a0ab5a7cd01e742039a962f0b24ef.tar.bz2
dm: serial: Tidy up the pl01x driver
Adjust the driver so that leaf functions take a pointer to the serial port register base. Put all the global configuration in the init function, and use the same settings from then on. This makes it much easier to move to driver model without duplicating the code, since with driver model we use platform data rather than global settings. The driver is compiled with either the CONFIG_PL010_SERIAL or CONFIG_PL011_SERIAL option and this determines the uart type. With driver model this needs to come in from platform data, so create a new CONFIG_PL01X_SERIAL config which brings in the driver, and adjust the driver to support both peripheral variants. Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Stephen Warren <swarren@wwwdotorg.org>
Diffstat (limited to 'include')
-rw-r--r--include/serial_pl01x.h27
1 files changed, 27 insertions, 0 deletions
diff --git a/include/serial_pl01x.h b/include/serial_pl01x.h
new file mode 100644
index 0000000..5e068f3
--- /dev/null
+++ b/include/serial_pl01x.h
@@ -0,0 +1,27 @@
+/*
+ * Copyright (c) 2014 Google, Inc
+ * SPDX-License-Identifier: GPL-2.0+
+ */
+
+#ifndef __serial_pl01x_h
+#define __serial_pl01x_h
+
+enum pl01x_type {
+ TYPE_PL010,
+ TYPE_PL011,
+};
+
+/*
+ *Information about a serial port
+ *
+ * @base: Register base address
+ * @type: Port type
+ * @clock: Input clock rate, used for calculating the baud rate divisor
+ */
+struct pl01x_serial_platdata {
+ unsigned long base;
+ enum pl01x_type type;
+ unsigned int clock;
+};
+
+#endif