xref: /openbmc/linux/Documentation/devicetree/bindings/pinctrl/lantiq,pinctrl-xway.txt (revision 552c69b36ebd966186573b9c7a286b390935cce1)
10b34c1a4SThomas LangerLantiq XWAY pinmux controller
20b34c1a4SThomas Langer
30b34c1a4SThomas LangerRequired properties:
4bf714d37SMartin Schiller- compatible:	"lantiq,<chip>-pinctrl", where <chip> is:
5bf714d37SMartin Schiller		"ase" (XWAY AMAZON Family)
6bf714d37SMartin Schiller		"danube" (XWAY DANUBE Family)
7bf714d37SMartin Schiller		"xrx100" (XWAY xRX100 Family)
8bf714d37SMartin Schiller		"xrx200" (XWAY xRX200 Family)
9bf714d37SMartin Schiller		"xrx300" (XWAY xRX300 Family)
10bf714d37SMartin Schiller- reg: Should contain the physical address and length of the gpio/pinmux
11bf714d37SMartin Schiller  register range
12bf714d37SMartin Schiller
13bf714d37SMartin SchillerPlease refer to pinctrl-bindings.txt in this directory for details of the
140b34c1a4SThomas Langercommon pinctrl bindings used by client devices, including the meaning of the
150b34c1a4SThomas Langerphrase "pin configuration node".
160b34c1a4SThomas Langer
170b34c1a4SThomas LangerLantiq's pin configuration nodes act as a container for an arbitrary number of
180b34c1a4SThomas Langersubnodes. Each of these subnodes represents some desired configuration for a
190b34c1a4SThomas Langerpin, a group, or a list of pins or groups. This configuration can include the
200b34c1a4SThomas Langermux function to select on those group(s), and two pin configuration parameters:
210b34c1a4SThomas Langerpull-up and open-drain
220b34c1a4SThomas Langer
230b34c1a4SThomas LangerThe name of each subnode is not important as long as it is unique; all subnodes
240b34c1a4SThomas Langershould be enumerated and processed purely based on their content.
250b34c1a4SThomas Langer
260b34c1a4SThomas LangerEach subnode only affects those parameters that are explicitly listed. In
270b34c1a4SThomas Langerother words, a subnode that lists a mux function but no pin configuration
280b34c1a4SThomas Langerparameters implies no information about any pin configuration parameters.
290b34c1a4SThomas LangerSimilarly, a pin subnode that describes a pullup parameter implies no
300b34c1a4SThomas Langerinformation about e.g. the mux function.
310b34c1a4SThomas Langer
320b34c1a4SThomas LangerWe support 2 types of nodes.
330b34c1a4SThomas Langer
340b34c1a4SThomas LangerDefinition of mux function groups:
350b34c1a4SThomas Langer
360b34c1a4SThomas LangerRequired subnode-properties:
370b34c1a4SThomas Langer- lantiq,groups : An array of strings. Each string contains the name of a group.
380b34c1a4SThomas Langer  Valid values for these names are listed below.
390b34c1a4SThomas Langer- lantiq,function: A string containing the name of the function to mux to the
400b34c1a4SThomas Langer  group. Valid values for function names are listed below.
410b34c1a4SThomas Langer
420b34c1a4SThomas LangerValid values for group and function names:
430b34c1a4SThomas Langer
440b34c1a4SThomas LangerAMAZON:
450b34c1a4SThomas Langer  mux groups:
460b34c1a4SThomas Langer    exin0, exin1, exin2, jtag, spi_di, spi_do, spi_clk, spi_cs1, spi_cs2,
470b34c1a4SThomas Langer    spi_cs3, spi_cs4, spi_cs5, spi_cs6, asc, stp, gpt1, gpt2, gpt3, clkout0,
48bf714d37SMartin Schiller    clkout1, clkout2, mdio, dfe led0, dfe led1, ephy led0, ephy led1, ephy led2
490b34c1a4SThomas Langer
500b34c1a4SThomas Langer  functions:
510b34c1a4SThomas Langer    spi, asc, cgu, jtag, exin, stp, gpt, mdio, ephy, dfe
520b34c1a4SThomas Langer
530b34c1a4SThomas LangerDANUBE:
540b34c1a4SThomas Langer  mux groups:
550b34c1a4SThomas Langer    exin0, exin1, exin2, jtag, ebu a23, ebu a24, ebu a25, ebu clk, ebu cs1,
56bf714d37SMartin Schiller    ebu wait, nand ale, nand cs1, nand cle, spi_di, spi_do, spi_clk, spi_cs1,
57bf714d37SMartin Schiller    spi_cs2, spi_cs3, spi_cs4, spi_cs5, spi_cs6, asc0, asc0 cts rts, stp, nmi,
58bf714d37SMartin Schiller    gpt1, gpt2, gpt3, clkout0, clkout1, clkout2, clkout3, gnt1, gnt2, gnt3,
59bf714d37SMartin Schiller    req1, req2, req3, dfe led0, dfe led1
60bf714d37SMartin Schiller
61bf714d37SMartin Schiller  functions:
62bf714d37SMartin Schiller    spi, asc, cgu, jtag, exin, stp, gpt, nmi, pci, ebu, dfe
63bf714d37SMartin Schiller
64bf714d37SMartin SchillerxRX100:
65bf714d37SMartin Schiller  mux groups:
66bf714d37SMartin Schiller    exin0, exin1, exin2, exin3, exin4, ebu a23, ebu a24, ebu a25, ebu clk,
670b34c1a4SThomas Langer    ebu cs1, ebu wait, nand ale, nand cs1, nand cle, nand rdy, nand rd,
680b34c1a4SThomas Langer    spi_di, spi_do, spi_clk, spi_cs1, spi_cs2, spi_cs3, spi_cs4, spi_cs5,
69bf714d37SMartin Schiller    spi_cs6, asc0, asc0 cts rts, stp, nmi, gpt1, gpt2, gpt3, clkout0, clkout1,
700b34c1a4SThomas Langer    clkout2, clkout3, gnt1, gnt2, gnt3, gnt4, req1, req2, req3, req4, mdio,
71bf714d37SMartin Schiller    dfe led0, dfe led1
72bf714d37SMartin Schiller
73bf714d37SMartin Schiller  functions:
74bf714d37SMartin Schiller    spi, asc, cgu, exin, stp, gpt, nmi, pci, ebu, mdio, dfe
75bf714d37SMartin Schiller
76bf714d37SMartin SchillerxRX200:
77bf714d37SMartin Schiller  mux groups:
78bf714d37SMartin Schiller    exin0, exin1, exin2, exin3, exin4, ebu a23, ebu a24, ebu a25, ebu clk,
79bf714d37SMartin Schiller    ebu cs1, ebu wait, nand ale, nand cs1, nand cle, nand rdy, nand rd,
80bf714d37SMartin Schiller    spi_di, spi_do, spi_clk, spi_cs1, spi_cs2, spi_cs3, spi_cs4, spi_cs5,
81bf714d37SMartin Schiller    spi_cs6, usif uart_rx, usif uart_tx, usif uart_rts, usif uart_cts,
82bf714d37SMartin Schiller    usif uart_dtr, usif uart_dsr, usif uart_dcd, usif uart_ri, usif spi_di,
83bf714d37SMartin Schiller    usif spi_do, usif spi_clk, usif spi_cs0, usif spi_cs1, usif spi_cs2,
84bf714d37SMartin Schiller    stp, nmi, gpt1, gpt2, gpt3, clkout0, clkout1, clkout2, clkout3, gnt1,
85bf714d37SMartin Schiller    gnt2, gnt3, gnt4, req1, req2, req3, req4, mdio, dfe led0, dfe led1,
86bf714d37SMartin Schiller    gphy0 led0, gphy0 led1, gphy0 led2, gphy1 led0, gphy1 led1, gphy1 led2
87bf714d37SMartin Schiller
88bf714d37SMartin Schiller  functions:
89bf714d37SMartin Schiller    spi, usif, cgu, exin, stp, gpt, nmi, pci, ebu, mdio, dfe, gphy
90bf714d37SMartin Schiller
91bf714d37SMartin SchillerxRX300:
92bf714d37SMartin Schiller  mux groups:
93bf714d37SMartin Schiller    exin0, exin1, exin2, exin4, nand ale, nand cs0, nand cs1, nand cle,
94bf714d37SMartin Schiller    nand rdy, nand rd, nand_d0, nand_d1, nand_d2, nand_d3, nand_d4, nand_d5,
95bf714d37SMartin Schiller    nand_d6, nand_d7, nand_d1, nand wr, nand wp, nand se, spi_di, spi_do,
96bf714d37SMartin Schiller    spi_clk, spi_cs1, spi_cs4, spi_cs6, usif uart_rx, usif uart_tx,
97bf714d37SMartin Schiller    usif spi_di, usif spi_do, usif spi_clk, usif spi_cs0, stp, clkout2,
98bf714d37SMartin Schiller    mdio, dfe led0, dfe led1, ephy0 led0, ephy0 led1, ephy1 led0, ephy1 led1
99bf714d37SMartin Schiller
100bf714d37SMartin Schiller  functions:
101bf714d37SMartin Schiller    spi, usif, cgu, exin, stp, ebu, mdio, dfe, ephy
102bf714d37SMartin Schiller
103bf714d37SMartin Schiller
104bf714d37SMartin SchillerDefinition of pin configurations:
105bf714d37SMartin Schiller
106bf714d37SMartin SchillerRequired subnode-properties:
107bf714d37SMartin Schiller- lantiq,pins : An array of strings. Each string contains the name of a pin.
108bf714d37SMartin Schiller  Valid values for these names are listed below.
109bf714d37SMartin Schiller
110bf714d37SMartin SchillerOptional subnode-properties:
111bf714d37SMartin Schiller- lantiq,pull: Integer, representing the pull-down/up to apply to the pin.
112bf714d37SMartin Schiller    0: none, 1: down, 2: up.
113bf714d37SMartin Schiller- lantiq,open-drain: Boolean, enables open-drain on the defined pin.
114bf714d37SMartin Schiller
115bf714d37SMartin SchillerValid values for AMAZON pin names:
116bf714d37SMartin Schiller  Pinconf pins can be referenced via the names io0-io31.
117bf714d37SMartin Schiller
118bf714d37SMartin SchillerValid values for DANUBE pin names:
119bf714d37SMartin Schiller  Pinconf pins can be referenced via the names io0-io31.
120bf714d37SMartin Schiller
121bf714d37SMartin SchillerValid values for xRX100 pin names:
122bf714d37SMartin Schiller  Pinconf pins can be referenced via the names io0-io55.
123bf714d37SMartin Schiller
124bf714d37SMartin SchillerValid values for xRX200 pin names:
125bf714d37SMartin Schiller  Pinconf pins can be referenced via the names io0-io49.
126bf714d37SMartin Schiller
127bf714d37SMartin SchillerValid values for xRX300 pin names:
128bf714d37SMartin Schiller  Pinconf pins can be referenced via the names io0-io1,io3-io6,io8-io11,
1290b34c1a4SThomas Langer						io13-io19,io23-io27,io34-io36,
1300b34c1a4SThomas Langer						io42-io43,io48-io61.
1310b34c1a4SThomas Langer
1320b34c1a4SThomas LangerExample:
1330b34c1a4SThomas Langer	gpio: pinmux@e100b10 {
1340b34c1a4SThomas Langer		compatible = "lantiq,danube-pinctrl";
1350b34c1a4SThomas Langer		pinctrl-names = "default";
1360b34c1a4SThomas Langer		pinctrl-0 = <&state_default>;
1370b34c1a4SThomas Langer
1380b34c1a4SThomas Langer		#gpio-cells = <2>;
1390b34c1a4SThomas Langer		gpio-controller;
1400b34c1a4SThomas Langer		reg = <0xE100B10 0xA0>;
1410b34c1a4SThomas Langer
142bf714d37SMartin Schiller		state_default: pinmux {
1430b34c1a4SThomas Langer			stp {
1440b34c1a4SThomas Langer				lantiq,groups = "stp";
145bf714d37SMartin Schiller				lantiq,function = "stp";
1460b34c1a4SThomas Langer			};
1470b34c1a4SThomas Langer			pci {
148bf714d37SMartin Schiller				lantiq,groups = "gnt1";
149bf714d37SMartin Schiller				lantiq,function = "pci";
150bf714d37SMartin Schiller			};
151bf714d37SMartin Schiller			conf_out {
152bf714d37SMartin Schiller				lantiq,pins = "io4", "io5", "io6"; /* stp */
153bf714d37SMartin Schiller				lantiq,open-drain;
154bf714d37SMartin Schiller				lantiq,pull = <0>;
155bf714d37SMartin Schiller			};
156bf714d37SMartin Schiller		};
157bf714d37SMartin Schiller	};
158bf714d37SMartin Schiller
159bf714d37SMartin Schiller