The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/contrib/device-tree/Bindings/pinctrl/pinctrl-mt8186.yaml

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
    2 %YAML 1.2
    3 ---
    4 $id: http://devicetree.org/schemas/pinctrl/pinctrl-mt8186.yaml#
    5 $schema: http://devicetree.org/meta-schemas/core.yaml#
    6 
    7 title: Mediatek MT8186 Pin Controller
    8 
    9 maintainers:
   10   - Sean Wang <sean.wang@mediatek.com>
   11 
   12 description: |
   13   The Mediatek's Pin controller is used to control SoC pins.
   14 
   15 properties:
   16   compatible:
   17     const: mediatek,mt8186-pinctrl
   18 
   19   gpio-controller: true
   20 
   21   '#gpio-cells':
   22     description: |
   23       Number of cells in GPIO specifier. Since the generic GPIO binding is used,
   24       the amount of cells must be specified as 2. See the below
   25       mentioned gpio binding representation for description of particular cells.
   26     const: 2
   27 
   28   gpio-ranges:
   29     maxItems: 1
   30 
   31   gpio-line-names: true
   32 
   33   reg:
   34     description: |
   35       Physical address base for gpio base registers. There are 8 different GPIO
   36       physical address base in mt8186.
   37     maxItems: 8
   38 
   39   reg-names:
   40     description: |
   41       Gpio base register names.
   42     items:
   43       - const: iocfg0
   44       - const: iocfg_bm
   45       - const: iocfg_bl
   46       - const: iocfg_br
   47       - const: iocfg_lm
   48       - const: iocfg_rb
   49       - const: iocfg_tl
   50       - const: eint
   51 
   52   interrupt-controller: true
   53 
   54   '#interrupt-cells':
   55     const: 2
   56 
   57   interrupts:
   58     description: The interrupt outputs to sysirq
   59     maxItems: 1
   60 
   61   mediatek,rsel-resistance-in-si-unit:
   62     type: boolean
   63     description: |
   64       Identifying i2c pins pull up/down type which is RSEL. It can support
   65       RSEL define or si unit value(ohm) to set different resistance.
   66 
   67 # PIN CONFIGURATION NODES
   68 patternProperties:
   69   '-pins$':
   70     type: object
   71     additionalProperties: false
   72     patternProperties:
   73       '^pins':
   74         type: object
   75         additionalProperties: false
   76         description: |
   77           A pinctrl node should contain at least one subnodes representing the
   78           pinctrl groups available on the machine. Each subnode will list the
   79           pins it needs, and how they should be configured, with regard to muxer
   80           configuration, pullups, drive strength, input enable/disable and
   81           input schmitt.
   82           An example of using macro:
   83           pincontroller {
   84             /* GPIO0 set as multifunction GPIO0 */
   85             gpio-pins {
   86               pins {
   87                 pinmux = <PINMUX_GPIO0__FUNC_GPIO0>;
   88               }
   89             };
   90             /* GPIO128 set as multifunction SDA0 */
   91             i2c0-pins {
   92               pins {
   93                 pinmux = <PINMUX_GPIO128__FUNC_SDA0>;
   94               }
   95             };
   96           };
   97         $ref: "pinmux-node.yaml"
   98 
   99         properties:
  100           pinmux:
  101             description: |
  102               Integer array, represents gpio pin number and mux setting.
  103               Supported pin number and mux varies for different SoCs, and are
  104               defined as macros in dt-bindings/pinctrl/<soc>-pinfunc.h
  105               directly.
  106 
  107           drive-strength:
  108             enum: [2, 4, 6, 8, 10, 12, 14, 16]
  109 
  110           drive-strength-microamp:
  111             enum: [125, 250, 500, 1000]
  112 
  113           bias-pull-down:
  114             oneOf:
  115               - type: boolean
  116               - enum: [100, 101, 102, 103]
  117                 description: mt8186 pull down PUPD/R0/R1 type define value.
  118               - enum: [200, 201, 202, 203]
  119                 description: mt8186 pull down RSEL type define value.
  120               - enum: [75000, 5000]
  121                 description: mt8186 pull down RSEL type si unit value(ohm).
  122             description: |
  123               For pull down type is normal, it don't need add RSEL & R1R0 define
  124               and resistance value.
  125               For pull down type is PUPD/R0/R1 type, it can add R1R0 define to
  126               set different resistance. It can support "MTK_PUPD_SET_R1R0_00" &
  127               "MTK_PUPD_SET_R1R0_01" & "MTK_PUPD_SET_R1R0_10" &
  128               "MTK_PUPD_SET_R1R0_11" define in mt8186.
  129               For pull down type is RSEL, it can add RSEL define & resistance
  130               value(ohm) to set different resistance by identifying property
  131               "mediatek,rsel-resistance-in-si-unit".
  132               It can support "MTK_PULL_SET_RSEL_000" & "MTK_PULL_SET_RSEL_001"
  133               & "MTK_PULL_SET_RSEL_010" & "MTK_PULL_SET_RSEL_011"
  134               define in mt8186. It can also support resistance value(ohm)
  135               "75000" & "5000" in mt8186.
  136               An example of using RSEL define:
  137               pincontroller {
  138                 i2c0_pin {
  139                   pins {
  140                     pinmux = <PINMUX_GPIO128__FUNC_SDA0>;
  141                     bias-pull-down = <MTK_PULL_SET_RSEL_001>;
  142                   }
  143                 };
  144               };
  145               An example of using si unit resistance value(ohm):
  146               &pio {
  147                 mediatek,rsel-resistance-in-si-unit;
  148               }
  149               pincontroller {
  150                 i2c0_pin {
  151                   pins {
  152                     pinmux = <PINMUX_GPIO128__FUNC_SDA0>;
  153                     bias-pull-down = <75000>;
  154                   }
  155                 };
  156               };
  157 
  158           bias-pull-up:
  159             oneOf:
  160               - type: boolean
  161               - enum: [100, 101, 102, 103]
  162                 description: mt8186 pull up PUPD/R0/R1 type define value.
  163               - enum: [200, 201, 202, 203]
  164                 description: mt8186 pull up RSEL type define value.
  165               - enum: [1000, 5000, 10000, 75000]
  166                 description: mt8186 pull up RSEL type si unit value(ohm).
  167             description: |
  168               For pull up type is normal, it don't need add RSEL & R1R0 define
  169               and resistance value.
  170               For pull up type is PUPD/R0/R1 type, it can add R1R0 define to
  171               set different resistance. It can support "MTK_PUPD_SET_R1R0_00" &
  172               "MTK_PUPD_SET_R1R0_01" & "MTK_PUPD_SET_R1R0_10" &
  173               "MTK_PUPD_SET_R1R0_11" define in mt8186.
  174               For pull up type is RSEL, it can add RSEL define & resistance
  175               value(ohm) to set different resistance by identifying property
  176               "mediatek,rsel-resistance-in-si-unit".
  177               It can support "MTK_PULL_SET_RSEL_000" & "MTK_PULL_SET_RSEL_001"
  178               & "MTK_PULL_SET_RSEL_010" & "MTK_PULL_SET_RSEL_011"
  179               define in mt8186. It can also support resistance value(ohm)
  180               "1000" & "5000" & "10000" & "75000" in mt8186.
  181               An example of using si unit resistance value(ohm):
  182               &pio {
  183                 mediatek,rsel-resistance-in-si-unit;
  184               }
  185               pincontroller {
  186                 i2c0-pins {
  187                   pins {
  188                     pinmux = <PINMUX_GPIO128__FUNC_SDA0>;
  189                     bias-pull-up = <1000>;
  190                   }
  191                 };
  192               };
  193 
  194           bias-disable: true
  195 
  196           output-high: true
  197 
  198           output-low: true
  199 
  200           input-enable: true
  201 
  202           input-disable: true
  203 
  204           input-schmitt-enable: true
  205 
  206           input-schmitt-disable: true
  207 
  208         required:
  209           - pinmux
  210 
  211 required:
  212   - compatible
  213   - reg
  214   - interrupts
  215   - interrupt-controller
  216   - '#interrupt-cells'
  217   - gpio-controller
  218   - '#gpio-cells'
  219   - gpio-ranges
  220 
  221 additionalProperties: false
  222 
  223 examples:
  224   - |
  225     #include <dt-bindings/pinctrl/mt8186-pinfunc.h>
  226     #include <dt-bindings/interrupt-controller/arm-gic.h>
  227 
  228     pio: pinctrl@10005000 {
  229       compatible = "mediatek,mt8186-pinctrl";
  230       reg = <0x10005000 0x1000>,
  231             <0x10002000 0x0200>,
  232             <0x10002200 0x0200>,
  233             <0x10002400 0x0200>,
  234             <0x10002600 0x0200>,
  235             <0x10002A00 0x0200>,
  236             <0x10002c00 0x0200>,
  237             <0x1000b000 0x1000>;
  238       reg-names = "iocfg0", "iocfg_bm", "iocfg_bl",
  239                   "iocfg_br", "iocfg_lm", "iocfg_rb",
  240                   "iocfg_tl", "eint";
  241       gpio-controller;
  242       #gpio-cells = <2>;
  243       gpio-ranges = <&pio 0 0 185>;
  244       interrupt-controller;
  245       interrupts = <GIC_SPI 186 IRQ_TYPE_LEVEL_HIGH 0>;
  246       #interrupt-cells = <2>;
  247 
  248       pio-pins {
  249         pins {
  250           pinmux = <PINMUX_GPIO0__FUNC_GPIO0>;
  251           output-low;
  252         };
  253       };
  254 
  255       spi0-pins {
  256         pins-spi {
  257           pinmux = <PINMUX_GPIO0__FUNC_SPI0_CLK_B>,
  258                    <PINMUX_GPIO1__FUNC_SPI0_CSB_B>,
  259                    <PINMUX_GPIO2__FUNC_SPI0_MO_B>;
  260           bias-disable;
  261         };
  262         pins-spi-mi {
  263           pinmux = <PINMUX_GPIO3__FUNC_SPI0_MI_B>;
  264           bias-pull-down;
  265         };
  266       };
  267 
  268       i2c0-pins {
  269         pins {
  270           pinmux = <PINMUX_GPIO127__FUNC_SCL0>,
  271                    <PINMUX_GPIO128__FUNC_SDA0>;
  272           bias-pull-up = <MTK_PULL_SET_RSEL_001>;
  273           drive-strength-microamp = <1000>;
  274         };
  275       };
  276     };

Cache object: c5df1055d580da3a1c7cd351f3b48697


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.