From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefan Roese Date: Tue, 29 Sep 2015 11:30:55 +0200 Subject: [U-Boot] [PATCH v2 2/2] nios2: convert altera sysid to driver model In-Reply-To: <1443517474-9838-2-git-send-email-thomas@wytron.com.tw> References: <1443511438-18625-1-git-send-email-thomas@wytron.com.tw> <1443517474-9838-1-git-send-email-thomas@wytron.com.tw> <1443517474-9838-2-git-send-email-thomas@wytron.com.tw> Message-ID: <560A5A4F.5020804@denx.de> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Hi Thomas, On 29.09.2015 11:04, Thomas Chou wrote: > Convert altera sysid to driver model with misc uclass. > > Signed-off-by: Thomas Chou > --- > 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 > > diff --git a/arch/nios2/cpu/Makefile b/arch/nios2/cpu/Makefile > index 3fe7847..185ca3c 100644 > --- a/arch/nios2/cpu/Makefile > +++ b/arch/nios2/cpu/Makefile > @@ -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 > diff --git a/arch/nios2/cpu/cpu.c b/arch/nios2/cpu/cpu.c > index 88984e2..7b1717c 100644 > --- a/arch/nios2/cpu/cpu.c > +++ b/arch/nios2/cpu/cpu.c > @@ -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 : \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[]) > { > diff --git a/arch/nios2/cpu/sysid.c b/arch/nios2/cpu/sysid.c > deleted file mode 100644 > index 50819b2..0000000 > --- a/arch/nios2/cpu/sysid.c > +++ /dev/null > @@ -1,46 +0,0 @@ > -/* > - * (C) Copyright 2004, Psyent Corporation > - * Scott McNutt > - * > - * SPDX-License-Identifier: GPL-2.0+ > - */ > - > -#include > - > -#if defined (CONFIG_SYS_NIOS_SYSID_BASE) > - > -#include > -#include > -#include > - > -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 */ > diff --git a/arch/nios2/dts/3c120_devboard.dts b/arch/nios2/dts/3c120_devboard.dts > index 2e2956f..2eb339c 100644 > --- a/arch/nios2/dts/3c120_devboard.dts > +++ b/arch/nios2/dts/3c120_devboard.dts > @@ -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>; > diff --git a/board/altera/nios2-generic/nios2-generic.c b/board/altera/nios2-generic/nios2-generic.c > index 61d32c7..e08b8f7 100644 > --- a/board/altera/nios2-generic/nios2-generic.c > +++ b/board/altera/nios2-generic/nios2-generic.c > @@ -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; > } > > diff --git a/configs/nios2-generic_defconfig b/configs/nios2-generic_defconfig > index 1aa2d9e..d8d26e5 100644 > --- a/configs/nios2-generic_defconfig > +++ b/configs/nios2-generic_defconfig > @@ -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 > diff --git a/drivers/misc/Kconfig b/drivers/misc/Kconfig > index 51c2a08..06a10d4 100644 > --- a/drivers/misc/Kconfig > +++ b/drivers/misc/Kconfig > @@ -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 > diff --git a/drivers/misc/Makefile b/drivers/misc/Makefile > index b285946..449425e 100644 > --- a/drivers/misc/Makefile > +++ b/drivers/misc/Makefile > @@ -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 > diff --git a/drivers/misc/altera_sysid.c b/drivers/misc/altera_sysid.c > new file mode 100644 > index 0000000..e200bf7 > --- /dev/null > +++ b/drivers/misc/altera_sysid.c > @@ -0,0 +1,99 @@ > +/* > + * (C) Copyright 2004, Psyent Corporation > + * Scott McNutt > + * > + * SPDX-License-Identifier: GPL-2.0+ > + */ > + > +#include > +#include > +#include > +#include > +#include > +#include > +#include > + > +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) > +{ 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