
Hi Patrice,
On 10 February 2017 at 08:04, patrice.chotard@st.com wrote:
From: Patrice Chotard patrice.chotard@st.com
This patch adds support to ASC (asynchronous serial controller) driver, which is basically a standard serial driver. This IP is common across other STMicroelectronics SoCs
Signed-off-by: Patrice Chotard patrice.chotard@st.com
Please can you include a change log with each patch?
arch/arm/Kconfig | 2 + arch/arm/include/asm/arch-stih410/sti.h | 16 +++ drivers/serial/Kconfig | 7 + drivers/serial/Makefile | 1 + drivers/serial/serial_sti_asc.c | 218 ++++++++++++++++++++++++++++++ include/dm/platform_data/serial_sti_asc.h | 17 +++ 6 files changed, 261 insertions(+) create mode 100644 arch/arm/include/asm/arch-stih410/sti.h create mode 100644 drivers/serial/serial_sti_asc.c create mode 100644 include/dm/platform_data/serial_sti_asc.h
[..]
+/* blocking function, that returns next char */ +static int sti_asc_serial_getc(struct udevice *dev) +{
struct sti_asc_serial_platdata *plat = dev->platdata;
struct sti_asc_uart *const uart = plat->base;
/* polling wait: for a char to be read */
if (!sti_asc_pending(dev, true))
return -EAGAIN;
return readl(&uart->rxbuf);
+}
+/* write write out a single char */ +static int sti_asc_serial_putc(struct udevice *dev, const char c) +{
struct sti_asc_serial_platdata *plat = dev->platdata;
struct sti_asc_uart *const uart = plat->base;
/* Stream-LF to CR+LF conversion */
if (c == 10)
sti_asc_serial_putc(dev, '\r');
The uclass does this for you.
/* wait till safe to write next char */
while (sti_asc_pending(dev, false))
;
No loops - just return -EAGAIN
/* finally, write next char */
writel(c, &uart->txbuf);
return 0;
+}
Regards, Simon