xref: /linux/Documentation/devicetree/bindings/pinctrl/spacemit,k1-pinctrl.yaml (revision eafd95ea74846eda3e3eac6b2bb7f34619d8a6f8)
197b76756SYixun Lan# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
297b76756SYixun Lan%YAML 1.2
397b76756SYixun Lan---
497b76756SYixun Lan$id: http://devicetree.org/schemas/pinctrl/spacemit,k1-pinctrl.yaml#
597b76756SYixun Lan$schema: http://devicetree.org/meta-schemas/core.yaml#
697b76756SYixun Lan
797b76756SYixun Lantitle: SpacemiT K1 SoC Pin Controller
897b76756SYixun Lan
997b76756SYixun Lanmaintainers:
1097b76756SYixun Lan  - Yixun Lan <dlan@gentoo.org>
1197b76756SYixun Lan
1297b76756SYixun Lanproperties:
1397b76756SYixun Lan  compatible:
1497b76756SYixun Lan    const: spacemit,k1-pinctrl
1597b76756SYixun Lan
1697b76756SYixun Lan  reg:
1797b76756SYixun Lan    items:
1897b76756SYixun Lan      - description: pinctrl io memory base
1997b76756SYixun Lan
20*c6650433SYixun Lan  clocks:
21*c6650433SYixun Lan    items:
22*c6650433SYixun Lan      - description: Functional Clock
23*c6650433SYixun Lan      - description: Bus Clock
24*c6650433SYixun Lan
25*c6650433SYixun Lan  clock-names:
26*c6650433SYixun Lan    items:
27*c6650433SYixun Lan      - const: func
28*c6650433SYixun Lan      - const: bus
29*c6650433SYixun Lan
30*c6650433SYixun Lan  resets:
31*c6650433SYixun Lan    maxItems: 1
32*c6650433SYixun Lan
3397b76756SYixun LanpatternProperties:
3497b76756SYixun Lan  '-cfg$':
3597b76756SYixun Lan    type: object
3697b76756SYixun Lan    additionalProperties: false
3797b76756SYixun Lan
3897b76756SYixun Lan    description:
3997b76756SYixun Lan      A pinctrl node should contain at least one subnode representing the
4097b76756SYixun Lan      pinctrl groups available on the machine.
4197b76756SYixun Lan
4297b76756SYixun Lan    patternProperties:
4397b76756SYixun Lan      '-pins$':
4497b76756SYixun Lan        type: object
4597b76756SYixun Lan        additionalProperties: false
4697b76756SYixun Lan
4797b76756SYixun Lan        description:
4897b76756SYixun Lan          Each subnode will list the pins it needs, and how they should
4997b76756SYixun Lan          be configured, with regard to muxer configuration, bias pull,
5097b76756SYixun Lan          drive strength, input schmitt trigger, slew rate, power source.
5197b76756SYixun Lan
5297b76756SYixun Lan        allOf:
5397b76756SYixun Lan          - $ref: pincfg-node.yaml#
5497b76756SYixun Lan          - $ref: pinmux-node.yaml#
5597b76756SYixun Lan
5697b76756SYixun Lan        properties:
5797b76756SYixun Lan          pinmux:
5897b76756SYixun Lan            description:
5997b76756SYixun Lan              The list of GPIOs and their mux settings that properties in the
6097b76756SYixun Lan              node apply to. This should be set using the K1_PADCONF macro to
6197b76756SYixun Lan              construct the value.
6297b76756SYixun Lan
6397b76756SYixun Lan          bias-disable: true
6497b76756SYixun Lan
6597b76756SYixun Lan          bias-pull-down: true
6697b76756SYixun Lan
6797b76756SYixun Lan          bias-pull-up:
6897b76756SYixun Lan            description: |
6997b76756SYixun Lan              typical value for selecting bias pull up or strong pull up.
7097b76756SYixun Lan              0: normal bias pull up
7197b76756SYixun Lan              1: strong bias pull up
7297b76756SYixun Lan            enum: [ 0, 1 ]
7397b76756SYixun Lan
7497b76756SYixun Lan          drive-strength:
7597b76756SYixun Lan            description: |
7697b76756SYixun Lan              typical current when output high level.
7797b76756SYixun Lan              1.8V output: 11, 21, 32, 42 (mA)
7897b76756SYixun Lan              3.3V output: 7, 10, 13, 16, 19, 23, 26, 29 (mA)
7997b76756SYixun Lan
8097b76756SYixun Lan          input-schmitt:
8197b76756SYixun Lan            description: |
8297b76756SYixun Lan              typical threshold for schmitt trigger.
8397b76756SYixun Lan              0: buffer mode
8497b76756SYixun Lan              1: trigger mode
8597b76756SYixun Lan              2, 3: trigger mode
8697b76756SYixun Lan            $ref: /schemas/types.yaml#/definitions/uint32
8797b76756SYixun Lan            enum: [ 0, 1, 2, 3 ]
8897b76756SYixun Lan
8997b76756SYixun Lan          power-source:
9097b76756SYixun Lan            description: external power supplies at 1.8v or 3.3v.
9197b76756SYixun Lan            enum: [ 1800, 3300 ]
9297b76756SYixun Lan
9397b76756SYixun Lan          slew-rate:
9497b76756SYixun Lan            description: |
9597b76756SYixun Lan              slew rate for output buffer.
9697b76756SYixun Lan              0: disable it
9797b76756SYixun Lan              1: enable it (via bundled value from drive strength)
9897b76756SYixun Lan              2: slow speed 0
9997b76756SYixun Lan              3: slow speed 1
10097b76756SYixun Lan              4: medium speed
10197b76756SYixun Lan              5: fast speed
10297b76756SYixun Lan            enum: [ 0, 1, 2, 3, 4, 5 ]
10397b76756SYixun Lan
10497b76756SYixun Lan        required:
10597b76756SYixun Lan          - pinmux
10697b76756SYixun Lan
10797b76756SYixun Lanrequired:
10897b76756SYixun Lan  - compatible
10997b76756SYixun Lan  - reg
110*c6650433SYixun Lan  - clocks
111*c6650433SYixun Lan  - clock-names
11297b76756SYixun Lan
11397b76756SYixun LanadditionalProperties: false
11497b76756SYixun Lan
11597b76756SYixun Lanexamples:
11697b76756SYixun Lan  - |
11797b76756SYixun Lan    #define K1_PADCONF(pin, func) (((pin) << 16) | (func))
11897b76756SYixun Lan
11997b76756SYixun Lan    soc {
12097b76756SYixun Lan        #address-cells = <2>;
12197b76756SYixun Lan        #size-cells = <2>;
12297b76756SYixun Lan
12397b76756SYixun Lan        pinctrl@d401e000 {
12497b76756SYixun Lan            compatible = "spacemit,k1-pinctrl";
12597b76756SYixun Lan            reg = <0x0 0xd401e000 0x0 0x400>;
126*c6650433SYixun Lan            clocks = <&syscon_apbc 42>,
127*c6650433SYixun Lan                     <&syscon_apbc 94>;
128*c6650433SYixun Lan            clock-names = "func", "bus";
12997b76756SYixun Lan
13097b76756SYixun Lan            uart0_2_cfg: uart0-2-cfg {
13197b76756SYixun Lan                uart0-2-pins {
13297b76756SYixun Lan                    pinmux = <K1_PADCONF(68, 2)>,
13397b76756SYixun Lan                             <K1_PADCONF(69, 2)>;
13497b76756SYixun Lan
13597b76756SYixun Lan                    bias-pull-up = <0>;
13697b76756SYixun Lan                    drive-strength = <32>;
13797b76756SYixun Lan                };
13897b76756SYixun Lan            };
13997b76756SYixun Lan        };
14097b76756SYixun Lan    };
14197b76756SYixun Lan
14297b76756SYixun Lan...
143