From 4395e06eb9907e22869cfe3bf6259a0f0cefca13 Mon Sep 17 00:00:00 2001 From: Thomas Chou Date: Wed, 7 Oct 2015 20:20:51 +0800 Subject: dm: implement a Miscellaneous uclass Implement a Miscellaneous uclass with generic read or write operations. This class is used only for those do not fit other more general classes. Signed-off-by: Thomas Chou Acked-by: Simon Glass --- drivers/misc/misc-uclass.c | 51 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 drivers/misc/misc-uclass.c (limited to 'drivers/misc/misc-uclass.c') diff --git a/drivers/misc/misc-uclass.c b/drivers/misc/misc-uclass.c new file mode 100644 index 0000000000..13a6ea508b --- /dev/null +++ b/drivers/misc/misc-uclass.c @@ -0,0 +1,51 @@ +/* + * Copyright (C) 2010 Thomas Chou + * + * SPDX-License-Identifier: GPL-2.0+ + */ + +#include +#include +#include +#include + +/* + * Implement a miscellaneous uclass for those do not fit other more + * general classes. A set of generic read, write and ioctl methods may + * be used to access the device. + */ + +int misc_read(struct udevice *dev, int offset, void *buf, int size) +{ + const struct misc_ops *ops = device_get_ops(dev); + + if (!ops->read) + return -ENOSYS; + + return ops->read(dev, offset, buf, size); +} + +int misc_write(struct udevice *dev, int offset, void *buf, int size) +{ + const struct misc_ops *ops = device_get_ops(dev); + + if (!ops->write) + return -ENOSYS; + + return ops->write(dev, offset, buf, size); +} + +int misc_ioctl(struct udevice *dev, unsigned long request, void *buf) +{ + const struct misc_ops *ops = device_get_ops(dev); + + if (!ops->ioctl) + return -ENOSYS; + + return ops->ioctl(dev, request, buf); +} + +UCLASS_DRIVER(misc) = { + .id = UCLASS_MISC, + .name = "misc", +}; -- cgit v1.2.1