Re: [PATCH v2 2/2] gpio: ds4520: Add ADI DS4520 GPIO Expander Support
From: andy . shevchenko
Date: Tue May 02 2023 - 11:55:12 EST
Tue, May 02, 2023 at 02:05:16AM +0300, Okan Sahin kirjoitti:
> The DS4520 is a 9-bit nonvolatile (NV) I/O expander.
> It offers users a digitally programmable alternative
> to hardware jumpers and mechanical switches that are
> being used to control digital logic node.
...
> +#include <linux/device.h>
> +#include <linux/gpio/driver.h>
> +#include <linux/gpio/regmap.h>
> +#include <linux/i2c.h>
Missing property.h.
> +#include <linux/regmap.h>
...
> +#define NUMBER_OF_GPIO 9
> +
> +#define PULLUP0 0xF0
> +#define IO_CONTROL0 0xF2
> +#define IO_STATUS0 0xF8
No namespace for the above?
...
> + struct gpio_regmap_config config = {0};
0 is not needed.
> + ngpio = NUMBER_OF_GPIO;
Do you really need this? Can Device Tree be sufficient here? (We have a
GPIO-wide property for that).
...
> + ret = device_property_read_u32(dev, "reg", &base);
> + if (ret)
> + return -EINVAL;
Why shadowing error?
...
> + regmap = devm_regmap_init_i2c(client, &ds4520_regmap_config);
> + if (IS_ERR(regmap)) {
> + ret = PTR_ERR(regmap);
> + dev_err_probe(dev, ret,
> + "Failed to allocate register map\n");
> + return ret;
return dev_err_probe();
> + }
...
> + config.ngpio = ngpio;
Why do you use temporary variable ngpio and not assign directly here?
--
With Best Regards,
Andy Shevchenko