cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

mediatek,mt6797-pinctrl.yaml (5229B)


      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,mt6797-pinctrl.yaml#
      5$schema: http://devicetree.org/meta-schemas/core.yaml#
      6
      7title: Mediatek MT6797 Pin Controller Device Tree Bindings
      8
      9maintainers:
     10  - Sean Wang <sean.wang@kernel.org>
     11
     12description: |+
     13  The MediaTek's MT6797 Pin controller is used to control SoC pins.
     14
     15properties:
     16  compatible:
     17    const: mediatek,mt6797-pinctrl
     18
     19  reg:
     20    minItems: 5
     21    maxItems: 5
     22
     23  reg-names:
     24    items:
     25      - const: gpio
     26      - const: iocfgl
     27      - const: iocfgb
     28      - const: iocfgr
     29      - const: iocfgt
     30
     31  gpio-controller: true
     32
     33  "#gpio-cells":
     34    const: 2
     35    description: |
     36      Number of cells in GPIO specifier. Since the generic GPIO
     37      binding is used, the amount of cells must be specified as 2. See the below
     38      mentioned gpio binding representation for description of particular cells.
     39
     40  interrupt-controller: true
     41
     42  interrupts:
     43    maxItems: 1
     44
     45  "#interrupt-cells":
     46    const: 2
     47
     48allOf:
     49  - $ref: "pinctrl.yaml#"
     50
     51required:
     52  - compatible
     53  - reg
     54  - reg-names
     55  - gpio-controller
     56  - "#gpio-cells"
     57
     58patternProperties:
     59  '-[0-9]+$':
     60    type: object
     61    additionalProperties: false
     62    patternProperties:
     63      'pins':
     64        type: object
     65        additionalProperties: false
     66        description: |
     67          A pinctrl node should contain at least one subnodes representing the
     68          pinctrl groups available on the machine. Each subnode will list the
     69          pins it needs, and how they should be configured, with regard to muxer
     70          configuration, pullups, drive strength, input enable/disable and input
     71          schmitt.
     72        $ref: "/schemas/pinctrl/pincfg-node.yaml"
     73
     74        properties:
     75          pinmux:
     76            description:
     77              integer array, represents gpio pin number and mux setting.
     78              Supported pin number and mux varies for different SoCs, and are
     79              defined as macros in <soc>-pinfunc.h directly.
     80
     81          bias-disable: true
     82
     83          bias-pull-up: true
     84
     85          bias-pull-down: true
     86
     87          input-enable: true
     88
     89          input-disable: true
     90
     91          output-enable: true
     92
     93          output-low: true
     94
     95          output-high: true
     96
     97          input-schmitt-enable: true
     98
     99          input-schmitt-disable: true
    100
    101          drive-strength:
    102            enum: [2, 4, 8, 12, 16]
    103
    104          slew-rate:
    105            enum: [0, 1]
    106
    107          mediatek,pull-up-adv:
    108            description: |
    109              Pull up setings for 2 pull resistors, R0 and R1. User can
    110              configure those special pins. Valid arguments are described as below:
    111              0: (R1, R0) = (0, 0) which means R1 disabled and R0 disabled.
    112              1: (R1, R0) = (0, 1) which means R1 disabled and R0 enabled.
    113              2: (R1, R0) = (1, 0) which means R1 enabled and R0 disabled.
    114              3: (R1, R0) = (1, 1) which means R1 enabled and R0 enabled.
    115            $ref: /schemas/types.yaml#/definitions/uint32
    116            enum: [0, 1, 2, 3]
    117
    118          mediatek,pull-down-adv:
    119            description: |
    120              Pull down settings for 2 pull resistors, R0 and R1. User can
    121              configure those special pins. Valid arguments are described as below:
    122              0: (R1, R0) = (0, 0) which means R1 disabled and R0 disabled.
    123              1: (R1, R0) = (0, 1) which means R1 disabled and R0 enabled.
    124              2: (R1, R0) = (1, 0) which means R1 enabled and R0 disabled.
    125              3: (R1, R0) = (1, 1) which means R1 enabled and R0 enabled.
    126            $ref: /schemas/types.yaml#/definitions/uint32
    127            enum: [0, 1, 2, 3]
    128
    129          mediatek,tdsel:
    130            description: |
    131              An integer describing the steps for output level shifter duty
    132              cycle when asserted (high pulse width adjustment). Valid arguments
    133              are from 0 to 15.
    134            $ref: /schemas/types.yaml#/definitions/uint32
    135
    136          mediatek,rdsel:
    137            description: |
    138              An integer describing the steps for input level shifter duty cycle
    139              when asserted (high pulse width adjustment). Valid arguments are
    140              from 0 to 63.
    141            $ref: /schemas/types.yaml#/definitions/uint32
    142
    143        required:
    144          - pinmux
    145
    146additionalProperties: false
    147
    148examples:
    149  - |
    150    #include <dt-bindings/interrupt-controller/irq.h>
    151    #include <dt-bindings/interrupt-controller/arm-gic.h>
    152    #include <dt-bindings/pinctrl/mt6797-pinfunc.h>
    153
    154    soc {
    155        #address-cells = <2>;
    156        #size-cells = <2>;
    157
    158        pio: pinctrl@10005000 {
    159            compatible = "mediatek,mt6797-pinctrl";
    160            reg = <0 0x10005000 0 0x1000>,
    161                  <0 0x10002000 0 0x400>,
    162                  <0 0x10002400 0 0x400>,
    163                  <0 0x10002800 0 0x400>,
    164                  <0 0x10002C00 0 0x400>;
    165            reg-names = "gpio", "iocfgl", "iocfgb", "iocfgr", "iocfgt";
    166            gpio-controller;
    167            #gpio-cells = <2>;
    168
    169            uart_pins_a: uart-0 {
    170                pins1 {
    171                    pinmux = <MT6797_GPIO232__FUNC_URXD1>,
    172                            <MT6797_GPIO233__FUNC_UTXD1>;
    173                };
    174            };
    175        };
    176    };