On 23-12-20, Peng Fan wrote: > > Subject: Re: [PATCH 4/7] dt-bindings: firmware: arm,scmi: support pinctrl > > protocol > > > > Hi Peng, > > > > On 23-12-15, Peng Fan (OSS) wrote: > > > From: Peng Fan <peng.fan@xxxxxxx> > > > > > > Add SCMI v3.2 pinctrl protocol bindings and example. > > > > > > Signed-off-by: Peng Fan <peng.fan@xxxxxxx> > > > --- > > > .../devicetree/bindings/firmware/arm,scmi.yaml | 99 > > ++++++++++++++++++++++ > > > 1 file changed, 99 insertions(+) > > > > > > diff --git a/Documentation/devicetree/bindings/firmware/arm,scmi.yaml > > > b/Documentation/devicetree/bindings/firmware/arm,scmi.yaml > > > index 4591523b51a0..bfd2b6a89979 100644 > > > --- a/Documentation/devicetree/bindings/firmware/arm,scmi.yaml > > > +++ b/Documentation/devicetree/bindings/firmware/arm,scmi.yaml > > > @@ -247,6 +247,85 @@ properties: > > > reg: > > > const: 0x18 > > > > > > + protocol@19: > > > > ... > > > > > @@ -401,6 +480,26 @@ examples: > > > scmi_powercap: protocol@18 { > > > reg = <0x18>; > > > }; > > > + > > > + scmi_pinctrl: protocol@19 { > > > + reg = <0x19>; > > > + #pinctrl-cells = <0>; > > > + > > > + i2c2-pins { > > > + groups = "i2c2_a", "i2c2_b"; > > > + function = "i2c2"; > > > + }; > > > + > > > + mdio-pins { > > > + groups = "avb_mdio"; > > > + drive-strength = <24>; > > > + }; > > > + > > > + keys_pins: keys-pins { > > > + pins = "GP_5_17", "GP_5_20", "GP_5_22", "GP_2_1"; > > > + bias-pull-up; > > > + }; > > > + }; > > > > This example is different to the one you mentioned within the cover-letter. I > > didn't checked all patches just want to ask which API will be implemented by > > this patchset? > > I kept this change since it was tested by Oleksii, but anyway i.MX not use these. > > The API, I suppose you are asking about this? > static const struct pinctrl_ops pinctrl_scmi_pinctrl_ops = { > .get_groups_count = pinctrl_scmi_get_groups_count, > .get_group_name = pinctrl_scmi_get_group_name, > .get_group_pins = pinctrl_scmi_get_group_pins, > #ifdef CONFIG_OF > .dt_node_to_map = pinconf_generic_dt_node_to_map_all, > .dt_free_map = pinconf_generic_dt_free_map, > #endif > }; > > static const struct pinctrl_ops pinctrl_scmi_imx_pinctrl_ops = { > .get_groups_count = pinctrl_scmi_get_groups_count, > .get_group_name = pinctrl_scmi_get_group_name, > .get_group_pins = pinctrl_scmi_get_group_pins, > #ifdef CONFIG_OF > .dt_node_to_map = pinctrl_scmi_imx_dt_node_to_map, > .dt_free_map = pinconf_generic_dt_free_map, > #endif > }; I see, thanks for the clarification. In short: the i.MX SMCI pinctrl DT-API is the same as the non-SCMI pinctrl API since the dt_node_to_map will convert it. Regards, Marco