All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jarkko Sakkinen <jarkko.sakkinen-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
To: Christophe Ricard
	<christophe.ricard-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Cc: jean-luc.blanc-qxv4g6HH51o@public.gmane.org,
	ashley-fm2HMyfA2y6tG0bUXCXiUA@public.gmane.org,
	tpmdd-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org,
	christophe-h.ricard-qxv4g6HH51o@public.gmane.org,
	benoit.houyere-qxv4g6HH51o@public.gmane.org
Subject: Re: [PATCH 10/12] tpm: st33zp24: Add support for acpi probing for spi device.
Date: Thu, 11 Feb 2016 16:29:50 +0200	[thread overview]
Message-ID: <20160211142950.GG4231@intel.com> (raw)
In-Reply-To: <1455010021-21927-11-git-send-email-christophe-h.ricard-qxv4g6HH51o@public.gmane.org>

On Tue, Feb 09, 2016 at 10:26:59AM +0100, Christophe Ricard wrote:
> Add support for acpi probing. SMO3324 is used for st33zp24.
> It has been tested with the following acpi node on Minnowboard:
> 
> Device (TPM1)
> {
> 	Name (_ADR, Zero)  // _ADR: Address
> 	Name (_HID, "SMO3324")  // _HID: Hardware ID
> 	Name (_CID, "SMO3324")  // _CID: Compatible ID
> 	Name (_DDN, "SMO TPM")  // _DDN: DOS Device Name
> 	Name (_UID, One)  // _UID: Unique ID
> 	Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
> 	{
> 		Name (SBUF, ResourceTemplate ()
> 		{
> 			SpiSerialBus (0, PolarityLow, FourWireMode, 8,
> 				      ControllerInitiated, 10000000, ClockPolarityLow,
> 				      ClockPhaseFirst, "\\_SB.SPI1",
> 				      0x00, ResourceConsumer, ,)
> 			GpioInt (Edge, ActiveHigh, ExclusiveAndWake, PullNone, 0x0000,
> 				 "\\_SB.GPO2", 0x00, ResourceConsumer, ,)
> 			{       // Pin list
> 				0x0001
> 			}
> 			GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
> 				"\\_SB.GPO2", 0x00, ResourceConsumer, ,)
> 			{       // Pin list
> 				0x0002,
> 			}
> 		})
> 		Return (SBUF) /* \_SB_.SPI1.TPM1._CRS.SBUF */
> 	}
> 	Method (_STA, 0, NotSerialized)  // _STA: Status
> 	{
> 		Return (0x0F)
> 	}
> }
> 
> Signed-off-by: Christophe Ricard <christophe-h.ricard-qxv4g6HH51o@public.gmane.org>

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

/Jarkko

> ---
>  drivers/char/tpm/st33zp24/spi.c | 50 +++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 50 insertions(+)
> 
> diff --git a/drivers/char/tpm/st33zp24/spi.c b/drivers/char/tpm/st33zp24/spi.c
> index 34cdee1..b9b74ae 100644
> --- a/drivers/char/tpm/st33zp24/spi.c
> +++ b/drivers/char/tpm/st33zp24/spi.c
> @@ -19,8 +19,10 @@
>  #include <linux/module.h>
>  #include <linux/spi/spi.h>
>  #include <linux/gpio.h>
> +#include <linux/gpio/consumer.h>
>  #include <linux/of_irq.h>
>  #include <linux/of_gpio.h>
> +#include <linux/acpi.h>
>  #include <linux/tpm.h>
>  #include <linux/platform_data/st33zp24.h>
>  
> @@ -226,6 +228,43 @@ static const struct st33zp24_phy_ops spi_phy_ops = {
>  	.recv = st33zp24_spi_recv,
>  };
>  
> +static int st33zp24_spi_acpi_request_resources(struct st33zp24_i2c_phy *phy)
> +{
> +	struct spi_device *spi_dev = phy->spi_device;
> +	const struct acpi_device_id *id;
> +	struct gpio_desc *gpiod_lpcpd;
> +	struct device *dev;
> +
> +	if (!spi_dev)
> +		return -EINVAL;
> +
> +	dev = &spi_dev->dev;
> +
> +	/* Match the struct device against a given list of ACPI IDs */
> +	id = acpi_match_device(dev->driver->acpi_match_table, dev);
> +	if (!id)
> +		return -ENODEV;
> +
> +	/* Get LPCPD GPIO from ACPI */
> +	gpiod_lpcpd = devm_gpiod_get_index(dev, "TPM IO LPCPD", 1,
> +					   GPIOD_OUT_HIGH);
> +	if (IS_ERR(gpiod_lpcpd)) {
> +		dev_err(&client->dev,
> +			"Failed to retrieve lpcpd-gpios from acpi.\n");
> +		phy->io_lpcpd = -1;
> +		/*
> +		 * lpcpd pin is not specified. This is not an issue as
> +		 * power management can be also managed by TPM specific
> +		 * commands. So leave with a success status code.
> +		 */
> +		return 0;
> +	}
> +
> +	phy->io_lpcpd = desc_to_gpio(gpiod_lpcpd);
> +
> +	return 0;
> +}
> +
>  static int st33zp24_spi_of_request_resources(struct st33zp24_spi_phy *phy)
>  {
>  	struct device_node *pp;
> @@ -327,6 +366,10 @@ static int st33zp24_spi_probe(struct spi_device *dev)
>  		ret = st33zp24_spi_request_resources(dev, phy);
>  		if (ret)
>  			return ret;
> +	} else if (ACPI_HANDLE(&dev->dev)) {
> +		ret = st33zp24_spi_acpi_request_resources(phy);
> +		if (ret)
> +			return ret;
>  	}
>  
>  	phy->latency = st33zp24_spi_evaluate_latency(phy);
> @@ -361,6 +404,12 @@ static const struct of_device_id of_st33zp24_spi_match[] = {
>  };
>  MODULE_DEVICE_TABLE(of, of_st33zp24_spi_match);
>  
> +static const struct acpi_device_id st33zp24_spi_acpi_match[] = {
> +	{"SMO3324"},
> +	{}
> +};
> +MODULE_DEVICE_TABLE(acpi, st33zp24_spi_acpi_match);
> +
>  static SIMPLE_DEV_PM_OPS(st33zp24_spi_ops, st33zp24_pm_suspend,
>  			 st33zp24_pm_resume);
>  
> @@ -369,6 +418,7 @@ static struct spi_driver st33zp24_spi_driver = {
>  		.name = TPM_ST33_SPI,
>  		.pm = &st33zp24_spi_ops,
>  		.of_match_table = of_match_ptr(of_st33zp24_spi_match),
> +		.acpi_match_table = ACPI_PTR(st33zp24_spi_acpi_match),
>  	},
>  	.probe = st33zp24_spi_probe,
>  	.remove = st33zp24_spi_remove,
> -- 
> 2.5.0
> 

------------------------------------------------------------------------------
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140

  parent reply	other threads:[~2016-02-11 14:29 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-02-09  9:26 [PATCH 00/12] tpm/st33zp24: Few code style and sanity fixes + acpi device probing support Christophe Ricard
     [not found] ` <1455010021-21927-1-git-send-email-christophe-h.ricard-qxv4g6HH51o@public.gmane.org>
2016-02-09  9:26   ` [PATCH 01/12] tpm/st33zp24/spi: Remove nbr_dummy_bytes variable usage Christophe Ricard
     [not found]     ` <1455010021-21927-2-git-send-email-christophe-h.ricard-qxv4g6HH51o@public.gmane.org>
2016-02-11 13:48       ` Jarkko Sakkinen
2016-02-09  9:26   ` [PATCH 02/12] tpm/st33zp24/spi: Use functions name with st33zp24_spi_ prefix Christophe Ricard
     [not found]     ` <1455010021-21927-3-git-send-email-christophe-h.ricard-qxv4g6HH51o@public.gmane.org>
2016-02-11 13:50       ` Jarkko Sakkinen
2016-02-09  9:26   ` [PATCH 03/12] tpm/st33zp24/spi: Remove useless use of memcpy Christophe Ricard
     [not found]     ` <1455010021-21927-4-git-send-email-christophe-h.ricard-qxv4g6HH51o@public.gmane.org>
2016-02-11 13:54       ` Jarkko Sakkinen
2016-02-09  9:26   ` [PATCH 04/12] tpm/st33zp24/spi: Remove field spi_xfer from st33zp24_spi_phy structure Christophe Ricard
     [not found]     ` <1455010021-21927-5-git-send-email-christophe-h.ricard-qxv4g6HH51o@public.gmane.org>
2016-02-11 14:06       ` Jarkko Sakkinen
2016-02-09  9:26   ` [PATCH 05/12] tpm/st33zp24: Remove unneeded CONFIG_OF switches Christophe Ricard
     [not found]     ` <1455010021-21927-6-git-send-email-christophe-h.ricard-qxv4g6HH51o@public.gmane.org>
2016-02-11 14:10       ` Jarkko Sakkinen
2016-02-09  9:26   ` [PATCH 06/12] tpm/st33zp24: Auto-select core module Christophe Ricard
     [not found]     ` <1455010021-21927-7-git-send-email-christophe-h.ricard-qxv4g6HH51o@public.gmane.org>
2016-02-11 14:18       ` Jarkko Sakkinen
2016-02-09  9:26   ` [PATCH 07/12] tpm/st33zp24/spi: Improve st33zp24_spi_evaluate_latency Christophe Ricard
     [not found]     ` <1455010021-21927-8-git-send-email-christophe-h.ricard-qxv4g6HH51o@public.gmane.org>
2016-02-11 14:22       ` Jarkko Sakkinen
2016-02-09  9:26   ` [PATCH 08/12] tpm/st33zp24: Extend Copyright headers Christophe Ricard
     [not found]     ` <1455010021-21927-9-git-send-email-christophe-h.ricard-qxv4g6HH51o@public.gmane.org>
2016-02-11 14:22       ` Jarkko Sakkinen
2016-02-09  9:26   ` [PATCH 09/12] tpm/st33zp24: Add support for acpi probing for i2c device Christophe Ricard
     [not found]     ` <1455010021-21927-10-git-send-email-christophe-h.ricard-qxv4g6HH51o@public.gmane.org>
2016-02-11 14:28       ` Jarkko Sakkinen
2016-02-09  9:26   ` [PATCH 10/12] tpm: st33zp24: Add support for acpi probing for spi device Christophe Ricard
     [not found]     ` <1455010021-21927-11-git-send-email-christophe-h.ricard-qxv4g6HH51o@public.gmane.org>
2016-02-11 14:29       ` Jarkko Sakkinen [this message]
2016-02-09  9:27   ` [PATCH 11/12] tpm/st33zp24/i2c: Change xxx_request_resources header Christophe Ricard
     [not found]     ` <1455010021-21927-12-git-send-email-christophe-h.ricard-qxv4g6HH51o@public.gmane.org>
2016-02-11 14:36       ` Jarkko Sakkinen
2016-02-09  9:27   ` [PATCH 12/12] tpm/st33zp24/spi: " Christophe Ricard
     [not found]     ` <1455010021-21927-13-git-send-email-christophe-h.ricard-qxv4g6HH51o@public.gmane.org>
2016-02-11 14:44       ` Jarkko Sakkinen
2016-02-14  9:11   ` [PATCH 00/12] tpm/st33zp24: Few code style and sanity fixes + acpi device probing support Jarkko Sakkinen
     [not found]     ` <20160214091106.GA18761-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2016-02-14  9:41       ` Christophe Ricard
2016-02-18  7:12       ` Christophe Ricard
     [not found]         ` <56C56EED.1070801-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2016-02-18 14:46           ` Jarkko Sakkinen
     [not found]             ` <20160218144651.GA8472-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2016-02-18 21:03               ` Christophe Ricard
     [not found]                 ` <56C631A7.5040604-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2016-02-19 15:03                   ` Jarkko Sakkinen

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=20160211142950.GG4231@intel.com \
    --to=jarkko.sakkinen-vuqaysv1563yd54fqh9/ca@public.gmane.org \
    --cc=ashley-fm2HMyfA2y6tG0bUXCXiUA@public.gmane.org \
    --cc=benoit.houyere-qxv4g6HH51o@public.gmane.org \
    --cc=christophe-h.ricard-qxv4g6HH51o@public.gmane.org \
    --cc=christophe.ricard-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
    --cc=jean-luc.blanc-qxv4g6HH51o@public.gmane.org \
    --cc=tpmdd-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org \
    /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.