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