| # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) |
| %YAML 1.2 |
| --- |
| $id: http://devicetree.org/schemas/bindings/pinctrl/intel,lgm-pinctrl.yaml# |
| $schema: http://devicetree.org/meta-schemas/core.yaml# |
| |
| title: Intel Lightning Mountain SoC pinmux & GPIO controller binding |
| |
| maintainers: |
| - Rahul Tanwar <rahul.tanwar@linux.intel.com> |
| |
| description: | |
| Pinmux & GPIO controller controls pin multiplexing & configuration including |
| GPIO function selection & GPIO attributes configuration. |
| |
| Please refer to [1] for details of the common pinctrl bindings used by the |
| client devices. |
| |
| [1] Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt |
| |
| properties: |
| compatible: |
| const: intel,lgm-io |
| |
| reg: |
| maxItems: 1 |
| |
| # Client device subnode's properties |
| patternProperties: |
| '-pins$': |
| type: object |
| description: |
| Pinctrl node's client devices use subnodes for desired pin configuration. |
| Client device subnodes use below standard properties. |
| |
| properties: |
| function: |
| $ref: /schemas/types.yaml#/definitions/string |
| description: |
| A string containing the name of the function to mux to the group. |
| |
| groups: |
| $ref: /schemas/types.yaml#/definitions/string-array |
| description: |
| An array of strings identifying the list of groups. |
| |
| pins: |
| $ref: /schemas/types.yaml#/definitions/uint32-array |
| description: |
| List of pins to select with this function. |
| |
| pinmux: |
| description: The applicable mux group. |
| allOf: |
| - $ref: "/schemas/types.yaml#/definitions/uint32-array" |
| |
| bias-pull-up: |
| type: boolean |
| |
| bias-pull-down: |
| type: boolean |
| |
| drive-strength: |
| description: | |
| Selects the drive strength for the specified pins in mA. |
| 0: 2 mA |
| 1: 4 mA |
| 2: 8 mA |
| 3: 12 mA |
| allOf: |
| - $ref: /schemas/types.yaml#/definitions/uint32 |
| - enum: [0, 1, 2, 3] |
| |
| slew-rate: |
| type: boolean |
| description: | |
| Sets slew rate for specified pins. |
| 0: slow slew |
| 1: fast slew |
| |
| drive-open-drain: |
| type: boolean |
| |
| output-enable: |
| type: boolean |
| |
| required: |
| - function |
| - groups |
| |
| additionalProperties: false |
| |
| required: |
| - compatible |
| - reg |
| |
| additionalProperties: false |
| |
| examples: |
| # Pinmux controller node |
| - | |
| pinctrl: pinctrl@e2880000 { |
| compatible = "intel,lgm-pinctrl"; |
| reg = <0xe2880000 0x100000>; |
| |
| uart0-pins { |
| pins = <64>, /* UART_RX0 */ |
| <65>; /* UART_TX0 */ |
| function = "CONSOLE_UART0"; |
| pinmux = <1>, |
| <1>; |
| groups = "CONSOLE_UART0"; |
| }; |
| }; |
| |
| ... |