| # SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause |
| %YAML 1.2 |
| --- |
| $id: http://devicetree.org/schemas/pinctrl/spacemit,k1-pinctrl.yaml# |
| $schema: http://devicetree.org/meta-schemas/core.yaml# |
| |
| title: SpacemiT K1 SoC Pin Controller |
| |
| maintainers: |
| - Yixun Lan <[email protected]> |
| |
| properties: |
| compatible: |
| const: spacemit,k1-pinctrl |
| |
| reg: |
| items: |
| - description: pinctrl io memory base |
| |
| patternProperties: |
| '-cfg$': |
| type: object |
| additionalProperties: false |
| |
| description: |
| A pinctrl node should contain at least one subnode representing the |
| pinctrl groups available on the machine. |
| |
| patternProperties: |
| '-pins$': |
| type: object |
| additionalProperties: false |
| |
| description: |
| Each subnode will list the pins it needs, and how they should |
| be configured, with regard to muxer configuration, bias pull, |
| drive strength, input schmitt trigger, slew rate, power source. |
| |
| allOf: |
| - $ref: pincfg-node.yaml# |
| - $ref: pinmux-node.yaml# |
| |
| properties: |
| pinmux: |
| description: |
| The list of GPIOs and their mux settings that properties in the |
| node apply to. This should be set using the K1_PADCONF macro to |
| construct the value. |
| |
| bias-disable: true |
| |
| bias-pull-down: true |
| |
| bias-pull-up: |
| description: | |
| typical value for selecting bias pull up or strong pull up. |
| 0: normal bias pull up |
| 1: strong bias pull up |
| enum: [ 0, 1 ] |
| |
| drive-strength: |
| description: | |
| typical current when output high level. |
| 1.8V output: 11, 21, 32, 42 (mA) |
| 3.3V output: 7, 10, 13, 16, 19, 23, 26, 29 (mA) |
| |
| input-schmitt: |
| description: | |
| typical threshold for schmitt trigger. |
| 0: buffer mode |
| 1: trigger mode |
| 2, 3: trigger mode |
| $ref: /schemas/types.yaml#/definitions/uint32 |
| enum: [ 0, 1, 2, 3 ] |
| |
| power-source: |
| description: external power supplies at 1.8v or 3.3v. |
| enum: [ 1800, 3300 ] |
| |
| slew-rate: |
| description: | |
| slew rate for output buffer. |
| 0: disable it |
| 1: enable it (via bundled value from drive strength) |
| 2: slow speed 0 |
| 3: slow speed 1 |
| 4: medium speed |
| 5: fast speed |
| enum: [ 0, 1, 2, 3, 4, 5 ] |
| |
| required: |
| - pinmux |
| |
| required: |
| - compatible |
| - reg |
| |
| additionalProperties: false |
| |
| examples: |
| - | |
| #define K1_PADCONF(pin, func) (((pin) << 16) | (func)) |
| |
| soc { |
| #address-cells = <2>; |
| #size-cells = <2>; |
| |
| pinctrl@d401e000 { |
| compatible = "spacemit,k1-pinctrl"; |
| reg = <0x0 0xd401e000 0x0 0x400>; |
| |
| uart0_2_cfg: uart0-2-cfg { |
| uart0-2-pins { |
| pinmux = <K1_PADCONF(68, 2)>, |
| <K1_PADCONF(69, 2)>; |
| |
| bias-pull-up = <0>; |
| drive-strength = <32>; |
| }; |
| }; |
| }; |
| }; |
| |
| ... |