Re: [PATCH v5 5/5] mfd: max77541: Add ADI MAX77541/MAX77540 PMIC Support
From: Andy Shevchenko
Date: Tue Feb 21 2023 - 07:17:49 EST
On Tue, Feb 21, 2023 at 01:39:13PM +0300, Okan Sahin wrote:
> MFD driver for MAX77541/MAX77540 to enable its sub
> devices.
>
> The MAX77541 is a multi-function devices. It includes
> buck converter and ADC.
>
> The MAX77540 is a high-efficiency buck converter
> with two 3A switching phases.
>
> They have same regmap except for ADC part of MAX77541.
Extra space in the Subject.
...
> +#include <linux/of_device.h>
Why?
...
> +static const struct regmap_config max77541_regmap_config = {
> + .reg_bits = 8,
> + .val_bits = 8,
Do you need lock of regmap?
> +};
...
> +static const struct mfd_cell max77540_devs[] = {
> + MFD_CELL_OF("max77540-regulator", NULL, NULL, 0, 0,
> + NULL),
Perfectly one line.
> +};
> +static const struct mfd_cell max77541_devs[] = {
> + MFD_CELL_OF("max77541-regulator", NULL, NULL, 0, 0,
> + NULL),
> + MFD_CELL_OF("max77541-adc", NULL, NULL, 0, 0,
> + NULL),
Ditto.
> +};
...
> + if (max77541->chip->id == MAX77541) {
> + ret = devm_regmap_add_irq_chip(dev, max77541->regmap, irq,
> + IRQF_ONESHOT | IRQF_SHARED, 0,
> + &max77541_adc_irq_chip,
> + &max77541->irq_adc);
> + if (ret)
> + return ret;
> + }
> + return ret;
return 0;
...
> +static const struct i2c_device_id max77541_i2c_id[];
What for?
...
> + if (dev->of_node)
> + max77541->chip = of_device_get_match_data(dev);
> + else
> + max77541->chip = (struct chip_info *)
> + i2c_match_id(max77541_i2c_id,
> + client)->driver_data;
Oh. Please use
const struct i2c_device_id *id = i2c_client_get_device_id(client);
...
max77541->chip = device_get_match_data(dev); // needs property.h
if (!max77541->chip)
max77541->chip = (struct chip_info *)id->driver_data;
> + if (!max77541->chip)
> + return -EINVAL;
...
> +#ifndef __MAX77541_MFD_H__
> +#define __MAX77541_MFD_H__
Can we go towards consistency in this?
Seems to me the most used patter so far is
#ifndef __LINUX_MFD_MAX77541_H
--
With Best Regards,
Andy Shevchenko