All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2] tpm_tis: Allow tpm_tis to be bound using DT
@ 2016-10-26 17:04 Jason Gunthorpe
       [not found] ` <20161026170437.GB13461-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
  0 siblings, 1 reply; 4+ messages in thread
From: Jason Gunthorpe @ 2016-10-26 17:04 UTC (permalink / raw)
  To: Mark Rutland
  Cc: Jarkko Sakkinen, Rob Herring, devicetree-u79uwXL29TY76Z2rM5mHXA,
	tpmdd-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f

This provides an open firwmare driver binding for tpm_tis. OF
is useful on arches where ACPI/PNP is not used.

The tcg,tpm-tis-mmio register map interface is specified by the TCG.

Signed-off-by: Jason Gunthorpe <jgunthorpe-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
---
 .../bindings/security/tpm/tpm_tis_mmio.txt         | 23 ++++++++++++++++++++++
 drivers/char/tpm/Kconfig                           |  2 +-
 drivers/char/tpm/tpm_tis.c                         | 11 +++++++++++
 3 files changed, 35 insertions(+), 1 deletion(-)
 create mode 100644 Documentation/devicetree/bindings/security/tpm/tpm_tis_mmio.txt

v2 (from Mark)
 - Change name to tpm-tis-mmio (and fix c&p spi)
 - Include some valid chip names

diff --git a/Documentation/devicetree/bindings/security/tpm/tpm_tis_mmio.txt b/Documentation/devicetree/bindings/security/tpm/tpm_tis_mmio.txt
new file mode 100644
index 000000000000..f9a853165cd0
--- /dev/null
+++ b/Documentation/devicetree/bindings/security/tpm/tpm_tis_mmio.txt
@@ -0,0 +1,23 @@
+Trusted Computing Group MMIO Trusted Platform Module
+
+The TCG defines multi vendor standard for accessing a TPM chip, this
+is the standard protocol defined to access the TPM via MMIO. Typically
+this interface will be implemented over Intel's LPC bus.
+
+Refer to the 'TCG PC Client Specific TPM Interface Specification (TIS)' TCG
+publication for the specification.
+
+Required properties:
+
+- compatible: should contain a string below for the chip, followed by
+              "tcg,tpm-tis-mmio". Valid chip strings are:
+	          * "atmel,at97sc3204"
+- reg: The location of the MMIO registers, should be at least 0x5000 bytes
+- interrupt: An optional interrupt indicating command completion.
+
+Example:
+
+	tpm_tis@90000 {
+				compatible = "atmel,at97sc3204", "tcg,tpm-tis-mmio";
+				reg = <0x90000 0x5000>;
+			};
diff --git a/drivers/char/tpm/Kconfig b/drivers/char/tpm/Kconfig
index 9faa0b1e7766..277186d3b668 100644
--- a/drivers/char/tpm/Kconfig
+++ b/drivers/char/tpm/Kconfig
@@ -32,7 +32,7 @@ config TCG_TIS_CORE
 
 config TCG_TIS
 	tristate "TPM Interface Specification 1.2 Interface / TPM 2.0 FIFO Interface"
-	depends on X86
+	depends on X86 || OF
 	select TCG_TIS_CORE
 	---help---
 	  If you have a TPM security chip that is compliant with the
diff --git a/drivers/char/tpm/tpm_tis.c b/drivers/char/tpm/tpm_tis.c
index eaf5730d79eb..0127af130cb1 100644
--- a/drivers/char/tpm/tpm_tis.c
+++ b/drivers/char/tpm/tpm_tis.c
@@ -28,6 +28,8 @@
 #include <linux/wait.h>
 #include <linux/acpi.h>
 #include <linux/freezer.h>
+#include <linux/of.h>
+#include <linux/of_device.h>
 #include "tpm.h"
 #include "tpm_tis_core.h"
 
@@ -354,12 +356,21 @@ static int tpm_tis_plat_remove(struct platform_device *pdev)
 	return 0;
 }
 
+#ifdef CONFIG_OF
+static const struct of_device_id tis_of_platform_match[] = {
+	{.compatible = "tcg,tpm-tis-mmio"},
+	{},
+};
+MODULE_DEVICE_TABLE(of, tis_of_platform_match);
+#endif
+
 static struct platform_driver tis_drv = {
 	.probe = tpm_tis_plat_probe,
 	.remove = tpm_tis_plat_remove,
 	.driver = {
 		.name		= "tpm_tis",
 		.pm		= &tpm_tis_pm,
+		.of_match_table = of_match_ptr(tis_of_platform_match),
 	},
 };
 
-- 
2.1.4

--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH v2] tpm_tis: Allow tpm_tis to be bound using DT
       [not found] ` <20161026170437.GB13461-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
@ 2016-10-31  4:26   ` Rob Herring
  2016-11-04  4:26   ` Jarkko Sakkinen
  1 sibling, 0 replies; 4+ messages in thread
From: Rob Herring @ 2016-10-31  4:26 UTC (permalink / raw)
  To: Jason Gunthorpe
  Cc: Mark Rutland, devicetree-u79uwXL29TY76Z2rM5mHXA,
	tpmdd-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f

On Wed, Oct 26, 2016 at 11:04:37AM -0600, Jason Gunthorpe wrote:
> This provides an open firwmare driver binding for tpm_tis. OF
> is useful on arches where ACPI/PNP is not used.
> 
> The tcg,tpm-tis-mmio register map interface is specified by the TCG.
> 
> Signed-off-by: Jason Gunthorpe <jgunthorpe-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
> ---
>  .../bindings/security/tpm/tpm_tis_mmio.txt         | 23 ++++++++++++++++++++++
>  drivers/char/tpm/Kconfig                           |  2 +-
>  drivers/char/tpm/tpm_tis.c                         | 11 +++++++++++
>  3 files changed, 35 insertions(+), 1 deletion(-)
>  create mode 100644 Documentation/devicetree/bindings/security/tpm/tpm_tis_mmio.txt
> 
> v2 (from Mark)
>  - Change name to tpm-tis-mmio (and fix c&p spi)
>  - Include some valid chip names
> 
> diff --git a/Documentation/devicetree/bindings/security/tpm/tpm_tis_mmio.txt b/Documentation/devicetree/bindings/security/tpm/tpm_tis_mmio.txt
> new file mode 100644
> index 000000000000..f9a853165cd0
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/security/tpm/tpm_tis_mmio.txt
> @@ -0,0 +1,23 @@
> +Trusted Computing Group MMIO Trusted Platform Module
> +
> +The TCG defines multi vendor standard for accessing a TPM chip, this
> +is the standard protocol defined to access the TPM via MMIO. Typically
> +this interface will be implemented over Intel's LPC bus.
> +
> +Refer to the 'TCG PC Client Specific TPM Interface Specification (TIS)' TCG
> +publication for the specification.
> +
> +Required properties:
> +
> +- compatible: should contain a string below for the chip, followed by
> +              "tcg,tpm-tis-mmio". Valid chip strings are:
> +	          * "atmel,at97sc3204"
> +- reg: The location of the MMIO registers, should be at least 0x5000 bytes
> +- interrupt: An optional intzerrupt indicating command completion.

s/interrupt/interrupts/

> +
> +Example:
> +
> +	tpm_tis@90000 {
> +				compatible = "atmel,at97sc3204", "tcg,tpm-tis-mmio";
> +				reg = <0x90000 0x5000>;

Missing the required interrupts property.

> +			};

The indentation here is off, otherwise:

Rob

------------------------------------------------------------------------------
The Command Line: Reinvented for Modern Developers
Did the resurgence of CLI tooling catch you by surprise?
Reconnect with the command line and become more productive. 
Learn the new .NET and ASP.NET CLI. Get your free copy!
http://sdm.link/telerik

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH v2] tpm_tis: Allow tpm_tis to be bound using DT
       [not found] ` <20161026170437.GB13461-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
  2016-10-31  4:26   ` Rob Herring
@ 2016-11-04  4:26   ` Jarkko Sakkinen
       [not found]     ` <20161104042658.oaqd5cvrejdd7azb-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
  1 sibling, 1 reply; 4+ messages in thread
From: Jarkko Sakkinen @ 2016-11-04  4:26 UTC (permalink / raw)
  To: Jason Gunthorpe
  Cc: Mark Rutland, Rob Herring, devicetree-u79uwXL29TY76Z2rM5mHXA,
	tpmdd-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f

On Wed, Oct 26, 2016 at 11:04:37AM -0600, Jason Gunthorpe wrote:
> This provides an open firwmare driver binding for tpm_tis. OF
> is useful on arches where ACPI/PNP is not used.
> 
> The tcg,tpm-tis-mmio register map interface is specified by the TCG.
> 
> Signed-off-by: Jason Gunthorpe <jgunthorpe-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>

Reviewed-by: Jarkko Sakkinen <jarkko.sakkinen-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>

/Jarkko

> ---
>  .../bindings/security/tpm/tpm_tis_mmio.txt         | 23 ++++++++++++++++++++++
>  drivers/char/tpm/Kconfig                           |  2 +-
>  drivers/char/tpm/tpm_tis.c                         | 11 +++++++++++
>  3 files changed, 35 insertions(+), 1 deletion(-)
>  create mode 100644 Documentation/devicetree/bindings/security/tpm/tpm_tis_mmio.txt
> 
> v2 (from Mark)
>  - Change name to tpm-tis-mmio (and fix c&p spi)
>  - Include some valid chip names
> 
> diff --git a/Documentation/devicetree/bindings/security/tpm/tpm_tis_mmio.txt b/Documentation/devicetree/bindings/security/tpm/tpm_tis_mmio.txt
> new file mode 100644
> index 000000000000..f9a853165cd0
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/security/tpm/tpm_tis_mmio.txt
> @@ -0,0 +1,23 @@
> +Trusted Computing Group MMIO Trusted Platform Module
> +
> +The TCG defines multi vendor standard for accessing a TPM chip, this
> +is the standard protocol defined to access the TPM via MMIO. Typically
> +this interface will be implemented over Intel's LPC bus.
> +
> +Refer to the 'TCG PC Client Specific TPM Interface Specification (TIS)' TCG
> +publication for the specification.
> +
> +Required properties:
> +
> +- compatible: should contain a string below for the chip, followed by
> +              "tcg,tpm-tis-mmio". Valid chip strings are:
> +	          * "atmel,at97sc3204"
> +- reg: The location of the MMIO registers, should be at least 0x5000 bytes
> +- interrupt: An optional interrupt indicating command completion.
> +
> +Example:
> +
> +	tpm_tis@90000 {
> +				compatible = "atmel,at97sc3204", "tcg,tpm-tis-mmio";
> +				reg = <0x90000 0x5000>;
> +			};
> diff --git a/drivers/char/tpm/Kconfig b/drivers/char/tpm/Kconfig
> index 9faa0b1e7766..277186d3b668 100644
> --- a/drivers/char/tpm/Kconfig
> +++ b/drivers/char/tpm/Kconfig
> @@ -32,7 +32,7 @@ config TCG_TIS_CORE
>  
>  config TCG_TIS
>  	tristate "TPM Interface Specification 1.2 Interface / TPM 2.0 FIFO Interface"
> -	depends on X86
> +	depends on X86 || OF
>  	select TCG_TIS_CORE
>  	---help---
>  	  If you have a TPM security chip that is compliant with the
> diff --git a/drivers/char/tpm/tpm_tis.c b/drivers/char/tpm/tpm_tis.c
> index eaf5730d79eb..0127af130cb1 100644
> --- a/drivers/char/tpm/tpm_tis.c
> +++ b/drivers/char/tpm/tpm_tis.c
> @@ -28,6 +28,8 @@
>  #include <linux/wait.h>
>  #include <linux/acpi.h>
>  #include <linux/freezer.h>
> +#include <linux/of.h>
> +#include <linux/of_device.h>
>  #include "tpm.h"
>  #include "tpm_tis_core.h"
>  
> @@ -354,12 +356,21 @@ static int tpm_tis_plat_remove(struct platform_device *pdev)
>  	return 0;
>  }
>  
> +#ifdef CONFIG_OF
> +static const struct of_device_id tis_of_platform_match[] = {
> +	{.compatible = "tcg,tpm-tis-mmio"},
> +	{},
> +};
> +MODULE_DEVICE_TABLE(of, tis_of_platform_match);
> +#endif
> +
>  static struct platform_driver tis_drv = {
>  	.probe = tpm_tis_plat_probe,
>  	.remove = tpm_tis_plat_remove,
>  	.driver = {
>  		.name		= "tpm_tis",
>  		.pm		= &tpm_tis_pm,
> +		.of_match_table = of_match_ptr(tis_of_platform_match),
>  	},
>  };
>  
> -- 
> 2.1.4
> 
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH v2] tpm_tis: Allow tpm_tis to be bound using DT
       [not found]     ` <20161104042658.oaqd5cvrejdd7azb-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
@ 2016-11-04  6:57       ` Jarkko Sakkinen
  0 siblings, 0 replies; 4+ messages in thread
From: Jarkko Sakkinen @ 2016-11-04  6:57 UTC (permalink / raw)
  To: Jason Gunthorpe
  Cc: Mark Rutland, Rob Herring, devicetree-u79uwXL29TY76Z2rM5mHXA,
	tpmdd-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f

On Thu, Nov 03, 2016 at 10:26:58PM -0600, Jarkko Sakkinen wrote:
> On Wed, Oct 26, 2016 at 11:04:37AM -0600, Jason Gunthorpe wrote:
> > This provides an open firwmare driver binding for tpm_tis. OF
> > is useful on arches where ACPI/PNP is not used.
> > 
> > The tcg,tpm-tis-mmio register map interface is specified by the TCG.
> > 
> > Signed-off-by: Jason Gunthorpe <jgunthorpe-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
> 
> Reviewed-by: Jarkko Sakkinen <jarkko.sakkinen-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>

Oops. Didn't notice Robs comments. Would you mind rolling one more
version? Thanks and sorry.

/Jarkko

> 
> /Jarkko
> 
> > ---
> >  .../bindings/security/tpm/tpm_tis_mmio.txt         | 23 ++++++++++++++++++++++
> >  drivers/char/tpm/Kconfig                           |  2 +-
> >  drivers/char/tpm/tpm_tis.c                         | 11 +++++++++++
> >  3 files changed, 35 insertions(+), 1 deletion(-)
> >  create mode 100644 Documentation/devicetree/bindings/security/tpm/tpm_tis_mmio.txt
> > 
> > v2 (from Mark)
> >  - Change name to tpm-tis-mmio (and fix c&p spi)
> >  - Include some valid chip names
> > 
> > diff --git a/Documentation/devicetree/bindings/security/tpm/tpm_tis_mmio.txt b/Documentation/devicetree/bindings/security/tpm/tpm_tis_mmio.txt
> > new file mode 100644
> > index 000000000000..f9a853165cd0
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/security/tpm/tpm_tis_mmio.txt
> > @@ -0,0 +1,23 @@
> > +Trusted Computing Group MMIO Trusted Platform Module
> > +
> > +The TCG defines multi vendor standard for accessing a TPM chip, this
> > +is the standard protocol defined to access the TPM via MMIO. Typically
> > +this interface will be implemented over Intel's LPC bus.
> > +
> > +Refer to the 'TCG PC Client Specific TPM Interface Specification (TIS)' TCG
> > +publication for the specification.
> > +
> > +Required properties:
> > +
> > +- compatible: should contain a string below for the chip, followed by
> > +              "tcg,tpm-tis-mmio". Valid chip strings are:
> > +	          * "atmel,at97sc3204"
> > +- reg: The location of the MMIO registers, should be at least 0x5000 bytes
> > +- interrupt: An optional interrupt indicating command completion.
> > +
> > +Example:
> > +
> > +	tpm_tis@90000 {
> > +				compatible = "atmel,at97sc3204", "tcg,tpm-tis-mmio";
> > +				reg = <0x90000 0x5000>;
> > +			};
> > diff --git a/drivers/char/tpm/Kconfig b/drivers/char/tpm/Kconfig
> > index 9faa0b1e7766..277186d3b668 100644
> > --- a/drivers/char/tpm/Kconfig
> > +++ b/drivers/char/tpm/Kconfig
> > @@ -32,7 +32,7 @@ config TCG_TIS_CORE
> >  
> >  config TCG_TIS
> >  	tristate "TPM Interface Specification 1.2 Interface / TPM 2.0 FIFO Interface"
> > -	depends on X86
> > +	depends on X86 || OF
> >  	select TCG_TIS_CORE
> >  	---help---
> >  	  If you have a TPM security chip that is compliant with the
> > diff --git a/drivers/char/tpm/tpm_tis.c b/drivers/char/tpm/tpm_tis.c
> > index eaf5730d79eb..0127af130cb1 100644
> > --- a/drivers/char/tpm/tpm_tis.c
> > +++ b/drivers/char/tpm/tpm_tis.c
> > @@ -28,6 +28,8 @@
> >  #include <linux/wait.h>
> >  #include <linux/acpi.h>
> >  #include <linux/freezer.h>
> > +#include <linux/of.h>
> > +#include <linux/of_device.h>
> >  #include "tpm.h"
> >  #include "tpm_tis_core.h"
> >  
> > @@ -354,12 +356,21 @@ static int tpm_tis_plat_remove(struct platform_device *pdev)
> >  	return 0;
> >  }
> >  
> > +#ifdef CONFIG_OF
> > +static const struct of_device_id tis_of_platform_match[] = {
> > +	{.compatible = "tcg,tpm-tis-mmio"},
> > +	{},
> > +};
> > +MODULE_DEVICE_TABLE(of, tis_of_platform_match);
> > +#endif
> > +
> >  static struct platform_driver tis_drv = {
> >  	.probe = tpm_tis_plat_probe,
> >  	.remove = tpm_tis_plat_remove,
> >  	.driver = {
> >  		.name		= "tpm_tis",
> >  		.pm		= &tpm_tis_pm,
> > +		.of_match_table = of_match_ptr(tis_of_platform_match),
> >  	},
> >  };
> >  
> > -- 
> > 2.1.4
> > 
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2016-11-04  6:57 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-10-26 17:04 [PATCH v2] tpm_tis: Allow tpm_tis to be bound using DT Jason Gunthorpe
     [not found] ` <20161026170437.GB13461-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2016-10-31  4:26   ` Rob Herring
2016-11-04  4:26   ` Jarkko Sakkinen
     [not found]     ` <20161104042658.oaqd5cvrejdd7azb-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2016-11-04  6:57       ` Jarkko Sakkinen

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.