| # SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause |
| %YAML 1.2 |
| --- |
| $id: http://devicetree.org/schemas/pinctrl/canaan,k230-pinctrl.yaml# |
| $schema: http://devicetree.org/meta-schemas/core.yaml# |
| |
| title: Canaan Kendryte K230 Pin Controller |
| |
| maintainers: |
| - Ze Huang <18771902331@163.com> |
| |
| description: |
| The Canaan Kendryte K230 platform includes 64 IO pins, each capable of |
| multiplexing up to 5 different functions. Pin function configuration is |
| performed on a per-pin basis. |
| |
| properties: |
| compatible: |
| const: canaan,k230-pinctrl |
| |
| reg: |
| maxItems: 1 |
| |
| patternProperties: |
| '-pins$': |
| type: object |
| additionalProperties: false |
| description: |
| A pinctrl node should contain at least one subnode representing the |
| pinctrl groups available on the machine. |
| |
| patternProperties: |
| '-cfg$': |
| type: object |
| allOf: |
| - $ref: /schemas/pinctrl/pincfg-node.yaml |
| - $ref: /schemas/pinctrl/pinmux-node.yaml |
| additionalProperties: false |
| description: |
| Each subnode will list the pins it needs, and how they should |
| be configured, with regard to muxer configuration, bias, input |
| enable/disable, input schmitt trigger, slew-rate enable/disable, |
| slew-rate, drive strength. |
| |
| properties: |
| pinmux: |
| description: |
| The list of GPIOs and their mux settings that properties in |
| the node apply to. This should be set with the macro |
| 'K230_PINMUX(pin, mode)' |
| |
| bias-disable: true |
| |
| bias-pull-up: true |
| |
| bias-pull-down: true |
| |
| drive-strength: |
| minimum: 0 |
| maximum: 15 |
| |
| input-enable: true |
| |
| output-enable: true |
| |
| input-schmitt-enable: true |
| |
| slew-rate: |
| description: | |
| slew rate control enable |
| 0: disable |
| 1: enable |
| |
| enum: [0, 1] |
| |
| power-source: |
| description: | |
| Specifies the power source voltage for the IO bank that the |
| pin belongs to. Each bank of IO pins operate at a specific, |
| fixed voltage levels. Incorrect voltage configuration can |
| damage the chip. The defined constants represent the |
| possible voltage configurations: |
| |
| - K230_MSC_3V3 (value 0): 3.3V power supply |
| - K230_MSC_1V8 (value 1): 1.8V power supply |
| |
| The following banks have the corresponding voltage |
| configurations: |
| |
| - bank IO0 to IO1: Fixed at 1.8V |
| - bank IO2 to IO13: Fixed at 1.8V |
| - bank IO14 to IO25: Fixed at 1.8V |
| - bank IO26 to IO37: Fixed at 1.8V |
| - bank IO38 to IO49: Fixed at 1.8V |
| - bank IO50 to IO61: Fixed at 3.3V |
| - bank IO62 to IO63: Fixed at 1.8V |
| |
| enum: [0, 1] |
| |
| required: |
| - pinmux |
| |
| required: |
| - compatible |
| - reg |
| |
| additionalProperties: false |
| |
| examples: |
| - | |
| pinctrl@91105000 { |
| compatible = "canaan,k230-pinctrl"; |
| reg = <0x91105000 0x100>; |
| |
| uart2-pins { |
| uart2-pins-cfg { |
| pinmux = <0x503>, /* uart2 txd */ |
| <0x603>; /* uart2 rxd */ |
| slew-rate = <0>; |
| drive-strength = <4>; |
| power-source = <1>; |
| input-enable; |
| output-enable; |
| bias-disable; |
| }; |
| }; |
| }; |