Re: [PATCH v2] pinctrl: mcp23s08: Check only GPIOs which have interrupts enabled

From: Andy Shevchenko
Date: Mon Feb 05 2024 - 08:57:09 EST



On Fri, Feb 02, 2024 at 12:40:23PM +0200, Arturas Moskvinas wrote:
>
> On 2/1/24 16:30, Andy Shevchenko wrote:
> > On Thu, Feb 01, 2024 at 04:14:07PM +0200, Arturas Moskvinas wrote:
> > > GPINTEN register contains information about GPIOs with enabled
> > > interrupts no need to check other GPIOs for changes.
> > >
> > > Signed-off-by: Arturas Moskvinas<arturas.moskvinas@xxxxxxxxx>
> > > ---
> > You forgot to add a changelog here, but no need to resend, just you can respond
> > to the email since it's not a big issue in this case.
> Ack.
> > > + if (mcp_read(mcp, MCP_GPINTEN, &gpinten))
> > > + goto unlock;
> > Do all hw variants have this register available?
> > Esp. I2C part, wouldn't it be problematic (exception with NACK on the bus)?
> According to specification sheets MCP(s0)17 [1] page 19, MCP(s0)18 [2] page
> 19, MCP(s0)08 [3] page 11 - all supported expanders have that register also
> that register needs to be used [4] to mask/unmask interrupts on given GPIO,
> without it - expander won't even fire an interrupt. I tested on MCP23018 I2C
> expander though but module itself is not treating that expander differently
> for interrupt handling purposes.

Thank you for the clarification!

> Do you want that information to be added as part of commit message or
> information in the mailing thread will be enough?

Up to maintainers. I'm fine with this email. If Linus uses b4 to generate
a Link tag to this discussion it will be enough (in my opinion).

> [1] https://ww1.microchip.com/downloads/aemDocuments/documents/APID/ProductDocuments/DataSheets/MCP23017-Data-Sheet-DS20001952.pdf
> [2] https://ww1.microchip.com/downloads/aemDocuments/documents/APID/ProductDocuments/DataSheets/MCP23018-Data-Sheet-DS20002103.pdf
> [3] https://ww1.microchip.com/downloads/aemDocuments/documents/APID/ProductDocuments/DataSheets/MCP23008-MCP23S08-Data-Sheet-DS20001919.pdf
> [4] https://elixir.bootlin.com/linux/v6.7/source/drivers/pinctrl/pinctrl-mcp23s08.c#L473

--
With Best Regards,
Andy Shevchenko