Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
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...