On Fri, Feb 24, 2023 at 12:51 AM Asmaa Mnebhi <asmaa@xxxxxxxxxx> wrote: ... > > > > > Ah that’s my bad. The property should be called "ngpios" like in > > > > > the DT > > > > documentation. Will fix. > > > > > > > > And why do you need it? What's a corner case that the GPIO library > > > > doesn't handle yet? > > > > > > We have 2 gpiochips, gpiochip 0 supports 32 gpio pins and gpiochip 1 > > supports only 24 pins. > > > If I remove the logic from gpio-mlxbf3.c, the gpiolib.c logic will correctly set > > the ngpios = 32 for gpiochip 0 but will wrongly set ngpios=32 for gpiogchip 1: > > > > So, either you need to have two entries in DT per chip or ngpios should be 56. > > > I already have 2 entries in my ACPI table, in the first entry, ngpios = 32 and in the second entry ngpios = 24. Can you show the DSDT excerpt of this device? (Also including the pieces for pin control) Is this a table of the device in the wild? > Gpiochip_add_data_with_keys only reads the ngpios property if (ngpios == 0) which is not the case when > bgpio_init is called. bgpio_init uses "sz" argument to populate the ngpio in bgpio_init, which is not what we want. Maybe bgpio_init() is not a good API for your case? -- With Best Regards, Andy Shevchenko