xref: /freebsd/sys/contrib/device-tree/Bindings/pinctrl/lantiq,pinctrl-falcon.txt (revision c66ec88fed842fbaad62c30d510644ceb7bd2d71)
1*c66ec88fSEmmanuel VadotLantiq FALCON pinmux controller
2*c66ec88fSEmmanuel Vadot
3*c66ec88fSEmmanuel VadotRequired properties:
4*c66ec88fSEmmanuel Vadot- compatible: "lantiq,pinctrl-falcon"
5*c66ec88fSEmmanuel Vadot- reg: Should contain the physical address and length of the gpio/pinmux
6*c66ec88fSEmmanuel Vadot  register range
7*c66ec88fSEmmanuel Vadot
8*c66ec88fSEmmanuel VadotPlease refer to pinctrl-bindings.txt in this directory for details of the
9*c66ec88fSEmmanuel Vadotcommon pinctrl bindings used by client devices, including the meaning of the
10*c66ec88fSEmmanuel Vadotphrase "pin configuration node".
11*c66ec88fSEmmanuel Vadot
12*c66ec88fSEmmanuel VadotLantiq's pin configuration nodes act as a container for an arbitrary number of
13*c66ec88fSEmmanuel Vadotsubnodes. Each of these subnodes represents some desired configuration for a
14*c66ec88fSEmmanuel Vadotpin, a group, or a list of pins or groups. This configuration can include the
15*c66ec88fSEmmanuel Vadotmux function to select on those group(s), and two pin configuration parameters:
16*c66ec88fSEmmanuel Vadotpull-up and open-drain
17*c66ec88fSEmmanuel Vadot
18*c66ec88fSEmmanuel VadotThe name of each subnode is not important as long as it is unique; all subnodes
19*c66ec88fSEmmanuel Vadotshould be enumerated and processed purely based on their content.
20*c66ec88fSEmmanuel Vadot
21*c66ec88fSEmmanuel VadotEach subnode only affects those parameters that are explicitly listed. In
22*c66ec88fSEmmanuel Vadotother words, a subnode that lists a mux function but no pin configuration
23*c66ec88fSEmmanuel Vadotparameters implies no information about any pin configuration parameters.
24*c66ec88fSEmmanuel VadotSimilarly, a pin subnode that describes a pullup parameter implies no
25*c66ec88fSEmmanuel Vadotinformation about e.g. the mux function.
26*c66ec88fSEmmanuel Vadot
27*c66ec88fSEmmanuel VadotWe support 2 types of nodes.
28*c66ec88fSEmmanuel Vadot
29*c66ec88fSEmmanuel VadotDefinition of mux function groups:
30*c66ec88fSEmmanuel Vadot
31*c66ec88fSEmmanuel VadotRequired subnode-properties:
32*c66ec88fSEmmanuel Vadot- lantiq,groups : An array of strings. Each string contains the name of a group.
33*c66ec88fSEmmanuel Vadot  Valid values for these names are listed below.
34*c66ec88fSEmmanuel Vadot- lantiq,function: A string containing the name of the function to mux to the
35*c66ec88fSEmmanuel Vadot  group. Valid values for function names are listed below.
36*c66ec88fSEmmanuel Vadot
37*c66ec88fSEmmanuel VadotValid values for group and function names:
38*c66ec88fSEmmanuel Vadot
39*c66ec88fSEmmanuel Vadot  mux groups:
40*c66ec88fSEmmanuel Vadot    por, ntr, ntr8k, hrst, mdio, bootled, asc0, spi, spi cs0, spi cs1, i2c,
41*c66ec88fSEmmanuel Vadot    jtag, slic, pcm, asc1
42*c66ec88fSEmmanuel Vadot
43*c66ec88fSEmmanuel Vadot  functions:
44*c66ec88fSEmmanuel Vadot    rst, ntr, mdio, led, asc, spi, i2c, jtag, slic, pcm
45*c66ec88fSEmmanuel Vadot
46*c66ec88fSEmmanuel Vadot
47*c66ec88fSEmmanuel VadotDefinition of pin configurations:
48*c66ec88fSEmmanuel Vadot
49*c66ec88fSEmmanuel VadotRequired subnode-properties:
50*c66ec88fSEmmanuel Vadot- lantiq,pins : An array of strings. Each string contains the name of a pin.
51*c66ec88fSEmmanuel Vadot  Valid values for these names are listed below.
52*c66ec88fSEmmanuel Vadot
53*c66ec88fSEmmanuel VadotOptional subnode-properties:
54*c66ec88fSEmmanuel Vadot- lantiq,pull: Integer, representing the pull-down/up to apply to the pin.
55*c66ec88fSEmmanuel Vadot    0: none, 1: down
56*c66ec88fSEmmanuel Vadot- lantiq,drive-current: Boolean, enables drive-current
57*c66ec88fSEmmanuel Vadot- lantiq,slew-rate: Boolean, enables slew-rate
58*c66ec88fSEmmanuel Vadot
59*c66ec88fSEmmanuel VadotExample:
60*c66ec88fSEmmanuel Vadot	pinmux0 {
61*c66ec88fSEmmanuel Vadot		compatible = "lantiq,pinctrl-falcon";
62*c66ec88fSEmmanuel Vadot		pinctrl-names = "default";
63*c66ec88fSEmmanuel Vadot		pinctrl-0 = <&state_default>;
64*c66ec88fSEmmanuel Vadot
65*c66ec88fSEmmanuel Vadot		state_default: pinmux {
66*c66ec88fSEmmanuel Vadot			asc0 {
67*c66ec88fSEmmanuel Vadot				lantiq,groups = "asc0";
68*c66ec88fSEmmanuel Vadot				lantiq,function = "asc";
69*c66ec88fSEmmanuel Vadot			};
70*c66ec88fSEmmanuel Vadot			ntr {
71*c66ec88fSEmmanuel Vadot				lantiq,groups = "ntr8k";
72*c66ec88fSEmmanuel Vadot				lantiq,function = "ntr";
73*c66ec88fSEmmanuel Vadot			};
74*c66ec88fSEmmanuel Vadot			i2c {
75*c66ec88fSEmmanuel Vadot				lantiq,groups = "i2c";
76*c66ec88fSEmmanuel Vadot				lantiq,function = "i2c";
77*c66ec88fSEmmanuel Vadot			};
78*c66ec88fSEmmanuel Vadot			hrst {
79*c66ec88fSEmmanuel Vadot				lantiq,groups = "hrst";
80*c66ec88fSEmmanuel Vadot				lantiq,function = "rst";
81*c66ec88fSEmmanuel Vadot			};
82*c66ec88fSEmmanuel Vadot		};
83*c66ec88fSEmmanuel Vadot	};
84