~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/devicetree/bindings/pinctrl/mediatek,mt8365-pinctrl.yaml

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
  2 %YAML 1.2
  3 ---
  4 $id: http://devicetree.org/schemas/pinctrl/mediatek,mt8365-pinctrl.yaml#
  5 $schema: http://devicetree.org/meta-schemas/core.yaml#
  6 
  7 title: MediaTek MT8365 Pin Controller
  8 
  9 maintainers:
 10   - Zhiyong Tao <zhiyong.tao@mediatek.com>
 11   - Bernhard Rosenkränzer <bero@baylibre.com>
 12 
 13 description:
 14   The MediaTek's MT8365 Pin controller is used to control SoC pins.
 15 
 16 properties:
 17   compatible:
 18     const: mediatek,mt8365-pinctrl
 19 
 20   reg:
 21     maxItems: 1
 22 
 23   mediatek,pctl-regmap:
 24     $ref: /schemas/types.yaml#/definitions/phandle-array
 25     items:
 26       maxItems: 1
 27     minItems: 1
 28     maxItems: 2
 29     description:
 30       Should be phandles of the syscfg node.
 31 
 32   gpio-controller: true
 33 
 34   "#gpio-cells":
 35     const: 2
 36     description:
 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.
 40 
 41   interrupt-controller: true
 42 
 43   interrupts:
 44     maxItems: 1
 45 
 46   "#interrupt-cells":
 47     const: 2
 48 
 49 patternProperties:
 50   "-pins$":
 51     type: object
 52     additionalProperties: false
 53     patternProperties:
 54       "pins$":
 55         type: object
 56         additionalProperties: false
 57         description:
 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
 62           schmitt.
 63         $ref: /schemas/pinctrl/pincfg-node.yaml
 64 
 65         properties:
 66           pinmux:
 67             description:
 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.
 71 
 72           bias-disable: true
 73 
 74           bias-pull-up:
 75             oneOf:
 76               - type: boolean
 77               - enum: [100, 101, 102, 103]
 78                 description: Pull up R1/R0 type define value.
 79             description: |
 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.
 87 
 88           bias-pull-down:
 89             oneOf:
 90               - type: boolean
 91               - enum: [100, 101, 102, 103]
 92                 description: Pull down R1/R0 type define value.
 93             description: |
 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.
101 
102           drive-strength:
103             enum: [2, 4, 6, 8, 10, 12, 14, 16]
104 
105           input-enable: true
106 
107           input-disable: true
108 
109           output-low: true
110 
111           output-high: true
112 
113           input-schmitt-enable: true
114 
115           input-schmitt-disable: true
116 
117           drive-strength-microamp:
118             enum: [125, 250, 500, 1000]
119 
120           mediatek,drive-strength-adv:
121             deprecated: true
122             description: |
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]
147 
148           mediatek,pull-up-adv:
149             deprecated: true
150             description: |
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
154               below:
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
160             enum: [0, 1, 2, 3]
161 
162           mediatek,pull-down-adv:
163             deprecated: true
164             description: |
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
168               below:
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
174             enum: [0, 1, 2, 3]
175 
176           mediatek,tdsel:
177             description:
178               An integer describing the steps for output level shifter duty
179               cycle when asserted (high pulse width adjustment). Valid arguments
180               are from 0 to 15.
181             $ref: /schemas/types.yaml#/definitions/uint32
182 
183           mediatek,rdsel:
184             description:
185               An integer describing the steps for input level shifter duty cycle
186               when asserted (high pulse width adjustment). Valid arguments are
187               from 0 to 63.
188             $ref: /schemas/types.yaml#/definitions/uint32
189 
190         required:
191           - pinmux
192 
193 required:
194   - compatible
195   - reg
196   - gpio-controller
197   - "#gpio-cells"
198 
199 allOf:
200   - $ref: pinctrl.yaml#
201 
202 additionalProperties: false
203 
204 examples:
205   - |
206     #include <dt-bindings/interrupt-controller/arm-gic.h>
207     #include <dt-bindings/pinctrl/mt8365-pinfunc.h>
208     soc {
209       #address-cells = <2>;
210       #size-cells = <2>;
211 
212       pio: pinctrl@1000b000 {
213         compatible = "mediatek,mt8365-pinctrl";
214         reg = <0 0x1000b000 0 0x1000>;
215         mediatek,pctl-regmap = <&syscfg_pctl>;
216         gpio-controller;
217         #gpio-cells = <2>;
218         interrupt-controller;
219         #interrupt-cells = <2>;
220         interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>;
221 
222         pio-pins {
223           pins {
224             pinmux = <MT8365_PIN_59_SDA1__FUNC_SDA1_0>, <MT8365_PIN_60_SCL1__FUNC_SCL1_0>;
225             mediatek,pull-up-adv = <3>;
226             bias-pull-up;
227           };
228         };
229       };
230     };

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php