If there's a direction register, we should also have dat or set registers.
However, we only need one of them, not both.
Fixes: ebe363197e52 ("gpio: add a reusable generic gpio_chip using regmap")
Signed-off-by: Álvaro Fernández Rojas <[email protected]>
---
drivers/gpio/gpio-regmap.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpio/gpio-regmap.c b/drivers/gpio/gpio-regmap.c
index 23b0a8572f53..5a9fca00b5e8 100644
--- a/drivers/gpio/gpio-regmap.c
+++ b/drivers/gpio/gpio-regmap.c
@@ -194,7 +194,7 @@ struct gpio_regmap *gpio_regmap_register(const struct gpio_regmap_config *config
/* if we have a direction register we need both input and output */
if ((config->reg_dir_out_base || config->reg_dir_in_base) &&
- (!config->reg_dat_base || !config->reg_set_base))
+ (!config->reg_dat_base && !config->reg_set_base))
return ERR_PTR(-EINVAL);
/* we don't support having both registers simultaneously for now */
--
2.20.1
Am 2021-03-02 19:06, schrieb Álvaro Fernández Rojas:
> If there's a direction register, we should also have dat or set
> registers.
> However, we only need one of them, not both.
Can you give some more context or an example? If there is a direction
register, we'd need to set and get the value, no?
-michael
> Fixes: ebe363197e52 ("gpio: add a reusable generic gpio_chip using
> regmap")
> Signed-off-by: Álvaro Fernández Rojas <[email protected]>
> ---
> drivers/gpio/gpio-regmap.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/gpio/gpio-regmap.c b/drivers/gpio/gpio-regmap.c
> index 23b0a8572f53..5a9fca00b5e8 100644
> --- a/drivers/gpio/gpio-regmap.c
> +++ b/drivers/gpio/gpio-regmap.c
> @@ -194,7 +194,7 @@ struct gpio_regmap *gpio_regmap_register(const
> struct gpio_regmap_config *config
>
> /* if we have a direction register we need both input and output */
> if ((config->reg_dir_out_base || config->reg_dir_in_base) &&
> - (!config->reg_dat_base || !config->reg_set_base))
> + (!config->reg_dat_base && !config->reg_set_base))
> return ERR_PTR(-EINVAL);
>
> /* we don't support having both registers simultaneously for now */