Message ID | 20240508-pinctrl-scmi-oem-v3-v5-0-6f2b167f71bc@nxp.com (mailing list archive) |
---|---|
Headers | show |
Series | pinctrl: scmi: support i.MX95 OEM extensions | expand |
On Wed, May 08, 2024 at 11:32:01AM +0800, Peng Fan (OSS) wrote: > ARM SCMI v3.2 Table 24 Pin Configuration Type and Enumerations: > '192 -255 OEM specific units'. > > i.MX95 System Manager FW supports SCMI PINCTRL protocol, but it has zero > functions, groups. So pinctrl-scmi.c could not be reused for i.MX95. > Because nxp,pin-func, nxp,pin-conf properties are rejected by dt > maintainers, so use generic property 'pinmux' which requires a new driver > pinctrl-imx-scmi.c > Not a review in particular, but if we decide to merge this deviation, it must be under the condition that it can be deleted anytime in the future if this becomes annoyance(like other vendors using this as a way to deviate from the specification). If we can't agree with that, then we better not merge this at all. -- Regards, Sudeep
Hi Sudeep, > Subject: Re: [PATCH v5 0/3] pinctrl: scmi: support i.MX95 OEM extensions > > On Wed, May 08, 2024 at 11:32:01AM +0800, Peng Fan (OSS) wrote: > > ARM SCMI v3.2 Table 24 Pin Configuration Type and Enumerations: > > '192 -255 OEM specific units'. > > > > i.MX95 System Manager FW supports SCMI PINCTRL protocol, but it has > > zero functions, groups. So pinctrl-scmi.c could not be reused for i.MX95. > > Because nxp,pin-func, nxp,pin-conf properties are rejected by dt > > maintainers, so use generic property 'pinmux' which requires a new > > driver pinctrl-imx-scmi.c > > > > Not a review in particular, but if we decide to merge this deviation, it must be > under the condition that it can be deleted anytime in the future if this > becomes annoyance(like other vendors using this as a way to deviate from > the specification). If we can't agree with that, then we better not merge this > at all. It is ok for me. I agree. But actually this driver still follows Spec by using OEM extensions. If in future, the spec adds something saying pinmux bit field, and pinctrl-scmi.c supports it, we could drop the imx driver. Thanks, Peng. > > -- > Regards, > Sudeep
On Wed, May 08, 2024 at 09:41:24AM +0000, Peng Fan wrote: > Hi Sudeep, > > > Subject: Re: [PATCH v5 0/3] pinctrl: scmi: support i.MX95 OEM extensions > > > > On Wed, May 08, 2024 at 11:32:01AM +0800, Peng Fan (OSS) wrote: > > > ARM SCMI v3.2 Table 24 Pin Configuration Type and Enumerations: > > > '192 -255 OEM specific units'. > > > > > > i.MX95 System Manager FW supports SCMI PINCTRL protocol, but it has > > > zero functions, groups. So pinctrl-scmi.c could not be reused for i.MX95. > > > Because nxp,pin-func, nxp,pin-conf properties are rejected by dt > > > maintainers, so use generic property 'pinmux' which requires a new > > > driver pinctrl-imx-scmi.c > > > > > > > Not a review in particular, but if we decide to merge this deviation, it must be > > under the condition that it can be deleted anytime in the future if this > > becomes annoyance(like other vendors using this as a way to deviate from > > the specification). If we can't agree with that, then we better not merge this > > at all. > > It is ok for me. I agree. > But actually this driver still follows Spec by using OEM extensions. > Agreed, but that's what I call as deviations. When such extensions are used as baseline implementation, it becomes deviations. -- Regards, Sudeep
ARM SCMI v3.2 Table 24 Pin Configuration Type and Enumerations: '192 -255 OEM specific units'. i.MX95 System Manager FW supports SCMI PINCTRL protocol, but it has zero functions, groups. So pinctrl-scmi.c could not be reused for i.MX95. Because nxp,pin-func, nxp,pin-conf properties are rejected by dt maintainers, so use generic property 'pinmux' which requires a new driver pinctrl-imx-scmi.c The node will be as below: pinctrl_usdhc1: usdhc1-pins { sd1-grp0 { pinmux = <IMX95_PAD_SD1_CLK__USDHC1_CLK IMX95_PAD_SD1_STROBE__USDHC1_STROBE>; drive-strength = <0xe>; input-schmitt-enable; bias-pull-down; slew-rate = <0x3>; }; sd1-grp1 { pinmux = <IMX95_PAD_SD1_CMD__USDHC1_CMD IMX95_PAD_SD1_DATA0__USDHC1_DATA0 IMX95_PAD_SD1_DATA1__USDHC1_DATA1 IMX95_PAD_SD1_DATA2__USDHC1_DATA2 IMX95_PAD_SD1_DATA3__USDHC1_DATA3 IMX95_PAD_SD1_DATA4__USDHC1_DATA4 IMX95_PAD_SD1_DATA5__USDHC1_DATA5 IMX95_PAD_SD1_DATA6__USDHC1_DATA6 IMX95_PAD_SD1_DATA7__USDHC1_DATA7>; drive-strength = <0xe>; input-schmitt-enable; bias-pull-up; slew-rate = <0x3>; }; }; Signed-off-by: Peng Fan <peng.fan@nxp.com> --- Changes in v5: - Added Rob'r R-b in patch 1 after addressed the comments - Per Rob, use of_machine_compatible_match for patch 2 - Use of_machine_compatible_match for patch 3, and enable COMPILE_TEST - Link to v4: https://lore.kernel.org/r/20240505-pinctrl-scmi-oem-v3-v4-0-7c99f989e9ba@nxp.com Changes in v4: - Rebase to next-20240503 - Add pinctrl-scmi-imx.c itself get pins and scmi pinctrl structure to decouple pinctrl-scmi.c and pinctrl-scmi-imx.c, so drop patch 3,4,5. - Link to v3: https://lore.kernel.org/r/20240428-pinctrl-scmi-oem-v3-v3-0-eda341eb47ed@nxp.com Changes in v3: - patch 2,3,4,5 are new. - Rewrite the binding, drop nxp,pin-x properties, use generic properties as Rob commented. - Switch to using pinmux means pinctrl-scmi.c could not be reused, so add a new driver in patch 6 for i.MX95. But pinctrl_scmi_get_pins and scmi_pinctrl are exported for i.MX95 usage. - Link to v2: https://lore.kernel.org/r/20240418-pinctrl-scmi-oem-v1-v2-0-3a555a3c58c3@nxp.com Changes in v2: - Rename nxp,imx95-pinctrl.yaml to nxp,imx95-scmi-pinctrl.yaml and move to firmware - Merged patch [1,2]/3 v1 into patch 1/2 v2. - nxp,imx95-scmi-pinctrl.yaml only has patterProperties for subnode The pinctrl will be as below for i.MX95. pinctrl_usdhc1: usdhc1-pins { sd1cmd { pins = "sd1cmd"; nxp,func-id = <0>; nxp,pin-conf = <0x138e>; }; sd1data { pins = "sd1data"; nxp,func-id = <0>; nxp,pin-conf = <0x138e>; }; }; - Add pins enum, correct description. - Link to v1: https://lore.kernel.org/r/20240412-pinctrl-scmi-oem-v1-v1-0-704f242544c1@nxp.com --- Peng Fan (3): dt-bindings: firmware: arm,scmi: Add properties for i.MX95 Pinctrl OEM extensions pinctrl: scmi: add blocklist pinctrl: imx: support SCMI pinctrl protocol for i.MX95 .../devicetree/bindings/firmware/arm,scmi.yaml | 9 +- .../bindings/firmware/nxp,imx95-scmi-pinctrl.yaml | 41 ++ drivers/pinctrl/freescale/Kconfig | 9 + drivers/pinctrl/freescale/Makefile | 1 + drivers/pinctrl/freescale/pinctrl-imx-scmi.c | 585 +++++++++++++++++++++ drivers/pinctrl/pinctrl-scmi.c | 9 + 6 files changed, 651 insertions(+), 3 deletions(-) --- base-commit: 4db57327adc359a3f9a3481d60104be67c42964f change-id: 20240428-pinctrl-scmi-oem-v3-12130031a74d Best regards,