xref: /freebsd/sys/contrib/device-tree/Bindings/pinctrl/pinctrl-sirf.txt (revision b077aed33b7b6aefca7b17ddb250cf521f938613)
1CSR SiRFprimaII pinmux controller
2
3Required properties:
4- compatible	: "sirf,prima2-pinctrl"
5- reg		: Address range of the pinctrl registers
6- interrupts    : Interrupts used by every GPIO group
7- gpio-controller : Indicates this device is a GPIO controller
8- interrupt-controller  : Marks the device node as an interrupt controller
9Optional properties:
10- sirf,pullups : if n-th bit of m-th bank is set, set a pullup on GPIO-n of bank m
11- sirf,pulldowns : if n-th bit of m-th bank is set, set a pulldown on GPIO-n of bank m
12
13Please refer to pinctrl-bindings.txt in this directory for details of the common
14pinctrl bindings used by client devices.
15
16SiRFprimaII's pinmux nodes act as a container for an arbitrary number of subnodes.
17Each of these subnodes represents some desired configuration for a group of pins.
18
19Required subnode-properties:
20- sirf,pins : An array of strings. Each string contains the name of a group.
21- sirf,function: A string containing the name of the function to mux to the
22  group.
23
24  Valid values for group and function names can be found from looking at the
25  group and function arrays in driver files:
26  drivers/pinctrl/pinctrl-sirf.c
27
28For example, pinctrl might have subnodes like the following:
29 uart2_pins_a: uart2@0 {
30         uart {
31                 sirf,pins = "uart2grp";
32                 sirf,function = "uart2";
33         };
34 };
35 uart2_noflow_pins_a: uart2@1 {
36         uart {
37                 sirf,pins = "uart2_nostreamctrlgrp";
38                 sirf,function = "uart2_nostreamctrl";
39         };
40 };
41
42For a specific board, if it wants to use uart2 without hardware flow control,
43it can add the following to its board-specific .dts file.
44uart2: uart@b0070000 {
45	pinctrl-names = "default";
46	pinctrl-0 = <&uart2_noflow_pins_a>;
47}
48