[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20240513-pinctrl-scmi-oem-v3-v6-0-904975c99cc4@nxp.com>
Date: Mon, 13 May 2024 19:45:23 +0800
From: "Peng Fan (OSS)" <peng.fan@....nxp.com>
To: Sudeep Holla <sudeep.holla@....com>,
Cristian Marussi <cristian.marussi@....com>, Rob Herring <robh@...nel.org>,
Krzysztof Kozlowski <krzk+dt@...nel.org>,
Conor Dooley <conor+dt@...nel.org>, Shawn Guo <shawnguo@...nel.org>,
Sascha Hauer <s.hauer@...gutronix.de>,
Pengutronix Kernel Team <kernel@...gutronix.de>,
Fabio Estevam <festevam@...il.com>,
Linus Walleij <linus.walleij@...aro.org>,
Dong Aisheng <aisheng.dong@....com>, Jacky Bai <ping.bai@....com>
Cc: linux-arm-kernel@...ts.infradead.org, devicetree@...r.kernel.org,
linux-kernel@...r.kernel.org, imx@...ts.linux.dev,
linux-gpio@...r.kernel.org, Peng Fan <peng.fan@....com>
Subject: [PATCH v6 0/3] pinctrl: scmi: support i.MX95 OEM extensions
Hi Sudeep, Linus
Is it possible for you to pick up this patchset earlier if no major
comments?
Thanks,
Peng.
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@....com>
---
Changes in v6:
- Per Andy comment to v4,
drop imx_pin_group wrapper; assign sdev->handle to handle first, then check
handle.
- Rebased to next-20240513
- Link to v5: https://lore.kernel.org/r/20240508-pinctrl-scmi-oem-v3-v5-0-6f2b167f71bc@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 | 579 +++++++++++++++++++++
drivers/pinctrl/pinctrl-scmi.c | 9 +
6 files changed, 645 insertions(+), 3 deletions(-)
---
base-commit: ca45a28e860e3ed34cff0ce5211014d535bf6d6d
change-id: 20240428-pinctrl-scmi-oem-v3-12130031a74d
Best regards,
--
Peng Fan <peng.fan@....com>
Powered by blists - more mailing lists