Re: [PATCH v3 2/4] leds: simatic-ipc-leds: add new driver for Siemens Industial PCs

From: Andy Shevchenko
Date: Fri Nov 26 2021 - 09:37:59 EST


On Fri, Nov 26, 2021 at 3:28 PM Henning Schild
<henning.schild@xxxxxxxxxxx> wrote:
> Am Tue, 30 Mar 2021 14:04:35 +0300
> schrieb Andy Shevchenko <andy.shevchenko@xxxxxxxxx>:
> > On Mon, Mar 29, 2021 at 8:59 PM Henning Schild
> > <henning.schild@xxxxxxxxxxx> wrote:

...

> > > +static struct simatic_ipc_led simatic_ipc_leds_mem[] = {
> > > + {0x500 + 0x1A0, "red:" LED_FUNCTION_STATUS "-1"},
> > > + {0x500 + 0x1A8, "green:" LED_FUNCTION_STATUS "-1"},
> > > + {0x500 + 0x1C8, "red:" LED_FUNCTION_STATUS "-2"},
> > > + {0x500 + 0x1D0, "green:" LED_FUNCTION_STATUS "-2"},
> > > + {0x500 + 0x1E0, "red:" LED_FUNCTION_STATUS "-3"},
> > > + {0x500 + 0x198, "green:" LED_FUNCTION_STATUS "-3"},
> > > + { }
> > > +};
> >
> > It seems to me like poking GPIO controller registers directly. This
> > is not good. The question still remains: Can we simply register a
> > GPIO (pin control) driver and use an LED GPIO driver with an
> > additional board file that instantiates it?
>
> The short answer for v4 will be "No we can not!". The pinctrl drivers
> do not currently probe on any of the devices and attempts to fix that
> have failed or gut stuck. I tried to help out where i could and waited
> for a long time.

I see, unfortunately I have stuck with some other (more important
tasks) and can't fulfil this, but I still consider it's no go for
driver poking pin control registers directly. Lemme see if I can
prioritize this for next week.

> Now my take is to turn the order around. We go in like that and will
> happily switch to pinctrl if that ever comes up on the machines.
> Meaning P2SB series on top of this, no more delays please.

I don't want to slip bad code into the kernel where we can avoid that.

> We do use request_region so have a mutex in place. Meaning we really
> only touch GPIO while pinctrl does not!

I haven't got this. On Intel SoCs GPIO is a part of pin control
registers. You can't touch GPIO without touching pin control.

> I see no issue here, waited for a long time and now expect to be
> allowed to get merged first.

Okay, I have these questions / asks so far:
1) Can firmware be fixed in order to provide an ACPI table for the pin
control devices?
2) Can you share firmware (BIOS ROM file I suppose) that I may flash
on an Apollo Lake machine and see if I can reproduce the issue?
3) As may be a last resort, can you share (remotely) or even send to
us the device in question to try?

--
With Best Regards,
Andy Shevchenko