Hi Oleksii, thanks for your patches! On Fri, Apr 7, 2023 at 12:18 PM Oleksii Moisieiev <Oleksii_Moisieiev@xxxxxxxx> wrote: > This RFC patch series is intended to introduce the potential generic driver for > pin controls over SCMI protocol, provided in the latest beta version of DEN0056 [0]. > > On ARM-based systems, a separate Cortex-M based System Control Processor (SCP) > provides control on pins, as well as with power, clocks, reset controllers. In this case, > kernel should use one of the possible transports, described in [0] to access SCP and > control clocks/power-domains etc. This driver is using SMC transport to communicate with SCP via > SCMI protocol and access to the Pin Control Subsystem. > > The provided driver consists of 2 parts: > - firmware/arm_scmi/pinctrl.c - the SCMI pinctrl protocol inmplementation > responsible for the communication with SCP firmware. > > - drivers/pinctrl/pinctrl-scmi.c - pinctrl driver, which is using pinctrl > protocol implementation to access all necessary data. TBH this looks so good that I am happy to merge it once you send a non-RFC version. My main concern would have been the protocol itself, but that was very carefully tailored to match what the pin control subsystem needs and I am quite happy with it the way it came out: using strings for groups and functions. The scmi code in patch 1 adds an extra layer of abstraction and a vtable that would not have been necessary if all of the code was confined in one file in drivers/pinctrl but it is not up to me how the SCMI people want to abstract their stuff and there seems to be precedents to do things this way. I heard that someone wanted to also implement GPIO over SCMI, but it is not part of this driver so I guess that will be a future addition. It's a good starting point to add GPIO later. Yours, Linus Walleij