162306a36Sopenharmony_ciLantiq XWAY pinmux controller 262306a36Sopenharmony_ci 362306a36Sopenharmony_ciRequired properties: 462306a36Sopenharmony_ci- compatible: "lantiq,<chip>-pinctrl", where <chip> is: 562306a36Sopenharmony_ci "ase" (XWAY AMAZON Family) 662306a36Sopenharmony_ci "danube" (XWAY DANUBE Family) 762306a36Sopenharmony_ci "xrx100" (XWAY xRX100 Family) 862306a36Sopenharmony_ci "xrx200" (XWAY xRX200 Family) 962306a36Sopenharmony_ci "xrx300" (XWAY xRX300 Family) 1062306a36Sopenharmony_ci- reg: Should contain the physical address and length of the gpio/pinmux 1162306a36Sopenharmony_ci register range 1262306a36Sopenharmony_ci 1362306a36Sopenharmony_ciPlease refer to pinctrl-bindings.txt in this directory for details of the 1462306a36Sopenharmony_cicommon pinctrl bindings used by client devices, including the meaning of the 1562306a36Sopenharmony_ciphrase "pin configuration node". 1662306a36Sopenharmony_ci 1762306a36Sopenharmony_ciLantiq's pin configuration nodes act as a container for an arbitrary number of 1862306a36Sopenharmony_cisubnodes. Each of these subnodes represents some desired configuration for a 1962306a36Sopenharmony_cipin, a group, or a list of pins or groups. This configuration can include the 2062306a36Sopenharmony_cimux function to select on those group(s), and two pin configuration parameters: 2162306a36Sopenharmony_cipull-up and open-drain 2262306a36Sopenharmony_ci 2362306a36Sopenharmony_ciThe name of each subnode is not important as long as it is unique; all subnodes 2462306a36Sopenharmony_cishould be enumerated and processed purely based on their content. 2562306a36Sopenharmony_ci 2662306a36Sopenharmony_ciEach subnode only affects those parameters that are explicitly listed. In 2762306a36Sopenharmony_ciother words, a subnode that lists a mux function but no pin configuration 2862306a36Sopenharmony_ciparameters implies no information about any pin configuration parameters. 2962306a36Sopenharmony_ciSimilarly, a pin subnode that describes a pullup parameter implies no 3062306a36Sopenharmony_ciinformation about e.g. the mux function. 3162306a36Sopenharmony_ci 3262306a36Sopenharmony_ciWe support 2 types of nodes. 3362306a36Sopenharmony_ci 3462306a36Sopenharmony_ciDefinition of mux function groups: 3562306a36Sopenharmony_ci 3662306a36Sopenharmony_ciRequired subnode-properties: 3762306a36Sopenharmony_ci- lantiq,groups : An array of strings. Each string contains the name of a group. 3862306a36Sopenharmony_ci Valid values for these names are listed below. 3962306a36Sopenharmony_ci- lantiq,function: A string containing the name of the function to mux to the 4062306a36Sopenharmony_ci group. Valid values for function names are listed below. 4162306a36Sopenharmony_ci 4262306a36Sopenharmony_ciValid values for group and function names: 4362306a36Sopenharmony_ci 4462306a36Sopenharmony_ciAMAZON: 4562306a36Sopenharmony_ci mux groups: 4662306a36Sopenharmony_ci exin0, exin1, exin2, jtag, spi_di, spi_do, spi_clk, spi_cs1, spi_cs2, 4762306a36Sopenharmony_ci spi_cs3, spi_cs4, spi_cs5, spi_cs6, asc, stp, gpt1, gpt2, gpt3, clkout0, 4862306a36Sopenharmony_ci clkout1, clkout2, mdio, dfe led0, dfe led1, ephy led0, ephy led1, ephy led2 4962306a36Sopenharmony_ci 5062306a36Sopenharmony_ci functions: 5162306a36Sopenharmony_ci spi, asc, cgu, jtag, exin, stp, gpt, mdio, ephy, dfe 5262306a36Sopenharmony_ci 5362306a36Sopenharmony_ciDANUBE: 5462306a36Sopenharmony_ci mux groups: 5562306a36Sopenharmony_ci exin0, exin1, exin2, jtag, ebu a23, ebu a24, ebu a25, ebu clk, ebu cs1, 5662306a36Sopenharmony_ci ebu wait, nand ale, nand cs1, nand cle, spi_di, spi_do, spi_clk, spi_cs1, 5762306a36Sopenharmony_ci spi_cs2, spi_cs3, spi_cs4, spi_cs5, spi_cs6, asc0, asc0 cts rts, stp, nmi, 5862306a36Sopenharmony_ci gpt1, gpt2, gpt3, clkout0, clkout1, clkout2, clkout3, gnt1, gnt2, gnt3, 5962306a36Sopenharmony_ci req1, req2, req3, dfe led0, dfe led1 6062306a36Sopenharmony_ci 6162306a36Sopenharmony_ci functions: 6262306a36Sopenharmony_ci spi, asc, cgu, jtag, exin, stp, gpt, nmi, pci, ebu, dfe 6362306a36Sopenharmony_ci 6462306a36Sopenharmony_cixRX100: 6562306a36Sopenharmony_ci mux groups: 6662306a36Sopenharmony_ci exin0, exin1, exin2, exin3, exin4, ebu a23, ebu a24, ebu a25, ebu clk, 6762306a36Sopenharmony_ci ebu cs1, ebu wait, nand ale, nand cs1, nand cle, nand rdy, nand rd, 6862306a36Sopenharmony_ci spi_di, spi_do, spi_clk, spi_cs1, spi_cs2, spi_cs3, spi_cs4, spi_cs5, 6962306a36Sopenharmony_ci spi_cs6, asc0, asc0 cts rts, stp, nmi, gpt1, gpt2, gpt3, clkout0, clkout1, 7062306a36Sopenharmony_ci clkout2, clkout3, gnt1, gnt2, gnt3, gnt4, req1, req2, req3, req4, mdio, 7162306a36Sopenharmony_ci dfe led0, dfe led1 7262306a36Sopenharmony_ci 7362306a36Sopenharmony_ci functions: 7462306a36Sopenharmony_ci spi, asc, cgu, exin, stp, gpt, nmi, pci, ebu, mdio, dfe 7562306a36Sopenharmony_ci 7662306a36Sopenharmony_cixRX200: 7762306a36Sopenharmony_ci mux groups: 7862306a36Sopenharmony_ci exin0, exin1, exin2, exin3, exin4, ebu a23, ebu a24, ebu a25, ebu clk, 7962306a36Sopenharmony_ci ebu cs1, ebu wait, nand ale, nand cs1, nand cle, nand rdy, nand rd, 8062306a36Sopenharmony_ci spi_di, spi_do, spi_clk, spi_cs1, spi_cs2, spi_cs3, spi_cs4, spi_cs5, 8162306a36Sopenharmony_ci spi_cs6, usif uart_rx, usif uart_tx, usif uart_rts, usif uart_cts, 8262306a36Sopenharmony_ci usif uart_dtr, usif uart_dsr, usif uart_dcd, usif uart_ri, usif spi_di, 8362306a36Sopenharmony_ci usif spi_do, usif spi_clk, usif spi_cs0, usif spi_cs1, usif spi_cs2, 8462306a36Sopenharmony_ci stp, nmi, gpt1, gpt2, gpt3, clkout0, clkout1, clkout2, clkout3, gnt1, 8562306a36Sopenharmony_ci gnt2, gnt3, gnt4, req1, req2, req3, req4, mdio, dfe led0, dfe led1, 8662306a36Sopenharmony_ci gphy0 led0, gphy0 led1, gphy0 led2, gphy1 led0, gphy1 led1, gphy1 led2 8762306a36Sopenharmony_ci 8862306a36Sopenharmony_ci functions: 8962306a36Sopenharmony_ci spi, usif, cgu, exin, stp, gpt, nmi, pci, ebu, mdio, dfe, gphy 9062306a36Sopenharmony_ci 9162306a36Sopenharmony_cixRX300: 9262306a36Sopenharmony_ci mux groups: 9362306a36Sopenharmony_ci exin0, exin1, exin2, exin4, nand ale, nand cs0, nand cs1, nand cle, 9462306a36Sopenharmony_ci nand rdy, nand rd, nand_d0, nand_d1, nand_d2, nand_d3, nand_d4, nand_d5, 9562306a36Sopenharmony_ci nand_d6, nand_d7, nand_d1, nand wr, nand wp, nand se, spi_di, spi_do, 9662306a36Sopenharmony_ci spi_clk, spi_cs1, spi_cs4, spi_cs6, usif uart_rx, usif uart_tx, 9762306a36Sopenharmony_ci usif spi_di, usif spi_do, usif spi_clk, usif spi_cs0, stp, clkout2, 9862306a36Sopenharmony_ci mdio, dfe led0, dfe led1, ephy0 led0, ephy0 led1, ephy1 led0, ephy1 led1 9962306a36Sopenharmony_ci 10062306a36Sopenharmony_ci functions: 10162306a36Sopenharmony_ci spi, usif, cgu, exin, stp, ebu, mdio, dfe, ephy 10262306a36Sopenharmony_ci 10362306a36Sopenharmony_ci 10462306a36Sopenharmony_ciDefinition of pin configurations: 10562306a36Sopenharmony_ci 10662306a36Sopenharmony_ciRequired subnode-properties: 10762306a36Sopenharmony_ci- lantiq,pins : An array of strings. Each string contains the name of a pin. 10862306a36Sopenharmony_ci Valid values for these names are listed below. 10962306a36Sopenharmony_ci 11062306a36Sopenharmony_ciOptional subnode-properties: 11162306a36Sopenharmony_ci- lantiq,pull: Integer, representing the pull-down/up to apply to the pin. 11262306a36Sopenharmony_ci 0: none, 1: down, 2: up. 11362306a36Sopenharmony_ci- lantiq,open-drain: Boolean, enables open-drain on the defined pin. 11462306a36Sopenharmony_ci 11562306a36Sopenharmony_ciValid values for AMAZON pin names: 11662306a36Sopenharmony_ci Pinconf pins can be referenced via the names io0-io31. 11762306a36Sopenharmony_ci 11862306a36Sopenharmony_ciValid values for DANUBE pin names: 11962306a36Sopenharmony_ci Pinconf pins can be referenced via the names io0-io31. 12062306a36Sopenharmony_ci 12162306a36Sopenharmony_ciValid values for xRX100 pin names: 12262306a36Sopenharmony_ci Pinconf pins can be referenced via the names io0-io55. 12362306a36Sopenharmony_ci 12462306a36Sopenharmony_ciValid values for xRX200 pin names: 12562306a36Sopenharmony_ci Pinconf pins can be referenced via the names io0-io49. 12662306a36Sopenharmony_ci 12762306a36Sopenharmony_ciValid values for xRX300 pin names: 12862306a36Sopenharmony_ci Pinconf pins can be referenced via the names io0-io1,io3-io6,io8-io11, 12962306a36Sopenharmony_ci io13-io19,io23-io27,io34-io36, 13062306a36Sopenharmony_ci io42-io43,io48-io61. 13162306a36Sopenharmony_ci 13262306a36Sopenharmony_ciExample: 13362306a36Sopenharmony_ci gpio: pinmux@e100b10 { 13462306a36Sopenharmony_ci compatible = "lantiq,danube-pinctrl"; 13562306a36Sopenharmony_ci pinctrl-names = "default"; 13662306a36Sopenharmony_ci pinctrl-0 = <&state_default>; 13762306a36Sopenharmony_ci 13862306a36Sopenharmony_ci #gpio-cells = <2>; 13962306a36Sopenharmony_ci gpio-controller; 14062306a36Sopenharmony_ci reg = <0xE100B10 0xA0>; 14162306a36Sopenharmony_ci 14262306a36Sopenharmony_ci state_default: pinmux { 14362306a36Sopenharmony_ci stp { 14462306a36Sopenharmony_ci lantiq,groups = "stp"; 14562306a36Sopenharmony_ci lantiq,function = "stp"; 14662306a36Sopenharmony_ci }; 14762306a36Sopenharmony_ci pci { 14862306a36Sopenharmony_ci lantiq,groups = "gnt1"; 14962306a36Sopenharmony_ci lantiq,function = "pci"; 15062306a36Sopenharmony_ci }; 15162306a36Sopenharmony_ci conf_out { 15262306a36Sopenharmony_ci lantiq,pins = "io4", "io5", "io6"; /* stp */ 15362306a36Sopenharmony_ci lantiq,open-drain; 15462306a36Sopenharmony_ci lantiq,pull = <0>; 15562306a36Sopenharmony_ci }; 15662306a36Sopenharmony_ci }; 15762306a36Sopenharmony_ci }; 15862306a36Sopenharmony_ci 159