On Tue, Nov 2, 2021 at 8:28 PM Andy Shevchenko <andy.shevchenko@xxxxxxxxx> wrote: > > On Tue, Nov 2, 2021 at 6:57 PM Robert Marko <robert.marko@xxxxxxxxxx> wrote: > > > > Delta TN48M switch has an onboard Lattice CPLD that is used as a GPIO > > expander. > > > > The CPLD provides 12 pins in total on the TN48M, but on more advanced > > switch models it provides up to 192 pins, so the driver is extendable > > to support more switches. > > ... > > > +static int tn48m_gpio_probe(struct platform_device *pdev) > > +{ > > > + const struct tn48m_gpio_config *gpio_config = NULL; > > + struct gpio_regmap_config config = {0}; > > I don't see a point in assigning these variables. Hi, The NULL one isn't required, but the regmap one is, otherwise the devm_gpio_regmap_register call will return -EINVAL. It will fail here: https://elixir.bootlin.com/linux/latest/source/drivers/gpio/gpio-regmap.c#L209 I see that Michael Walle who did the GPIO regmap uses it as well in the Kontron CPLD driver. Michael, can you shed some light on this? Regards, Robert > > > + struct regmap *regmap; > > + u32 base; > > + int ret; > > + > > + if (!pdev->dev.parent) > > + return -ENODEV; > > + > > + gpio_config = device_get_match_data(&pdev->dev); > > + if (!gpio_config) > > + return -ENODEV; > > + > > + ret = device_property_read_u32(&pdev->dev, "reg", &base); > > + if (ret) > > + return ret; > > + > > + regmap = dev_get_regmap(pdev->dev.parent, NULL); > > + if (!regmap) > > + return -ENODEV; > > > +} > > -- > With Best Regards, > Andy Shevchenko -- Robert Marko Staff Embedded Linux Engineer Sartura Ltd. Lendavska ulica 16a 10000 Zagreb, Croatia Email: robert.marko@xxxxxxxxxx Web: www.sartura.hr