[U-Boot] [PATCH v3 1/2] dm: implement a Miscellaneous uclass
Simon Glass
sjg at chromium.org
Sat Oct 3 16:29:59 CEST 2015
Hi Thomas,
On 29 September 2015 at 12:59, Thomas Chou <thomas at 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 at 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 at 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 at 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
More information about the U-Boot
mailing list