Merge tag 'dm-9oct18' of git://git.denx.de/u-boot-dm
[platform/kernel/u-boot.git] / drivers / serial / sandbox.c
index a60dabe..4a05ea4 100644 (file)
@@ -22,6 +22,8 @@
 
 DECLARE_GLOBAL_DATA_PTR;
 
+#if CONFIG_IS_ENABLED(OF_CONTROL)
+
 /*
  *
  *   serial_buf: A buffer that holds keyboard characters for the
@@ -124,7 +126,7 @@ static int sandbox_serial_pending(struct udevice *dev, bool input)
        if (next_index == serial_buf_read)
                return 1;       /* buffer full */
 
-       count = os_read_no_block(0, &serial_buf[serial_buf_write], 1);
+       count = os_read(0, &serial_buf[serial_buf_write], 1);
        if (count == 1)
                serial_buf_write = next_index;
 
@@ -142,7 +144,39 @@ static int sandbox_serial_getc(struct udevice *dev)
        serial_buf_read = increment_buffer_index(serial_buf_read);
        return result;
 }
+#endif /* CONFIG_IS_ENABLED(OF_CONTROL) */
+
+#ifdef CONFIG_DEBUG_UART_SANDBOX
+
+#include <debug_uart.h>
+
+static inline void _debug_uart_init(void)
+{
+}
+
+static inline void _debug_uart_putc(int ch)
+{
+       os_putc(ch);
+}
+
+DEBUG_UART_FUNCS
+
+#endif /* CONFIG_DEBUG_UART_SANDBOX */
+
+static int sandbox_serial_setconfig(struct udevice *dev, uint serial_config)
+{
+       u8 parity = SERIAL_GET_PARITY(serial_config);
+       u8 bits = SERIAL_GET_BITS(serial_config);
+       u8 stop = SERIAL_GET_STOP(serial_config);
+
+       if (bits != SERIAL_8_BITS || stop != SERIAL_ONE_STOP ||
+           parity != SERIAL_PAR_NONE)
+               return -ENOTSUPP; /* not supported in driver*/
+
+       return 0;
+}
 
+#if CONFIG_IS_ENABLED(OF_CONTROL)
 static const char * const ansi_colour[] = {
        "black", "red", "green", "yellow", "blue", "megenta", "cyan",
        "white",
@@ -173,6 +207,7 @@ static const struct dm_serial_ops sandbox_serial_ops = {
        .putc = sandbox_serial_putc,
        .pending = sandbox_serial_pending,
        .getc = sandbox_serial_getc,
+       .setconfig = sandbox_serial_setconfig,
 };
 
 static const struct udevice_id sandbox_serial_ids[] = {
@@ -201,3 +236,4 @@ U_BOOT_DEVICE(serial_sandbox_non_fdt) = {
        .name = "serial_sandbox",
        .platdata = &platdata_non_fdt,
 };
+#endif /* CONFIG_IS_ENABLED(OF_CONTROL) */