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 119 120required: 121 - compatible 122 - reg 123 124unevaluatedProperties: false 125 126examples: 127 - | 128 pinctrl@35004800 { 129 compatible = "brcm,bcm21664-pinctrl"; 130 reg = <0x35004800 0x7f0>; 131 132 dev-a-active-pins { 133 /* group node defining 1 standard pin */ 134 std-grp0 { 135 pins = "gpio00"; 136 function = "alt1"; 137 input-schmitt-enable; 138 bias-disable; 139 slew-rate = <1>; 140 drive-strength = <4>; 141 }; 142 143 /* group node defining 2 I2C pins */ 144 i2c-grp0 { 145 pins = "bsc1clk", "bsc1dat"; 146 function = "alt2"; 147 bias-pull-up; 148 input-enable; 149 }; 150 }; 151 }; 152... 153