1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
4 $id: http://devicetree.org/schemas/pinctrl/mediatek,mt8365-pinctrl.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
7 title: MediaTek MT8365 Pin Controller
10 - Zhiyong Tao <zhiyong.tao@mediatek.com>
11 - Bernhard Rosenkränzer <bero@baylibre.com>
14 The MediaTek's MT8365 Pin controller is used to control SoC pins.
18 const: mediatek,mt8365-pinctrl
24 $ref: /schemas/types.yaml#/definitions/phandle-array
30 Should be phandles of the syscfg node.
37 Number of cells in GPIO specifier. Since the generic GPIO binding is used,
38 the amount of cells must be specified as 2. See the below mentioned gpio
39 binding representation for description of particular cells.
41 interrupt-controller: true
52 additionalProperties: false
56 additionalProperties: false
58 A pinctrl node should contain at least one subnode representing the
59 pinctrl groups available on the machine. Each subnode will list the
60 pins it needs, and how they should be configured, with regard to muxer
61 configuration, pullups, drive strength, input enable/disable and input
63 $ref: /schemas/pinctrl/pincfg-node.yaml
68 Integer array, represents gpio pin number and mux setting.
69 Supported pin number and mux varies for different SoCs, and are
70 defined as macros in <soc>-pinfunc.h directly.
77 - enum: [100, 101, 102, 103]
78 description: Pull up R1/R0 type define value.
80 For pull up type is normal, it don't need add R1/R0 define.
81 For pull up type is R1/R0 type, it can add value to set different
82 resistance. Valid arguments are described as below:
83 100: (R1, R0) = (0, 0) which means R1 disabled and R0 disabled.
84 101: (R1, R0) = (0, 1) which means R1 disabled and R0 enabled.
85 102: (R1, R0) = (1, 0) which means R1 enabled and R0 disabled.
86 103: (R1, R0) = (1, 1) which means R1 enabled and R0 enabled.
91 - enum: [100, 101, 102, 103]
92 description: Pull down R1/R0 type define value.
94 For pull down type is normal, it don't need add R1/R0 define.
95 For pull down type is R1/R0 type, it can add value to set
96 different resistance. Valid arguments are described as below:
97 100: (R1, R0) = (0, 0) which means R1 disabled and R0 disabled.
98 101: (R1, R0) = (0, 1) which means R1 disabled and R0 enabled.
99 102: (R1, R0) = (1, 0) which means R1 enabled and R0 disabled.
100 103: (R1, R0) = (1, 1) which means R1 enabled and R0 enabled.
103 enum: [2, 4, 6, 8, 10, 12, 14, 16]
113 input-schmitt-enable: true
115 input-schmitt-disable: true
117 drive-strength-microamp:
118 enum: [125, 250, 500, 1000]
120 mediatek,drive-strength-adv:
123 DEPRECATED: Please use drive-strength-microamp instead.
124 Describe the specific driving setup property.
125 For I2C pins, the existing generic driving setup can only support
126 2/4/6/8/10/12/14/16mA driving. But in specific driving setup, they
127 can support 0.125/0.25/0.5/1mA adjustment. If we enable specific
128 driving setup, the existing generic setup will be disabled.
129 The specific driving setup is controlled by E1E0EN.
130 When E1=0/E0=0, the strength is 0.125mA.
131 When E1=0/E0=1, the strength is 0.25mA.
132 When E1=1/E0=0, the strength is 0.5mA.
133 When E1=1/E0=1, the strength is 1mA.
134 EN is used to enable or disable the specific driving setup.
135 Valid arguments are described as below:
136 0: (E1, E0, EN) = (0, 0, 0)
137 1: (E1, E0, EN) = (0, 0, 1)
138 2: (E1, E0, EN) = (0, 1, 0)
139 3: (E1, E0, EN) = (0, 1, 1)
140 4: (E1, E0, EN) = (1, 0, 0)
141 5: (E1, E0, EN) = (1, 0, 1)
142 6: (E1, E0, EN) = (1, 1, 0)
143 7: (E1, E0, EN) = (1, 1, 1)
144 So the valid arguments are from 0 to 7.
145 $ref: /schemas/types.yaml#/definitions/uint32
146 enum: [0, 1, 2, 3, 4, 5, 6, 7]
148 mediatek,pull-up-adv:
151 DEPRECATED: Please use bias-pull-up instead.
152 Pull up settings for 2 pull resistors, R0 and R1. User can
153 configure those special pins. Valid arguments are described as
155 0: (R1, R0) = (0, 0) which means R1 disabled and R0 disabled.
156 1: (R1, R0) = (0, 1) which means R1 disabled and R0 enabled.
157 2: (R1, R0) = (1, 0) which means R1 enabled and R0 disabled.
158 3: (R1, R0) = (1, 1) which means R1 enabled and R0 enabled.
159 $ref: /schemas/types.yaml#/definitions/uint32
162 mediatek,pull-down-adv:
165 DEPRECATED: Please use bias-pull-down instead.
166 Pull down settings for 2 pull resistors, R0 and R1. User can
167 configure those special pins. Valid arguments are described as
169 0: (R1, R0) = (0, 0) which means R1 disabled and R0 disabled.
170 1: (R1, R0) = (0, 1) which means R1 disabled and R0 enabled.
171 2: (R1, R0) = (1, 0) which means R1 enabled and R0 disabled.
172 3: (R1, R0) = (1, 1) which means R1 enabled and R0 enabled.
173 $ref: /schemas/types.yaml#/definitions/uint32
178 An integer describing the steps for output level shifter duty
179 cycle when asserted (high pulse width adjustment). Valid arguments
181 $ref: /schemas/types.yaml#/definitions/uint32
185 An integer describing the steps for input level shifter duty cycle
186 when asserted (high pulse width adjustment). Valid arguments are
188 $ref: /schemas/types.yaml#/definitions/uint32
200 - $ref: pinctrl.yaml#
202 additionalProperties: false
206 #include <dt-bindings/interrupt-controller/arm-gic.h>
207 #include <dt-bindings/pinctrl/mt8365-pinfunc.h>
209 #address-cells = <2>;
212 pio: pinctrl@1000b000 {
213 compatible = "mediatek,mt8365-pinctrl";
214 reg = <0 0x1000b000 0 0x1000>;
215 mediatek,pctl-regmap = <&syscfg_pctl>;
218 interrupt-controller;
219 #interrupt-cells = <2>;
220 interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>;
224 pinmux = <MT8365_PIN_59_SDA1__FUNC_SDA1_0>, <MT8365_PIN_60_SCL1__FUNC_SCL1_0>;
225 mediatek,pull-up-adv = <3>;