diff --git a/drivers/serial/Kconfig b/drivers/serial/Kconfig
index a07fab2..76171e7 100644
--- a/drivers/serial/Kconfig
+++ b/drivers/serial/Kconfig
@@ -133,6 +133,19 @@
 	help
 	  The size of the RX buffer (needs to be power of 2)
 
+config SERIAL_PUTS
+	bool "Enable printing strings all at once"
+	depends on DM_SERIAL
+	help
+	  Some serial drivers are much more efficient when printing multiple
+	  characters at once rather than printing characters individually. This
+	  can be because they can load a fifo, or because individual print
+	  calls have a constant overhead. With this option set, the serial
+	  subsystem will try to provide serial drivers with as many characters
+	  at once as possible, instead of printing characters one by one. Most
+	  serial drivers do not need this config to print efficiently. If
+	  unsure, say N.
+
 config SERIAL_SEARCH_ALL
 	bool "Search for serial devices after default one failed"
 	depends on DM_SERIAL
diff --git a/drivers/serial/serial-uclass.c b/drivers/serial/serial-uclass.c
index f30f352..10d6b80 100644
--- a/drivers/serial/serial-uclass.c
+++ b/drivers/serial/serial-uclass.c
@@ -200,8 +200,30 @@
 
 static void _serial_puts(struct udevice *dev, const char *str)
 {
-	while (*str)
-		_serial_putc(dev, *str++);
+	struct dm_serial_ops *ops = serial_get_ops(dev);
+
+	if (!CONFIG_IS_ENABLED(SERIAL_PUTS) || !ops->puts) {
+		while (*str)
+			_serial_putc(dev, *str++);
+		return;
+	}
+
+	do {
+		const char *newline = strchrnul(str, '\n');
+		size_t len = newline - str + !!*newline;
+
+		do {
+			ssize_t written = ops->puts(dev, str, len);
+
+			if (written < 0)
+				return;
+			str += written;
+			len -= written;
+		} while (len);
+
+		if (*newline)
+			_serial_putc(dev, '\r');
+	} while (*str);
 }
 
 static int __serial_getc(struct udevice *dev)
diff --git a/include/serial.h b/include/serial.h
index 2681d26..8c2e7ad 100644
--- a/include/serial.h
+++ b/include/serial.h
@@ -196,6 +196,24 @@
 	 */
 	int (*putc)(struct udevice *dev, const char ch);
 	/**
+	 * puts() - Write a string
+	 *
+	 * This writes a string. This function should be implemented only if
+	 * writing multiple characters at once is more performant than just
+	 * calling putc() in a loop.
+	 *
+	 * If the whole string cannot be written at once, then this function
+	 * should return the number of characters written. Returning a negative
+	 * error code implies that no characters were written. If this function
+	 * returns 0, then it will be called again with the same arguments.
+	 *
+	 * @dev: Device pointer
+	 * @s: The string to write
+	 * @len: The length of the string to write.
+	 * @return The number of characters written on success, or -ve on error
+	 */
+	ssize_t (*puts)(struct udevice *dev, const char *s, size_t len);
+	/**
 	 * pending() - Check if input/output characters are waiting
 	 *
 	 * This can be used to return an indication of the number of waiting
