[PATCHv2] drivers: tpm2: update reset gpio semantics

Michal Simek michal.simek at xilinx.com
Tue Jun 1 12:20:05 CEST 2021



On 6/1/21 9:35 AM, Jorge Ramirez-Ortiz, Foundries wrote:
> On 01/06/21, Michal Simek wrote:
>>
>>
>> On 6/1/21 8:09 AM, Jorge Ramirez-Ortiz wrote:
>>> Use the more generic reset-gpios propery name.
>>>
>>> Signed-off-by: Jorge Ramirez-Ortiz <jorge at foundries.io>
>>> ---
>>>   v2: kept gpio-reset as legacy
>>>
>>>  .../tpm2/tis-tpm2-spi.txt                     |  2 +-
>>>  drivers/tpm/tpm2_tis_spi.c                    | 21 ++++++++++++-------
>>>  2 files changed, 14 insertions(+), 9 deletions(-)
>>>
>>> diff --git a/doc/device-tree-bindings/tpm2/tis-tpm2-spi.txt b/doc/device-tree-bindings/tpm2/tis-tpm2-spi.txt
>>> index 3a2ee4bd17..bbcd12950f 100644
>>> --- a/doc/device-tree-bindings/tpm2/tis-tpm2-spi.txt
>>> +++ b/doc/device-tree-bindings/tpm2/tis-tpm2-spi.txt
>>> @@ -6,7 +6,7 @@ Required properties:
>>>  - reg			: SPI Chip select
>>>  
>>>  Optional properties:
>>> -- gpio-reset		: Reset GPIO (if not connected to the SoC reset line)
>>
>> As I said you shouldn't remove this. Just extend description that it is
>> deprecated and reset-gpios should be used instead.
> 
> I dont really agree with that. IMO we should remove the documentation
> since it is obsolete after this commit and anyone reading it should
> not care about the gpio-reset property.

Run this on linux kernel and you will see that normal style is to keep
it there.
git grep deprecated Documentation/devicetree/bindings

> 
>>
>>> +- reset-gpios		: Reset GPIO (if not connected to the SoC reset line)
>>>  - spi-max-frequency	: See spi-bus.txt
>>>  
>>>  Example:
>>> diff --git a/drivers/tpm/tpm2_tis_spi.c b/drivers/tpm/tpm2_tis_spi.c
>>> index 4b33ac8fd3..1f9f89f68f 100644
>>> --- a/drivers/tpm/tpm2_tis_spi.c
>>> +++ b/drivers/tpm/tpm2_tis_spi.c
>>> @@ -589,18 +589,23 @@ static int tpm_tis_spi_probe(struct udevice *dev)
>>>  	if (CONFIG_IS_ENABLED(DM_GPIO)) {
>>>  		struct gpio_desc reset_gpio;
>>>  
>>> -		ret = gpio_request_by_name(dev, "gpio-reset", 0,
>>> +		ret = gpio_request_by_name(dev, "reset-gpios", 0,
>>>  					   &reset_gpio, GPIOD_IS_OUT);
>>>  		if (ret) {
>>> -			log(LOGC_NONE, LOGL_NOTICE, "%s: missing reset GPIO\n",
>>> -			    __func__);
>>> -		} else {
>>> -			dm_gpio_set_value(&reset_gpio, 1);
>>> -			mdelay(1);
>>> -			dm_gpio_set_value(&reset_gpio, 0);
>>> +			/* legacy reset */
>>> +			ret = gpio_request_by_name(dev, "gpio-reset", 0,
>>> +						   &reset_gpio, GPIOD_IS_OUT);
>>> +			if (ret) {
>>> +				log(LOGC_NONE, LOGL_NOTICE,
>>> +				    "%s: missing reset GPIO\n",  __func__);
>>> +				goto init;
>>> +			}
>>
>> And here it is clear that gpio-reset is used which should deprecated
>> that's why you should print message about it here.
> 
> yes, I can do that. makes sense
> 
>>
>>
>>>  		}
>>> +		dm_gpio_set_value(&reset_gpio, 1);
>>> +		mdelay(1);
>>> +		dm_gpio_set_value(&reset_gpio, 0);
>>>  	}
>>
>> What about this to remove that goto?
> 
> um, what is the problem with the goto (IMO tidier than yet another
> conditional); it is not as if this goto is making the code obscure.
> 
> with the change below you just removed previous functionality
> (ie indicating that there is no GPIO reset provided, hence why at
> first sight might look cleaner than a goto)

I tend to use goto unless there is no way around. But up2you.

M



More information about the U-Boot mailing list