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 --- include/misc.h | 79 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 include/misc.h (limited to 'include/misc.h') diff --git a/include/misc.h b/include/misc.h new file mode 100644 index 0000000000..7e9badfabd --- /dev/null +++ b/include/misc.h @@ -0,0 +1,79 @@ +/* + * Copyright (C) 2015 Thomas Chou + * + * SPDX-License-Identifier: GPL-2.0+ + */ + +#ifndef _MISC_H_ +#define _MISC_H_ + +/* + * Read the device to buffer, optional. + * + * @dev: the device + * @offset: offset to read the device + * @buf: pointer to data buffer + * @size: data size in bytes to read the device + * @return: 0 if OK, -ve on error + */ +int misc_read(struct udevice *dev, int offset, void *buf, int size); +/* + * Write buffer to the device, optional. + * + * @dev: the device + * @offset: offset to write the device + * @buf: pointer to data buffer + * @size: data size in bytes to write the device + * @return: 0 if OK, -ve on error + */ +int misc_write(struct udevice *dev, int offset, void *buf, int size); +/* + * Assert command to the device, optional. + * + * @dev: the device + * @request: command to be sent to the device + * @buf: pointer to buffer related to the requset + * @return: 0 if OK, -ve on error + */ +int misc_ioctl(struct udevice *dev, unsigned long request, void *buf); + +/* + * struct misc_ops - Driver model Misc operations + * + * The uclass interface is implemented by all miscellaneous devices which + * use driver model. + */ +struct misc_ops { + /* + * Read the device to buffer, optional. + * + * @dev: the device + * @offset: offset to read the device + * @buf: pointer to data buffer + * @size: data size in bytes to read the device + * @return: 0 if OK, -ve on error + */ + int (*read)(struct udevice *dev, int offset, void *buf, int size); + /* + * Write buffer to the device, optional. + * + * @dev: the device + * @offset: offset to write the device + * @buf: pointer to data buffer + * @size: data size in bytes to write the device + * @return: 0 if OK, -ve on error + */ + int (*write)(struct udevice *dev, int offset, const void *buf, + int size); + /* + * Assert command to the device, optional. + * + * @dev: the device + * @request: command to be sent to the device + * @buf: pointer to buffer related to the requset + * @return: 0 if OK, -ve on error + */ + int (*ioctl)(struct udevice *dev, unsigned long request, void *buf); +}; + +#endif /* _MISC_H_ */ -- cgit v1.2.3