From: Peng Fan <peng.fan@xxxxxxx> i.MX95 Pinctrl is managed by System Control Management Interface(SCMI) firmware using OEM extensions. No functions, no groups are provided by the firmware. To reuse generic properties, add the binding to enable pinmux, slew-rate, bias-pull-up and etc, under a subnode of '-pins'. Reviewed-by: Rob Herring <robh@xxxxxxxxxx> Signed-off-by: Peng Fan <peng.fan@xxxxxxx> --- .../devicetree/bindings/firmware/arm,scmi.yaml | 9 +++-- .../bindings/firmware/nxp,imx95-scmi-pinctrl.yaml | 41 ++++++++++++++++++++++ 2 files changed, 47 insertions(+), 3 deletions(-) diff --git a/Documentation/devicetree/bindings/firmware/arm,scmi.yaml b/Documentation/devicetree/bindings/firmware/arm,scmi.yaml index 7de2c29606e5..bd4dfd7a85cd 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/firmware/nxp,imx95-scmi-pinctrl.yaml + - allOf: + - $ref: /schemas/pinctrl/pincfg-node.yaml# + - $ref: /schemas/pinctrl/pinmux-node.yaml# + unevaluatedProperties: false description: diff --git a/Documentation/devicetree/bindings/firmware/nxp,imx95-scmi-pinctrl.yaml b/Documentation/devicetree/bindings/firmware/nxp,imx95-scmi-pinctrl.yaml new file mode 100644 index 000000000000..3ca2b0cc484e --- /dev/null +++ b/Documentation/devicetree/bindings/firmware/nxp,imx95-scmi-pinctrl.yaml @@ -0,0 +1,41 @@ +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) +# Copyright 2024 NXP +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/firmware/nxp,imx95-scmi-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@xxxxxxx> + +patternProperties: + 'grp[0-9a-f]$': + type: object + unevaluatedProperties: false + + properties: + pinmux: + description: | + An integer array for representing pinmux configurations of + a device. Each integer has the format, + pinid[31:21] + mux[20:16] + daisy_value[15:12] + daisy_valid[11:11] + daisy_id[10:0] + $ref: /schemas/types.yaml#/definitions/uint32-array + + drive-strength: + enum: [ 0, 1, 3, 7, 15, 31, 63 ] + + slew-rate: + enum: [2, 3] + + input-schmitt-enable: true + drive-open-drain: true + bias-pull-up: true + bias-pull-down: true + +additionalProperties: true -- 2.37.1