1
0
mirror of https://xff.cz/git/u-boot/ synced 2025-08-31 16:22:36 +02:00

dm: console: Check for serial devices properly

With driver model the serial device is often not called "serial". Mark
driver-model stdio devices so that they can be detected and we can look up
the uclass. This is a more reliable way of finding out whether the console
is connected to a serial device or not.

Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
Simon Glass
2017-07-27 09:31:04 -06:00
committed by Tom Rini
parent 42f9f915c2
commit 7b3c4c3a53
3 changed files with 12 additions and 2 deletions

View File

@@ -8,6 +8,7 @@
#include <common.h>
#include <console.h>
#include <debug_uart.h>
#include <dm.h>
#include <stdarg.h>
#include <iomux.h>
#include <malloc.h>
@@ -150,12 +151,20 @@ static int console_setfile(int file, struct stdio_dev * dev)
* console_dev_is_serial() - Check if a stdio device is a serial device
*
* @sdev: Device to check
* @return true if this device is a serial device
* @return true if this device is in the serial uclass (or for pre-driver-model,
* whether it is called "serial".
*/
static bool console_dev_is_serial(struct stdio_dev *sdev)
{
bool is_serial;
#ifdef CONFIG_DM_SERIAL
if (sdev->flags & DEV_FLAGS_DM) {
struct udevice *dev = sdev->priv;
is_serial = device_get_uclass_id(dev) == UCLASS_SERIAL;
} else
#endif
is_serial = !strcmp(sdev->name, "serial");
return is_serial;