File Index
Files and directories
Sign in
FILE

mediatek,mt8189-pinctrl.yaml

File preview with syntax highlighting.

linux-6.19.14/Documentation/devicetree/bindings/pinctrl/mediatek,mt8189-pinctrl.yaml YAML
  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,mt8189-pinctrl.yaml#
  5$schema: http://devicetree.org/meta-schemas/core.yaml#
  6
  7title: MediaTek MT8189 Pin Controller
  8
  9maintainers:
 10  - Lei Xue <lei.xue@mediatek.com>
 11  - Cathy Xu <ot_cathy.xu@mediatek.com>
 12
 13description:
 14  The MediaTek's MT8189 Pin controller is used to control SoC pins.
 15
 16properties:
 17  compatible:
 18    const: mediatek,mt8189-pinctrl
 19
 20  reg:
 21    items:
 22      - description: gpio base
 23      - description: lm group IO
 24      - description: rb0 group IO
 25      - description: rb1 group IO
 26      - description: bm0 group IO
 27      - description: bm1 group IO
 28      - description: bm2 group IO
 29      - description: lt0 group IO
 30      - description: lt1 group IO
 31      - description: rt group IO
 32      - description: eint0 group IO
 33      - description: eint1 group IO
 34      - description: eint2 group IO
 35      - description: eint3 group IO
 36      - description: eint4 group IO
 37
 38  reg-names:
 39    items:
 40      - const: base
 41      - const: lm
 42      - const: rb0
 43      - const: rb1
 44      - const: bm0
 45      - const: bm1
 46      - const: bm2
 47      - const: lt0
 48      - const: lt1
 49      - const: rt
 50      - const: eint0
 51      - const: eint1
 52      - const: eint2
 53      - const: eint3
 54      - const: eint4
 55
 56  interrupts:
 57    maxItems: 1
 58
 59  interrupt-controller: true
 60
 61  '#interrupt-cells':
 62    const: 2
 63
 64  gpio-controller: true
 65
 66  '#gpio-cells':
 67    const: 2
 68
 69  gpio-ranges:
 70    maxItems: 1
 71
 72  gpio-line-names: true
 73
 74# PIN CONFIGURATION NODES
 75patternProperties:
 76  '-pins$':
 77    type: object
 78    additionalProperties: false
 79
 80    patternProperties:
 81      '^pins':
 82        type: object
 83        $ref: /schemas/pinctrl/pincfg-node.yaml
 84        additionalProperties: false
 85        description:
 86          A pinctrl node should contain at least one subnode representing the
 87          pinctrl groups available on the machine. Each subnode will list the
 88          pins it needs, and how they should be configured, with regard to muxer
 89          configuration, pullups, drive strength, input enable/disable and input
 90          schmitt.
 91
 92        properties:
 93          pinmux:
 94            description:
 95              Integer array, represents gpio pin number and mux setting.
 96              Supported pin number and mux varies for different SoCs, and are
 97              defined as macros in arch/arm64/boot/dts/mediatek/mt8189-pinfunc.h
 98              directly, for this SoC.
 99
100          drive-strength:
101            enum: [2, 4, 6, 8, 10, 12, 14, 16]
102
103          bias-pull-down:
104            oneOf:
105              - type: boolean
106              - enum: [100, 101, 102, 103]
107                description: mt8189 pull down PUPD/R0/R1 type define value.
108              - enum: [75000, 5000]
109                description: mt8189 pull down RSEL type si unit value(ohm).
110            description: |
111              For pull down type is normal, it doesn't need add R1R0 define
112              and resistance value.
113
114              For pull down type is PUPD/R0/R1 type, it can add R1R0 define to
115              set different resistance. It can support "MTK_PUPD_SET_R1R0_00" &
116              "MTK_PUPD_SET_R1R0_01" & "MTK_PUPD_SET_R1R0_10" &
117              "MTK_PUPD_SET_R1R0_11" define in mt8189.
118
119              For pull down type is PD/RSEL, it can add resistance value(ohm)
120              to set different resistance by identifying property
121              "mediatek,rsel-resistance-in-si-unit".
122
123          bias-pull-up:
124            oneOf:
125              - type: boolean
126              - enum: [100, 101, 102, 103]
127                description: mt8189 pull up PUPD/R0/R1 type define value.
128              - enum: [1000, 1500, 2000, 3000, 4000, 5000, 75000]
129                description: mt8189 pull up RSEL type si unit value(ohm).
130            description: |
131              For pull up type is normal, it don't need add R1R0 define
132              and resistance value.
133
134              For pull up type is PUPD/R0/R1 type, it can add R1R0 define to
135              set different resistance. It can support "MTK_PUPD_SET_R1R0_00" &
136              "MTK_PUPD_SET_R1R0_01" & "MTK_PUPD_SET_R1R0_10" &
137              "MTK_PUPD_SET_R1R0_11" define in mt8189.
138
139              For pull up type is PU/RSEL, it can add resistance value(ohm)
140              to set different resistance by identifying property
141              "mediatek,rsel-resistance-in-si-unit".
142
143          bias-disable: true
144
145          output-high: true
146
147          output-low: true
148
149          input-enable: true
150
151          input-disable: true
152
153          input-schmitt-enable: true
154
155          input-schmitt-disable: true
156
157        required:
158          - pinmux
159
160required:
161  - compatible
162  - reg
163  - interrupts
164  - interrupt-controller
165  - '#interrupt-cells'
166  - gpio-controller
167  - '#gpio-cells'
168  - gpio-ranges
169
170additionalProperties: false
171
172examples:
173  - |
174    #include <dt-bindings/pinctrl/mt65xx.h>
175    #include <dt-bindings/interrupt-controller/arm-gic.h>
176    #define PINMUX_GPIO51__FUNC_SCL0 (MTK_PIN_NO(51) | 2)
177    #define PINMUX_GPIO52__FUNC_SDA0 (MTK_PIN_NO(52) | 2)
178
179    pio: pinctrl@10005000 {
180        compatible = "mediatek,mt8189-pinctrl";
181        reg = <0x10005000 0x1000>,
182              <0x11b50000 0x1000>,
183              <0x11c50000 0x1000>,
184              <0x11c60000 0x1000>,
185              <0x11d20000 0x1000>,
186              <0x11d30000 0x1000>,
187              <0x11d40000 0x1000>,
188              <0x11e20000 0x1000>,
189              <0x11e30000 0x1000>,
190              <0x11f20000 0x1000>,
191              <0x11ce0000 0x1000>,
192              <0x11de0000 0x1000>,
193              <0x11e60000 0x1000>,
194              <0x1c01e000 0x1000>,
195              <0x11f00000 0x1000>;
196        reg-names = "base", "lm", "rb0", "rb1", "bm0" , "bm1",
197                    "bm2", "lt0", "lt1", "rt", "eint0", "eint1",
198                    "eint2", "eint3", "eint4";
199        gpio-controller;
200        #gpio-cells = <2>;
201        gpio-ranges = <&pio 0 0 182>;
202        interrupt-controller;
203        interrupts = <GIC_SPI 239 IRQ_TYPE_LEVEL_HIGH 0>;
204        #interrupt-cells = <2>;
205
206        i2c0-pins {
207            pins {
208                pinmux = <PINMUX_GPIO51__FUNC_SCL0>,
209                         <PINMUX_GPIO52__FUNC_SDA0>;
210                bias-disable;
211            };
212        };
213    };
~/ Read-only file preview.