GNU Linux-libre 4.19.264-gnu1
[releases.git] / Documentation / devicetree / bindings / pinctrl / brcm,bcm11351-pinctrl.txt
1 Broadcom BCM281xx Pin Controller
2
3 This is a pin controller for the Broadcom BCM281xx SoC family, which includes
4 BCM11130, BCM11140, BCM11351, BCM28145, and BCM28155 SoCs.
5
6 === Pin Controller Node ===
7
8 Required Properties:
9
10 - compatible:   Must be "brcm,bcm11351-pinctrl"
11 - reg:          Base address of the PAD Controller register block and the size
12                 of the block.
13
14 For example, the following is the bare minimum node:
15
16         pinctrl@35004800 {
17                 compatible = "brcm,bcm11351-pinctrl";
18                 reg = <0x35004800 0x430>;
19         };
20
21 As a pin controller device, in addition to the required properties, this node
22 should also contain the pin configuration nodes that client devices reference,
23 if any.
24
25 === Pin Configuration Node ===
26
27 Each pin configuration node is a sub-node of the pin controller node and is a
28 container of an arbitrary number of subnodes, called pin group nodes in this
29 document.
30
31 Please refer to the pinctrl-bindings.txt in this directory for details of the
32 common pinctrl bindings used by client devices, including the definition of a
33 "pin configuration node".
34
35 === Pin Group Node ===
36
37 A pin group node specifies the desired pin mux and/or pin configuration for an
38 arbitrary number of pins.  The name of the pin group node is optional and not
39 used.
40
41 A pin group node only affects the properties specified in the node, and has no
42 effect on any properties that are omitted.
43
44 The pin group node accepts a subset of the generic pin config properties. For
45 details generic pin config properties, please refer to pinctrl-bindings.txt
46 and <include/linux/pinctrl/pinconfig-generic.h>.
47
48 Each pin controlled by this pin controller belong to one of three types:
49 Standard, I2C, and HDMI.  Each type accepts a different set of pin config
50 properties.  A list of pins and their types is provided below.
51
52 Required Properties (applicable to all pins):
53
54 - pins:         Multiple strings.  Specifies the name(s) of one or more pins to
55                 be configured by this node.
56
57 Optional Properties (for standard pins):
58
59 - function:                     String. Specifies the pin mux selection. Values
60                                 must be one of: "alt1", "alt2", "alt3", "alt4"
61 - input-schmitt-enable:         No arguments. Enable schmitt-trigger mode.
62 - input-schmitt-disable:        No arguments. Disable schmitt-trigger mode.
63 - bias-pull-up:                 No arguments. Pull up on pin.
64 - bias-pull-down:               No arguments. Pull down on pin.
65 - bias-disable:                 No arguments. Disable pin bias.
66 - slew-rate:                    Integer. Meaning depends on configured pin mux:
67                                 *_SCL or *_SDA:
68                                         0: Standard(100kbps)& Fast(400kbps) mode
69                                         1: Highspeed (3.4Mbps) mode
70                                 IC_DM or IC_DP:
71                                         0: normal slew rate
72                                         1: fast slew rate
73                                 Otherwise:
74                                         0: fast slew rate
75                                         1: normal slew rate
76 - input-enable:                 No arguments. Enable input (does not affect
77                                 output.)
78 - input-disable:                No arguments. Disable input (does not affect
79                                 output.)
80 - drive-strength:               Integer. Drive strength in mA.  Valid values are
81                                 2, 4, 6, 8, 10, 12, 14, 16 mA.
82
83 Optional Properties (for I2C pins):
84
85 - function:                     String. Specifies the pin mux selection. Values
86                                 must be one of: "alt1", "alt2", "alt3", "alt4"
87 - bias-pull-up:                 Integer. Pull up strength in Ohm. There are 3
88                                 pull-up resisitors (1.2k, 1.8k, 2.7k) available
89                                 in parallel for I2C pins, so the valid values
90                                 are: 568, 720, 831, 1080, 1200, 1800, 2700 Ohm.
91 - bias-disable:                 No arguments. Disable pin bias.
92 - slew-rate:                    Integer. Meaning depends on configured pin mux:
93                                 *_SCL or *_SDA:
94                                         0: Standard(100kbps)& Fast(400kbps) mode
95                                         1: Highspeed (3.4Mbps) mode
96                                 IC_DM or IC_DP:
97                                         0: normal slew rate
98                                         1: fast slew rate
99                                 Otherwise:
100                                         0: fast slew rate
101                                         1: normal slew rate
102 - input-enable:                 No arguments. Enable input (does not affect
103                                 output.)
104 - input-disable:                No arguments. Disable input (does not affect
105                                 output.)
106
107 Optional Properties (for HDMI pins):
108
109 - function:                     String. Specifies the pin mux selection. Values
110                                 must be one of: "alt1", "alt2", "alt3", "alt4"
111 - slew-rate:                    Integer. Controls slew rate.
112                                         0: Standard(100kbps)& Fast(400kbps) mode
113                                         1: Highspeed (3.4Mbps) mode
114 - input-enable:                 No arguments. Enable input (does not affect
115                                 output.)
116 - input-disable:                No arguments. Disable input (does not affect
117                                 output.)
118
119 Example:
120 // pin controller node
121 pinctrl@35004800 {
122         compatible = "brcm,bcm11351-pinctrl";
123         reg = <0x35004800 0x430>;
124
125         // pin configuration node
126         dev_a_default: dev_a_active {
127                 //group node defining 1 standard pin
128                 grp_1 {
129                         pins            = "std_pin1";
130                         function        = "alt1";
131                         input-schmitt-enable;
132                         bias-disable;
133                         slew-rate       = <1>;
134                         drive-strength  = <4>;
135                 };
136
137                 // group node defining 2 I2C pins
138                 grp_2 {
139                         pins            = "i2c_pin1", "i2c_pin2";
140                         function        = "alt2";
141                         bias-pull-up    = <720>;
142                         input-enable;
143                 };
144
145                 // group node defining 2 HDMI pins
146                 grp_3 {
147                         pins            = "hdmi_pin1", "hdmi_pin2";
148                         function        = "alt3";
149                         slew-rate       = <1>;
150                 };
151
152                 // other pin group nodes
153                 ...
154         };
155
156         // other pin configuration nodes
157         ...
158 };
159
160 In the example above, "dev_a_active" is a pin configuration node with a number
161 of sub-nodes.  In the pin group node "grp_1", one pin, "std_pin1", is defined in
162 the "pins" property.  Thus, the remaining properties in the "grp_1" node applies
163 only to this pin, including the following settings:
164  - setting pinmux to "alt1"
165  - enabling schmitt-trigger (hystersis) mode
166  - disabling pin bias
167  - setting the slew-rate to 1
168  - setting the drive strength to 4 mA
169 Note that neither "input-enable" nor "input-disable" was specified - the pinctrl
170 subsystem will therefore leave this property unchanged from whatever state it
171 was in before applying these changes.
172
173 The "pins" property in the pin group node "grp_2" specifies two pins -
174 "i2c_pin1" and "i2c_pin2"; the remaining properties in this pin group node,
175 therefore, applies to both of these pins.  The properties include:
176  - setting pinmux to "alt2"
177  - setting pull-up resistance to 720 Ohm (ie. enabling 1.2k and 1.8k resistors
178    in parallel)
179  - enabling both pins' input
180 "slew-rate" is not specified in this pin group node, so the slew-rate for these
181 pins are left as-is.
182
183 Finally, "grp_3" defines two HDMI pins.  The following properties are applied to
184 both pins:
185  - setting pinmux to "alt3"
186  - setting slew-rate to 1; for HDMI pins, this corresponds to the 3.4 Mbps
187    Highspeed mode
188 The input is neither enabled or disabled, and is left untouched.
189
190 === Pin Names and Type ===
191
192 The following are valid pin names and their pin types:
193
194         "adcsync",              Standard
195         "bat_rm",               Standard
196         "bsc1_scl",             I2C
197         "bsc1_sda",             I2C
198         "bsc2_scl",             I2C
199         "bsc2_sda",             I2C
200         "classgpwr",            Standard
201         "clk_cx8",              Standard
202         "clkout_0",             Standard
203         "clkout_1",             Standard
204         "clkout_2",             Standard
205         "clkout_3",             Standard
206         "clkreq_in_0",          Standard
207         "clkreq_in_1",          Standard
208         "cws_sys_req1",         Standard
209         "cws_sys_req2",         Standard
210         "cws_sys_req3",         Standard
211         "digmic1_clk",          Standard
212         "digmic1_dq",           Standard
213         "digmic2_clk",          Standard
214         "digmic2_dq",           Standard
215         "gpen13",               Standard
216         "gpen14",               Standard
217         "gpen15",               Standard
218         "gpio00",               Standard
219         "gpio01",               Standard
220         "gpio02",               Standard
221         "gpio03",               Standard
222         "gpio04",               Standard
223         "gpio05",               Standard
224         "gpio06",               Standard
225         "gpio07",               Standard
226         "gpio08",               Standard
227         "gpio09",               Standard
228         "gpio10",               Standard
229         "gpio11",               Standard
230         "gpio12",               Standard
231         "gpio13",               Standard
232         "gpio14",               Standard
233         "gps_pablank",          Standard
234         "gps_tmark",            Standard
235         "hdmi_scl",             HDMI
236         "hdmi_sda",             HDMI
237         "ic_dm",                Standard
238         "ic_dp",                Standard
239         "kp_col_ip_0",          Standard
240         "kp_col_ip_1",          Standard
241         "kp_col_ip_2",          Standard
242         "kp_col_ip_3",          Standard
243         "kp_row_op_0",          Standard
244         "kp_row_op_1",          Standard
245         "kp_row_op_2",          Standard
246         "kp_row_op_3",          Standard
247         "lcd_b_0",              Standard
248         "lcd_b_1",              Standard
249         "lcd_b_2",              Standard
250         "lcd_b_3",              Standard
251         "lcd_b_4",              Standard
252         "lcd_b_5",              Standard
253         "lcd_b_6",              Standard
254         "lcd_b_7",              Standard
255         "lcd_g_0",              Standard
256         "lcd_g_1",              Standard
257         "lcd_g_2",              Standard
258         "lcd_g_3",              Standard
259         "lcd_g_4",              Standard
260         "lcd_g_5",              Standard
261         "lcd_g_6",              Standard
262         "lcd_g_7",              Standard
263         "lcd_hsync",            Standard
264         "lcd_oe",               Standard
265         "lcd_pclk",             Standard
266         "lcd_r_0",              Standard
267         "lcd_r_1",              Standard
268         "lcd_r_2",              Standard
269         "lcd_r_3",              Standard
270         "lcd_r_4",              Standard
271         "lcd_r_5",              Standard
272         "lcd_r_6",              Standard
273         "lcd_r_7",              Standard
274         "lcd_vsync",            Standard
275         "mdmgpio0",             Standard
276         "mdmgpio1",             Standard
277         "mdmgpio2",             Standard
278         "mdmgpio3",             Standard
279         "mdmgpio4",             Standard
280         "mdmgpio5",             Standard
281         "mdmgpio6",             Standard
282         "mdmgpio7",             Standard
283         "mdmgpio8",             Standard
284         "mphi_data_0",          Standard
285         "mphi_data_1",          Standard
286         "mphi_data_2",          Standard
287         "mphi_data_3",          Standard
288         "mphi_data_4",          Standard
289         "mphi_data_5",          Standard
290         "mphi_data_6",          Standard
291         "mphi_data_7",          Standard
292         "mphi_data_8",          Standard
293         "mphi_data_9",          Standard
294         "mphi_data_10",         Standard
295         "mphi_data_11",         Standard
296         "mphi_data_12",         Standard
297         "mphi_data_13",         Standard
298         "mphi_data_14",         Standard
299         "mphi_data_15",         Standard
300         "mphi_ha0",             Standard
301         "mphi_hat0",            Standard
302         "mphi_hat1",            Standard
303         "mphi_hce0_n",          Standard
304         "mphi_hce1_n",          Standard
305         "mphi_hrd_n",           Standard
306         "mphi_hwr_n",           Standard
307         "mphi_run0",            Standard
308         "mphi_run1",            Standard
309         "mtx_scan_clk",         Standard
310         "mtx_scan_data",        Standard
311         "nand_ad_0",            Standard
312         "nand_ad_1",            Standard
313         "nand_ad_2",            Standard
314         "nand_ad_3",            Standard
315         "nand_ad_4",            Standard
316         "nand_ad_5",            Standard
317         "nand_ad_6",            Standard
318         "nand_ad_7",            Standard
319         "nand_ale",             Standard
320         "nand_cen_0",           Standard
321         "nand_cen_1",           Standard
322         "nand_cle",             Standard
323         "nand_oen",             Standard
324         "nand_rdy_0",           Standard
325         "nand_rdy_1",           Standard
326         "nand_wen",             Standard
327         "nand_wp",              Standard
328         "pc1",                  Standard
329         "pc2",                  Standard
330         "pmu_int",              Standard
331         "pmu_scl",              I2C
332         "pmu_sda",              I2C
333         "rfst2g_mtsloten3g",    Standard
334         "rgmii_0_rx_ctl",       Standard
335         "rgmii_0_rxc",          Standard
336         "rgmii_0_rxd_0",        Standard
337         "rgmii_0_rxd_1",        Standard
338         "rgmii_0_rxd_2",        Standard
339         "rgmii_0_rxd_3",        Standard
340         "rgmii_0_tx_ctl",       Standard
341         "rgmii_0_txc",          Standard
342         "rgmii_0_txd_0",        Standard
343         "rgmii_0_txd_1",        Standard
344         "rgmii_0_txd_2",        Standard
345         "rgmii_0_txd_3",        Standard
346         "rgmii_1_rx_ctl",       Standard
347         "rgmii_1_rxc",          Standard
348         "rgmii_1_rxd_0",        Standard
349         "rgmii_1_rxd_1",        Standard
350         "rgmii_1_rxd_2",        Standard
351         "rgmii_1_rxd_3",        Standard
352         "rgmii_1_tx_ctl",       Standard
353         "rgmii_1_txc",          Standard
354         "rgmii_1_txd_0",        Standard
355         "rgmii_1_txd_1",        Standard
356         "rgmii_1_txd_2",        Standard
357         "rgmii_1_txd_3",        Standard
358         "rgmii_gpio_0",         Standard
359         "rgmii_gpio_1",         Standard
360         "rgmii_gpio_2",         Standard
361         "rgmii_gpio_3",         Standard
362         "rtxdata2g_txdata3g1",  Standard
363         "rtxen2g_txdata3g2",    Standard
364         "rxdata3g0",            Standard
365         "rxdata3g1",            Standard
366         "rxdata3g2",            Standard
367         "sdio1_clk",            Standard
368         "sdio1_cmd",            Standard
369         "sdio1_data_0",         Standard
370         "sdio1_data_1",         Standard
371         "sdio1_data_2",         Standard
372         "sdio1_data_3",         Standard
373         "sdio4_clk",            Standard
374         "sdio4_cmd",            Standard
375         "sdio4_data_0",         Standard
376         "sdio4_data_1",         Standard
377         "sdio4_data_2",         Standard
378         "sdio4_data_3",         Standard
379         "sim_clk",              Standard
380         "sim_data",             Standard
381         "sim_det",              Standard
382         "sim_resetn",           Standard
383         "sim2_clk",             Standard
384         "sim2_data",            Standard
385         "sim2_det",             Standard
386         "sim2_resetn",          Standard
387         "sri_c",                Standard
388         "sri_d",                Standard
389         "sri_e",                Standard
390         "ssp_extclk",           Standard
391         "ssp0_clk",             Standard
392         "ssp0_fs",              Standard
393         "ssp0_rxd",             Standard
394         "ssp0_txd",             Standard
395         "ssp2_clk",             Standard
396         "ssp2_fs_0",            Standard
397         "ssp2_fs_1",            Standard
398         "ssp2_fs_2",            Standard
399         "ssp2_fs_3",            Standard
400         "ssp2_rxd_0",           Standard
401         "ssp2_rxd_1",           Standard
402         "ssp2_txd_0",           Standard
403         "ssp2_txd_1",           Standard
404         "ssp3_clk",             Standard
405         "ssp3_fs",              Standard
406         "ssp3_rxd",             Standard
407         "ssp3_txd",             Standard
408         "ssp4_clk",             Standard
409         "ssp4_fs",              Standard
410         "ssp4_rxd",             Standard
411         "ssp4_txd",             Standard
412         "ssp5_clk",             Standard
413         "ssp5_fs",              Standard
414         "ssp5_rxd",             Standard
415         "ssp5_txd",             Standard
416         "ssp6_clk",             Standard
417         "ssp6_fs",              Standard
418         "ssp6_rxd",             Standard
419         "ssp6_txd",             Standard
420         "stat_1",               Standard
421         "stat_2",               Standard
422         "sysclken",             Standard
423         "traceclk",             Standard
424         "tracedt00",            Standard
425         "tracedt01",            Standard
426         "tracedt02",            Standard
427         "tracedt03",            Standard
428         "tracedt04",            Standard
429         "tracedt05",            Standard
430         "tracedt06",            Standard
431         "tracedt07",            Standard
432         "tracedt08",            Standard
433         "tracedt09",            Standard
434         "tracedt10",            Standard
435         "tracedt11",            Standard
436         "tracedt12",            Standard
437         "tracedt13",            Standard
438         "tracedt14",            Standard
439         "tracedt15",            Standard
440         "txdata3g0",            Standard
441         "txpwrind",             Standard
442         "uartb1_ucts",          Standard
443         "uartb1_urts",          Standard
444         "uartb1_urxd",          Standard
445         "uartb1_utxd",          Standard
446         "uartb2_urxd",          Standard
447         "uartb2_utxd",          Standard
448         "uartb3_ucts",          Standard
449         "uartb3_urts",          Standard
450         "uartb3_urxd",          Standard
451         "uartb3_utxd",          Standard
452         "uartb4_ucts",          Standard
453         "uartb4_urts",          Standard
454         "uartb4_urxd",          Standard
455         "uartb4_utxd",          Standard
456         "vc_cam1_scl",          I2C
457         "vc_cam1_sda",          I2C
458         "vc_cam2_scl",          I2C
459         "vc_cam2_sda",          I2C
460         "vc_cam3_scl",          I2C
461         "vc_cam3_sda",          I2C