blob: 222b9e240f8af9adb507834cde2dabd33029435f [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/pinctrl/starfive,jh7110-sys-pinctrl.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: StarFive JH7110 SYS Pin Controller
8
9description: |
10 Bindings for the JH7110 RISC-V SoC from StarFive Technology Ltd.
11
12 Out of the SoC's many pins only the ones named PAD_GPIO0 to PAD_GPIO63
13 can be multiplexed and have configurable bias, drive strength,
14 schmitt trigger etc.
15 Some peripherals have their I/O go through the 64 "GPIOs". This also
16 includes a number of other UARTs, I2Cs, SPIs, PWMs etc.
17 All these peripherals are connected to all 64 GPIOs such that
18 any GPIO can be set up to be controlled by any of the peripherals.
19
20maintainers:
21 - Jianlong Huang <jianlong.huang@starfivetech.com>
22
23properties:
24 compatible:
25 const: starfive,jh7110-sys-pinctrl
26
27 reg:
28 maxItems: 1
29
30 clocks:
31 maxItems: 1
32
33 resets:
34 maxItems: 1
35
36 interrupts:
37 maxItems: 1
38
39 interrupt-controller: true
40
41 '#interrupt-cells':
42 const: 2
43
44 gpio-controller: true
45
46 '#gpio-cells':
47 const: 2
48
49patternProperties:
50 '-[0-9]+$':
51 type: object
52 additionalProperties: false
53 patternProperties:
54 '-pins$':
55 type: object
56 description: |
57 A pinctrl node should contain at least one subnode representing the
58 pinctrl groups available on the machine. Each subnode will list the
59 pins it needs, and how they should be configured, with regard to
60 muxer configuration, bias, input enable/disable, input schmitt
61 trigger enable/disable, slew-rate and drive strength.
62 allOf:
63 - $ref: /schemas/pinctrl/pincfg-node.yaml
64 - $ref: /schemas/pinctrl/pinmux-node.yaml
65 additionalProperties: false
66
67 properties:
68 pinmux:
69 description: |
70 The list of GPIOs and their mux settings that properties in the
71 node apply to. This should be set using the GPIOMUX or PINMUX
72 macros.
73
74 bias-disable: true
75
76 bias-pull-up:
77 type: boolean
78
79 bias-pull-down:
80 type: boolean
81
82 drive-strength:
83 enum: [ 2, 4, 8, 12 ]
84
85 input-enable: true
86
87 input-disable: true
88
89 input-schmitt-enable: true
90
91 input-schmitt-disable: true
92
93 slew-rate:
94 maximum: 1
95
96required:
97 - compatible
98 - reg
99 - clocks
100 - interrupts
101 - interrupt-controller
102 - '#interrupt-cells'
103 - gpio-controller
104 - '#gpio-cells'
105
106additionalProperties: false
107
108examples:
109 - |
110 pinctrl@13040000 {
111 compatible = "starfive,jh7110-sys-pinctrl";
112 reg = <0x13040000 0x10000>;
113 clocks = <&syscrg 112>;
114 resets = <&syscrg 2>;
115 interrupts = <86>;
116 interrupt-controller;
117 #interrupt-cells = <2>;
118 gpio-controller;
119 #gpio-cells = <2>;
120
121 uart0-0 {
122 tx-pins {
123 pinmux = <0xff140005>;
124 bias-disable;
125 drive-strength = <12>;
126 input-disable;
127 input-schmitt-disable;
128 slew-rate = <0>;
129 };
130
131 rx-pins {
132 pinmux = <0x0E000406>;
133 bias-pull-up;
134 drive-strength = <2>;
135 input-enable;
136 input-schmitt-enable;
137 slew-rate = <0>;
138 };
139 };
140 };
141
142...