Re: [PATCH v7 02/11] mfd: Add max7360 support

From: Andy Shevchenko
Date: Fri May 02 2025 - 05:13:22 EST


On Thu, May 01, 2025 at 01:59:43PM +0100, Lee Jones wrote:
> On Mon, 28 Apr 2025, mathieu.dubois-briand@xxxxxxxxxxx wrote:
> >
> > Add core driver to support MAX7360 i2c chip, multi function device
> > with keypad, GPIO, PWM, GPO and rotary encoder submodules.

...

> > +static int max7360_probe(struct i2c_client *client)
> > +{
> > + struct device *dev = &client->dev;
> > + struct regmap *regmap;
> > + int ret;
> > +
> > + regmap = devm_regmap_init_i2c(client, &max7360_regmap_config);
> > + if (IS_ERR(regmap))
> > + return dev_err_probe(dev, PTR_ERR(regmap), "Failed to initialise regmap\n");
>
> dev_err_ptr_probe()

Hmm... This one to return an error pointer casted to the needed type. I think
the given code is correct as is.

> > + ret = max7360_reset(regmap);
> > + if (ret)
> > + return dev_err_probe(dev, ret, "Failed to reset device\n");
> > +
> > + /* Get the device out of shutdown mode. */
> > + ret = regmap_write_bits(regmap, MAX7360_REG_GPIOCFG,
> > + MAX7360_GPIO_CFG_GPIO_EN,
> > + MAX7360_GPIO_CFG_GPIO_EN);
> > + if (ret)
> > + return dev_err_probe(dev, ret, "Failed to enable GPIO and PWM module\n");
> > +
> > + ret = max7360_mask_irqs(regmap);
> > + if (ret)
> > + return dev_err_probe(dev, ret, "Could not mask interrupts\n");
> > +
> > + ret = devm_mfd_add_devices(dev, PLATFORM_DEVID_NONE,
> > + max7360_cells, ARRAY_SIZE(max7360_cells),
> > + NULL, 0, NULL);
> > + if (ret)
> > + return dev_err_probe(dev, ret, "Failed to register child devices\n");
> > +
> > + return 0;
> > +}


--
With Best Regards,
Andy Shevchenko