On Thu, Jan 04, 2024 at 06:48:44PM +0800, Peng Fan (OSS) wrote: > This patchset is a rework from Oleksii's RFC v5 patchset > https://lore.kernel.org/all/cover.1698353854.git.oleksii_moisieiev@xxxxxxxx/ > > This patchset introduces some changes based on RFC v5: > - introduce helper get_max_msg_size > - support compatible string > - iterate the id_table > - Support multiple configs in one command > - Added i.MX support > - Patch 5 firmware: arm_scmi: Add SCMI v3.2 pincontrol protocol basic support > is almost same as RFCv5 expect multiple configs support. > - Patch 4 the dt-bindings includes compatible string to support i.MX > - Rebased on 2023-12-15 linux-next/master For the record, the translation of pin config types, pinctrl_scmi_map_pinconf_type(), is finally implemented in patch 4. Thanks, -Takahiro Akashi > If any comments from RFC v5 are missed, I am sorry in advance. > > This PINCTRL Protocol is following Version 3.2 SCMI Spec Beta release. > > 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. So implement the driver to support such cases. > > The i.MX95 Example as below: > > Configuration: > The scmi-pinctrl driver can be configured using DT bindings. > For example: > / { > sram0: sram@445b1000 { > compatible = "mmio-sram"; > reg = <0x0 0x445b1000 0x0 0x400>; > > #address-cells = <1>; > #size-cells = <1>; > ranges = <0x0 0x0 0x445b1000 0x400>; > > scmi_buf0: scmi-sram-section@0 { > compatible = "arm,scmi-shmem"; > reg = <0x0 0x80>; > }; > > scmi_buf1: scmi-sram-section@80 { > compatible = "arm,scmi-shmem"; > reg = <0x80 0x80>; > }; > }; > > firmware { > scmi { > compatible = "arm,scmi"; > mboxes = <&mu2 5 0>, <&mu2 3 0>, <&mu2 3 1>; > shmem = <&scmi_buf0>, <&scmi_buf1>; > #address-cells = <1>; > #size-cells = <0>; > > scmi_iomuxc: protocol@19 { > compatible = "fsl,imx95-scmi-pinctrl"; > reg = <0x19>; > }; > }; > }; > }; > > &scmi_iomuxc { > pinctrl_tpm3: tpm3grp { > fsl,pins = < > IMX95_PAD_GPIO_IO12__TPM3_CH2 0x51e > >; > }; > }; > > This patchset has been tested on i.MX95-19x19-EVK board. > > Signed-off-by: Peng Fan <peng.fan@xxxxxxx> > --- > Changes in v2: > Added comments, and added R-b for Patch 1 > Moved the compatile string and i.MX patch to the end, marked NOT APPLY > Patchset based on lore.kernel.org/all/20231221151129.325749-1-cristian.marussi@xxxxxxx/ > Addressed the binding doc issue, dropped i.MX content. > For the firmware pinctrl scmi driver, addressed the comments from Cristian > For the pinctrl scmi driver, addressed comments from Cristian > > For the i.MX95 OEM stuff, I not have good idea, expect using compatbile > string. Maybe the firmware public an protocol attribute to indicate it is > VENDOR stuff or NXP use a new protocol id, not 0x19. But I think > current pinctrl-scmi.c not able to support OEM config, should we extend > it with some method? Anyway if patch 1-4 is good enough, they could > be picked up first. > > Since I am only able to test the patch on i.MX95 which not support > geneirc pinconf, only OEM configs are tested in my side. > > --- > Oleksii Moisieiev (1): > firmware: arm_scmi: Add SCMI v3.2 pincontrol protocol basic support > > Peng Fan (5): > firmware: arm_scmi: introduce helper get_max_msg_size > dt-bindings: firmware: arm,scmi: support pinctrl protocol > pinctrl: Implementation of the generic scmi-pinctrl driver > [NOT APPLY]firmware: scmi: support compatible string > [NOT APPLY] pinctrl: scmi: implement pinctrl_scmi_imx_dt_node_to_map > > .../devicetree/bindings/firmware/arm,scmi.yaml | 50 ++ > MAINTAINERS | 7 + > drivers/firmware/arm_scmi/Makefile | 1 + > drivers/firmware/arm_scmi/bus.c | 39 +- > drivers/firmware/arm_scmi/common.h | 2 +- > drivers/firmware/arm_scmi/driver.c | 32 +- > drivers/firmware/arm_scmi/pinctrl.c | 930 +++++++++++++++++++++ > drivers/firmware/arm_scmi/protocols.h | 3 + > drivers/pinctrl/Kconfig | 11 + > drivers/pinctrl/Makefile | 1 + > drivers/pinctrl/pinctrl-scmi-imx.c | 117 +++ > drivers/pinctrl/pinctrl-scmi.c | 540 ++++++++++++ > drivers/pinctrl/pinctrl-scmi.h | 12 + > include/linux/scmi_protocol.h | 75 ++ > 14 files changed, 1806 insertions(+), 14 deletions(-) > --- > base-commit: 8f266a167d1f0ca34668f05cd8c01bd245c8698b > change-id: 20231215-pinctrl-scmi-4c5b0374f4c6 > > Best regards, > -- > Peng Fan <peng.fan@xxxxxxx> >