| # SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause |
| %YAML 1.2 |
| --- |
| $id: http://devicetree.org/schemas/pinctrl/sophgo,cv1800-pinctrl.yaml# |
| $schema: http://devicetree.org/meta-schemas/core.yaml# |
| |
| title: Sophgo CV1800 Pin Controller |
| |
| maintainers: |
| - Inochi Amaoto <inochiama@outlook.com> |
| |
| properties: |
| compatible: |
| enum: |
| - sophgo,cv1800b-pinctrl |
| - sophgo,cv1812h-pinctrl |
| - sophgo,sg2000-pinctrl |
| - sophgo,sg2002-pinctrl |
| |
| reg: |
| items: |
| - description: pinctrl for system domain |
| - description: pinctrl for rtc domain |
| |
| reg-names: |
| items: |
| - const: sys |
| - const: rtc |
| |
| resets: |
| maxItems: 1 |
| |
| patternProperties: |
| '-cfg$': |
| type: object |
| description: |
| A pinctrl node should contain at least one subnode representing the |
| pinctrl groups available on the machine. |
| |
| additionalProperties: false |
| |
| patternProperties: |
| '-pins$': |
| type: object |
| 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, drive strength |
| and bus hold state. In addition, all pins in the same subnode |
| should have the same power domain. For configuration detail, |
| refer to https://github.com/sophgo/sophgo-doc/. |
| |
| 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 GPIOMUX or GPIOMUX2 |
| macro. |
| |
| bias-pull-up: |
| type: boolean |
| |
| bias-pull-down: |
| type: boolean |
| |
| drive-strength-microamp: |
| description: typical current when output high level. |
| |
| input-schmitt-microvolt: |
| description: typical threshold for schmitt trigger. |
| |
| power-source: |
| description: power supplies at X mV. |
| enum: [ 1800, 3300 ] |
| |
| slew-rate: |
| description: slew rate for output buffer (0 is fast, 1 is slow) |
| enum: [ 0, 1 ] |
| |
| bias-bus-hold: true |
| |
| required: |
| - pinmux |
| - power-source |
| |
| additionalProperties: false |
| |
| required: |
| - compatible |
| - reg |
| - reg-names |
| |
| additionalProperties: false |
| |
| examples: |
| - | |
| #include <dt-bindings/pinctrl/pinctrl-cv1800b.h> |
| |
| pinctrl@3001000 { |
| compatible = "sophgo,cv1800b-pinctrl"; |
| reg = <0x03001000 0x1000>, |
| <0x05027000 0x1000>; |
| reg-names = "sys", "rtc"; |
| |
| uart0_cfg: uart0-cfg { |
| uart0-pins { |
| pinmux = <PINMUX(PIN_UART0_TX, 0)>, |
| <PINMUX(PIN_UART0_RX, 0)>; |
| bias-pull-up; |
| drive-strength-microamp = <10800>; |
| input-schmitt-microvolt = <0>; |
| power-source = <3300>; |
| slew-rate = <0>; |
| }; |
| }; |
| }; |
| |
| ... |