File Index
Files and directories
Sign in
FILE

brcm,bcm21664-pinctrl.yaml

File preview with syntax highlighting.

linux-6.19.14/Documentation/devicetree/bindings/pinctrl/brcm,bcm21664-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/brcm,bcm21664-pinctrl.yaml#
  5$schema: http://devicetree.org/meta-schemas/core.yaml#
  6
  7title: Broadcom BCM21664 pin controller
  8
  9maintainers:
 10  - Florian Fainelli <florian.fainelli@broadcom.com>
 11  - Ray Jui <rjui@broadcom.com>
 12  - Scott Branden <sbranden@broadcom.com>
 13
 14allOf:
 15  - $ref: pinctrl.yaml#
 16
 17properties:
 18  compatible:
 19    const: brcm,bcm21664-pinctrl
 20
 21  reg:
 22    maxItems: 1
 23
 24patternProperties:
 25  '-pins$':
 26    type: object
 27    additionalProperties: false
 28
 29    patternProperties:
 30      '-grp[0-9]$':
 31        type: object
 32
 33        properties:
 34          pins:
 35            description:
 36              Specifies the name(s) of one or more pins to be configured by
 37              this node.
 38            items:
 39              enum: [ adcsyn, batrm, bsc1clk, bsc1dat, camcs0, camcs1, clk32k,
 40                      clk_cx8, dclk1, dclk4, dclkreq1, dclkreq4, dmic0clk,
 41                      dmic0dq, dsi0te, gpio00, gpio01, gpio02, gpio03, gpio04,
 42                      gpio05, gpio06, gpio07, gpio08, gpio09, gpio10, gpio11,
 43                      gpio12, gpio13, gpio14, gpio15, gpio16, gpio17, gpio18,
 44                      gpio19, gpio20, gpio21, gpio22, gpio23, gpio24, gpio25,
 45                      gpio26, gpio27, gpio28, gpio32, gpio33, gpio34, gpio93,
 46                      gpio94, gps_calreq, gps_hostreq, gps_pablank, gps_tmark,
 47                      icusbdm, icusbdp, lcdcs0, lcdres, lcdscl, lcdsda, lcdte,
 48                      mdmgpio00, mdmgpio01, mdmgpio02, mdmgpio03, mdmgpio04,
 49                      mdmgpio05, mdmgpio06, mdmgpio07, mdmgpio08, mmc0ck,
 50                      mmc0cmd, mmc0dat0, mmc0dat1, mmc0dat2, mmc0dat3, mmc0dat4,
 51                      mmc0dat5, mmc0dat6, mmc0dat7, mmc0rst, mmc1ck, mmc1cmd,
 52                      mmc1dat0, mmc1dat1, mmc1dat2, mmc1dat3, mmc1dat4,
 53                      mmc1dat5, mmc1dat6, mmc1dat7, mmc1rst, pc1, pc2, pmbscclk,
 54                      pmbscdat, pmuint, resetn, rfst2g_mtsloten3g,
 55                      rtxdata2g_txdata3g1, rtxen2g_txdata3g2, rxdata3g0,
 56                      rxdata3g1, rxdata3g2, sdck, sdcmd, sddat0, sddat1, sddat2,
 57                      sddat3, simclk, simdat, simdet, simrst, spi0clk, spi0fss,
 58                      spi0rxd, spi0txd, sri_c, sri_d, sri_e, sspck, sspdi,
 59                      sspdo, sspsyn, stat1, stat2, swclktck, swdiotms, sysclken,
 60                      tdi, tdo, testmode, traceclk, tracedt00, tracedt01,
 61                      tracedt02, tracedt03, tracedt04, tracedt05, tracedt06,
 62                      tracedt07, tracedt08, tracedt09, tracedt10, tracedt11,
 63                      tracedt12, tracedt13, tracedt14, tracedt15, trstb,
 64                      txdata3g0, ubctsn, ubrtsn, ubrx, ubtx ]
 65
 66          function:
 67            description:
 68              Specifies the pin mux selection.
 69            enum: [ alt1, alt2, alt3, alt4, alt5, alt6 ]
 70
 71          bias-disable: true
 72
 73          bias-pull-up:
 74            type: boolean
 75
 76          bias-pull-down:
 77            type: boolean
 78
 79          slew-rate:
 80            description: |
 81              Meaning depends on configured pin mux:
 82                bsc*clk/pmbscclk or bsc*dat/pmbscdat or gpio16/gpio17:
 83                  0: Standard (100 kbps) & Fast (400 kbps) mode
 84                  1: Highspeed (3.4 Mbps) mode
 85                Otherwise:
 86                  0: fast slew rate
 87                  1: normal slew rate
 88
 89          drive-strength:
 90            enum: [ 2, 4, 6, 8, 10, 12, 14, 16 ]
 91
 92          input-enable: true
 93          input-disable: true
 94
 95          input-schmitt-enable: true
 96          input-schmitt-disable: true
 97
 98        required:
 99          - pins
100
101        additionalProperties: false
102
103        allOf:
104          - $ref: pincfg-node.yaml#
105          # Limitations for I2C pins
106          - if:
107              properties:
108                pins:
109                  contains:
110                    enum: [ bsc1clk, bsc1dat, gpio16, gpio17, pmbscclk,
111                            pmbscdat ]
112            then:
113              properties:
114                drive-strength: false
115                bias-pull-down: false
116                input-schmitt-enable: false
117                input-schmitt-disable: false
118
119required:
120  - compatible
121  - reg
122
123unevaluatedProperties: false
124
125examples:
126  - |
127    pinctrl@35004800 {
128      compatible = "brcm,bcm21664-pinctrl";
129      reg = <0x35004800 0x7f0>;
130
131      dev-a-active-pins {
132        /* group node defining 1 standard pin */
133        std-grp0 {
134          pins = "gpio00";
135          function = "alt1";
136          input-schmitt-enable;
137          bias-disable;
138          slew-rate = <1>;
139          drive-strength = <4>;
140        };
141
142        /* group node defining 2 I2C pins */
143        i2c-grp0 {
144          pins = "bsc1clk", "bsc1dat";
145          function = "alt2";
146          bias-pull-up;
147          input-enable;
148        };
149      };
150    };
151...
~/ Read-only file preview.