xref: /linux/Documentation/devicetree/bindings/pinctrl/pinctrl-sirf.txt (revision 664b0bae0b87f69bc9deb098f5e0158b9cf18e04)
1408f181eSBarry SongCSR SiRFprimaII pinmux controller
2408f181eSBarry Song
3408f181eSBarry SongRequired properties:
4408f181eSBarry Song- compatible	: "sirf,prima2-pinctrl"
5408f181eSBarry Song- reg		: Address range of the pinctrl registers
6408f181eSBarry Song- interrupts    : Interrupts used by every GPIO group
7408f181eSBarry Song- gpio-controller : Indicates this device is a GPIO controller
8408f181eSBarry Song- interrupt-controller  : Marks the device node as an interrupt controller
9fc2b04e7SBarry SongOptional properties:
10fc2b04e7SBarry Song- sirf,pullups : if n-th bit of m-th bank is set, set a pullup on GPIO-n of bank m
11fc2b04e7SBarry Song- sirf,pulldowns : if n-th bit of m-th bank is set, set a pulldown on GPIO-n of bank m
12408f181eSBarry Song
13408f181eSBarry SongPlease refer to pinctrl-bindings.txt in this directory for details of the common
14408f181eSBarry Songpinctrl bindings used by client devices.
15408f181eSBarry Song
16a0e27f51SSoren BrinkmannSiRFprimaII's pinmux nodes act as a container for an arbitrary number of subnodes.
17408f181eSBarry SongEach of these subnodes represents some desired configuration for a group of pins.
18408f181eSBarry Song
19408f181eSBarry SongRequired subnode-properties:
20408f181eSBarry Song- sirf,pins : An array of strings. Each string contains the name of a group.
21408f181eSBarry Song- sirf,function: A string containing the name of the function to mux to the
22408f181eSBarry Song  group.
23408f181eSBarry Song
24408f181eSBarry Song  Valid values for group and function names can be found from looking at the
25408f181eSBarry Song  group and function arrays in driver files:
26408f181eSBarry Song  drivers/pinctrl/pinctrl-sirf.c
27408f181eSBarry Song
28408f181eSBarry SongFor example, pinctrl might have subnodes like the following:
29408f181eSBarry Song uart2_pins_a: uart2@0 {
30408f181eSBarry Song         uart {
31408f181eSBarry Song                 sirf,pins = "uart2grp";
32408f181eSBarry Song                 sirf,function = "uart2";
33408f181eSBarry Song         };
34408f181eSBarry Song };
35408f181eSBarry Song uart2_noflow_pins_a: uart2@1 {
36408f181eSBarry Song         uart {
37408f181eSBarry Song                 sirf,pins = "uart2_nostreamctrlgrp";
38408f181eSBarry Song                 sirf,function = "uart2_nostreamctrl";
39408f181eSBarry Song         };
40408f181eSBarry Song };
41408f181eSBarry Song
42408f181eSBarry SongFor a specific board, if it wants to use uart2 without hardware flow control,
43408f181eSBarry Songit can add the following to its board-specific .dts file.
44*4c9847b7SMathieu Malaterreuart2: uart@b0070000 {
45408f181eSBarry Song	pinctrl-names = "default";
46408f181eSBarry Song	pinctrl-0 = <&uart2_noflow_pins_a>;
47408f181eSBarry Song}
48