Re: [PATCH v3 4/7] gpio: max7360: Add MAX7360 gpio support
From: Mathieu Dubois-Briand
Date: Wed Feb 12 2025 - 07:57:58 EST
Hi Andy,
Thanks for your review. I've been addressing most of your comments in
this mail and the ones related to regmap-irq. I should be able to send a
new version in a few days.
However I have a few questions regarding some of the points.
On Mon Jan 27, 2025 at 2:07 PM CET, Andy Shevchenko wrote:
> On Mon, Jan 13, 2025 at 01:42:28PM +0100, Mathieu Dubois-Briand wrote:
> > + parent = to_platform_device(pdev->dev.parent);
>
> Why do you need this? Can't the fwnode be propagated to the children and then
> the respective APIs to be used?
>
I'm not sure to understand this correctly, what do you mean by
propagating the fwnode to the children?
Just a quick summary of the situation and what I try to do. The device
tree looks like this, only keeping the interesting properties:
io-expander@38 {
...
interrupts = <23 IRQ_TYPE_LEVEL_LOW>,
<24 IRQ_TYPE_LEVEL_LOW>;
interrupt-names = "inti", "intk";
max7360_gpio: gpio {
...
};
max7360_gpo: gpo {
...
};
};
Our pdev fwnode points either to the "gpio" or "gpo" nodes, the one from
our parent device points to "io-expander@38". Here we need to get the
"inti" interrupt from the parent node. What would be the correct way to
do it?
> > + if (!max7360_gpio)
> > + return -ENOMEM;
>
> > + if (of_property_read_u32(pdev->dev.of_node, "ngpios", &ngpios)) {
> > + dev_err(&pdev->dev, "Missing ngpios OF property\n");
> > + return -ENODEV;
> > + }
>
> This is not needed, it is already done in GPIOLIB core.
>
I believe this is still needed:
- For gpos, we need the gpio count to correctly set the partition
between gpo and keypad columns in max7360_set_gpos_count().
- For gpios, we need the gpio count to setup the IRQs.
Best regards,
Mathieu
--
Mathieu Dubois-Briand, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com