Thread (34 messages) 34 messages, 8 authors, 2023-02-01

RE: [PATCH v3 3/5] drivers: regulator: Add ADI MAX77541/MAX77540 Regulator Support

From: Sahin, Okan <hidden>
Date: 2023-01-31 09:28:28
Also in: linux-iio, lkml

Hi Andy,

Sorry for second question. I do not want to bother you, but I realized that I need to be sure about driver_data before sending new patch. You said that you need to use pointers directly for driver_data then I fixed that part in mfd, but I do not need or  use driver_data in regulator since chip_id comes from mfd device so I think using like below should be enough for my implementation.

static const struct platform_device_id max77541_regulator_platform_id[] = {
	{ "max77540-regulator", },
	{ "max77541-regulator", },
	{  /* sentinel */  }
};
MODULE_DEVICE_TABLE(platform, max77541_regulator_platform_id);

static const struct of_device_id max77541_regulator_of_id[] = {
	{ .compatible = "adi,max77540-regulator", },
	{ .compatible = "adi,max77541-regulator", },
	{ /* sentinel */  }
};
MODULE_DEVICE_TABLE(of, max77541_regulator_of_id);

What do you think?

On Tue, Jan 31, 2023 at 10:21 AM +0300, Okan Sahin wrote:
Hi Andy,

Thank you for your feedback and efforts. I have a question below.

On Wed, 18 Jan 2022 11:20 AM
Andy Shevchenko [off-list ref] wrote:
quoted
On Wed, Jan 18, 2023 at 09:38:10AM +0300, Okan Sahin wrote:
quoted
Regulator driver for both MAX77541 and MAX77540.
The MAX77541 is a high-efficiency step-down converter with two 3A
switching phases for single-cell Li+ battery and 5VDC systems.

The MAX77540 is a high-efficiency step-down converter with two 3A
switching phases.
...
quoted
+ * Copyright (c) 2022 Analog Devices, Inc.
Happy New Year!

...
quoted
+static int max77541_regulator_probe(struct platform_device *pdev) {
+	struct max77541 *max77541 = dev_get_drvdata(pdev->dev.parent);
+	struct regulator_config config = {};
+	const struct regulator_desc *desc;
+	struct device *dev = &pdev->dev;
You may rearrange this a bit

struct max77541 *max77541 = dev_get_drvdata(dev->parent);
quoted
+	struct regulator_dev *rdev;
+	int i;
quoted
+	config.dev = pdev->dev.parent;
dev->parent
quoted
+
+	if (max77541->id == MAX77540)
+		desc = max77540_regulators_desc;
+	else if (max77541->id == MAX77541)
+		desc = max77541_regulators_desc;
+	else
+		return -EINVAL;
+
+	for (i = 0; i < MAX77541_MAX_REGULATORS; i++) {
quoted
+		rdev = devm_regulator_register(dev,
+					       &desc[i], &config);
This is perfectly one line.
Thank you, I will arrange it.
quoted
quoted
+		if (IS_ERR(rdev))
+			return dev_err_probe(dev, PTR_ERR(rdev),
+					     "Failed to register regulator\n");
+	}
+
+	return 0;
+}
...
However, this one is not fit when I set max-line-length argument as 80 in
checkpatch script. What do you suggest? This line has 99 characters.
quoted
quoted
+static const struct of_device_id max77541_regulator_of_id[] = {
+	{
+		.compatible = "adi,max77540-regulator",
+		.data = (void *)MAX77540,
+	},
+	{
+		.compatible = "adi,max77541-regulator",
+		.data = (void *)MAX77541,
+	},
+	{ /* sentinel */  }
As pointed out, better to use pointers directly.
quoted
+};
--
With Best Regards,
Andy Shevchenko
Regards,
Okan Sahin
Regards,
Okan
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help