diff options
| author | Thomas Chou <thomas@wytron.com.tw> | 2015-10-07 20:20:51 +0800 | 
|---|---|---|
| committer | Thomas Chou <thomas@wytron.com.tw> | 2015-10-23 07:37:03 +0800 | 
| commit | 4395e06eb9907e22869cfe3bf6259a0f0cefca13 (patch) | |
| tree | cd7e94d0047ac23674a164f93440ce7fc59b8e46 /drivers/misc/misc-uclass.c | |
| parent | 2e2da4c67dc1adc43a2d1417d8595bb2543ecfe6 (diff) | |
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 <thomas@wytron.com.tw>
Acked-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'drivers/misc/misc-uclass.c')
| -rw-r--r-- | drivers/misc/misc-uclass.c | 51 | 
1 files changed, 51 insertions, 0 deletions
| diff --git a/drivers/misc/misc-uclass.c b/drivers/misc/misc-uclass.c new file mode 100644 index 00000000000..13a6ea508b1 --- /dev/null +++ b/drivers/misc/misc-uclass.c @@ -0,0 +1,51 @@ +/* + * Copyright (C) 2010 Thomas Chou <thomas@wytron.com.tw> + * + * SPDX-License-Identifier:	GPL-2.0+ + */ + +#include <common.h> +#include <dm.h> +#include <errno.h> +#include <misc.h> + +/* + * 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", +}; | 
