linux-stable/Documentation/devicetree/bindings/pinctrl/spacemit,k1-pinctrl.yaml
Yixun Lan 97b7675640 dt-bindings: pinctrl: spacemit: add support for K1 SoC
Add dt-bindings for the pinctrl driver of SpacemiT's K1 SoC.

Reviewed-by: Rob Herring (Arm) <robh@kernel.org>
Signed-off-by: Yixun Lan <dlan@gentoo.org>
Link: https://lore.kernel.org/20241016-02-k1-pinctrl-v5-1-03d395222e4f@gentoo.org
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2024-10-19 20:15:05 +02:00

125 lines
3.2 KiB
YAML

# 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 <dlan@gentoo.org>
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>;
};
};
};
};
...