All of lore.kernel.org
 help / color / mirror / Atom feed
From: Greg KH <gregkh@linuxfoundation.org>
To: "Loh, Tien Hock" <tien.hock.loh@intel.com>
Cc: arnd@arndb.de, linux-kernel@vger.kernel.org, thloh85@gmail.com,
	matthew.gerlach@intel.com, dinh.nguyen@intel.com, "Loh,
	Tien Hock" <tien.hock.loh@intel.com>
Subject: Re: [PATCH 1/1] drivers/misc: Add Intel System ID driver
Date: Wed, 15 Feb 2017 09:17:32 -0800	[thread overview]
Message-ID: <20170215171732.GA4548@kroah.com> (raw)
In-Reply-To: <1487156981-4550-1-git-send-email-user@thloh-VirtualBox>

On Wed, Feb 15, 2017 at 07:09:41PM +0800, thloh wrote:
> From: "Loh, Tien Hock" <tien.hock.loh@intel.com>
> 
> This patch is to add Altera System ID driver.
> User can obtain the system ID and timestamp of the system by
> reading the sysfs entry.
> 
> Usage:
> cat /sys/bus/platform/devices/[addr].sysid/sysid/id
> cat /sys/bus/platform/devices/[addr].sysid/sysid/timestamp

If you add new sysfs attributes, you need to also add a
Documentation/ABI/ description as well.

> 
> Signed-off-by: Loh, Tien Hock <tien.hock.loh@intel.com>
> ---
>  drivers/misc/Kconfig       |    5 ++
>  drivers/misc/Makefile      |    1 +
>  drivers/misc/intel_sysid.c |  142 ++++++++++++++++++++++++++++++++++++++++++++
>  3 files changed, 148 insertions(+), 0 deletions(-)
>  create mode 100644 drivers/misc/intel_sysid.c
> 
> diff --git a/drivers/misc/Kconfig b/drivers/misc/Kconfig
> index b4d6aac..e5552fa 100644
> --- a/drivers/misc/Kconfig
> +++ b/drivers/misc/Kconfig
> @@ -139,6 +139,11 @@ config INTEL_MID_PTI
>  	  an Intel Atom (non-netbook) mobile device containing a MIPI
>  	  P1149.7 standard implementation.
>  
> +config INTEL_SYSID
> +        tristate "Intel System ID"
> +        help
> +        This enables Intel System ID soft core driver.
> +
>  config SGI_IOC4
>  	tristate "SGI IOC4 Base IO support"
>  	depends on PCI
> diff --git a/drivers/misc/Makefile b/drivers/misc/Makefile
> index 7a3ea89..24fe724 100644
> --- a/drivers/misc/Makefile
> +++ b/drivers/misc/Makefile
> @@ -43,6 +43,7 @@ obj-y				+= ti-st/
>  obj-y				+= lis3lv02d/
>  obj-$(CONFIG_USB_SWITCH_FSA9480) += fsa9480.o
>  obj-$(CONFIG_ALTERA_STAPL)	+=altera-stapl/
> +obj-$(CONFIG_INTEL_SYSID)       += intel_sysid.o
>  obj-$(CONFIG_INTEL_MEI)		+= mei/
>  obj-$(CONFIG_VMWARE_VMCI)	+= vmw_vmci/
>  obj-$(CONFIG_LATTICE_ECP3_CONFIG)	+= lattice-ecp3-config.o
> diff --git a/drivers/misc/intel_sysid.c b/drivers/misc/intel_sysid.c
> new file mode 100644
> index 0000000..1ef72b8
> --- /dev/null
> +++ b/drivers/misc/intel_sysid.c
> @@ -0,0 +1,142 @@
> +/*
> + * Copyright Intel Corporation (C) 2017.
> + *
> + * This program is free software; you can redistribute it and/or modify it
> + * under the terms and conditions of the GNU General Public License,
> + * version 2, as published by the Free Software Foundation.
> + *
> + * This program is distributed in the hope it will be useful, but WITHOUT
> + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
> + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
> + * more details.
> + *
> + * You should have received a copy of the GNU General Public License along with
> + * this program.  If not, see <http://www.gnu.org/licenses/>.
> + *
> + * Credit:
> + * Walter Goossens
> + */
> +
> +#include <linux/device.h>
> +#include <linux/kernel.h>
> +#include <linux/io.h>
> +#include <linux/module.h>
> +#include <linux/of.h>
> +#include <linux/platform_device.h>
> +#include <linux/slab.h>
> +
> +#define DRV_NAME	"intel_sysid"
> +
> +struct intel_sysid {
> +	void __iomem		*regs;
> +};
> +
> +/* System ID Registers*/
> +#define SYSID_REG_ID		(0x0)
> +#define SYSID_REG_TIMESTAMP	(0x4)
> +
> +static ssize_t intel_sysid_show_id(struct device *dev,
> +		struct device_attribute *attr, char *buf)
> +{
> +	struct intel_sysid *sysid = dev_get_drvdata(dev);
> +
> +	return sprintf(buf, "%u\n", readl(sysid->regs + SYSID_REG_ID));
> +}
> +
> +static ssize_t intel_sysid_show_timestamp(struct device *dev,
> +		struct device_attribute *attr, char *buf)
> +{
> +	unsigned int reg;
> +	struct tm timestamp;
> +	struct intel_sysid *sysid = dev_get_drvdata(dev);
> +
> +	reg = readl(sysid->regs + SYSID_REG_TIMESTAMP);
> +
> +	time_to_tm(reg, 0, &timestamp);
> +
> +	return sprintf(buf, "%u (%u-%u-%u %u:%u:%u UTC)\n", reg,
> +		(unsigned int)(timestamp.tm_year + 1900),
> +		timestamp.tm_mon + 1, timestamp.tm_mday, timestamp.tm_hour,
> +		timestamp.tm_min, timestamp.tm_sec);
> +}
> +
> +static DEVICE_ATTR(id, S_IRUGO, intel_sysid_show_id, NULL);
> +static DEVICE_ATTR(timestamp, S_IRUGO, intel_sysid_show_timestamp, NULL);

DEVICE_ATTR_RO()?

> +static struct attribute *intel_sysid_attrs[] = {
> +	&dev_attr_id.attr,
> +	&dev_attr_timestamp.attr,
> +	NULL,
> +};
> +
> +struct attribute_group intel_sysid_attr_group = {
> +	.name = "sysid",
> +	.attrs = intel_sysid_attrs,
> +};

ATTRIBUTE_GROUP()?

thanks,

greg k-h

       reply	other threads:[~2017-02-15 18:36 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <1487156981-4550-1-git-send-email-user@thloh-VirtualBox>
2017-02-15 17:17 ` Greg KH [this message]
2017-02-15 19:51   ` [PATCH 1/1] drivers/misc: Add Intel System ID driver Arnd Bergmann
2017-02-23  5:58     ` Loh, Tien Hock
2017-02-23  8:05       ` Arnd Bergmann
2017-02-23  8:15         ` Loh, Tien Hock
2017-03-01  7:23           ` Loh, Tien Hock
2017-03-01  9:01             ` Arnd Bergmann
2017-03-01 10:42               ` Loh, Tien Hock
2017-03-01 11:34                 ` Arnd Bergmann
2017-03-02  2:17                   ` Loh, Tien Hock
2017-02-23  5:50   ` Loh, Tien Hock

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20170215171732.GA4548@kroah.com \
    --to=gregkh@linuxfoundation.org \
    --cc=arnd@arndb.de \
    --cc=dinh.nguyen@intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=matthew.gerlach@intel.com \
    --cc=thloh85@gmail.com \
    --cc=tien.hock.loh@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.