brintos

brintos / linux-shallow public Read only

0
0
Text · 7.3 KiB · 4502405 Raw
303 lines · yaml
1# SPDX-License-Identifier: GPL-2.02%YAML 1.23---4$id: http://devicetree.org/schemas/pinctrl/allwinner,sun4i-a10-pinctrl.yaml#5$schema: http://devicetree.org/meta-schemas/core.yaml#6 7title: Allwinner A10 Pin Controller8 9maintainers:10  - Chen-Yu Tsai <wens@csie.org>11  - Maxime Ripard <mripard@kernel.org>12 13properties:14  "#gpio-cells":15    const: 316    description:17      GPIO consumers must use three arguments, first the number of the18      bank, then the pin number inside that bank, and finally the GPIO19      flags.20 21  "#interrupt-cells":22    const: 323    description:24      Interrupts consumers must use three arguments, first the number25      of the bank, then the pin number inside that bank, and finally26      the interrupts flags.27 28  compatible:29    enum:30      - allwinner,sun4i-a10-pinctrl31      - allwinner,sun5i-a10s-pinctrl32      - allwinner,sun5i-a13-pinctrl33      - allwinner,sun6i-a31-pinctrl34      - allwinner,sun6i-a31-r-pinctrl35      - allwinner,sun6i-a31s-pinctrl36      - allwinner,sun7i-a20-pinctrl37      - allwinner,sun8i-a23-pinctrl38      - allwinner,sun8i-a23-r-pinctrl39      - allwinner,sun8i-a33-pinctrl40      - allwinner,sun8i-a83t-pinctrl41      - allwinner,sun8i-a83t-r-pinctrl42      - allwinner,sun8i-h3-pinctrl43      - allwinner,sun8i-h3-r-pinctrl44      - allwinner,sun8i-r40-pinctrl45      - allwinner,sun8i-v3-pinctrl46      - allwinner,sun8i-v3s-pinctrl47      - allwinner,sun9i-a80-pinctrl48      - allwinner,sun9i-a80-r-pinctrl49      - allwinner,sun20i-d1-pinctrl50      - allwinner,sun50i-a64-pinctrl51      - allwinner,sun50i-a64-r-pinctrl52      - allwinner,sun50i-a100-pinctrl53      - allwinner,sun50i-a100-r-pinctrl54      - allwinner,sun50i-h5-pinctrl55      - allwinner,sun50i-h6-pinctrl56      - allwinner,sun50i-h6-r-pinctrl57      - allwinner,sun50i-h616-pinctrl58      - allwinner,sun50i-h616-r-pinctrl59      - allwinner,suniv-f1c100s-pinctrl60      - nextthing,gr8-pinctrl61 62  reg:63    maxItems: 164 65  interrupts:66    minItems: 167    maxItems: 868    description:69      One interrupt per external interrupt bank supported on the70      controller, sorted by bank number ascending order.71 72  clocks:73    items:74      - description: Bus Clock75      - description: High Frequency Oscillator76      - description: Low Frequency Oscillator77 78  clock-names:79    items:80      - const: apb81      - const: hosc82      - const: losc83 84  gpio-controller: true85  interrupt-controller: true86  gpio-line-names: true87 88  input-debounce:89    description:90      Debouncing periods in microseconds, one period per interrupt91      bank found in the controller92    $ref: /schemas/types.yaml#/definitions/uint32-array93    minItems: 194    maxItems: 895 96patternProperties:97  # It's pretty scary, but the basic idea is that:98  #   - One node name can start with either s- or r- for PRCM nodes,99  #   - Then, the name itself can be any repetition of <string>- (to100  #     accommodate with nodes like uart4-rts-cts-pins), where each101  #     string can be either starting with 'p' but in a string longer102  #     than 3, or something that doesn't start with 'p',103  #   - Then, the bank name is optional and will be between pa and pg,104  #     pl or pm. Some pins groups that have several options will have105  #     the pin numbers then,106  #   - Finally, the name will end with either -pin or pins.107 108  "^([rs]-)?(([a-z0-9]{3,}|[a-oq-z][a-z0-9]*?)?-)+?(p[a-ilm][0-9]*?-)??pins?$":109    type: object110 111    properties:112      pins: true113      function: true114      bias-disable: true115      bias-pull-up: true116      bias-pull-down: true117 118      drive-strength:119        $ref: /schemas/types.yaml#/definitions/uint32120        enum: [10, 20, 30, 40]121 122    required:123      - pins124      - function125 126    additionalProperties: false127 128  "^vcc-p[a-ilm]-supply$":129    description:130      Power supplies for pin banks.131 132required:133  - "#gpio-cells"134  - compatible135  - reg136  - clocks137  - clock-names138  - gpio-controller139 140allOf:141  # FIXME: We should have the pin bank supplies here, but not a lot of142  # boards are defining it at the moment so it would generate a lot of143  # warnings.144 145  - $ref: pinctrl.yaml#146  - if:147      not:148        properties:149          compatible:150            enum:151              - allwinner,sun50i-h616-r-pinctrl152 153    then:154      required:155        - "#interrupt-cells"156        - interrupts157        - interrupt-controller158 159  - if:160      properties:161        compatible:162          enum:163            - allwinner,sun50i-h616-pinctrl164 165    then:166      properties:167        interrupts:168          minItems: 8169 170  - if:171      properties:172        compatible:173          enum:174            - allwinner,sun50i-a100-pinctrl175 176    then:177      properties:178        interrupts:179          minItems: 7180          maxItems: 7181 182  - if:183      properties:184        compatible:185          enum:186            - allwinner,sun20i-d1-pinctrl187 188    then:189      properties:190        interrupts:191          minItems: 6192          maxItems: 6193 194  - if:195      properties:196        compatible:197          enum:198            - allwinner,sun9i-a80-pinctrl199 200    then:201      properties:202        interrupts:203          minItems: 5204          maxItems: 5205 206  - if:207      properties:208        compatible:209          enum:210            - allwinner,sun6i-a31-pinctrl211            - allwinner,sun6i-a31s-pinctrl212            - allwinner,sun50i-h6-pinctrl213 214    then:215      properties:216        interrupts:217          minItems: 4218          maxItems: 4219 220  - if:221      properties:222        compatible:223          enum:224            - allwinner,sun8i-a23-pinctrl225            - allwinner,sun8i-a83t-pinctrl226            - allwinner,sun50i-a64-pinctrl227            - allwinner,sun50i-h5-pinctrl228            - allwinner,suniv-f1c100s-pinctrl229 230    then:231      properties:232        interrupts:233          minItems: 3234          maxItems: 3235 236  - if:237      properties:238        compatible:239          enum:240            - allwinner,sun6i-a31-r-pinctrl241            - allwinner,sun8i-a33-pinctrl242            - allwinner,sun8i-h3-pinctrl243            - allwinner,sun8i-v3-pinctrl244            - allwinner,sun8i-v3s-pinctrl245            - allwinner,sun9i-a80-r-pinctrl246            - allwinner,sun50i-h6-r-pinctrl247 248    then:249      properties:250        interrupts:251          minItems: 2252          maxItems: 2253 254  - if:255      properties:256        compatible:257          enum:258            - allwinner,sun4i-a10-pinctrl259            - allwinner,sun5i-a10s-pinctrl260            - allwinner,sun5i-a13-pinctrl261            - allwinner,sun7i-a20-pinctrl262            - allwinner,sun8i-a23-r-pinctrl263            - allwinner,sun8i-a83t-r-pinctrl264            - allwinner,sun8i-h3-r-pinctrl265            - allwinner,sun8i-r40-pinctrl266            - allwinner,sun50i-a64-r-pinctrl267            - allwinner,sun50i-a100-r-pinctrl268            - nextthing,gr8-pinctrl269 270    then:271      properties:272        interrupts:273          minItems: 1274          maxItems: 1275 276additionalProperties: false277 278examples:279  - |280    #include <dt-bindings/clock/sun5i-ccu.h>281 282    pio: pinctrl@1c20800 {283        compatible = "allwinner,sun5i-a13-pinctrl";284        reg = <0x01c20800 0x400>;285        interrupts = <28>;286        clocks = <&ccu CLK_APB0_PIO>, <&osc24M>, <&osc32k>;287        clock-names = "apb", "hosc", "losc";288        gpio-controller;289        interrupt-controller;290        #interrupt-cells = <3>;291        #gpio-cells = <3>;292 293        uart1_pe_pins: uart1-pe-pins {294            pins = "PE10", "PE11";295            function = "uart1";296        };297 298        uart1_pg_pins: uart1-pg-pins {299            pins = "PG3", "PG4";300            function = "uart1";301        };302    };303