xref: /freebsd/sys/contrib/device-tree/Bindings/pinctrl/berlin,pinctrl.txt (revision c66ec88fed842fbaad62c30d510644ceb7bd2d71)
1*c66ec88fSEmmanuel Vadot* Pin-controller driver for the Marvell Berlin SoCs
2*c66ec88fSEmmanuel Vadot
3*c66ec88fSEmmanuel VadotPin control registers are part of both chip controller and system
4*c66ec88fSEmmanuel Vadotcontroller register sets. Pin controller nodes should be a sub-node of
5*c66ec88fSEmmanuel Vadoteither the chip controller or system controller node. The pins
6*c66ec88fSEmmanuel Vadotcontrolled are organized in groups, so no actual pin information is
7*c66ec88fSEmmanuel Vadotneeded.
8*c66ec88fSEmmanuel Vadot
9*c66ec88fSEmmanuel VadotA pin-controller node should contain subnodes representing the pin group
10*c66ec88fSEmmanuel Vadotconfigurations, one per function. Each subnode has the group name and
11*c66ec88fSEmmanuel Vadotthe muxing function used.
12*c66ec88fSEmmanuel Vadot
13*c66ec88fSEmmanuel VadotBe aware the Marvell Berlin datasheets use the keyword 'mode' for what
14*c66ec88fSEmmanuel Vadotis called a 'function' in the pin-controller subsystem.
15*c66ec88fSEmmanuel Vadot
16*c66ec88fSEmmanuel VadotRequired properties:
17*c66ec88fSEmmanuel Vadot- compatible: should be one of:
18*c66ec88fSEmmanuel Vadot	"marvell,berlin2-soc-pinctrl",
19*c66ec88fSEmmanuel Vadot	"marvell,berlin2-system-pinctrl",
20*c66ec88fSEmmanuel Vadot	"marvell,berlin2cd-soc-pinctrl",
21*c66ec88fSEmmanuel Vadot	"marvell,berlin2cd-system-pinctrl",
22*c66ec88fSEmmanuel Vadot	"marvell,berlin2q-soc-pinctrl",
23*c66ec88fSEmmanuel Vadot	"marvell,berlin2q-system-pinctrl",
24*c66ec88fSEmmanuel Vadot	"marvell,berlin4ct-avio-pinctrl",
25*c66ec88fSEmmanuel Vadot	"marvell,berlin4ct-soc-pinctrl",
26*c66ec88fSEmmanuel Vadot	"marvell,berlin4ct-system-pinctrl",
27*c66ec88fSEmmanuel Vadot	"syna,as370-soc-pinctrl"
28*c66ec88fSEmmanuel Vadot
29*c66ec88fSEmmanuel VadotRequired subnode-properties:
30*c66ec88fSEmmanuel Vadot- groups: a list of strings describing the group names.
31*c66ec88fSEmmanuel Vadot- function: a string describing the function used to mux the groups.
32*c66ec88fSEmmanuel Vadot
33*c66ec88fSEmmanuel VadotExample:
34*c66ec88fSEmmanuel Vadot
35*c66ec88fSEmmanuel Vadotsys_pinctrl: pin-controller {
36*c66ec88fSEmmanuel Vadot	compatible = "marvell,berlin2q-system-pinctrl";
37*c66ec88fSEmmanuel Vadot
38*c66ec88fSEmmanuel Vadot	uart0_pmux: uart0-pmux {
39*c66ec88fSEmmanuel Vadot		groups = "GSM12";
40*c66ec88fSEmmanuel Vadot		function = "uart0";
41*c66ec88fSEmmanuel Vadot	};
42*c66ec88fSEmmanuel Vadot};
43*c66ec88fSEmmanuel Vadot
44*c66ec88fSEmmanuel Vadot&uart0 {
45*c66ec88fSEmmanuel Vadot	pinctrl-0 = <&uart0_pmux>;
46*c66ec88fSEmmanuel Vadot	pinctrl-names = "default";
47*c66ec88fSEmmanuel Vadot};
48