dm: implement a Miscellaneous uclass
Subsystems (2)
PATCH 1/2 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.
--- drivers/misc/Kconfig | 6 ++++++ drivers/misc/Makefile | 1 + drivers/misc/misc-uclass.c | 14 ++++++++++++++ include/dm/uclass-id.h | 1 + 4 files changed, 22 insertions(+) create mode 100644 drivers/misc/misc-uclass.c
drivers/misc/Kconfig +6 -0
@@ -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
drivers/misc/Makefile +1 -0
@@ -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
drivers/misc/misc-uclass.c new file +14 -0
@@ -0,0 +1,14 @@ +/* +* Copyright (C) 2010 Thomas Chou <[email protected]> +* +* SPDX-License-Identifier: GPL-2.0+ +*/ + +#include <common.h> +#include <dm.h> +#include <misc.h> + +UCLASS_DRIVER (misc) = { + .id =UCLASS_MISC , + .name ="misc" , +};
include/dm/uclass-id.h +1 -0
@@ -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 */
Signature · 1 line
2.1.4
PATCH 2/2 nios2: convert altera sysid to driver model
Convert altera sysid to driver model with misc uclass.
--- arch/nios2/cpu/Makefile | 2 +- arch/nios2/cpu/cpu.c | 15 +---- arch/nios2/cpu/sysid.c | 46 -------------- arch/nios2/dts/3c120_devboard.dts | 8 +++ board/altera/nios2-generic/nios2-generic.c | 6 +- configs/nios2-generic_defconfig | 2 + drivers/misc/Kconfig | 7 +++ drivers/misc/Makefile | 1 + drivers/misc/altera_sysid.c | 99 ++++++++++++++++++++++++++++++ include/configs/nios2-generic.h | 3 +- 10 files changed, 126 insertions(+), 63 deletions(-) delete mode 100644 arch/nios2/cpu/sysid.c create mode 100644 drivers/misc/altera_sysid.c
arch/nios2/cpu/Makefile +1 -1
@@ -7,5 +7,5 @@ extra-y = start.o obj-y = exceptions.o -obj-y += cpu.o interrupts.o sysid.o traps.o +obj-y += cpu.o interrupts.o traps.o obj-y += fdt.o
arch/nios2/cpu/cpu.c +2 -13
@@ -13,22 +13,11 @@DECLARE_GLOBAL_DATA_PTR ; -#if defined (CONFIG_SYS_NIOS_SYSID_BASE ) -extern void display_sysid (void ); -#endif /* CONFIG_SYS_NIOS_SYSID_BASE */ - -#ifdef CONFIG_DISPLAY_CPUINFO int print_cpuinfo (void ) { -printf ("CPU : Nios-II\n" ); -#if !defined(CONFIG_SYS_NIOS_SYSID_BASE ) -printf ("SYSID : <unknown>\n" ); -#else -display_sysid (); -#endif -return (0 ); +printf ("CPU: Nios-II\n" ); +return 0 ; } -#endif /* CONFIG_DISPLAY_CPUINFO */ int do_reset (cmd_tbl_t *cmdtp,int flag,int argc,char *const argv[]) {
arch/nios2/cpu/sysid.c deleted +0 -46
46 lines not on this page · raw message
arch/nios2/dts/3c120_devboard.dts +8 -0
@@ -72,6 +72,7 @@ <0x00004cc0 0x08004cc0 0x00000010>, <0x00004ce0 0x08004ce0 0x00000010>, <0x00004d00 0x08004d00 0x00000010>, + <0x00004d40 0x08004d40 0x00000008>, <0x00004d50 0x08004d50 0x00000008>, <0x00008000 0x08008000 0x00000020>, <0x00400000 0x08400000 0x00000020>;
@@ -92,6 +93,13 @@ clock-frequency = < 125000000 >; }; + sysid: sysid at 0x4d40 { + compatible = "altr,sysid-1.0"; + reg = <0x00004d40 0x00000008>; + id = <0>; + timestamp = <1440939556>; + }; + jtag_uart: serial at 0x4d50 { compatible = "altr,juart-1.0"; reg = <0x00004d50 0x00000008>;
board/altera/nios2-generic/nios2-generic.c +5 -1
@@ -42,7 +42,11 @@ int board_early_init_r(void)int checkboard (void ) { -printf ("BOARD : %s\n" ,CONFIG_BOARD_NAME ); +#ifdef CONFIG_ALTERA_SYSID +extern void display_sysid (void ); +display_sysid (); +#endif +printf ("BOARD: %s\n" ,CONFIG_BOARD_NAME );return 0 ; }
configs/nios2-generic_defconfig +2 -0
@@ -15,6 +15,8 @@ CONFIG_CMD_DHCP=y CONFIG_CMD_PING=y CONFIG_NET_RANDOM_ETHADDR=y CONFIG_ALTERA_PIO=y +CONFIG_DM_MISC=y +CONFIG_ALTERA_SYSID=y CONFIG_ALTERA_JTAG_UART=y CONFIG_ALTERA_JTAG_UART_BYPASS=y CONFIG_DM_TIMER=y
drivers/misc/Kconfig +7 -0
@@ -10,6 +10,13 @@ config DM_MISC help Enable driver model for miscellaneous devices. +config ALTERA_SYSID + bool "Altera Sysid support" + depends on DM_MISC + help + Select this to enable a sysid for Altera devices. Please find + details on the "Embedded Peripherals IP User Guide" of Altera. + config CMD_CROS_EC bool "Enable crosec command" depends on CROS_EC
drivers/misc/Makefile +1 -0
@@ -7,6 +7,7 @@ obj-$(CONFIG_DM_MISC) += misc-uclass.o obj-$(CONFIG_ALI152X) += ali512x.o +obj-$(CONFIG_ALTERA_SYSID) += altera_sysid.o obj-$(CONFIG_DS4510) += ds4510.o obj-$(CONFIG_CBMEM_CONSOLE) += cbmem_console.o obj-$(CONFIG_CROS_EC) += cros_ec.o
drivers/misc/altera_sysid.c new file +99 -0
99 lines not on this page · raw message
include/configs/nios2-generic.h +1 -2
@@ -16,8 +16,7 @@#define CONFIG_BOARD_NAME "nios2-generic"/* custom board name */ #define CONFIG_BOARD_EARLY_INIT_F /* enable early board-spec. init */ #define CONFIG_BOARD_EARLY_INIT_R -#define CONFIG_DISPLAY_CPUINFO -#define CONFIG_DISPLAY_BOARDINFO +#define CONFIG_DISPLAY_BOARDINFO_LATE #define CONFIG_SYS_NIOS_SYSID_BASE CONFIG_SYS_SYSID_BASE/*
Signature · 1 line
2.1.4
PATCH 2/2 nios2: convert altera sysid to driver model
Hi Thomas,
Quoted 3 lines · thomas at wytron.com.tw
Convert altera sysid to driver model with misc uclass.
Signed-off-by Thomas Chou <[email protected]>
Thanks for the patch.
Quoted 120 lines
--- arch/nios2/cpu/Makefile | 2 +- arch/nios2/cpu/cpu.c | 15 +---- arch/nios2/cpu/sysid.c | 46 -------------- arch/nios2/dts/3c120_devboard.dts | 8 +++ board/altera/nios2-generic/nios2-generic.c | 6 +- configs/nios2-generic_defconfig | 2 + drivers/misc/Kconfig | 7 +++ drivers/misc/Makefile | 1 + drivers/misc/altera_sysid.c | 99 ++++++++++++++++++++++++++++++ include/configs/nios2-generic.h | 3 +- 10 files changed, 126 insertions(+), 63 deletions(-) delete mode 100644 arch/nios2/cpu/sysid.c create mode 100644 drivers/misc/altera_sysid.carch/nios2/cpu/Makefile +1
-1@@ -7,5 +7,5 @@ extra-y = start.o obj-y = exceptions.o -obj-y += cpu.o interrupts.o sysid.o traps.o +obj-y += cpu.o interrupts.o traps.o obj-y += fdt.oarch/nios2/cpu/cpu.c +2
-13@@ -13,22 +13,11 @@DECLARE_GLOBAL_DATA_PTR ; -#if defined (CONFIG_SYS_NIOS_SYSID_BASE ) -extern void display_sysid (void ); -#endif /* CONFIG_SYS_NIOS_SYSID_BASE */ - -#ifdef CONFIG_DISPLAY_CPUINFO int print_cpuinfo (void ) { -printf ("CPU : Nios-II\n" ); -#if !defined(CONFIG_SYS_NIOS_SYSID_BASE ) -printf ("SYSID : <unknown>\n" ); -#else -display_sysid (); -#endif -return (0 ); +printf ("CPU: Nios-II\n" ); +return 0 ; } -#endif /* CONFIG_DISPLAY_CPUINFO */ int do_reset (cmd_tbl_t *cmdtp,int flag,int argc,char *const argv[]) {arch/nios2/cpu/sysid.c deleted +0
-46@@ -1,46 +0,0 @@ -/* -* (C) Copyright 2004, Psyent Corporation <www.psyent.com> -* Scott McNutt <[email protected]> -* -* SPDX-License-Identifier: GPL-2.0+ -*/ - -#include <common.h> - -#if defined (CONFIG_SYS_NIOS_SYSID_BASE ) - -#include <command.h> -#include <asm/io.h> -#include <linux/time.h> - -typedef volatile struct { -unsigned id;/* The system build id */ -unsigned timestamp;/* Timestamp */ -}nios_sysid_t ; - -void display_sysid (void ) -{ -nios_sysid_t *sysid = (nios_sysid_t *)CONFIG_SYS_NIOS_SYSID_BASE ; -struct tm t; -char asc[32 ]; -time_t stamp; - - stamp =readl (&sysid->timestamp); -localtime_r (&stamp, &t); -asctime_r (&t, asc); -printf ("SYSID : %08lx, %s" ,readl (&sysid->id), asc); - -} - -int do_sysid (cmd_tbl_t *cmdtp,int flag,int argc,char *const argv[]) -{ -display_sysid (); -return (0 ); -} - -U_BOOT_CMD ( - sysid,1 ,1 , do_sysid, -"display Nios-II system id" , -"" -); -#endif /* CONFIG_SYS_NIOS_SYSID_BASE */ arch/nios2/dts/3c120_devboard.dts +1
-0@@ -72,6 +72,7 @@ <0x00004cc0 0x08004cc0 0x00000010>, <0x00004ce0 0x08004ce0 0x00000010>, <0x00004d00 0x08004d00 0x00000010>, + <0x00004d40 0x08004d40 0x00000008>, <0x00004d50 0x08004d50 0x00000008>, <0x00008000 0x08008000 0x00000020>, <0x00400000 0x08400000 0x00000020>;
arch/nios2/dts/3c120_devboard.dts line 100
Quoted 8 lines
arch/nios2/dts/3c120_devboard.dts +5
-0@@ -92,6 +93,13 @@ clock-frequency = < 125000000 >; }; + sysid: sysid at 0x4d40 { + compatible = "altr,sysid-1.0"; + reg = <0x00004d40 0x00000008>; + id = <0>; + timestamp = <1440939556>;
I believe we won't need the id and timestamp as these will be read from sysid register.
Thanks
Chin Liang
p/s: Oh ya, let me know if you need my help to send new revision of those patches commented by me. I can share the load :)
Quoted 184 lines
arch/nios2/dts/3c120_devboard.dts +2
-0+ }; + jtag_uart: serial at 0x4d50 { compatible = "altr,juart-1.0"; reg = <0x00004d50 0x00000008>;board/altera/nios2-generic/nios2-generic.c +5
-1@@ -42,7 +42,11 @@ int board_early_init_r(void)int checkboard (void ) { -printf ("BOARD : %s\n" ,CONFIG_BOARD_NAME ); +#ifdef CONFIG_ALTERA_SYSID +extern void display_sysid (void ); +display_sysid (); +#endif +printf ("BOARD: %s\n" ,CONFIG_BOARD_NAME );return 0 ; }configs/nios2-generic_defconfig +2
-0@@ -15,6 +15,8 @@ CONFIG_CMD_DHCP=y CONFIG_CMD_PING=y CONFIG_NET_RANDOM_ETHADDR=y CONFIG_ALTERA_PIO=y +CONFIG_DM_MISC=y +CONFIG_ALTERA_SYSID=y CONFIG_ALTERA_JTAG_UART=y CONFIG_ALTERA_JTAG_UART_BYPASS=y CONFIG_DM_TIMER=ydrivers/misc/Kconfig +7
-0@@ -10,6 +10,13 @@ config DM_MISC help Enable driver model for miscellaneous devices. +config ALTERA_SYSID + bool "Altera Sysid support" + depends on DM_MISC + help + Select this to enable a sysid for Altera devices. Please find + details on the "Embedded Peripherals IP User Guide" of Altera. + config CMD_CROS_EC bool "Enable crosec command" depends on CROS_ECdrivers/misc/Makefile +1
-0@@ -7,6 +7,7 @@ obj-$(CONFIG_DM_MISC) += misc-uclass.o obj-$(CONFIG_ALI152X) += ali512x.o +obj-$(CONFIG_ALTERA_SYSID) += altera_sysid.o obj-$(CONFIG_DS4510) += ds4510.o obj-$(CONFIG_CBMEM_CONSOLE) += cbmem_console.o obj-$(CONFIG_CROS_EC) += cros_ec.odrivers/misc/altera_sysid.c new file +99
-0@@ -0,0 +1,99 @@ +/* +* (C) Copyright 2004, Psyent Corporation <www.psyent.com> +* Scott McNutt <[email protected]> +* +* SPDX-License-Identifier: GPL-2.0+ +*/ + +#include <common.h> +#include <dm.h> +#include <misc.h> +#include <errno.h> +#include <command.h> +#include <asm/io.h> +#include <linux/time.h> + +struct altera_sysid_regs { +u32 id;/* The system build id */ +u32 timestamp;/* Timestamp */ +}; + +struct altera_sysid_platdata { +struct altera_sysid_regs *regs; +}; + +void display_sysid (void ) +{ +struct udevice *dev; +const struct dm_misc_ops *ops; +u32 sysid[2 ]; +struct tm t; +char asc[32 ]; +time_t stamp; + +uclass_first_device (UCLASS_MISC , &dev); +if (!dev) +return ; + ops =device_get_ops (dev); +if (!ops->read) +return ; + ops->read (dev,0 , &sysid,sizeof (sysid)); + + stamp = sysid[1 ]; +localtime_r (&stamp, &t); +asctime_r (&t, asc); +printf ("SYSID: %08x, %s" , sysid[0 ], asc); +} + +int do_sysid (cmd_tbl_t *cmdtp,int flag,int argc,char *const argv[]) +{ +display_sysid (); +return 0 ; +} + +U_BOOT_CMD ( + sysid,1 ,1 , do_sysid, +"display Nios-II system id" , +"" +); + +static int altera_sysid_read (struct udevice *dev, +int offset,void *buf,int size) +{ +struct altera_sysid_platdata *plat = dev->platdata; +struct altera_sysid_regs *const regs = plat->regs; +u32 *sysid = buf; + + sysid[0 ] =readl (®s->id); + sysid[1 ] =readl (®s->timestamp); + +return 0 ; +} + +static int altera_sysid_ofdata_to_platdata (struct udevice *dev) +{ +struct altera_sysid_platdata *plat =dev_get_platdata (dev); + + plat->regs =ioremap (dev_get_addr (dev), +sizeof (struct altera_sysid_regs )); + +return 0 ; +} + +static const struct dm_misc_ops altera_sysid_ops = { + .read = altera_sysid_read, +}; + +static const struct udevice_id altera_sysid_ids[] = { + { .compatible ="altr,sysid-1.0" , }, + { } +}; + +U_BOOT_DRIVER (altera_sysid) = { + .name ="altera_sysid" , + .id =UCLASS_MISC , + .of_match = altera_sysid_ids, + .ofdata_to_platdata = altera_sysid_ofdata_to_platdata, + .platdata_auto_alloc_size =sizeof (struct altera_sysid_platdata ), + .ops = &altera_sysid_ops, +};include/configs/nios2-generic.h +1
-2@@ -16,8 +16,7 @@#define CONFIG_BOARD_NAME "nios2-generic"/* custom board name */ #define CONFIG_BOARD_EARLY_INIT_F /* enable early board-spec. init */ #define CONFIG_BOARD_EARLY_INIT_R -#define CONFIG_DISPLAY_CPUINFO -#define CONFIG_DISPLAY_BOARDINFO +#define CONFIG_DISPLAY_BOARDINFO_LATE #define CONFIG_SYS_NIOS_SYSID_BASE CONFIG_SYS_SYSID_BASE/*
PATCH v2 1/2 dm: implement a Miscellaneous uclass
In reply to Thomas ChouImplement a Miscellaneous uclass with generic read or write operations. This class is used only for those do not fit other more general classes.
---
v2
add missing misc.h.
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
drivers/misc/Kconfig +6 -0
@@ -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
drivers/misc/Makefile +1 -0
@@ -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
drivers/misc/misc-uclass.c new file +14 -0
@@ -0,0 +1,14 @@ +/* +* Copyright (C) 2010 Thomas Chou <[email protected]> +* +* SPDX-License-Identifier: GPL-2.0+ +*/ + +#include <common.h> +#include <dm.h> +#include <misc.h> + +UCLASS_DRIVER (misc) = { + .id =UCLASS_MISC , + .name ="misc" , +};
include/dm/uclass-id.h +1 -0
@@ -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 */
include/misc.h new file +22 -0
@@ -0,0 +1,22 @@ +/* +* Copyright (C) 2015 Thomas Chou <[email protected]> +* +* 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_ */
Signature · 1 line
2.1.4
PATCH v2 2/2 nios2: convert altera sysid to driver model
Convert altera sysid to driver model with misc uclass.
---
v2
remove trailing whitespace in altera_sysid.c.
arch/nios2/cpu/Makefile | 2 +- arch/nios2/cpu/cpu.c | 15 +---- arch/nios2/cpu/sysid.c | 46 -------------- arch/nios2/dts/3c120_devboard.dts | 8 +++ board/altera/nios2-generic/nios2-generic.c | 6 +- configs/nios2-generic_defconfig | 2 + drivers/misc/Kconfig | 7 +++ drivers/misc/Makefile | 1 + drivers/misc/altera_sysid.c | 99 ++++++++++++++++++++++++++++++ include/configs/nios2-generic.h | 3 +- 10 files changed, 126 insertions(+), 63 deletions(-) delete mode 100644 arch/nios2/cpu/sysid.c create mode 100644 drivers/misc/altera_sysid.c
arch/nios2/cpu/Makefile +1 -1
@@ -7,5 +7,5 @@ extra-y = start.o obj-y = exceptions.o -obj-y += cpu.o interrupts.o sysid.o traps.o +obj-y += cpu.o interrupts.o traps.o obj-y += fdt.o
arch/nios2/cpu/cpu.c +2 -13
@@ -13,22 +13,11 @@DECLARE_GLOBAL_DATA_PTR ; -#if defined (CONFIG_SYS_NIOS_SYSID_BASE ) -extern void display_sysid (void ); -#endif /* CONFIG_SYS_NIOS_SYSID_BASE */ - -#ifdef CONFIG_DISPLAY_CPUINFO int print_cpuinfo (void ) { -printf ("CPU : Nios-II\n" ); -#if !defined(CONFIG_SYS_NIOS_SYSID_BASE ) -printf ("SYSID : <unknown>\n" ); -#else -display_sysid (); -#endif -return (0 ); +printf ("CPU: Nios-II\n" ); +return 0 ; } -#endif /* CONFIG_DISPLAY_CPUINFO */ int do_reset (cmd_tbl_t *cmdtp,int flag,int argc,char *const argv[]) {
arch/nios2/cpu/sysid.c deleted +0 -46
46 lines not on this page · raw message
arch/nios2/dts/3c120_devboard.dts +8 -0
@@ -72,6 +72,7 @@ <0x00004cc0 0x08004cc0 0x00000010>, <0x00004ce0 0x08004ce0 0x00000010>, <0x00004d00 0x08004d00 0x00000010>, + <0x00004d40 0x08004d40 0x00000008>, <0x00004d50 0x08004d50 0x00000008>, <0x00008000 0x08008000 0x00000020>, <0x00400000 0x08400000 0x00000020>;
@@ -92,6 +93,13 @@ clock-frequency = < 125000000 >; }; + sysid: sysid at 0x4d40 { + compatible = "altr,sysid-1.0"; + reg = <0x00004d40 0x00000008>; + id = <0>; + timestamp = <1440939556>; + }; + jtag_uart: serial at 0x4d50 { compatible = "altr,juart-1.0"; reg = <0x00004d50 0x00000008>;
board/altera/nios2-generic/nios2-generic.c +5 -1
@@ -42,7 +42,11 @@ int board_early_init_r(void)int checkboard (void ) { -printf ("BOARD : %s\n" ,CONFIG_BOARD_NAME ); +#ifdef CONFIG_ALTERA_SYSID +extern void display_sysid (void ); +display_sysid (); +#endif +printf ("BOARD: %s\n" ,CONFIG_BOARD_NAME );return 0 ; }
configs/nios2-generic_defconfig +2 -0
@@ -15,6 +15,8 @@ CONFIG_CMD_DHCP=y CONFIG_CMD_PING=y CONFIG_NET_RANDOM_ETHADDR=y CONFIG_ALTERA_PIO=y +CONFIG_DM_MISC=y +CONFIG_ALTERA_SYSID=y CONFIG_ALTERA_JTAG_UART=y CONFIG_ALTERA_JTAG_UART_BYPASS=y CONFIG_DM_TIMER=y
drivers/misc/Kconfig +7 -0
@@ -10,6 +10,13 @@ config DM_MISC help Enable driver model for miscellaneous devices. +config ALTERA_SYSID + bool "Altera Sysid support" + depends on DM_MISC + help + Select this to enable a sysid for Altera devices. Please find + details on the "Embedded Peripherals IP User Guide" of Altera. + config CMD_CROS_EC bool "Enable crosec command" depends on CROS_EC
drivers/misc/Makefile +1 -0
@@ -7,6 +7,7 @@ obj-$(CONFIG_DM_MISC) += misc-uclass.o obj-$(CONFIG_ALI152X) += ali512x.o +obj-$(CONFIG_ALTERA_SYSID) += altera_sysid.o obj-$(CONFIG_DS4510) += ds4510.o obj-$(CONFIG_CBMEM_CONSOLE) += cbmem_console.o obj-$(CONFIG_CROS_EC) += cros_ec.o
drivers/misc/altera_sysid.c new file +99 -0
99 lines not on this page · raw message
include/configs/nios2-generic.h +1 -2
@@ -16,8 +16,7 @@#define CONFIG_BOARD_NAME "nios2-generic"/* custom board name */ #define CONFIG_BOARD_EARLY_INIT_F /* enable early board-spec. init */ #define CONFIG_BOARD_EARLY_INIT_R -#define CONFIG_DISPLAY_CPUINFO -#define CONFIG_DISPLAY_BOARDINFO +#define CONFIG_DISPLAY_BOARDINFO_LATE #define CONFIG_SYS_NIOS_SYSID_BASE CONFIG_SYS_SYSID_BASE/*
Signature · 1 line
2.1.4
PATCH v2 2/2 nios2: convert altera sysid to driver model
Hi Thomas,
Quoted 221 lines · Thomas Chou
Convert altera sysid to driver model with misc uclass.
Signed-off-by Thomas Chou <[email protected]>---
v2
remove trailing whitespace inaltera_sysid.c.arch/nios2/cpu/Makefile | 2 +- arch/nios2/cpu/cpu.c | 15 +---- arch/nios2/cpu/sysid.c | 46 -------------- arch/nios2/dts/3c120_devboard.dts | 8 +++ board/altera/nios2-generic/nios2-generic.c | 6 +- configs/nios2-generic_defconfig | 2 + drivers/misc/Kconfig | 7 +++ drivers/misc/Makefile | 1 + drivers/misc/altera_sysid.c | 99 ++++++++++++++++++++++++++++++ include/configs/nios2-generic.h | 3 +- 10 files changed, 126 insertions(+), 63 deletions(-)delete mode 100644
arch/nios2/cpu/sysid.c
create mode 100644drivers/misc/altera_sysid.carch/nios2/cpu/Makefile +1
-1@@ -7,5 +7,5 @@ extra-y = start.o obj-y = exceptions.o -obj-y += cpu.o interrupts.o sysid.o traps.o +obj-y += cpu.o interrupts.o traps.o obj-y += fdt.oarch/nios2/cpu/cpu.c +2
-13@@ -13,22 +13,11 @@DECLARE_GLOBAL_DATA_PTR ; -#if defined (CONFIG_SYS_NIOS_SYSID_BASE ) -extern void display_sysid (void ); -#endif /* CONFIG_SYS_NIOS_SYSID_BASE */ - -#ifdef CONFIG_DISPLAY_CPUINFO int print_cpuinfo (void ) { -printf ("CPU : Nios-II\n" ); -#if !defined(CONFIG_SYS_NIOS_SYSID_BASE ) -printf ("SYSID : <unknown>\n" ); -#else -display_sysid (); -#endif -return (0 ); +printf ("CPU: Nios-II\n" ); +return 0 ; } -#endif /* CONFIG_DISPLAY_CPUINFO */ int do_reset (cmd_tbl_t *cmdtp,int flag,int argc,char *const argv[]) {arch/nios2/cpu/sysid.c deleted +0
-46@@ -1,46 +0,0 @@ -/* -* (C) Copyright 2004, Psyent Corporation <www.psyent.com> -* Scott McNutt <[email protected]> -* -* SPDX-License-Identifier: GPL-2.0+ -*/ - -#include <common.h> - -#if defined (CONFIG_SYS_NIOS_SYSID_BASE ) - -#include <command.h> -#include <asm/io.h> -#include <linux/time.h> - -typedef volatile struct { -unsigned id;/* The system build id */ -unsigned timestamp;/* Timestamp */ -}nios_sysid_t ; - -void display_sysid (void ) -{ -nios_sysid_t *sysid = (nios_sysid_t *)CONFIG_SYS_NIOS_SYSID_BASE ; -struct tm t; -char asc[32 ]; -time_t stamp; - - stamp =readl (&sysid->timestamp); -localtime_r (&stamp, &t); -asctime_r (&t, asc); -printf ("SYSID : %08lx, %s" ,readl (&sysid->id), asc); - -} - -int do_sysid (cmd_tbl_t *cmdtp,int flag,int argc,char *const argv[]) -{ -display_sysid (); -return (0 ); -} - -U_BOOT_CMD ( - sysid,1 ,1 , do_sysid, -"display Nios-II system id" , -"" -); -#endif /* CONFIG_SYS_NIOS_SYSID_BASE */ arch/nios2/dts/3c120_devboard.dts +8
-0@@ -72,6 +72,7 @@ <0x00004cc0 0x08004cc0 0x00000010>, <0x00004ce0 0x08004ce0 0x00000010>, <0x00004d00 0x08004d00 0x00000010>, + <0x00004d40 0x08004d40 0x00000008>, <0x00004d50 0x08004d50 0x00000008>, <0x00008000 0x08008000 0x00000020>, <0x00400000 0x08400000 0x00000020>;@@ -92,6 +93,13 @@ clock-frequency = < 125000000 >; }; + sysid: sysid at 0x4d40 { + compatible = "altr,sysid-1.0"; + reg = <0x00004d40 0x00000008>; + id = <0>; + timestamp = <1440939556>; + }; + jtag_uart: serial at 0x4d50 { compatible = "altr,juart-1.0"; reg = <0x00004d50 0x00000008>;board/altera/nios2-generic/nios2-generic.c +5
-1@@ -42,7 +42,11 @@ int board_early_init_r(void)int checkboard (void ) { -printf ("BOARD : %s\n" ,CONFIG_BOARD_NAME ); +#ifdef CONFIG_ALTERA_SYSID +extern void display_sysid (void ); +display_sysid (); +#endif +printf ("BOARD: %s\n" ,CONFIG_BOARD_NAME );return 0 ; }configs/nios2-generic_defconfig +2
-0@@ -15,6 +15,8 @@ CONFIG_CMD_DHCP=y CONFIG_CMD_PING=y CONFIG_NET_RANDOM_ETHADDR=y CONFIG_ALTERA_PIO=y +CONFIG_DM_MISC=y +CONFIG_ALTERA_SYSID=y CONFIG_ALTERA_JTAG_UART=y CONFIG_ALTERA_JTAG_UART_BYPASS=y CONFIG_DM_TIMER=ydrivers/misc/Kconfig +7
-0@@ -10,6 +10,13 @@ config DM_MISC help Enable driver model for miscellaneous devices. +config ALTERA_SYSID + bool "Altera Sysid support" + depends on DM_MISC + help + Select this to enable a sysid for Altera devices. Please find + details on the "Embedded Peripherals IP User Guide" of Altera. + config CMD_CROS_EC bool "Enable crosec command" depends on CROS_ECdrivers/misc/Makefile +1
-0@@ -7,6 +7,7 @@ obj-$(CONFIG_DM_MISC) += misc-uclass.o obj-$(CONFIG_ALI152X) += ali512x.o +obj-$(CONFIG_ALTERA_SYSID) += altera_sysid.o obj-$(CONFIG_DS4510) += ds4510.o obj-$(CONFIG_CBMEM_CONSOLE) += cbmem_console.o obj-$(CONFIG_CROS_EC) += cros_ec.odrivers/misc/altera_sysid.c new file +16
-0@@ -0,0 +1,99 @@ +/* +* (C) Copyright 2004, Psyent Corporation <www.psyent.com> +* Scott McNutt <[email protected]> +* +* SPDX-License-Identifier: GPL-2.0+ +*/ + +#include <common.h> +#include <dm.h> +#include <misc.h> +#include <errno.h> +#include <command.h> +#include <asm/io.h> +#include <linux/time.h> + +struct altera_sysid_regs {
drivers/misc/altera_sysid.c line 26
Quoted 10 lines
drivers/misc/altera_sysid.c new file +10
-0+u32 id;/* The system build id */ +u32 timestamp;/* Timestamp */ +}; + +struct altera_sysid_platdata { +struct altera_sysid_regs *regs; +}; + +void display_sysid (void ) +{
Even though you have copied this code, please fix the coding style above (space before "("). For all occurrences in this patch, so that it is checkpatch clean.
Thank,
Stefan
PATCH v2 2/2 nios2: convert altera sysid to driver model
Hi Stefan,
Quoted 6 lines · Stefan Roese
Review
Quoted 2 lines
(quoted diff) +2
-0+void display_sysid (void) +{Even though you have copied this code, please fix the coding style above (space before "("). For all occurrences in this patch, so that it is checkpatch clean.
Thanks a lot for reminding.
Best regards,
Thomas Chou
PATCH v3 1/2 dm: implement a Miscellaneous uclass
In reply to Thomas ChouImplement a Miscellaneous uclass with generic read or write operations. This class is used only for those do not fit other more general classes.
---
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
drivers/misc/Kconfig +6 -0
@@ -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
drivers/misc/Makefile +1 -0
@@ -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
drivers/misc/misc-uclass.c new file +14 -0
@@ -0,0 +1,14 @@ +/* +* Copyright (C) 2010 Thomas Chou <[email protected]> +* +* SPDX-License-Identifier: GPL-2.0+ +*/ + +#include <common.h> +#include <dm.h> +#include <misc.h> + +UCLASS_DRIVER (misc) = { + .id =UCLASS_MISC , + .name ="misc" , +};
include/dm/uclass-id.h +1 -0
@@ -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 */
include/misc.h new file +22 -0
@@ -0,0 +1,22 @@ +/* +* Copyright (C) 2015 Thomas Chou <[email protected]> +* +* 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_ */
Signature · 1 line
2.1.4
PATCH v3 2/2 nios2: convert altera sysid to driver model
Convert altera sysid to driver model with misc uclass.
---
v2
remove trailing whitespace in altera_sysid.c.
v3
fix coding style as suggested by Stefan.
arch/nios2/cpu/Makefile | 2 +- arch/nios2/cpu/cpu.c | 13 +--- arch/nios2/cpu/sysid.c | 46 -------------- arch/nios2/dts/3c120_devboard.dts | 8 +++ board/altera/nios2-generic/nios2-generic.c | 6 +- configs/nios2-generic_defconfig | 2 + drivers/misc/Kconfig | 7 +++ drivers/misc/Makefile | 1 + drivers/misc/altera_sysid.c | 99 ++++++++++++++++++++++++++++++ include/configs/nios2-generic.h | 2 +- 10 files changed, 126 insertions(+), 60 deletions(-) delete mode 100644 arch/nios2/cpu/sysid.c create mode 100644 drivers/misc/altera_sysid.c
arch/nios2/cpu/Makefile +1 -1
@@ -7,5 +7,5 @@ extra-y = start.o obj-y = exceptions.o -obj-y += cpu.o interrupts.o sysid.o traps.o +obj-y += cpu.o interrupts.o traps.o obj-y += fdt.o
arch/nios2/cpu/cpu.c +2 -11
@@ -13,20 +13,11 @@DECLARE_GLOBAL_DATA_PTR ; -#if defined (CONFIG_SYS_NIOS_SYSID_BASE ) -extern void display_sysid (void ); -#endif /* CONFIG_SYS_NIOS_SYSID_BASE */ -#ifdef CONFIG_DISPLAY_CPUINFO int print_cpuinfo (void ) { -printf ("CPU : Nios-II\n" ); -#if !defined(CONFIG_SYS_NIOS_SYSID_BASE ) -printf ("SYSID : <unknown>\n" ); -#else -display_sysid (); -#endif -return (0 ); +printf ("CPU: Nios-II\n" ); +return 0 ; }#endif /* CONFIG_DISPLAY_CPUINFO */
arch/nios2/cpu/sysid.c deleted +0 -46
46 lines not on this page · raw message
arch/nios2/dts/3c120_devboard.dts +8 -0
@@ -72,6 +72,7 @@ <0x00004cc0 0x08004cc0 0x00000010>, <0x00004ce0 0x08004ce0 0x00000010>, <0x00004d00 0x08004d00 0x00000010>, + <0x00004d40 0x08004d40 0x00000008>, <0x00004d50 0x08004d50 0x00000008>, <0x00008000 0x08008000 0x00000020>, <0x00400000 0x08400000 0x00000020>;
@@ -92,6 +93,13 @@ clock-frequency = < 125000000 >; }; + sysid: sysid at 0x4d40 { + compatible = "altr,sysid-1.0"; + reg = <0x00004d40 0x00000008>; + id = <0>; + timestamp = <1440939556>; + }; + jtag_uart: serial at 0x4d50 { compatible = "altr,juart-1.0"; reg = <0x00004d50 0x00000008>;
board/altera/nios2-generic/nios2-generic.c +5 -1
@@ -42,7 +42,11 @@ int board_early_init_r(void)int checkboard (void ) { -printf ("BOARD : %s\n" ,CONFIG_BOARD_NAME ); +#ifdef CONFIG_ALTERA_SYSID +extern void display_sysid (void ); +display_sysid (); +#endif +printf ("BOARD: %s\n" ,CONFIG_BOARD_NAME );return 0 ; }
configs/nios2-generic_defconfig +2 -0
@@ -15,6 +15,8 @@ CONFIG_CMD_DHCP=y CONFIG_CMD_PING=y CONFIG_NET_RANDOM_ETHADDR=y CONFIG_ALTERA_PIO=y +CONFIG_DM_MISC=y +CONFIG_ALTERA_SYSID=y CONFIG_ALTERA_JTAG_UART=y CONFIG_ALTERA_JTAG_UART_BYPASS=y CONFIG_DM_TIMER=y
drivers/misc/Kconfig +7 -0
@@ -10,6 +10,13 @@ config DM_MISC help Enable driver model for miscellaneous devices. +config ALTERA_SYSID + bool "Altera Sysid support" + depends on DM_MISC + help + Select this to enable a sysid for Altera devices. Please find + details on the "Embedded Peripherals IP User Guide" of Altera. + config CMD_CROS_EC bool "Enable crosec command" depends on CROS_EC
drivers/misc/Makefile +1 -0
@@ -7,6 +7,7 @@ obj-$(CONFIG_DM_MISC) += misc-uclass.o obj-$(CONFIG_ALI152X) += ali512x.o +obj-$(CONFIG_ALTERA_SYSID) += altera_sysid.o obj-$(CONFIG_DS4510) += ds4510.o obj-$(CONFIG_CBMEM_CONSOLE) += cbmem_console.o obj-$(CONFIG_CROS_EC) += cros_ec.o
drivers/misc/altera_sysid.c new file +99 -0
99 lines not on this page · raw message
include/configs/nios2-generic.h +1 -1
@@ -17,7 +17,7 @@#define CONFIG_BOARD_EARLY_INIT_F /* enable early board-spec. init */ #define CONFIG_BOARD_EARLY_INIT_R #define CONFIG_DISPLAY_CPUINFO -#define CONFIG_DISPLAY_BOARDINFO +#define CONFIG_DISPLAY_BOARDINFO_LATE #define CONFIG_SYS_NIOS_SYSID_BASE CONFIG_SYS_SYSID_BASE/*
Signature · 1 line
2.1.4
PATCH v3 1/2 dm: implement a Miscellaneous uclass
In reply to Thomas ChouHi Thomas,
Quoted 25 lines · Thomas Chou
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 <[email protected]>---
v2
add missingmisc.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.hdrivers/misc/Kconfig +0
-0
drivers/misc/Kconfig line 11
Quoted 8 lines
drivers/misc/Kconfig +5
-0@@ -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?
Quoted 63 lines
drivers/misc/Kconfig +1
-0+ config CMD_CROS_EC bool "Enable crosec command" depends on CROS_ECdrivers/misc/Makefile +1
-0@@ -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.odrivers/misc/misc-uclass.c new file +14
-0@@ -0,0 +1,14 @@ +/* +* Copyright (C) 2010 Thomas Chou <[email protected]> +* +* SPDX-License-Identifier: GPL-2.0+ +*/ + +#include <common.h> +#include <dm.h> +#include <misc.h> + +UCLASS_DRIVER (misc) = { + .id =UCLASS_MISC , + .name ="misc" , +};include/dm/uclass-id.h +1
-0@@ -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 */include/misc.h new file +9
-0@@ -0,0 +1,22 @@ +/* +* Copyright (C) 2015 Thomas Chou <[email protected]> +* +* SPDX-License-Identifier: GPL-2.0+ +*/ + +#ifndef _DM_MISC_H_ +#define _DM_MISC_H_ +
include/misc.h line 19
Quoted 10 lines
include/misc.h new file +10
-0+/* +* 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
include/misc.h line 20
Quoted 1 line
include/misc.h new file +1
-0+};
Also don't you need to create misc_read() and misc_write() functions so people can use it?
Quoted 5 lines
include/misc.h new file +2
-1+ +#endif /* _DM_MISC_H_ */ --2.1.4
Regards,
Simon
PATCH v4 1/2 dm: implement a Miscellaneous uclass
In reply to Thomas ChouImplement a Miscellaneous uclass with generic read or write operations. This class is used only for those do not fit other more general classes.
---
v2
add missing misc.h.
v3
no change.
v4
add ioctl and comments as Simon suggested.
drivers/misc/Kconfig | 9 ++++++ drivers/misc/Makefile | 1 + drivers/misc/misc-uclass.c | 52 ++++++++++++++++++++++++++++++ include/dm/uclass-id.h | 1 + include/misc.h | 79 ++++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 142 insertions(+) create mode 100644 drivers/misc/misc-uclass.c create mode 100644 include/misc.h
drivers/misc/Kconfig +9 -0
@@ -4,6 +4,15 @@ menu "Multifunction device drivers" +config DM_MISC + bool "Enable Driver Model for Misc drivers" + depends on DM + help + Enable driver model for miscellaneous devices. This class is + used only 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. + config CMD_CROS_EC bool "Enable crosec command" depends on CROS_EC
drivers/misc/Makefile +1 -0
@@ -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
drivers/misc/misc-uclass.c new file +52 -0
52 lines not on this page · raw message
include/dm/uclass-id.h +1 -0
@@ -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 */
include/misc.h new file +79 -0
79 lines not on this page · raw message
Signature · 1 line
2.1.4
PATCH v4 2/2 nios2: convert altera sysid to driver model
Convert altera sysid to driver model with misc uclass.
---
v2
remove trailing whitespace in altera_sysid.c.
v3
fix coding style as suggested by Stefan.
v4
clean up sysid and timestamp in dts as Chin Liang suggested.
arch/nios2/cpu/Makefile | 2 +- arch/nios2/cpu/cpu.c | 13 +--- arch/nios2/cpu/sysid.c | 46 ------------- arch/nios2/dts/3c120_devboard.dts | 6 ++ board/altera/nios2-generic/nios2-generic.c | 6 +- configs/nios2-generic_defconfig | 2 + drivers/misc/Kconfig | 7 ++ drivers/misc/Makefile | 1 + drivers/misc/altera_sysid.c | 101 +++++++++++++++++++++++++++++ include/configs/nios2-generic.h | 2 +- 10 files changed, 126 insertions(+), 60 deletions(-) delete mode 100644 arch/nios2/cpu/sysid.c create mode 100644 drivers/misc/altera_sysid.c
arch/nios2/cpu/Makefile +1 -1
@@ -7,5 +7,5 @@ extra-y = start.o obj-y = exceptions.o -obj-y += cpu.o interrupts.o sysid.o traps.o +obj-y += cpu.o interrupts.o traps.o obj-y += fdt.o
arch/nios2/cpu/cpu.c +2 -11
@@ -13,20 +13,11 @@DECLARE_GLOBAL_DATA_PTR ; -#if defined (CONFIG_SYS_NIOS_SYSID_BASE ) -extern void display_sysid (void ); -#endif /* CONFIG_SYS_NIOS_SYSID_BASE */ -#ifdef CONFIG_DISPLAY_CPUINFO int print_cpuinfo (void ) { -printf ("CPU : Nios-II\n" ); -#if !defined(CONFIG_SYS_NIOS_SYSID_BASE ) -printf ("SYSID : <unknown>\n" ); -#else -display_sysid (); -#endif -return (0 ); +printf ("CPU: Nios-II\n" ); +return 0 ; }#endif /* CONFIG_DISPLAY_CPUINFO */
arch/nios2/cpu/sysid.c deleted +0 -46
46 lines not on this page · raw message
arch/nios2/dts/3c120_devboard.dts +6 -0
@@ -72,6 +72,7 @@ <0x00004cc0 0x08004cc0 0x00000010>, <0x00004ce0 0x08004ce0 0x00000010>, <0x00004d00 0x08004d00 0x00000010>, + <0x00004d40 0x08004d40 0x00000008>, <0x00004d50 0x08004d50 0x00000008>, <0x00008000 0x08008000 0x00000020>, <0x00400000 0x08400000 0x00000020>;
@@ -92,6 +93,11 @@ clock-frequency = < 125000000 >; }; + sysid: sysid at 0x4d40 { + compatible = "altr,sysid-1.0"; + reg = <0x00004d40 0x00000008>; + }; + jtag_uart: serial at 0x4d50 { compatible = "altr,juart-1.0"; reg = <0x00004d50 0x00000008>;
board/altera/nios2-generic/nios2-generic.c +5 -1
@@ -42,7 +42,11 @@ int board_early_init_r(void)int checkboard (void ) { -printf ("BOARD : %s\n" ,CONFIG_BOARD_NAME ); +#ifdef CONFIG_ALTERA_SYSID +extern void display_sysid (void ); +display_sysid (); +#endif +printf ("BOARD: %s\n" ,CONFIG_BOARD_NAME );return 0 ; }
configs/nios2-generic_defconfig +2 -0
@@ -16,6 +16,8 @@ CONFIG_CMD_DHCP=y CONFIG_CMD_PING=y CONFIG_NET_RANDOM_ETHADDR=y CONFIG_ALTERA_PIO=y +CONFIG_DM_MISC=y +CONFIG_ALTERA_SYSID=y CONFIG_ALTERA_JTAG_UART=y CONFIG_ALTERA_JTAG_UART_BYPASS=y CONFIG_DM_TIMER=y
drivers/misc/Kconfig +7 -0
@@ -13,6 +13,13 @@ config DM_MISC set of generic read, write and ioctl methods may be used to access the device. +config ALTERA_SYSID + bool "Altera Sysid support" + depends on DM_MISC + help + Select this to enable a sysid for Altera devices. Please find + details on the "Embedded Peripherals IP User Guide" of Altera. + config CMD_CROS_EC bool "Enable crosec command" depends on CROS_EC
drivers/misc/Makefile +1 -0
@@ -7,6 +7,7 @@ obj-$(CONFIG_DM_MISC) += misc-uclass.o obj-$(CONFIG_ALI152X) += ali512x.o +obj-$(CONFIG_ALTERA_SYSID) += altera_sysid.o obj-$(CONFIG_DS4510) += ds4510.o obj-$(CONFIG_CBMEM_CONSOLE) += cbmem_console.o obj-$(CONFIG_CROS_EC) += cros_ec.o
drivers/misc/altera_sysid.c new file +101 -0
101 lines not on this page · raw message
include/configs/nios2-generic.h +1 -1
@@ -17,7 +17,7 @@#define CONFIG_BOARD_EARLY_INIT_F /* enable early board-spec. init */ #define CONFIG_BOARD_EARLY_INIT_R #define CONFIG_DISPLAY_CPUINFO -#define CONFIG_DISPLAY_BOARDINFO +#define CONFIG_DISPLAY_BOARDINFO_LATE #define CONFIG_SYS_NIOS_SYSID_BASE CONFIG_SYS_SYSID_BASE/*
Signature · 1 line
2.1.4
PATCH v4 2/2 nios2: convert altera sysid to driver model
Hi Thomas,
Quoted 144 lines · Thomas Chou
Convert altera sysid to driver model with misc uclass.
Signed-off-by Thomas Chou <[email protected]>---
v2
remove trailing whitespace inaltera_sysid.c.
v3
fix coding style as suggested by Stefan.
v4
clean up sysid and timestamp in dts as Chin Liang suggested.arch/nios2/cpu/Makefile | 2 +- arch/nios2/cpu/cpu.c | 13 +--- arch/nios2/cpu/sysid.c | 46 ------------- arch/nios2/dts/3c120_devboard.dts | 6 ++ board/altera/nios2-generic/nios2-generic.c | 6 +- configs/nios2-generic_defconfig | 2 + drivers/misc/Kconfig | 7 ++ drivers/misc/Makefile | 1 + drivers/misc/altera_sysid.c | 101 +++++++++++++++++++++++++++++ include/configs/nios2-generic.h | 2 +- 10 files changed, 126 insertions(+), 60 deletions(-) delete mode 100644 arch/nios2/cpu/sysid.c create mode 100644 drivers/misc/altera_sysid.carch/nios2/cpu/Makefile +1
-1@@ -7,5 +7,5 @@ extra-y = start.o obj-y = exceptions.o -obj-y += cpu.o interrupts.o sysid.o traps.o +obj-y += cpu.o interrupts.o traps.o obj-y += fdt.oarch/nios2/cpu/cpu.c +2
-11@@ -13,20 +13,11 @@DECLARE_GLOBAL_DATA_PTR ; -#if defined (CONFIG_SYS_NIOS_SYSID_BASE ) -extern void display_sysid (void ); -#endif /* CONFIG_SYS_NIOS_SYSID_BASE */ -#ifdef CONFIG_DISPLAY_CPUINFO int print_cpuinfo (void ) { -printf ("CPU : Nios-II\n" ); -#if !defined(CONFIG_SYS_NIOS_SYSID_BASE ) -printf ("SYSID : <unknown>\n" ); -#else -display_sysid (); -#endif -return (0 ); +printf ("CPU: Nios-II\n" ); +return 0 ; }#endif /* CONFIG_DISPLAY_CPUINFO */ arch/nios2/cpu/sysid.c deleted +0
-46@@ -1,46 +0,0 @@ -/* -* (C) Copyright 2004, Psyent Corporation <www.psyent.com> -* Scott McNutt <[email protected]> -* -* SPDX-License-Identifier: GPL-2.0+ -*/ - -#include <common.h> - -#if defined (CONFIG_SYS_NIOS_SYSID_BASE ) - -#include <command.h> -#include <asm/io.h> -#include <linux/time.h> - -typedef volatile struct { -unsigned id;/* The system build id */ -unsigned timestamp;/* Timestamp */ -}nios_sysid_t ; - -void display_sysid (void ) -{ -nios_sysid_t *sysid = (nios_sysid_t *)CONFIG_SYS_NIOS_SYSID_BASE ; -struct tm t; -char asc[32 ]; -time_t stamp; - - stamp =readl (&sysid->timestamp); -localtime_r (&stamp, &t); -asctime_r (&t, asc); -printf ("SYSID : %08lx, %s" ,readl (&sysid->id), asc); - -} - -int do_sysid (cmd_tbl_t *cmdtp,int flag,int argc,char *const argv[]) -{ -display_sysid (); -return (0 ); -} - -U_BOOT_CMD ( - sysid,1 ,1 , do_sysid, -"display Nios-II system id" , -"" -); -#endif /* CONFIG_SYS_NIOS_SYSID_BASE */ arch/nios2/dts/3c120_devboard.dts +6
-0@@ -72,6 +72,7 @@ <0x00004cc0 0x08004cc0 0x00000010>, <0x00004ce0 0x08004ce0 0x00000010>, <0x00004d00 0x08004d00 0x00000010>, + <0x00004d40 0x08004d40 0x00000008>, <0x00004d50 0x08004d50 0x00000008>, <0x00008000 0x08008000 0x00000020>, <0x00400000 0x08400000 0x00000020>;@@ -92,6 +93,11 @@ clock-frequency = < 125000000 >; }; + sysid: sysid at 0x4d40 { + compatible = "altr,sysid-1.0"; + reg = <0x00004d40 0x00000008>; + }; + jtag_uart: serial at 0x4d50 { compatible = "altr,juart-1.0"; reg = <0x00004d50 0x00000008>;board/altera/nios2-generic/nios2-generic.c +0
-0
board/altera/nios2-generic/nios2-generic.c int board_early_init_r(void) · line 46
Quoted 6 lines
board/altera/nios2-generic/nios2-generic.c +2
-1@@ -42,7 +42,11 @@ int board_early_init_r(void)int checkboard (void ) { -printf ("BOARD : %s\n" ,CONFIG_BOARD_NAME ); +#ifdef CONFIG_ALTERA_SYSID +extern void display_sysid (void );
Should that go in a system header file asm/system.h or similar?
Quoted 56 lines
board/altera/nios2-generic/nios2-generic.c +3
-0+display_sysid (); +#endif +printf ("BOARD: %s\n" ,CONFIG_BOARD_NAME );return 0 ; }configs/nios2-generic_defconfig +2
-0@@ -16,6 +16,8 @@ CONFIG_CMD_DHCP=y CONFIG_CMD_PING=y CONFIG_NET_RANDOM_ETHADDR=y CONFIG_ALTERA_PIO=y +CONFIG_DM_MISC=y +CONFIG_ALTERA_SYSID=y CONFIG_ALTERA_JTAG_UART=y CONFIG_ALTERA_JTAG_UART_BYPASS=y CONFIG_DM_TIMER=ydrivers/misc/Kconfig +7
-0@@ -13,6 +13,13 @@ config DM_MISC set of generic read, write and ioctl methods may be used to access the device. +config ALTERA_SYSID + bool "Altera Sysid support" + depends on DM_MISC + help + Select this to enable a sysid for Altera devices. Please find + details on the "Embedded Peripherals IP User Guide" of Altera. + config CMD_CROS_EC bool "Enable crosec command" depends on CROS_ECdrivers/misc/Makefile +1
-0@@ -7,6 +7,7 @@ obj-$(CONFIG_DM_MISC) += misc-uclass.o obj-$(CONFIG_ALI152X) += ali512x.o +obj-$(CONFIG_ALTERA_SYSID) += altera_sysid.o obj-$(CONFIG_DS4510) += ds4510.o obj-$(CONFIG_CBMEM_CONSOLE) += cbmem_console.o obj-$(CONFIG_CROS_EC) += cros_ec.odrivers/misc/altera_sysid.c new file +1
-0@@ -0,0 +1,101 @@ +/*
drivers/misc/altera_sysid.c line 11
Quoted 10 lines
drivers/misc/altera_sysid.c new file +10
-0+* (C) Copyright 2004, Psyent Corporation <www.psyent.com> +* Scott McNutt <[email protected]> +* +* SPDX-License-Identifier: GPL-2.0+ +*/ + +#include <common.h> +#include <dm.h> +#include <misc.h> +#include <errno.h>
nit: Should sort these
common.hcommand.hdm.herrno.hmisc.h
Quoted 104 lines
drivers/misc/altera_sysid.c new file +90
-0+#include <command.h> +#include <asm/io.h> +#include <linux/time.h> + +struct altera_sysid_regs { +u32 id;/* The system build id */ +u32 timestamp;/* Timestamp */ +}; + +struct altera_sysid_platdata { +struct altera_sysid_regs *regs; +}; + +void display_sysid (void ) +{ +struct udevice *dev; +u32 sysid[2 ]; +struct tm t; +char asc[32 ]; +time_t stamp; +int ret; + +/* the first misc device will be used */ + ret =uclass_first_device (UCLASS_MISC , &dev); +if (ret) +return ; +if (!dev) +return ; + ret =misc_read (dev,0 , &sysid,sizeof (sysid)); +if (ret) +return ; + + stamp = sysid[1 ]; +localtime_r (&stamp, &t); +asctime_r (&t, asc); +printf ("SYSID: %08x, %s" , sysid[0 ], asc); +} + +int do_sysid (cmd_tbl_t *cmdtp,int flag,int argc,char *const argv[]) +{ +display_sysid (); +return 0 ; +} + +U_BOOT_CMD ( + sysid,1 ,1 , do_sysid, +"display Nios-II system id" , +"" +); + +static int altera_sysid_read (struct udevice *dev, +int offset,void *buf,int size) +{ +struct altera_sysid_platdata *plat = dev->platdata; +struct altera_sysid_regs *const regs = plat->regs; +u32 *sysid = buf; + + sysid[0 ] =readl (®s->id); + sysid[1 ] =readl (®s->timestamp); + +return 0 ; +} + +static int altera_sysid_ofdata_to_platdata (struct udevice *dev) +{ +struct altera_sysid_platdata *plat =dev_get_platdata (dev); + + plat->regs =ioremap (dev_get_addr (dev), +sizeof (struct altera_sysid_regs )); + +return 0 ; +} + +static const struct dm_misc_ops altera_sysid_ops = { + .read = altera_sysid_read, +}; + +static const struct udevice_id altera_sysid_ids[] = { + { .compatible ="altr,sysid-1.0" , }, + { } +}; + +U_BOOT_DRIVER (altera_sysid) = { + .name ="altera_sysid" , + .id =UCLASS_MISC , + .of_match = altera_sysid_ids, + .ofdata_to_platdata = altera_sysid_ofdata_to_platdata, + .platdata_auto_alloc_size =sizeof (struct altera_sysid_platdata ), + .ops = &altera_sysid_ops, +};include/configs/nios2-generic.h +1
-2@@ -17,7 +17,7 @@#define CONFIG_BOARD_EARLY_INIT_F /* enable early board-spec. init */ #define CONFIG_BOARD_EARLY_INIT_R #define CONFIG_DISPLAY_CPUINFO -#define CONFIG_DISPLAY_BOARDINFO +#define CONFIG_DISPLAY_BOARDINFO_LATE #define CONFIG_SYS_NIOS_SYSID_BASE CONFIG_SYS_SYSID_BASE/* --
Quoted 2 lines
2.1.4
Regards,
Simon
PATCH v4 2/2 nios2: convert altera sysid to driver model
In reply to Thomas ChouHi Thomas,
Quoted 11 lines · thomas at wytron.com.tw
Convert altera sysid to driver model with misc uclass.
Signed-off-by Thomas Chou <[email protected]>---
v2
remove trailing whitespace inaltera_sysid.c.
v3
fix coding style as suggested by Stefan.
v4
clean up sysid and timestamp in dts as Chin Liang suggested.
Thanks
Chin Liang
PATCH v4 1/2 dm: implement a Miscellaneous uclass
In reply to Thomas ChouQuoted 13 lines · Thomas Chou
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 <[email protected]>---
v2
add missingmisc.h.
v3
no change.
v4
add ioctl and comments as Simon suggested.
Quoted 8 lines
drivers/misc/Kconfig | 9 ++++++ drivers/misc/Makefile | 1 + drivers/misc/misc-uclass.c | 52 ++++++++++++++++++++++++++++++ include/dm/uclass-id.h | 1 + include/misc.h | 79 ++++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 142 insertions(+) create mode 100644 drivers/misc/misc-uclass.c create mode 100644 include/misc.h
PATCH v5 1/2 dm: implement a Miscellaneous uclass
In reply to Thomas ChouImplement a Miscellaneous uclass with generic read or write operations. This class is used only for those do not fit other more general classes.
---
v2
add missing misc.h.
v3
no change.
v4
add ioctl and comments as Simon suggested.
v5
no change.
drivers/misc/Kconfig | 9 ++++++ drivers/misc/Makefile | 1 + drivers/misc/misc-uclass.c | 51 ++++++++++++++++++++++++++++++ include/dm/uclass-id.h | 1 + include/misc.h | 79 ++++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 141 insertions(+) create mode 100644 drivers/misc/misc-uclass.c create mode 100644 include/misc.h
drivers/misc/Kconfig +9 -0
@@ -4,6 +4,15 @@ menu "Multifunction device drivers" +config DM_MISC + bool "Enable Driver Model for Misc drivers" + depends on DM + help + Enable driver model for miscellaneous devices. This class is + used only 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. + config CMD_CROS_EC bool "Enable crosec command" depends on CROS_EC
drivers/misc/Makefile +1 -0
@@ -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
drivers/misc/misc-uclass.c new file +51 -0
51 lines not on this page · raw message
include/dm/uclass-id.h +1 -0
@@ -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 */
include/misc.h new file +79 -0
79 lines not on this page · raw message
Signature · 1 line
2.1.4
PATCH v5 2/2 nios2: convert altera sysid to driver model
Convert altera sysid to driver model with misc uclass.
---
v2
fix coding style.
v3
doc dts binding.
v4
no change.
v5
sort headers inclusion as Simon suggested.
add display_sysid() to asm/system.h.
arch/nios2/cpu/Makefile | 2 +- arch/nios2/cpu/cpu.c | 13 +--- arch/nios2/cpu/sysid.c | 46 ------------- arch/nios2/dts/3c120_devboard.dts | 6 ++ arch/nios2/include/asm/system.h | 2 + board/altera/nios2-generic/nios2-generic.c | 5 +- configs/nios2-generic_defconfig | 2 + drivers/misc/Kconfig | 7 ++ drivers/misc/Makefile | 1 + drivers/misc/altera_sysid.c | 101 +++++++++++++++++++++++++++++ include/configs/nios2-generic.h | 2 +- 11 files changed, 127 insertions(+), 60 deletions(-) delete mode 100644 arch/nios2/cpu/sysid.c create mode 100644 drivers/misc/altera_sysid.c
arch/nios2/cpu/Makefile +1 -1
@@ -7,5 +7,5 @@ extra-y = start.o obj-y = exceptions.o -obj-y += cpu.o interrupts.o sysid.o traps.o +obj-y += cpu.o interrupts.o traps.o obj-y += fdt.o
arch/nios2/cpu/cpu.c +2 -11
@@ -13,20 +13,11 @@DECLARE_GLOBAL_DATA_PTR ; -#if defined (CONFIG_SYS_NIOS_SYSID_BASE ) -extern void display_sysid (void ); -#endif /* CONFIG_SYS_NIOS_SYSID_BASE */ -#ifdef CONFIG_DISPLAY_CPUINFO int print_cpuinfo (void ) { -printf ("CPU : Nios-II\n" ); -#if !defined(CONFIG_SYS_NIOS_SYSID_BASE ) -printf ("SYSID : <unknown>\n" ); -#else -display_sysid (); -#endif -return (0 ); +printf ("CPU: Nios-II\n" ); +return 0 ; }#endif /* CONFIG_DISPLAY_CPUINFO */
arch/nios2/cpu/sysid.c deleted +0 -46
46 lines not on this page · raw message
arch/nios2/dts/3c120_devboard.dts +6 -0
@@ -72,6 +72,7 @@ <0x00004cc0 0x08004cc0 0x00000010>, <0x00004ce0 0x08004ce0 0x00000010>, <0x00004d00 0x08004d00 0x00000010>, + <0x00004d40 0x08004d40 0x00000008>, <0x00004d50 0x08004d50 0x00000008>, <0x00008000 0x08008000 0x00000020>, <0x00400000 0x08400000 0x00000020>;
@@ -92,6 +93,11 @@ clock-frequency = < 125000000 >; }; + sysid: sysid at 0x4d40 { + compatible = "altr,sysid-1.0"; + reg = <0x00004d40 0x00000008>; + }; + jtag_uart: serial at 0x4d50 { compatible = "altr,juart-1.0"; reg = <0x00004d50 0x00000008>;
arch/nios2/include/asm/system.h +2 -0
@@ -45,4 +45,6 @@ "callr %0" \ : : "r" (addr)) +void display_sysid (void ); +#endif /* __ASM_NIOS2_SYSTEM_H */
board/altera/nios2-generic/nios2-generic.c +4 -1
@@ -42,7 +42,10 @@ int board_early_init_r(void)int checkboard (void ) { -printf ("BOARD : %s\n" ,CONFIG_BOARD_NAME ); +#ifdef CONFIG_ALTERA_SYSID +display_sysid (); +#endif +printf ("BOARD: %s\n" ,CONFIG_BOARD_NAME );return 0 ; }
configs/nios2-generic_defconfig +2 -0
@@ -16,6 +16,8 @@ CONFIG_CMD_DHCP=y CONFIG_CMD_PING=y CONFIG_NET_RANDOM_ETHADDR=y CONFIG_ALTERA_PIO=y +CONFIG_DM_MISC=y +CONFIG_ALTERA_SYSID=y CONFIG_ALTERA_JTAG_UART=y CONFIG_ALTERA_JTAG_UART_BYPASS=y CONFIG_DM_TIMER=y
drivers/misc/Kconfig +7 -0
@@ -13,6 +13,13 @@ config DM_MISC set of generic read, write and ioctl methods may be used to access the device. +config ALTERA_SYSID + bool "Altera Sysid support" + depends on DM_MISC + help + Select this to enable a sysid for Altera devices. Please find + details on the "Embedded Peripherals IP User Guide" of Altera. + config CMD_CROS_EC bool "Enable crosec command" depends on CROS_EC
drivers/misc/Makefile +1 -0
@@ -7,6 +7,7 @@ obj-$(CONFIG_DM_MISC) += misc-uclass.o obj-$(CONFIG_ALI152X) += ali512x.o +obj-$(CONFIG_ALTERA_SYSID) += altera_sysid.o obj-$(CONFIG_DS4510) += ds4510.o obj-$(CONFIG_CBMEM_CONSOLE) += cbmem_console.o obj-$(CONFIG_CROS_EC) += cros_ec.o
drivers/misc/altera_sysid.c new file +101 -0
101 lines not on this page · raw message
include/configs/nios2-generic.h +1 -1
@@ -17,7 +17,7 @@#define CONFIG_BOARD_EARLY_INIT_F /* enable early board-spec. init */ #define CONFIG_BOARD_EARLY_INIT_R #define CONFIG_DISPLAY_CPUINFO -#define CONFIG_DISPLAY_BOARDINFO +#define CONFIG_DISPLAY_BOARDINFO_LATE #define CONFIG_SYS_NIOS_SYSID_BASE CONFIG_SYS_SYSID_BASE/*
Signature · 1 line
2.1.4
PATCH v5 2/2 nios2: convert altera sysid to driver model
Quoted 15 lines · Thomas Chou
Convert altera sysid to driver model with misc uclass.
Signed-off-by Thomas Chou <[email protected]>Acked-by Chin Liang See <[email protected]>---
v2
fix coding style.
v3
doc dts binding.
v4
no change.
v5
sort headers inclusion as Simon suggested.
adddisplay_sysid()toasm/system.h.
Quoted 14 lines
arch/nios2/cpu/Makefile | 2 +- arch/nios2/cpu/cpu.c | 13 +--- arch/nios2/cpu/sysid.c | 46 ------------- arch/nios2/dts/3c120_devboard.dts | 6 ++ arch/nios2/include/asm/system.h | 2 + board/altera/nios2-generic/nios2-generic.c | 5 +- configs/nios2-generic_defconfig | 2 + drivers/misc/Kconfig | 7 ++ drivers/misc/Makefile | 1 + drivers/misc/altera_sysid.c | 101 +++++++++++++++++++++++++++++ include/configs/nios2-generic.h | 2 +- 11 files changed, 127 insertions(+), 60 deletions(-) delete mode 100644 arch/nios2/cpu/sysid.c create mode 100644 drivers/misc/altera_sysid.c
PATCH v6 1/2 dm: implement a Miscellaneous uclass
In reply to Thomas ChouImplement a Miscellaneous uclass with generic read or write operations. This class is used only for those do not fit other more general classes.
---
v2
add missing misc.h.
v3
no change.
v4
add ioctl and comments as Simon suggested.
v5
no change.
v6
replace DM_MISC to MISC.
drivers/misc/Kconfig | 9 ++++++ drivers/misc/Makefile | 1 + drivers/misc/misc-uclass.c | 51 ++++++++++++++++++++++++++++++ include/dm/uclass-id.h | 1 + include/misc.h | 79 ++++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 141 insertions(+) create mode 100644 drivers/misc/misc-uclass.c create mode 100644 include/misc.h
drivers/misc/Kconfig +9 -0
@@ -4,6 +4,15 @@ menu "Multifunction device drivers" +config MISC + bool "Enable Driver Model for Misc drivers" + depends on DM + help + Enable driver model for miscellaneous devices. This class is + used only 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. + config CMD_CROS_EC bool "Enable crosec command" depends on CROS_EC
drivers/misc/Makefile +1 -0
@@ -5,6 +5,7 @@ # SPDX-License-Identifier: GPL-2.0+ # +obj-$(CONFIG_MISC) += misc-uclass.o obj-$(CONFIG_ALI152X) += ali512x.o obj-$(CONFIG_DS4510) += ds4510.o obj-$(CONFIG_CBMEM_CONSOLE) += cbmem_console.o
drivers/misc/misc-uclass.c new file +51 -0
51 lines not on this page · raw message
include/dm/uclass-id.h +1 -0
@@ -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 */
include/misc.h new file +79 -0
79 lines not on this page · raw message
Signature · 1 line
2.1.4
PATCH v6 1/2 dm: implement a Miscellaneous uclass
Quoted 18 lines · Thomas Chou
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 <[email protected]>Acked-by Simon Glass <[email protected]>---
v2
add missingmisc.h.
v3
no change.
v4
add ioctl and comments as Simon suggested.
v5
no change.
v6
replaceDM_MISCto MISC.
Quoted 9 lines
drivers/misc/Kconfig | 9 ++++++ drivers/misc/Makefile | 1 + drivers/misc/misc-uclass.c | 51 ++++++++++++++++++++++++++++++ include/dm/uclass-id.h | 1 + include/misc.h | 79 ++++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 141 insertions(+)create mode 100644
drivers/misc/misc-uclass.ccreate mode 100644include/misc.h
Applied to u-boot-nios.
PATCH v6 2/2 nios2: convert altera sysid to driver model
In reply to Thomas ChouConvert altera sysid to driver model with misc uclass.
---
v2
fix coding style.
v3
doc dts binding.
v4
no change.
v5
sort headers inclusion as Simon suggested.
add display_sysid() to asm/system.h.
v6
replace DM_MISC to MISC.
arch/nios2/cpu/Makefile | 2 +- arch/nios2/cpu/cpu.c | 13 +--- arch/nios2/cpu/sysid.c | 46 ------------- arch/nios2/dts/3c120_devboard.dts | 6 ++ arch/nios2/include/asm/system.h | 2 + board/altera/nios2-generic/nios2-generic.c | 5 +- configs/nios2-generic_defconfig | 2 + drivers/misc/Kconfig | 7 ++ drivers/misc/Makefile | 1 + drivers/misc/altera_sysid.c | 101 +++++++++++++++++++++++++++++ include/configs/nios2-generic.h | 2 +- 11 files changed, 127 insertions(+), 60 deletions(-) delete mode 100644 arch/nios2/cpu/sysid.c create mode 100644 drivers/misc/altera_sysid.c
arch/nios2/cpu/Makefile +1 -1
@@ -7,5 +7,5 @@ extra-y = start.o obj-y = exceptions.o -obj-y += cpu.o interrupts.o sysid.o traps.o +obj-y += cpu.o interrupts.o traps.o obj-y += fdt.o
arch/nios2/cpu/cpu.c +2 -11
@@ -13,20 +13,11 @@DECLARE_GLOBAL_DATA_PTR ; -#if defined (CONFIG_SYS_NIOS_SYSID_BASE ) -extern void display_sysid (void ); -#endif /* CONFIG_SYS_NIOS_SYSID_BASE */ -#ifdef CONFIG_DISPLAY_CPUINFO int print_cpuinfo (void ) { -printf ("CPU : Nios-II\n" ); -#if !defined(CONFIG_SYS_NIOS_SYSID_BASE ) -printf ("SYSID : <unknown>\n" ); -#else -display_sysid (); -#endif -return (0 ); +printf ("CPU: Nios-II\n" ); +return 0 ; }#endif /* CONFIG_DISPLAY_CPUINFO */
arch/nios2/cpu/sysid.c deleted +0 -46
46 lines not on this page · raw message
arch/nios2/dts/3c120_devboard.dts +6 -0
@@ -72,6 +72,7 @@ <0x00004cc0 0x08004cc0 0x00000010>, <0x00004ce0 0x08004ce0 0x00000010>, <0x00004d00 0x08004d00 0x00000010>, + <0x00004d40 0x08004d40 0x00000008>, <0x00004d50 0x08004d50 0x00000008>, <0x00008000 0x08008000 0x00000020>, <0x00400000 0x08400000 0x00000020>;
@@ -92,6 +93,11 @@ clock-frequency = < 125000000 >; }; + sysid: sysid at 0x4d40 { + compatible = "altr,sysid-1.0"; + reg = <0x00004d40 0x00000008>; + }; + jtag_uart: serial at 0x4d50 { compatible = "altr,juart-1.0"; reg = <0x00004d50 0x00000008>;
arch/nios2/include/asm/system.h +2 -0
@@ -45,4 +45,6 @@ "callr %0" \ : : "r" (addr)) +void display_sysid (void ); +#endif /* __ASM_NIOS2_SYSTEM_H */
board/altera/nios2-generic/nios2-generic.c +4 -1
@@ -37,7 +37,10 @@ int board_early_init_f(void)int checkboard (void ) { -printf ("BOARD : %s\n" ,CONFIG_BOARD_NAME ); +#ifdef CONFIG_ALTERA_SYSID +display_sysid (); +#endif +printf ("BOARD: %s\n" ,CONFIG_BOARD_NAME );return 0 ; }
configs/nios2-generic_defconfig +2 -0
@@ -16,6 +16,8 @@ CONFIG_CMD_DHCP=y CONFIG_CMD_PING=y CONFIG_NET_RANDOM_ETHADDR=y CONFIG_ALTERA_PIO=y +CONFIG_MISC=y +CONFIG_ALTERA_SYSID=y CONFIG_ALTERA_JTAG_UART=y CONFIG_ALTERA_JTAG_UART_BYPASS=y CONFIG_TIMER=y
drivers/misc/Kconfig +7 -0
@@ -13,6 +13,13 @@ config MISC set of generic read, write and ioctl methods may be used to access the device. +config ALTERA_SYSID + bool "Altera Sysid support" + depends on MISC + help + Select this to enable a sysid for Altera devices. Please find + details on the "Embedded Peripherals IP User Guide" of Altera. + config CMD_CROS_EC bool "Enable crosec command" depends on CROS_EC
drivers/misc/Makefile +1 -0
@@ -7,6 +7,7 @@ obj-$(CONFIG_MISC) += misc-uclass.o obj-$(CONFIG_ALI152X) += ali512x.o +obj-$(CONFIG_ALTERA_SYSID) += altera_sysid.o obj-$(CONFIG_DS4510) += ds4510.o obj-$(CONFIG_CBMEM_CONSOLE) += cbmem_console.o obj-$(CONFIG_CROS_EC) += cros_ec.o
drivers/misc/altera_sysid.c new file +101 -0
101 lines not on this page · raw message
include/configs/nios2-generic.h +1 -1
@@ -16,7 +16,7 @@#define CONFIG_BOARD_NAME "nios2-generic"/* custom board name */ #define CONFIG_BOARD_EARLY_INIT_F /* enable early board-spec. init */ #define CONFIG_DISPLAY_CPUINFO -#define CONFIG_DISPLAY_BOARDINFO +#define CONFIG_DISPLAY_BOARDINFO_LATE #define CONFIG_SYS_NIOS_SYSID_BASE CONFIG_SYS_SYSID_BASE/*
Signature · 1 line
2.1.4
PATCH v6 2/2 nios2: convert altera sysid to driver model
Quoted 30 lines · Thomas Chou
Convert altera sysid to driver model with misc uclass.
Signed-off-by Thomas Chou <[email protected]>Acked-by Chin Liang See <[email protected]>Reviewed-by Simon Glass <[email protected]>---
v2
fix coding style.
v3
doc dts binding.
v4
no change.
v5
sort headers inclusion as Simon suggested.
adddisplay_sysid()toasm/system.h.
v6
replaceDM_MISCto MISC.arch/nios2/cpu/Makefile | 2 +- arch/nios2/cpu/cpu.c | 13 +--- arch/nios2/cpu/sysid.c | 46 ------------- arch/nios2/dts/3c120_devboard.dts | 6 ++ arch/nios2/include/asm/system.h | 2 + board/altera/nios2-generic/nios2-generic.c | 5 +- configs/nios2-generic_defconfig | 2 + drivers/misc/Kconfig | 7 ++ drivers/misc/Makefile | 1 + drivers/misc/altera_sysid.c | 101 +++++++++++++++++++++++++++++ include/configs/nios2-generic.h | 2 +- 11 files changed, 127 insertions(+), 60 deletions(-)
Quoted 3 lines
delete mode 100644
arch/nios2/cpu/sysid.c
create mode 100644drivers/misc/altera_sysid.c
Applied to u-boot-nios.