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