[PATCH 06/15] gpio: sandbox: Rename GPIO dir_flags to flags

Patrick DELAUNAY patrick.delaunay at foss.st.com
Thu Jan 21 10:14:19 CET 2021


Hi Simon,

On 1/15/21 3:04 PM, Simon Glass wrote:
> Adjust the terminology in this driver to reflect that fact that all flags
> are handled, not just direction flags.
>
> Create a new access function to get the full GPIO state, not just the
> direction flags. Drop the static invalid_dir_flags since we can rely on a
> segfault if something is wrong.


If I remember, I add this static vairable  to avoid crash during normal 
pytest....

But it is more the case with the serie, it is better to drop it.


>
> Signed-off-by: Simon Glass <sjg at chromium.org>
> ---
>
>   arch/sandbox/include/asm/gpio.h |  8 ++--
>   drivers/gpio/sandbox.c          | 65 ++++++++++++++++++---------------
>   test/dm/gpio.c                  | 18 ++++-----
>   3 files changed, 49 insertions(+), 42 deletions(-)
>
> diff --git a/arch/sandbox/include/asm/gpio.h b/arch/sandbox/include/asm/gpio.h
> index df4ba4fb5f3..20d78296551 100644
> --- a/arch/sandbox/include/asm/gpio.h
> +++ b/arch/sandbox/include/asm/gpio.h
> @@ -69,17 +69,17 @@ int sandbox_gpio_set_direction(struct udevice *dev, unsigned int offset,
>    * @param offset	GPIO offset within bank
>    * @return dir_flags: bitfield accesses by GPIOD_ defines
>    */
> -ulong sandbox_gpio_get_dir_flags(struct udevice *dev, unsigned int offset);
> +ulong sandbox_gpio_get_flags(struct udevice *dev, unsigned int offset);
>   


(...)

>   
> -/* Access routines for GPIO dir flags */
> -static ulong *get_gpio_dir_flags(struct udevice *dev, unsigned int offset)
> +/* Access routines for GPIO info */
> +static struct gpio_state *get_gpio_state(struct udevice *dev, uint offset)
>   {
>   	struct gpio_dev_priv *uc_priv = dev_get_uclass_priv(dev);
>   	struct gpio_state *state = dev_get_priv(dev);
>   
>   	if (offset >= uc_priv->gpio_count) {
> -		static ulong invalid_dir_flags;
>   		printf("sandbox_gpio: error: invalid gpio %u\n", offset);
> -		return &invalid_dir_flags;
> +		return NULL;
>   	}
>   
> -	return &state[offset].dir_flags;
> +	return &state[offset];
> +}
> +
> +/* Access routines for GPIO dir flags */

/* Access routines for GPIO flags */


> +static ulong *get_gpio_flags(struct udevice *dev, unsigned int offset)
> +{
> +	struct gpio_state *state = get_gpio_state(dev, offset);
> +
> +	if (!state)
> +		return NULL;
> +
> +	return &state->flags;
>   
>   }
>   

(...)

With comment


Reviewed-by: Patrick Delaunay <patrick.delaunay at foss.st.com>

Thanks

Patrick



More information about the U-Boot mailing list