/* * 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", };