* [PATCH 0/3] pinctrl: scmi: support i.MX95 OEM extensions
@ 2024-04-12 0:29 Peng Fan (OSS)
2024-04-12 0:29 ` [PATCH 1/3] dt-bindings: pinctrl: support i.MX95 SCMI pinctrl Peng Fan (OSS)
` (2 more replies)
0 siblings, 3 replies; 13+ messages in thread
From: Peng Fan (OSS) @ 2024-04-12 0:29 UTC (permalink / raw)
To: Linus Walleij, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Shawn Guo, Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam,
Peng Fan, Sudeep Holla, Cristian Marussi
Cc: linux-gpio, devicetree, imx, linux-arm-kernel, linux-kernel,
Peng Fan
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 uses
OEM Pin Configuration type, so extend the driver to support custom
params.
This patchset depends on [1].
[1] https://lore.kernel.org/all/20240412-pinctrl-scmi-v9-0-b817344d3a9a@nxp.com/
Signed-off-by: Peng Fan <peng.fan@nxp.com>
---
Peng Fan (3):
dt-bindings: pinctrl: support i.MX95 SCMI pinctrl
dt-bindings: firmware: arm,scmi: support i.MX95 SCMI Pinctrl
pinctrl: scmi: support i.MX OEM pin configuration type
.../devicetree/bindings/firmware/arm,scmi.yaml | 8 ++--
.../bindings/pinctrl/nxp,imx95-pinctrl.yaml | 44 ++++++++++++++++++++++
drivers/pinctrl/pinctrl-scmi.c | 23 +++++++++++
drivers/pinctrl/pinctrl-scmi.h | 15 ++++++++
4 files changed, 87 insertions(+), 3 deletions(-)
---
base-commit: 6bd4dec347319b2e0b713a88956470e352f493fa
change-id: 20240412-pinctrl-scmi-oem-v1-494ca2ab1480
Best regards,
--
Peng Fan <peng.fan@nxp.com>
^ permalink raw reply [flat|nested] 13+ messages in thread* [PATCH 1/3] dt-bindings: pinctrl: support i.MX95 SCMI pinctrl 2024-04-12 0:29 [PATCH 0/3] pinctrl: scmi: support i.MX95 OEM extensions Peng Fan (OSS) @ 2024-04-12 0:29 ` Peng Fan (OSS) 2024-04-12 15:10 ` Frank Li 2024-04-15 22:50 ` Rob Herring 2024-04-12 0:29 ` [PATCH 2/3] dt-bindings: firmware: arm,scmi: support i.MX95 SCMI Pinctrl Peng Fan (OSS) 2024-04-12 0:29 ` [PATCH 3/3] pinctrl: scmi: support i.MX OEM pin configuration type Peng Fan (OSS) 2 siblings, 2 replies; 13+ messages in thread From: Peng Fan (OSS) @ 2024-04-12 0:29 UTC (permalink / raw) To: Linus Walleij, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Shawn Guo, Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam, Peng Fan, Sudeep Holla, Cristian Marussi Cc: linux-gpio, devicetree, imx, linux-arm-kernel, linux-kernel, Peng Fan From: Peng Fan <peng.fan@nxp.com> i.MX95 Pinctrl is managed by SCMI firmware using OEM extensions. This patch is to add i.MX95 Pinctrl OEM extensions properties. Signed-off-by: Peng Fan <peng.fan@nxp.com> --- .../bindings/pinctrl/nxp,imx95-pinctrl.yaml | 44 ++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/Documentation/devicetree/bindings/pinctrl/nxp,imx95-pinctrl.yaml b/Documentation/devicetree/bindings/pinctrl/nxp,imx95-pinctrl.yaml new file mode 100644 index 000000000000..4bf7a6192813 --- /dev/null +++ b/Documentation/devicetree/bindings/pinctrl/nxp,imx95-pinctrl.yaml @@ -0,0 +1,44 @@ +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) +# Copyright 2024 NXP +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/pinctrl/nxp,imx95-pinctrl.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: i.MX System Control and Management Interface (SCMI) Pinctrl Protocol + +maintainers: + - Peng Fan <peng.fan@arm.com> + +patternProperties: + '-pins$': false + 'grp$': + type: object + + properties: + $nodename: + pattern: "^[0-9a-f]+$" + + pins: + $ref: /schemas/types.yaml#/definitions/string + description: name of the pin + + nxp,func-id: + $ref: /schemas/types.yaml#/definitions/uint32 + description: high impedance mode ("third-state", "floating") + + nxp,pin-conf: + $ref: /schemas/types.yaml#/definitions/uint32 + description: latch weakly + + nxp,daisy-id: + $ref: /schemas/types.yaml#/definitions/uint32 + description: pull up the pin. Takes as optional argument on hardware + supporting it the pull strength in Ohm. + + nxp,daisy-conf: + $ref: /schemas/types.yaml#/definitions/uint32 + description: pull down the pin. Takes as optional argument on hardware + supporting it the pull strength in Ohm. + +additionalProperties: true -- 2.37.1 ^ permalink raw reply related [flat|nested] 13+ messages in thread
* Re: [PATCH 1/3] dt-bindings: pinctrl: support i.MX95 SCMI pinctrl 2024-04-12 0:29 ` [PATCH 1/3] dt-bindings: pinctrl: support i.MX95 SCMI pinctrl Peng Fan (OSS) @ 2024-04-12 15:10 ` Frank Li 2024-04-13 5:56 ` Peng Fan 2024-04-15 22:50 ` Rob Herring 1 sibling, 1 reply; 13+ messages in thread From: Frank Li @ 2024-04-12 15:10 UTC (permalink / raw) To: Peng Fan (OSS) Cc: Linus Walleij, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Shawn Guo, Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam, Peng Fan, Sudeep Holla, Cristian Marussi, linux-gpio, devicetree, imx, linux-arm-kernel, linux-kernel, Peng Fan On Fri, Apr 12, 2024 at 08:29:25AM +0800, Peng Fan (OSS) wrote: > From: Peng Fan <peng.fan@nxp.com> > > i.MX95 Pinctrl is managed by SCMI firmware using OEM extensions. This > patch is to add i.MX95 Pinctrl OEM extensions properties. Describe your changes in imperative mood, e.g. “make xyzzy do frotz” ... "Add properties for i.MX95 Pinctrl OEM extensions." > > Signed-off-by: Peng Fan <peng.fan@nxp.com> > --- > .../bindings/pinctrl/nxp,imx95-pinctrl.yaml | 44 ++++++++++++++++++++++ > 1 file changed, 44 insertions(+) > > diff --git a/Documentation/devicetree/bindings/pinctrl/nxp,imx95-pinctrl.yaml b/Documentation/devicetree/bindings/pinctrl/nxp,imx95-pinctrl.yaml > new file mode 100644 > index 000000000000..4bf7a6192813 > --- /dev/null > +++ b/Documentation/devicetree/bindings/pinctrl/nxp,imx95-pinctrl.yaml > @@ -0,0 +1,44 @@ > +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) > +# Copyright 2024 NXP > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/pinctrl/nxp,imx95-pinctrl.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: i.MX System Control and Management Interface (SCMI) Pinctrl Protocol > + > +maintainers: > + - Peng Fan <peng.fan@arm.com> > + > +patternProperties: > + '-pins$': false > + 'grp$': > + type: object > + > + properties: > + $nodename: > + pattern: "^[0-9a-f]+$" > + > + pins: > + $ref: /schemas/types.yaml#/definitions/string > + description: name of the pin > + > + nxp,func-id: > + $ref: /schemas/types.yaml#/definitions/uint32 > + description: high impedance mode ("third-state", "floating") > + > + nxp,pin-conf: > + $ref: /schemas/types.yaml#/definitions/uint32 > + description: latch weakly > + > + nxp,daisy-id: > + $ref: /schemas/types.yaml#/definitions/uint32 > + description: pull up the pin. Takes as optional argument on hardware > + supporting it the pull strength in Ohm. > + > + nxp,daisy-conf: > + $ref: /schemas/types.yaml#/definitions/uint32 > + description: pull down the pin. Takes as optional argument on hardware > + supporting it the pull strength in Ohm. > + > +additionalProperties: true > > -- > 2.37.1 > ^ permalink raw reply [flat|nested] 13+ messages in thread
* RE: [PATCH 1/3] dt-bindings: pinctrl: support i.MX95 SCMI pinctrl 2024-04-12 15:10 ` Frank Li @ 2024-04-13 5:56 ` Peng Fan 0 siblings, 0 replies; 13+ messages in thread From: Peng Fan @ 2024-04-13 5:56 UTC (permalink / raw) To: Frank Li, Peng Fan (OSS) Cc: Linus Walleij, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Shawn Guo, Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam, Peng Fan, Sudeep Holla, Cristian Marussi, linux-gpio@vger.kernel.org, devicetree@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org > Subject: Re: [PATCH 1/3] dt-bindings: pinctrl: support i.MX95 SCMI pinctrl > > On Fri, Apr 12, 2024 at 08:29:25AM +0800, Peng Fan (OSS) wrote: > > From: Peng Fan <peng.fan@nxp.com> > > > > i.MX95 Pinctrl is managed by SCMI firmware using OEM extensions. This > > patch is to add i.MX95 Pinctrl OEM extensions properties. > > > Describe your changes in imperative mood, e.g. “make xyzzy do frotz” ... > > "Add properties for i.MX95 Pinctrl OEM extensions." ok. I will update in v2. Regards, Peng. > > > > > Signed-off-by: Peng Fan <peng.fan@nxp.com> > > --- > > .../bindings/pinctrl/nxp,imx95-pinctrl.yaml | 44 > ++++++++++++++++++++++ > > 1 file changed, 44 insertions(+) > > > > diff --git > > a/Documentation/devicetree/bindings/pinctrl/nxp,imx95-pinctrl.yaml > > b/Documentation/devicetree/bindings/pinctrl/nxp,imx95-pinctrl.yaml > > new file mode 100644 > > index 000000000000..4bf7a6192813 > > --- /dev/null > > +++ b/Documentation/devicetree/bindings/pinctrl/nxp,imx95-pinctrl.yaml > > @@ -0,0 +1,44 @@ > > +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) # Copyright 2024 > > +NXP %YAML 1.2 > > +--- > > +$id: http://devicetree.org/schemas/pinctrl/nxp,imx95-pinctrl.yaml# > > +$schema: http://devicetree.org/meta-schemas/core.yaml# > > + > > +title: i.MX System Control and Management Interface (SCMI) Pinctrl > > +Protocol > > + > > +maintainers: > > + - Peng Fan <peng.fan@arm.com> > > + > > +patternProperties: > > + '-pins$': false > > + 'grp$': > > + type: object > > + > > + properties: > > + $nodename: > > + pattern: "^[0-9a-f]+$" > > + > > + pins: > > + $ref: /schemas/types.yaml#/definitions/string > > + description: name of the pin > > + > > + nxp,func-id: > > + $ref: /schemas/types.yaml#/definitions/uint32 > > + description: high impedance mode ("third-state", "floating") > > + > > + nxp,pin-conf: > > + $ref: /schemas/types.yaml#/definitions/uint32 > > + description: latch weakly > > + > > + nxp,daisy-id: > > + $ref: /schemas/types.yaml#/definitions/uint32 > > + description: pull up the pin. Takes as optional argument on hardware > > + supporting it the pull strength in Ohm. > > + > > + nxp,daisy-conf: > > + $ref: /schemas/types.yaml#/definitions/uint32 > > + description: pull down the pin. Takes as optional argument on > hardware > > + supporting it the pull strength in Ohm. > > + > > +additionalProperties: true > > > > -- > > 2.37.1 > > ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 1/3] dt-bindings: pinctrl: support i.MX95 SCMI pinctrl 2024-04-12 0:29 ` [PATCH 1/3] dt-bindings: pinctrl: support i.MX95 SCMI pinctrl Peng Fan (OSS) 2024-04-12 15:10 ` Frank Li @ 2024-04-15 22:50 ` Rob Herring 2024-04-15 23:17 ` Peng Fan 1 sibling, 1 reply; 13+ messages in thread From: Rob Herring @ 2024-04-15 22:50 UTC (permalink / raw) To: Peng Fan (OSS) Cc: Linus Walleij, Krzysztof Kozlowski, Conor Dooley, Shawn Guo, Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam, Peng Fan, Sudeep Holla, Cristian Marussi, linux-gpio, devicetree, imx, linux-arm-kernel, linux-kernel, Peng Fan On Fri, Apr 12, 2024 at 08:29:25AM +0800, Peng Fan (OSS) wrote: > From: Peng Fan <peng.fan@nxp.com> > > i.MX95 Pinctrl is managed by SCMI firmware using OEM extensions. This > patch is to add i.MX95 Pinctrl OEM extensions properties. > > Signed-off-by: Peng Fan <peng.fan@nxp.com> > --- > .../bindings/pinctrl/nxp,imx95-pinctrl.yaml | 44 ++++++++++++++++++++++ > 1 file changed, 44 insertions(+) > > diff --git a/Documentation/devicetree/bindings/pinctrl/nxp,imx95-pinctrl.yaml b/Documentation/devicetree/bindings/pinctrl/nxp,imx95-pinctrl.yaml > new file mode 100644 > index 000000000000..4bf7a6192813 > --- /dev/null > +++ b/Documentation/devicetree/bindings/pinctrl/nxp,imx95-pinctrl.yaml > @@ -0,0 +1,44 @@ > +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) > +# Copyright 2024 NXP > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/pinctrl/nxp,imx95-pinctrl.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: i.MX System Control and Management Interface (SCMI) Pinctrl Protocol > + > +maintainers: > + - Peng Fan <peng.fan@arm.com> > + > +patternProperties: > + '-pins$': false Why? > + 'grp$': > + type: object Missing 'additionalProperties: false' > + > + properties: > + $nodename: > + pattern: "^[0-9a-f]+$" Drop. That has no effect. You just defined the nodename above. > + > + pins: > + $ref: /schemas/types.yaml#/definitions/string > + description: name of the pin Needs to define the possible values. > + > + nxp,func-id: > + $ref: /schemas/types.yaml#/definitions/uint32 > + description: high impedance mode ("third-state", "floating") We already have a standard property for high impendance. You should know that since you obviously copied the description... > + > + nxp,pin-conf: > + $ref: /schemas/types.yaml#/definitions/uint32 > + description: latch weakly Same here. > + > + nxp,daisy-id: > + $ref: /schemas/types.yaml#/definitions/uint32 > + description: pull up the pin. Takes as optional argument on hardware > + supporting it the pull strength in Ohm. And here... > + > + nxp,daisy-conf: > + $ref: /schemas/types.yaml#/definitions/uint32 > + description: pull down the pin. Takes as optional argument on hardware > + supporting it the pull strength in Ohm. And here... > + > +additionalProperties: true > > -- > 2.37.1 > ^ permalink raw reply [flat|nested] 13+ messages in thread
* RE: [PATCH 1/3] dt-bindings: pinctrl: support i.MX95 SCMI pinctrl 2024-04-15 22:50 ` Rob Herring @ 2024-04-15 23:17 ` Peng Fan 0 siblings, 0 replies; 13+ messages in thread From: Peng Fan @ 2024-04-15 23:17 UTC (permalink / raw) To: Rob Herring, Peng Fan (OSS) Cc: Linus Walleij, Krzysztof Kozlowski, Conor Dooley, Shawn Guo, Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam, Sudeep Holla, Cristian Marussi, linux-gpio@vger.kernel.org, devicetree@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Hi Rob, > Subject: Re: [PATCH 1/3] dt-bindings: pinctrl: support i.MX95 SCMI pinctrl > > On Fri, Apr 12, 2024 at 08:29:25AM +0800, Peng Fan (OSS) wrote: > > From: Peng Fan <peng.fan@nxp.com> > > > > i.MX95 Pinctrl is managed by SCMI firmware using OEM extensions. This > > patch is to add i.MX95 Pinctrl OEM extensions properties. > > > > Signed-off-by: Peng Fan <peng.fan@nxp.com> > > --- > > .../bindings/pinctrl/nxp,imx95-pinctrl.yaml | 44 > ++++++++++++++++++++++ > > 1 file changed, 44 insertions(+) > > > > diff --git > > a/Documentation/devicetree/bindings/pinctrl/nxp,imx95-pinctrl.yaml > > b/Documentation/devicetree/bindings/pinctrl/nxp,imx95-pinctrl.yaml > > new file mode 100644 > > index 000000000000..4bf7a6192813 > > --- /dev/null > > +++ b/Documentation/devicetree/bindings/pinctrl/nxp,imx95-pinctrl.yaml > > @@ -0,0 +1,44 @@ > > +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) # Copyright 2024 > > +NXP %YAML 1.2 > > +--- > > +$id: > > +https://eur01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fdevi > > +cetree.org%2Fschemas%2Fpinctrl%2Fnxp%2Cimx95- > pinctrl.yaml%23&data=05% > > > +7C02%7Cpeng.fan%40nxp.com%7C4c448715c4ad4cd1f70808dc5d9e6924% > 7C686ea1 > > > +d3bc2b4c6fa92cd99c5c301635%7C0%7C0%7C638488182142511691%7CU > nknown%7CT > > > +WFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiL > CJXVC > > > +I6Mn0%3D%7C0%7C%7C%7C&sdata=BckWIcVgYU6l8lV6fIpyDIZHt5hCyFdgF > xaWBUBb9 > > +7s%3D&reserved=0 > > +$schema: > > +https://eur01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fdevi > > +cetree.org%2Fmeta- > schemas%2Fcore.yaml%23&data=05%7C02%7Cpeng.fan%40nx > > > +p.com%7C4c448715c4ad4cd1f70808dc5d9e6924%7C686ea1d3bc2b4c6fa9 > 2cd99c5c > > > +301635%7C0%7C0%7C638488182142522802%7CUnknown%7CTWFpbGZs > b3d8eyJWIjoiM > > > +C4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C0%7 > C%7C%7 > > > +C&sdata=1BJASfju905Rua9G2mkNvPKDppN9%2BP5UaxFCbXDtPqo%3D&res > erved=0 > > + > > +title: i.MX System Control and Management Interface (SCMI) Pinctrl > > +Protocol > > + > > +maintainers: > > + - Peng Fan <peng.fan@arm.com> > > + > > +patternProperties: > > + '-pins$': false > > Why? The node will be as blow, there is no "-pins$". +&scmi_iomuxc { + pinctrl_uart1: uart1grp { + txd { + pins = "uart1txd"; + nxp,func-id = <0>; + nxp,pin-conf = <0x31e>; + }; + rxd { + pins = "uart1rxd"; + nxp,func-id = <0>; + nxp,pin-conf = <0x31e>; + }; + }; > > > + 'grp$': > > + type: object > > Missing 'additionalProperties: false' Fix in v2. > > > + > > + properties: > > + $nodename: > > + pattern: "^[0-9a-f]+$" > > Drop. That has no effect. You just defined the nodename above. This is to define a subnode, as just listed above, "txd" and "rxd". > > > + > > + pins: > > + $ref: /schemas/types.yaml#/definitions/string > > + description: name of the pin > > Needs to define the possible values. There will be hundreds of pins, I need to list them all here? > > > + > > + nxp,func-id: > > + $ref: /schemas/types.yaml#/definitions/uint32 > > + description: high impedance mode ("third-state", "floating") > > We already have a standard property for high impendance. You should know > that since you obviously copied the description... My bad. Fix in v2. > > > + > > + nxp,pin-conf: > > + $ref: /schemas/types.yaml#/definitions/uint32 > > + description: latch weakly > > Same here. Fix in v2. > > > + > > + nxp,daisy-id: > > + $ref: /schemas/types.yaml#/definitions/uint32 > > + description: pull up the pin. Takes as optional argument on hardware > > + supporting it the pull strength in Ohm. > > And here... Fix in v2. > > > + > > + nxp,daisy-conf: > > + $ref: /schemas/types.yaml#/definitions/uint32 > > + description: pull down the pin. Takes as optional argument on > hardware > > + supporting it the pull strength in Ohm. > > And here... Fix in v2. Thanks, Peng. > > > + > > +additionalProperties: true > > > > -- > > 2.37.1 > > ^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH 2/3] dt-bindings: firmware: arm,scmi: support i.MX95 SCMI Pinctrl 2024-04-12 0:29 [PATCH 0/3] pinctrl: scmi: support i.MX95 OEM extensions Peng Fan (OSS) 2024-04-12 0:29 ` [PATCH 1/3] dt-bindings: pinctrl: support i.MX95 SCMI pinctrl Peng Fan (OSS) @ 2024-04-12 0:29 ` Peng Fan (OSS) 2024-04-12 15:11 ` Frank Li 2024-04-15 22:56 ` Rob Herring 2024-04-12 0:29 ` [PATCH 3/3] pinctrl: scmi: support i.MX OEM pin configuration type Peng Fan (OSS) 2 siblings, 2 replies; 13+ messages in thread From: Peng Fan (OSS) @ 2024-04-12 0:29 UTC (permalink / raw) To: Linus Walleij, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Shawn Guo, Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam, Peng Fan, Sudeep Holla, Cristian Marussi Cc: linux-gpio, devicetree, imx, linux-arm-kernel, linux-kernel, Peng Fan From: Peng Fan <peng.fan@nxp.com> i.MX95 SCMI Pinctrl uses OEM specific units, so add '$ref' to '/schemas/pinctrl/nxp,imx95-pinctrl.yaml' and an example. Signed-off-by: Peng Fan <peng.fan@nxp.com> --- Documentation/devicetree/bindings/firmware/arm,scmi.yaml | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/Documentation/devicetree/bindings/firmware/arm,scmi.yaml b/Documentation/devicetree/bindings/firmware/arm,scmi.yaml index e9d3f043c4ed..ebc6c083b538 100644 --- a/Documentation/devicetree/bindings/firmware/arm,scmi.yaml +++ b/Documentation/devicetree/bindings/firmware/arm,scmi.yaml @@ -249,9 +249,11 @@ properties: protocol@19: type: object - allOf: - - $ref: '#/$defs/protocol-node' - - $ref: /schemas/pinctrl/pinctrl.yaml + anyOf: + - $ref: /schemas/pinctrl/nxp,imx95-pinctrl.yaml + - allOf: + - $ref: '#/$defs/protocol-node' + - $ref: /schemas/pinctrl/pinctrl.yaml unevaluatedProperties: false -- 2.37.1 ^ permalink raw reply related [flat|nested] 13+ messages in thread
* Re: [PATCH 2/3] dt-bindings: firmware: arm,scmi: support i.MX95 SCMI Pinctrl 2024-04-12 0:29 ` [PATCH 2/3] dt-bindings: firmware: arm,scmi: support i.MX95 SCMI Pinctrl Peng Fan (OSS) @ 2024-04-12 15:11 ` Frank Li 2024-04-13 6:01 ` Peng Fan 2024-04-15 22:56 ` Rob Herring 1 sibling, 1 reply; 13+ messages in thread From: Frank Li @ 2024-04-12 15:11 UTC (permalink / raw) To: Peng Fan (OSS) Cc: Linus Walleij, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Shawn Guo, Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam, Peng Fan, Sudeep Holla, Cristian Marussi, linux-gpio, devicetree, imx, linux-arm-kernel, linux-kernel, Peng Fan On Fri, Apr 12, 2024 at 08:29:26AM +0800, Peng Fan (OSS) wrote: > From: Peng Fan <peng.fan@nxp.com> > > i.MX95 SCMI Pinctrl uses OEM specific units, so add '$ref' to > '/schemas/pinctrl/nxp,imx95-pinctrl.yaml' and an example. where 'example'? Frank > > Signed-off-by: Peng Fan <peng.fan@nxp.com> > --- > Documentation/devicetree/bindings/firmware/arm,scmi.yaml | 8 +++++--- > 1 file changed, 5 insertions(+), 3 deletions(-) > > diff --git a/Documentation/devicetree/bindings/firmware/arm,scmi.yaml b/Documentation/devicetree/bindings/firmware/arm,scmi.yaml > index e9d3f043c4ed..ebc6c083b538 100644 > --- a/Documentation/devicetree/bindings/firmware/arm,scmi.yaml > +++ b/Documentation/devicetree/bindings/firmware/arm,scmi.yaml > @@ -249,9 +249,11 @@ properties: > > protocol@19: > type: object > - allOf: > - - $ref: '#/$defs/protocol-node' > - - $ref: /schemas/pinctrl/pinctrl.yaml > + anyOf: > + - $ref: /schemas/pinctrl/nxp,imx95-pinctrl.yaml > + - allOf: > + - $ref: '#/$defs/protocol-node' > + - $ref: /schemas/pinctrl/pinctrl.yaml > > unevaluatedProperties: false > > > -- > 2.37.1 > ^ permalink raw reply [flat|nested] 13+ messages in thread
* RE: [PATCH 2/3] dt-bindings: firmware: arm,scmi: support i.MX95 SCMI Pinctrl 2024-04-12 15:11 ` Frank Li @ 2024-04-13 6:01 ` Peng Fan 0 siblings, 0 replies; 13+ messages in thread From: Peng Fan @ 2024-04-13 6:01 UTC (permalink / raw) To: Frank Li, Peng Fan (OSS) Cc: Linus Walleij, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Shawn Guo, Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam, Peng Fan, Sudeep Holla, Cristian Marussi, linux-gpio@vger.kernel.org, devicetree@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org > Subject: Re: [PATCH 2/3] dt-bindings: firmware: arm,scmi: support i.MX95 > SCMI Pinctrl > > On Fri, Apr 12, 2024 at 08:29:26AM +0800, Peng Fan (OSS) wrote: > > From: Peng Fan <peng.fan@nxp.com> > > > > i.MX95 SCMI Pinctrl uses OEM specific units, so add '$ref' to > > '/schemas/pinctrl/nxp,imx95-pinctrl.yaml' and an example. > > where 'example'? I was thinking to add the whole example including pinctrl/bbm/misc using a separate patch after all the vendor stuff got accepted. Thanks, Peng. > > Frank > > > > > Signed-off-by: Peng Fan <peng.fan@nxp.com> > > --- > > Documentation/devicetree/bindings/firmware/arm,scmi.yaml | 8 +++++--- > > 1 file changed, 5 insertions(+), 3 deletions(-) > > > > diff --git a/Documentation/devicetree/bindings/firmware/arm,scmi.yaml > > b/Documentation/devicetree/bindings/firmware/arm,scmi.yaml > > index e9d3f043c4ed..ebc6c083b538 100644 > > --- a/Documentation/devicetree/bindings/firmware/arm,scmi.yaml > > +++ b/Documentation/devicetree/bindings/firmware/arm,scmi.yaml > > @@ -249,9 +249,11 @@ properties: > > > > protocol@19: > > type: object > > - allOf: > > - - $ref: '#/$defs/protocol-node' > > - - $ref: /schemas/pinctrl/pinctrl.yaml > > + anyOf: > > + - $ref: /schemas/pinctrl/nxp,imx95-pinctrl.yaml > > + - allOf: > > + - $ref: '#/$defs/protocol-node' > > + - $ref: /schemas/pinctrl/pinctrl.yaml > > > > unevaluatedProperties: false > > > > > > -- > > 2.37.1 > > ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 2/3] dt-bindings: firmware: arm,scmi: support i.MX95 SCMI Pinctrl 2024-04-12 0:29 ` [PATCH 2/3] dt-bindings: firmware: arm,scmi: support i.MX95 SCMI Pinctrl Peng Fan (OSS) 2024-04-12 15:11 ` Frank Li @ 2024-04-15 22:56 ` Rob Herring 2024-04-16 3:07 ` Peng Fan 1 sibling, 1 reply; 13+ messages in thread From: Rob Herring @ 2024-04-15 22:56 UTC (permalink / raw) To: Peng Fan (OSS) Cc: Linus Walleij, Krzysztof Kozlowski, Conor Dooley, Shawn Guo, Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam, Peng Fan, Sudeep Holla, Cristian Marussi, linux-gpio, devicetree, imx, linux-arm-kernel, linux-kernel, Peng Fan On Fri, Apr 12, 2024 at 08:29:26AM +0800, Peng Fan (OSS) wrote: > From: Peng Fan <peng.fan@nxp.com> > > i.MX95 SCMI Pinctrl uses OEM specific units, so add '$ref' to > '/schemas/pinctrl/nxp,imx95-pinctrl.yaml' and an example. > > Signed-off-by: Peng Fan <peng.fan@nxp.com> > --- > Documentation/devicetree/bindings/firmware/arm,scmi.yaml | 8 +++++--- > 1 file changed, 5 insertions(+), 3 deletions(-) > > diff --git a/Documentation/devicetree/bindings/firmware/arm,scmi.yaml b/Documentation/devicetree/bindings/firmware/arm,scmi.yaml > index e9d3f043c4ed..ebc6c083b538 100644 > --- a/Documentation/devicetree/bindings/firmware/arm,scmi.yaml > +++ b/Documentation/devicetree/bindings/firmware/arm,scmi.yaml > @@ -249,9 +249,11 @@ properties: > > protocol@19: > type: object > - allOf: > - - $ref: '#/$defs/protocol-node' > - - $ref: /schemas/pinctrl/pinctrl.yaml I don't think anything from here was actually used... > + anyOf: > + - $ref: /schemas/pinctrl/nxp,imx95-pinctrl.yaml > + - allOf: > + - $ref: '#/$defs/protocol-node' This must always apply and should not be under the anyOf. > + - $ref: /schemas/pinctrl/pinctrl.yaml > > unevaluatedProperties: false > > > -- > 2.37.1 > ^ permalink raw reply [flat|nested] 13+ messages in thread
* RE: [PATCH 2/3] dt-bindings: firmware: arm,scmi: support i.MX95 SCMI Pinctrl 2024-04-15 22:56 ` Rob Herring @ 2024-04-16 3:07 ` Peng Fan 2024-04-16 6:41 ` Peng Fan 0 siblings, 1 reply; 13+ messages in thread From: Peng Fan @ 2024-04-16 3:07 UTC (permalink / raw) To: Rob Herring, Peng Fan (OSS) Cc: Linus Walleij, Krzysztof Kozlowski, Conor Dooley, Shawn Guo, Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam, Sudeep Holla, Cristian Marussi, linux-gpio@vger.kernel.org, devicetree@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Hi Rob, > Subject: Re: [PATCH 2/3] dt-bindings: firmware: arm,scmi: support i.MX95 > SCMI Pinctrl > > On Fri, Apr 12, 2024 at 08:29:26AM +0800, Peng Fan (OSS) wrote: > > From: Peng Fan <peng.fan@nxp.com> > > > > i.MX95 SCMI Pinctrl uses OEM specific units, so add '$ref' to > > '/schemas/pinctrl/nxp,imx95-pinctrl.yaml' and an example. > > > > Signed-off-by: Peng Fan <peng.fan@nxp.com> > > --- > > Documentation/devicetree/bindings/firmware/arm,scmi.yaml | 8 +++++--- > > 1 file changed, 5 insertions(+), 3 deletions(-) > > > > diff --git a/Documentation/devicetree/bindings/firmware/arm,scmi.yaml > > b/Documentation/devicetree/bindings/firmware/arm,scmi.yaml > > index e9d3f043c4ed..ebc6c083b538 100644 > > --- a/Documentation/devicetree/bindings/firmware/arm,scmi.yaml > > +++ b/Documentation/devicetree/bindings/firmware/arm,scmi.yaml > > @@ -249,9 +249,11 @@ properties: > > > > protocol@19: > > type: object > > - allOf: > > - - $ref: '#/$defs/protocol-node' > > - - $ref: /schemas/pinctrl/pinctrl.yaml > > I don't think anything from here was actually used... You mean this not used? allOf: - $ref: '#/$defs/protocol-node' - $ref: /schemas/pinctrl/pinctrl.yaml Or below? > > > > + anyOf: > > + - $ref: /schemas/pinctrl/nxp,imx95-pinctrl.yaml > > + - allOf: > > + - $ref: '#/$defs/protocol-node' > > This must always apply and should not be under the anyOf. I just try in arm,scmi.yaml: protocol@19: type: object allOf: - $ref: '#/$defs/protocol-node' - anyOf: - $ref: /schemas/pinctrl/nxp,imx95-pinctrl.yaml - $ref: /schemas/pinctrl/pinctrl.yaml unevaluatedProperties: false And in nxp,imx95-pinctrl.yaml: patternProperties: 'grp$': type: object additionalProperties: false patternProperties: '[a-f0-9]+$': type: object unevaluatedProperties: false But the following example always reports: pinctrl_usdhc1: usdhc1grp { sd1-pin0 { pins = "sd1cmd"; nxp,func-id = <0>; nxp,pin-conf = <0x138e>; }; }; arm,scmi.example.dtb: scmi: protocol@19: Unevaluated properties are not allowed ('usdhc1grp' was unexpected) Do you have any suggestions on how to write the yaml correct? Thanks, Peng. > > > + - $ref: /schemas/pinctrl/pinctrl.yaml > > > > unevaluatedProperties: false > > > > > > -- > > 2.37.1 > > ^ permalink raw reply [flat|nested] 13+ messages in thread
* RE: [PATCH 2/3] dt-bindings: firmware: arm,scmi: support i.MX95 SCMI Pinctrl 2024-04-16 3:07 ` Peng Fan @ 2024-04-16 6:41 ` Peng Fan 0 siblings, 0 replies; 13+ messages in thread From: Peng Fan @ 2024-04-16 6:41 UTC (permalink / raw) To: Peng Fan, Rob Herring, Peng Fan (OSS) Cc: Linus Walleij, Krzysztof Kozlowski, Conor Dooley, Shawn Guo, Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam, Sudeep Holla, Cristian Marussi, linux-gpio@vger.kernel.org, devicetree@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org > Subject: RE: [PATCH 2/3] dt-bindings: firmware: arm,scmi: support i.MX95 > SCMI Pinctrl > > Hi Rob, > > > Subject: Re: [PATCH 2/3] dt-bindings: firmware: arm,scmi: support > > i.MX95 SCMI Pinctrl > > > > On Fri, Apr 12, 2024 at 08:29:26AM +0800, Peng Fan (OSS) wrote: > > > From: Peng Fan <peng.fan@nxp.com> > > > > > > i.MX95 SCMI Pinctrl uses OEM specific units, so add '$ref' to > > > '/schemas/pinctrl/nxp,imx95-pinctrl.yaml' and an example. > > > > > > Signed-off-by: Peng Fan <peng.fan@nxp.com> > > > --- > > > Documentation/devicetree/bindings/firmware/arm,scmi.yaml | 8 > > > +++++--- > > > 1 file changed, 5 insertions(+), 3 deletions(-) > > > > > > diff --git > > > a/Documentation/devicetree/bindings/firmware/arm,scmi.yaml > > > b/Documentation/devicetree/bindings/firmware/arm,scmi.yaml > > > index e9d3f043c4ed..ebc6c083b538 100644 > > > --- a/Documentation/devicetree/bindings/firmware/arm,scmi.yaml > > > +++ b/Documentation/devicetree/bindings/firmware/arm,scmi.yaml > > > @@ -249,9 +249,11 @@ properties: > > > > > > protocol@19: > > > type: object > > > - allOf: > > > - - $ref: '#/$defs/protocol-node' > > > - - $ref: /schemas/pinctrl/pinctrl.yaml > > > > I don't think anything from here was actually used... > After some check, I work out the following: diff --git a/Documentation/devicetree/bindings/firmware/arm,scmi.yaml b/Documentation/devicetree/bindings/firmware/arm,scmi.yaml index e9d3f043c4ed..26b7395c4326 100644 --- a/Documentation/devicetree/bindings/firmware/arm,scmi.yaml +++ b/Documentation/devicetree/bindings/firmware/arm,scmi.yaml @@ -262,9 +262,12 @@ properties: patternProperties: '-pins$': type: object - allOf: - - $ref: /schemas/pinctrl/pincfg-node.yaml# - - $ref: /schemas/pinctrl/pinmux-node.yaml# + anyOf: + - $ref: /schemas/pinctrl/nxp,imx95-pinctrl.yaml + - allOf: + - $ref: /schemas/pinctrl/pincfg-node.yaml# + - $ref: /schemas/pinctrl/pinmux-node.yaml# + unevaluatedProperties: false description: The nxp,imx95-pinctrl.yaml: +patternProperties: + '[a-f0-9]+$': + type: object + unevaluatedProperties: false + + properties: + pins: + $ref: /schemas/types.yaml#/definitions/string + description: name of the pin + + nxp,func-id: + $ref: /schemas/types.yaml#/definitions/uint32 + description: Indicates the PAD connections which function module + + nxp,pin-conf: + $ref: /schemas/types.yaml#/definitions/uint32 + description: The PAD configuration + + nxp,daisy-id: + $ref: /schemas/types.yaml#/definitions/uint32 + description: The select input register ID + + nxp,daisy-conf: + $ref: /schemas/types.yaml#/definitions/uint32 + description: The select input register value + +additionalProperties: true The node will as below: scmi_pinctrl: protocol@19 { reg = <0x19>; sd-pins { sd1cmd { pins = "sd1cmd"; nxp,func-id = <0>; nxp,pin-conf = <0x138e>; }; sd1data0 { pins = "sd1data0"; nxp,func-id = <0>; nxp,pin-conf = <0x138e>; }; }; I will use the upper in v2. Thanks, Peng. > You mean this not used? > allOf: > - $ref: '#/$defs/protocol-node' > - $ref: /schemas/pinctrl/pinctrl.yaml > > Or below? > > > > > > > + anyOf: > > > + - $ref: /schemas/pinctrl/nxp,imx95-pinctrl.yaml > > > + - allOf: > > > + - $ref: '#/$defs/protocol-node' > > > > This must always apply and should not be under the anyOf. > > I just try in arm,scmi.yaml: > protocol@19: > type: object > allOf: > - $ref: '#/$defs/protocol-node' > - anyOf: > - $ref: /schemas/pinctrl/nxp,imx95-pinctrl.yaml > - $ref: /schemas/pinctrl/pinctrl.yaml > > unevaluatedProperties: false > > And in nxp,imx95-pinctrl.yaml: > patternProperties: > 'grp$': > type: object > additionalProperties: false > > patternProperties: > '[a-f0-9]+$': > type: object > unevaluatedProperties: false > > But the following example always reports: > pinctrl_usdhc1: usdhc1grp { > sd1-pin0 { > pins = "sd1cmd"; > nxp,func-id = <0>; > nxp,pin-conf = <0x138e>; > }; > }; > > arm,scmi.example.dtb: scmi: protocol@19: Unevaluated properties are not > allowed ('usdhc1grp' was unexpected) > > Do you have any suggestions on how to write the yaml correct? > > Thanks, > Peng. > > > > > > + - $ref: /schemas/pinctrl/pinctrl.yaml > > > > > > unevaluatedProperties: false > > > > > > > > > -- > > > 2.37.1 > > > ^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH 3/3] pinctrl: scmi: support i.MX OEM pin configuration type 2024-04-12 0:29 [PATCH 0/3] pinctrl: scmi: support i.MX95 OEM extensions Peng Fan (OSS) 2024-04-12 0:29 ` [PATCH 1/3] dt-bindings: pinctrl: support i.MX95 SCMI pinctrl Peng Fan (OSS) 2024-04-12 0:29 ` [PATCH 2/3] dt-bindings: firmware: arm,scmi: support i.MX95 SCMI Pinctrl Peng Fan (OSS) @ 2024-04-12 0:29 ` Peng Fan (OSS) 2 siblings, 0 replies; 13+ messages in thread From: Peng Fan (OSS) @ 2024-04-12 0:29 UTC (permalink / raw) To: Linus Walleij, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Shawn Guo, Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam, Peng Fan, Sudeep Holla, Cristian Marussi Cc: linux-gpio, devicetree, imx, linux-arm-kernel, linux-kernel, Peng Fan From: Peng Fan <peng.fan@nxp.com> i.MX95 System Manager FW supports SCMI PINCTRL protocol, but uses OEM Pin Configuration type, so extend the driver to support custom params. Signed-off-by: Peng Fan <peng.fan@nxp.com> --- drivers/pinctrl/pinctrl-scmi.c | 23 +++++++++++++++++++++++ drivers/pinctrl/pinctrl-scmi.h | 15 +++++++++++++++ 2 files changed, 38 insertions(+) diff --git a/drivers/pinctrl/pinctrl-scmi.c b/drivers/pinctrl/pinctrl-scmi.c index 0f55f000a679..97c3d9d4634b 100644 --- a/drivers/pinctrl/pinctrl-scmi.c +++ b/drivers/pinctrl/pinctrl-scmi.c @@ -20,6 +20,7 @@ #include <linux/pinctrl/pinctrl.h> #include <linux/pinctrl/pinmux.h> +#include "pinctrl-scmi.h" #include "pinctrl-utils.h" #include "core.h" #include "pinconf.h" @@ -462,6 +463,23 @@ static const struct pinconf_ops pinctrl_scmi_pinconf_ops = { .pin_config_config_dbg_show = pinconf_generic_dump_config, }; +static const struct pinconf_generic_params pinctrl_scmi_oem_dt_params[] = { + {"nxp,func-id", IMX_SCMI_PIN_MUX, -1}, + {"nxp,daisy-id", IMX_SCMI_PIN_DAISY_ID, -1}, + {"nxp,daisy-conf", IMX_SCMI_PIN_DAISY_CFG, -1}, + {"nxp,pin-conf", IMX_SCMI_PIN_CONF, -1}, +}; + +#ifdef CONFIG_DEBUG_FS +static const +struct pin_config_item pinctrl_scmi_oem_conf_items[ARRAY_SIZE(pinctrl_scmi_oem_dt_params)] = { + PCONFDUMP(IMX_SCMI_PIN_MUX, "FUNC-ID", NULL, true), + PCONFDUMP(IMX_SCMI_PIN_DAISY_ID, "DAISY-ID", NULL, true), + PCONFDUMP(IMX_SCMI_PIN_DAISY_CFG, "DAISY-CFG", NULL, true), + PCONFDUMP(IMX_SCMI_PIN_CONF, "PIN-CONF", NULL, true), +}; +#endif + static int pinctrl_scmi_get_pins(struct scmi_pinctrl *pmx, struct pinctrl_desc *desc) { @@ -526,6 +544,11 @@ static int scmi_pinctrl_probe(struct scmi_device *sdev) pmx->pctl_desc.pctlops = &pinctrl_scmi_pinctrl_ops; pmx->pctl_desc.pmxops = &pinctrl_scmi_pinmux_ops; pmx->pctl_desc.confops = &pinctrl_scmi_pinconf_ops; + pmx->pctl_desc.custom_params = pinctrl_scmi_oem_dt_params; + pmx->pctl_desc.num_custom_params = ARRAY_SIZE(pinctrl_scmi_oem_dt_params); +#ifdef CONFIG_DEBUG_FS + pmx->pctl_desc.custom_conf_items = pinctrl_scmi_oem_conf_items; +#endif ret = pinctrl_scmi_get_pins(pmx, &pmx->pctl_desc); if (ret) diff --git a/drivers/pinctrl/pinctrl-scmi.h b/drivers/pinctrl/pinctrl-scmi.h new file mode 100644 index 000000000000..fcc61bc19c98 --- /dev/null +++ b/drivers/pinctrl/pinctrl-scmi.h @@ -0,0 +1,15 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +/* + * Copyright 2024 NXP + */ + +#ifndef __DRIVERS_PINCTRL_SCMI_H +#define __DRIVERS_PINCTRL_SCMI_H + +/* OEM VENDOR Pin Configuration Type */ +#define IMX_SCMI_PIN_MUX 192 +#define IMX_SCMI_PIN_CONF 193 +#define IMX_SCMI_PIN_DAISY_ID 194 +#define IMX_SCMI_PIN_DAISY_CFG 195 + +#endif /* __DRIVERS_PINCTRL_SCMI_H */ -- 2.37.1 ^ permalink raw reply related [flat|nested] 13+ messages in thread
end of thread, other threads:[~2024-04-16 6:41 UTC | newest] Thread overview: 13+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2024-04-12 0:29 [PATCH 0/3] pinctrl: scmi: support i.MX95 OEM extensions Peng Fan (OSS) 2024-04-12 0:29 ` [PATCH 1/3] dt-bindings: pinctrl: support i.MX95 SCMI pinctrl Peng Fan (OSS) 2024-04-12 15:10 ` Frank Li 2024-04-13 5:56 ` Peng Fan 2024-04-15 22:50 ` Rob Herring 2024-04-15 23:17 ` Peng Fan 2024-04-12 0:29 ` [PATCH 2/3] dt-bindings: firmware: arm,scmi: support i.MX95 SCMI Pinctrl Peng Fan (OSS) 2024-04-12 15:11 ` Frank Li 2024-04-13 6:01 ` Peng Fan 2024-04-15 22:56 ` Rob Herring 2024-04-16 3:07 ` Peng Fan 2024-04-16 6:41 ` Peng Fan 2024-04-12 0:29 ` [PATCH 3/3] pinctrl: scmi: support i.MX OEM pin configuration type Peng Fan (OSS)
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox