Message ID | 1443527962-27233-1-git-send-email-thomas@wytron.com.tw |
---|---|
State | Superseded |
Delegated to: | Thomas Chou |
Headers | show |
Hi Thomas, On 29 September 2015 at 12:59, Thomas Chou <thomas@wytron.com.tw> wrote: > 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> > --- > v2 > add missing misc.h. > v3 > no change. > > drivers/misc/Kconfig | 6 ++++++ > drivers/misc/Makefile | 1 + > drivers/misc/misc-uclass.c | 14 ++++++++++++++ > include/dm/uclass-id.h | 1 + > include/misc.h | 22 ++++++++++++++++++++++ > 5 files changed, 44 insertions(+) > create mode 100644 drivers/misc/misc-uclass.c > create mode 100644 include/misc.h > > diff --git a/drivers/misc/Kconfig b/drivers/misc/Kconfig > index 8b38a84..51c2a08 100644 > --- a/drivers/misc/Kconfig > +++ b/drivers/misc/Kconfig > @@ -4,6 +4,12 @@ > > menu "Multifunction device drivers" > > +config DM_MISC > + bool "Enable Driver Model for Misc drivers" > + depends on DM > + help > + Enable driver model for miscellaneous devices. Need to explain this a bit more! When do I use it, mention that it has read and write. I'm not sure about the name 'misc' but I suppose it makes sense. I wonder if you should add 'ioctl' also? > + > config CMD_CROS_EC > bool "Enable crosec command" > depends on CROS_EC > diff --git a/drivers/misc/Makefile b/drivers/misc/Makefile > index 8d0fc3c..b285946 100644 > --- a/drivers/misc/Makefile > +++ b/drivers/misc/Makefile > @@ -5,6 +5,7 @@ > # SPDX-License-Identifier: GPL-2.0+ > # > > +obj-$(CONFIG_DM_MISC) += misc-uclass.o > obj-$(CONFIG_ALI152X) += ali512x.o > obj-$(CONFIG_DS4510) += ds4510.o > obj-$(CONFIG_CBMEM_CONSOLE) += cbmem_console.o > diff --git a/drivers/misc/misc-uclass.c b/drivers/misc/misc-uclass.c > new file mode 100644 > index 0000000..40fe947 > --- /dev/null > +++ b/drivers/misc/misc-uclass.c > @@ -0,0 +1,14 @@ > +/* > + * Copyright (C) 2010 Thomas Chou <thomas@wytron.com.tw> > + * > + * SPDX-License-Identifier: GPL-2.0+ > + */ > + > +#include <common.h> > +#include <dm.h> > +#include <misc.h> > + > +UCLASS_DRIVER(misc) = { > + .id = UCLASS_MISC, > + .name = "misc", > +}; > diff --git a/include/dm/uclass-id.h b/include/dm/uclass-id.h > index aff34a4..a6982ab 100644 > --- a/include/dm/uclass-id.h > +++ b/include/dm/uclass-id.h > @@ -39,6 +39,7 @@ enum uclass_id { > UCLASS_LED, /* Light-emitting diode (LED) */ > UCLASS_LPC, /* x86 'low pin count' interface */ > UCLASS_MASS_STORAGE, /* Mass storage device */ > + UCLASS_MISC, /* Miscellaneous device */ > UCLASS_MMC, /* SD / MMC card or chip */ > UCLASS_MOD_EXP, /* RSA Mod Exp device */ > UCLASS_PCH, /* x86 platform controller hub */ > diff --git a/include/misc.h b/include/misc.h > new file mode 100644 > index 0000000..dfca41f > --- /dev/null > +++ b/include/misc.h > @@ -0,0 +1,22 @@ > +/* > + * Copyright (C) 2015 Thomas Chou <thomas@wytron.com.tw> > + * > + * SPDX-License-Identifier: GPL-2.0+ > + */ > + > +#ifndef _DM_MISC_H_ > +#define _DM_MISC_H_ > + > +/* > + * struct dm_misc_ops - Driver model Misc operations > + * > + * The uclass interface is implemented by all miscellaneous devices which > + * use driver model. > + */ > +struct dm_misc_ops { > + int (*read)(struct udevice *dev, int offset, void *buf, int size); > + int (*write)(struct udevice *dev, int offset, const void *buf, > + int size); Method comments > +}; Also don't you need to create misc_read() and misc_write() functions so people can use it? > + > +#endif /* _DM_MISC_H_ */ > -- > 2.1.4 > Regards, Simon
diff --git a/drivers/misc/Kconfig b/drivers/misc/Kconfig index 8b38a84..51c2a08 100644 --- a/drivers/misc/Kconfig +++ b/drivers/misc/Kconfig @@ -4,6 +4,12 @@ menu "Multifunction device drivers" +config DM_MISC + bool "Enable Driver Model for Misc drivers" + depends on DM + help + Enable driver model for miscellaneous devices. + config CMD_CROS_EC bool "Enable crosec command" depends on CROS_EC diff --git a/drivers/misc/Makefile b/drivers/misc/Makefile index 8d0fc3c..b285946 100644 --- a/drivers/misc/Makefile +++ b/drivers/misc/Makefile @@ -5,6 +5,7 @@ # SPDX-License-Identifier: GPL-2.0+ # +obj-$(CONFIG_DM_MISC) += misc-uclass.o obj-$(CONFIG_ALI152X) += ali512x.o obj-$(CONFIG_DS4510) += ds4510.o obj-$(CONFIG_CBMEM_CONSOLE) += cbmem_console.o diff --git a/drivers/misc/misc-uclass.c b/drivers/misc/misc-uclass.c new file mode 100644 index 0000000..40fe947 --- /dev/null +++ b/drivers/misc/misc-uclass.c @@ -0,0 +1,14 @@ +/* + * Copyright (C) 2010 Thomas Chou <thomas@wytron.com.tw> + * + * SPDX-License-Identifier: GPL-2.0+ + */ + +#include <common.h> +#include <dm.h> +#include <misc.h> + +UCLASS_DRIVER(misc) = { + .id = UCLASS_MISC, + .name = "misc", +}; diff --git a/include/dm/uclass-id.h b/include/dm/uclass-id.h index aff34a4..a6982ab 100644 --- a/include/dm/uclass-id.h +++ b/include/dm/uclass-id.h @@ -39,6 +39,7 @@ enum uclass_id { UCLASS_LED, /* Light-emitting diode (LED) */ UCLASS_LPC, /* x86 'low pin count' interface */ UCLASS_MASS_STORAGE, /* Mass storage device */ + UCLASS_MISC, /* Miscellaneous device */ UCLASS_MMC, /* SD / MMC card or chip */ UCLASS_MOD_EXP, /* RSA Mod Exp device */ UCLASS_PCH, /* x86 platform controller hub */ diff --git a/include/misc.h b/include/misc.h new file mode 100644 index 0000000..dfca41f --- /dev/null +++ b/include/misc.h @@ -0,0 +1,22 @@ +/* + * Copyright (C) 2015 Thomas Chou <thomas@wytron.com.tw> + * + * SPDX-License-Identifier: GPL-2.0+ + */ + +#ifndef _DM_MISC_H_ +#define _DM_MISC_H_ + +/* + * struct dm_misc_ops - Driver model Misc operations + * + * The uclass interface is implemented by all miscellaneous devices which + * use driver model. + */ +struct dm_misc_ops { + int (*read)(struct udevice *dev, int offset, void *buf, int size); + int (*write)(struct udevice *dev, int offset, const void *buf, + int size); +}; + +#endif /* _DM_MISC_H_ */
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> --- v2 add missing misc.h. v3 no change. drivers/misc/Kconfig | 6 ++++++ drivers/misc/Makefile | 1 + drivers/misc/misc-uclass.c | 14 ++++++++++++++ include/dm/uclass-id.h | 1 + include/misc.h | 22 ++++++++++++++++++++++ 5 files changed, 44 insertions(+) create mode 100644 drivers/misc/misc-uclass.c create mode 100644 include/misc.h