18c2ecf20Sopenharmony_ciLantiq XWAY pinmux controller 28c2ecf20Sopenharmony_ci 38c2ecf20Sopenharmony_ciRequired properties: 48c2ecf20Sopenharmony_ci- compatible: "lantiq,pinctrl-xway", (DEPRECATED: Use "lantiq,pinctrl-danube") 58c2ecf20Sopenharmony_ci "lantiq,pinctrl-xr9", (DEPRECATED: Use "lantiq,xrx100-pinctrl" or 68c2ecf20Sopenharmony_ci "lantiq,xrx200-pinctrl") 78c2ecf20Sopenharmony_ci "lantiq,pinctrl-ase", (DEPRECATED: Use "lantiq,ase-pinctrl") 88c2ecf20Sopenharmony_ci "lantiq,<chip>-pinctrl", where <chip> is: 98c2ecf20Sopenharmony_ci "ase" (XWAY AMAZON Family) 108c2ecf20Sopenharmony_ci "danube" (XWAY DANUBE Family) 118c2ecf20Sopenharmony_ci "xrx100" (XWAY xRX100 Family) 128c2ecf20Sopenharmony_ci "xrx200" (XWAY xRX200 Family) 138c2ecf20Sopenharmony_ci "xrx300" (XWAY xRX300 Family) 148c2ecf20Sopenharmony_ci- reg: Should contain the physical address and length of the gpio/pinmux 158c2ecf20Sopenharmony_ci register range 168c2ecf20Sopenharmony_ci 178c2ecf20Sopenharmony_ciPlease refer to pinctrl-bindings.txt in this directory for details of the 188c2ecf20Sopenharmony_cicommon pinctrl bindings used by client devices, including the meaning of the 198c2ecf20Sopenharmony_ciphrase "pin configuration node". 208c2ecf20Sopenharmony_ci 218c2ecf20Sopenharmony_ciLantiq's pin configuration nodes act as a container for an arbitrary number of 228c2ecf20Sopenharmony_cisubnodes. Each of these subnodes represents some desired configuration for a 238c2ecf20Sopenharmony_cipin, a group, or a list of pins or groups. This configuration can include the 248c2ecf20Sopenharmony_cimux function to select on those group(s), and two pin configuration parameters: 258c2ecf20Sopenharmony_cipull-up and open-drain 268c2ecf20Sopenharmony_ci 278c2ecf20Sopenharmony_ciThe name of each subnode is not important as long as it is unique; all subnodes 288c2ecf20Sopenharmony_cishould be enumerated and processed purely based on their content. 298c2ecf20Sopenharmony_ci 308c2ecf20Sopenharmony_ciEach subnode only affects those parameters that are explicitly listed. In 318c2ecf20Sopenharmony_ciother words, a subnode that lists a mux function but no pin configuration 328c2ecf20Sopenharmony_ciparameters implies no information about any pin configuration parameters. 338c2ecf20Sopenharmony_ciSimilarly, a pin subnode that describes a pullup parameter implies no 348c2ecf20Sopenharmony_ciinformation about e.g. the mux function. 358c2ecf20Sopenharmony_ci 368c2ecf20Sopenharmony_ciWe support 2 types of nodes. 378c2ecf20Sopenharmony_ci 388c2ecf20Sopenharmony_ciDefinition of mux function groups: 398c2ecf20Sopenharmony_ci 408c2ecf20Sopenharmony_ciRequired subnode-properties: 418c2ecf20Sopenharmony_ci- lantiq,groups : An array of strings. Each string contains the name of a group. 428c2ecf20Sopenharmony_ci Valid values for these names are listed below. 438c2ecf20Sopenharmony_ci- lantiq,function: A string containing the name of the function to mux to the 448c2ecf20Sopenharmony_ci group. Valid values for function names are listed below. 458c2ecf20Sopenharmony_ci 468c2ecf20Sopenharmony_ciValid values for group and function names: 478c2ecf20Sopenharmony_ci 488c2ecf20Sopenharmony_ciXWAY: (DEPRECATED: Use DANUBE) 498c2ecf20Sopenharmony_ci mux groups: 508c2ecf20Sopenharmony_ci exin0, exin1, exin2, jtag, ebu a23, ebu a24, ebu a25, ebu clk, ebu cs1, 518c2ecf20Sopenharmony_ci ebu wait, nand ale, nand cs1, nand cle, spi, spi_cs1, spi_cs2, spi_cs3, 528c2ecf20Sopenharmony_ci spi_cs4, spi_cs5, spi_cs6, asc0, asc0 cts rts, stp, nmi, gpt1, gpt2, 538c2ecf20Sopenharmony_ci gpt3, clkout0, clkout1, clkout2, clkout3, gnt1, gnt2, gnt3, req1, req2, 548c2ecf20Sopenharmony_ci req3 558c2ecf20Sopenharmony_ci 568c2ecf20Sopenharmony_ci functions: 578c2ecf20Sopenharmony_ci spi, asc, cgu, jtag, exin, stp, gpt, nmi, pci, ebu 588c2ecf20Sopenharmony_ci 598c2ecf20Sopenharmony_ciXR9: ( DEPRECATED: Use xRX100/xRX200) 608c2ecf20Sopenharmony_ci mux groups: 618c2ecf20Sopenharmony_ci exin0, exin1, exin2, exin3, exin4, jtag, ebu a23, ebu a24, ebu a25, 628c2ecf20Sopenharmony_ci ebu clk, ebu cs1, ebu wait, nand ale, nand cs1, nand cle, nand rdy, 638c2ecf20Sopenharmony_ci nand rd, spi, spi_cs1, spi_cs2, spi_cs3, spi_cs4, spi_cs5, spi_cs6, 648c2ecf20Sopenharmony_ci asc0, asc0 cts rts, stp, nmi, gpt1, gpt2, gpt3, clkout0, clkout1, 658c2ecf20Sopenharmony_ci clkout2, clkout3, gnt1, gnt2, gnt3, gnt4, req1, req2, req3, req4, mdio, 668c2ecf20Sopenharmony_ci gphy0 led0, gphy0 led1, gphy0 led2, gphy1 led0, gphy1 led1, gphy1 led2 678c2ecf20Sopenharmony_ci 688c2ecf20Sopenharmony_ci functions: 698c2ecf20Sopenharmony_ci spi, asc, cgu, jtag, exin, stp, gpt, nmi, pci, ebu, mdio, gphy 708c2ecf20Sopenharmony_ci 718c2ecf20Sopenharmony_ciAMAZON: 728c2ecf20Sopenharmony_ci mux groups: 738c2ecf20Sopenharmony_ci exin0, exin1, exin2, jtag, spi_di, spi_do, spi_clk, spi_cs1, spi_cs2, 748c2ecf20Sopenharmony_ci spi_cs3, spi_cs4, spi_cs5, spi_cs6, asc, stp, gpt1, gpt2, gpt3, clkout0, 758c2ecf20Sopenharmony_ci clkout1, clkout2, mdio, dfe led0, dfe led1, ephy led0, ephy led1, ephy led2 768c2ecf20Sopenharmony_ci 778c2ecf20Sopenharmony_ci functions: 788c2ecf20Sopenharmony_ci spi, asc, cgu, jtag, exin, stp, gpt, mdio, ephy, dfe 798c2ecf20Sopenharmony_ci 808c2ecf20Sopenharmony_ciDANUBE: 818c2ecf20Sopenharmony_ci mux groups: 828c2ecf20Sopenharmony_ci exin0, exin1, exin2, jtag, ebu a23, ebu a24, ebu a25, ebu clk, ebu cs1, 838c2ecf20Sopenharmony_ci ebu wait, nand ale, nand cs1, nand cle, spi_di, spi_do, spi_clk, spi_cs1, 848c2ecf20Sopenharmony_ci spi_cs2, spi_cs3, spi_cs4, spi_cs5, spi_cs6, asc0, asc0 cts rts, stp, nmi, 858c2ecf20Sopenharmony_ci gpt1, gpt2, gpt3, clkout0, clkout1, clkout2, clkout3, gnt1, gnt2, gnt3, 868c2ecf20Sopenharmony_ci req1, req2, req3, dfe led0, dfe led1 878c2ecf20Sopenharmony_ci 888c2ecf20Sopenharmony_ci functions: 898c2ecf20Sopenharmony_ci spi, asc, cgu, jtag, exin, stp, gpt, nmi, pci, ebu, dfe 908c2ecf20Sopenharmony_ci 918c2ecf20Sopenharmony_cixRX100: 928c2ecf20Sopenharmony_ci mux groups: 938c2ecf20Sopenharmony_ci exin0, exin1, exin2, exin3, exin4, ebu a23, ebu a24, ebu a25, ebu clk, 948c2ecf20Sopenharmony_ci ebu cs1, ebu wait, nand ale, nand cs1, nand cle, nand rdy, nand rd, 958c2ecf20Sopenharmony_ci spi_di, spi_do, spi_clk, spi_cs1, spi_cs2, spi_cs3, spi_cs4, spi_cs5, 968c2ecf20Sopenharmony_ci spi_cs6, asc0, asc0 cts rts, stp, nmi, gpt1, gpt2, gpt3, clkout0, clkout1, 978c2ecf20Sopenharmony_ci clkout2, clkout3, gnt1, gnt2, gnt3, gnt4, req1, req2, req3, req4, mdio, 988c2ecf20Sopenharmony_ci dfe led0, dfe led1 998c2ecf20Sopenharmony_ci 1008c2ecf20Sopenharmony_ci functions: 1018c2ecf20Sopenharmony_ci spi, asc, cgu, exin, stp, gpt, nmi, pci, ebu, mdio, dfe 1028c2ecf20Sopenharmony_ci 1038c2ecf20Sopenharmony_cixRX200: 1048c2ecf20Sopenharmony_ci mux groups: 1058c2ecf20Sopenharmony_ci exin0, exin1, exin2, exin3, exin4, ebu a23, ebu a24, ebu a25, ebu clk, 1068c2ecf20Sopenharmony_ci ebu cs1, ebu wait, nand ale, nand cs1, nand cle, nand rdy, nand rd, 1078c2ecf20Sopenharmony_ci spi_di, spi_do, spi_clk, spi_cs1, spi_cs2, spi_cs3, spi_cs4, spi_cs5, 1088c2ecf20Sopenharmony_ci spi_cs6, usif uart_rx, usif uart_tx, usif uart_rts, usif uart_cts, 1098c2ecf20Sopenharmony_ci usif uart_dtr, usif uart_dsr, usif uart_dcd, usif uart_ri, usif spi_di, 1108c2ecf20Sopenharmony_ci usif spi_do, usif spi_clk, usif spi_cs0, usif spi_cs1, usif spi_cs2, 1118c2ecf20Sopenharmony_ci stp, nmi, gpt1, gpt2, gpt3, clkout0, clkout1, clkout2, clkout3, gnt1, 1128c2ecf20Sopenharmony_ci gnt2, gnt3, gnt4, req1, req2, req3, req4, mdio, dfe led0, dfe led1, 1138c2ecf20Sopenharmony_ci gphy0 led0, gphy0 led1, gphy0 led2, gphy1 led0, gphy1 led1, gphy1 led2 1148c2ecf20Sopenharmony_ci 1158c2ecf20Sopenharmony_ci functions: 1168c2ecf20Sopenharmony_ci spi, usif, cgu, exin, stp, gpt, nmi, pci, ebu, mdio, dfe, gphy 1178c2ecf20Sopenharmony_ci 1188c2ecf20Sopenharmony_cixRX300: 1198c2ecf20Sopenharmony_ci mux groups: 1208c2ecf20Sopenharmony_ci exin0, exin1, exin2, exin4, nand ale, nand cs0, nand cs1, nand cle, 1218c2ecf20Sopenharmony_ci nand rdy, nand rd, nand_d0, nand_d1, nand_d2, nand_d3, nand_d4, nand_d5, 1228c2ecf20Sopenharmony_ci nand_d6, nand_d7, nand_d1, nand wr, nand wp, nand se, spi_di, spi_do, 1238c2ecf20Sopenharmony_ci spi_clk, spi_cs1, spi_cs4, spi_cs6, usif uart_rx, usif uart_tx, 1248c2ecf20Sopenharmony_ci usif spi_di, usif spi_do, usif spi_clk, usif spi_cs0, stp, clkout2, 1258c2ecf20Sopenharmony_ci mdio, dfe led0, dfe led1, ephy0 led0, ephy0 led1, ephy1 led0, ephy1 led1 1268c2ecf20Sopenharmony_ci 1278c2ecf20Sopenharmony_ci functions: 1288c2ecf20Sopenharmony_ci spi, usif, cgu, exin, stp, ebu, mdio, dfe, ephy 1298c2ecf20Sopenharmony_ci 1308c2ecf20Sopenharmony_ci 1318c2ecf20Sopenharmony_ciDefinition of pin configurations: 1328c2ecf20Sopenharmony_ci 1338c2ecf20Sopenharmony_ciRequired subnode-properties: 1348c2ecf20Sopenharmony_ci- lantiq,pins : An array of strings. Each string contains the name of a pin. 1358c2ecf20Sopenharmony_ci Valid values for these names are listed below. 1368c2ecf20Sopenharmony_ci 1378c2ecf20Sopenharmony_ciOptional subnode-properties: 1388c2ecf20Sopenharmony_ci- lantiq,pull: Integer, representing the pull-down/up to apply to the pin. 1398c2ecf20Sopenharmony_ci 0: none, 1: down, 2: up. 1408c2ecf20Sopenharmony_ci- lantiq,open-drain: Boolean, enables open-drain on the defined pin. 1418c2ecf20Sopenharmony_ci 1428c2ecf20Sopenharmony_ciValid values for XWAY pin names: (DEPRECATED: Use DANUBE) 1438c2ecf20Sopenharmony_ci Pinconf pins can be referenced via the names io0-io31. 1448c2ecf20Sopenharmony_ci 1458c2ecf20Sopenharmony_ciValid values for XR9 pin names: (DEPRECATED: Use xrX100/xRX200) 1468c2ecf20Sopenharmony_ci Pinconf pins can be referenced via the names io0-io55. 1478c2ecf20Sopenharmony_ci 1488c2ecf20Sopenharmony_ciValid values for AMAZON pin names: 1498c2ecf20Sopenharmony_ci Pinconf pins can be referenced via the names io0-io31. 1508c2ecf20Sopenharmony_ci 1518c2ecf20Sopenharmony_ciValid values for DANUBE pin names: 1528c2ecf20Sopenharmony_ci Pinconf pins can be referenced via the names io0-io31. 1538c2ecf20Sopenharmony_ci 1548c2ecf20Sopenharmony_ciValid values for xRX100 pin names: 1558c2ecf20Sopenharmony_ci Pinconf pins can be referenced via the names io0-io55. 1568c2ecf20Sopenharmony_ci 1578c2ecf20Sopenharmony_ciValid values for xRX200 pin names: 1588c2ecf20Sopenharmony_ci Pinconf pins can be referenced via the names io0-io49. 1598c2ecf20Sopenharmony_ci 1608c2ecf20Sopenharmony_ciValid values for xRX300 pin names: 1618c2ecf20Sopenharmony_ci Pinconf pins can be referenced via the names io0-io1,io3-io6,io8-io11, 1628c2ecf20Sopenharmony_ci io13-io19,io23-io27,io34-io36, 1638c2ecf20Sopenharmony_ci io42-io43,io48-io61. 1648c2ecf20Sopenharmony_ci 1658c2ecf20Sopenharmony_ciExample: 1668c2ecf20Sopenharmony_ci gpio: pinmux@e100b10 { 1678c2ecf20Sopenharmony_ci compatible = "lantiq,danube-pinctrl"; 1688c2ecf20Sopenharmony_ci pinctrl-names = "default"; 1698c2ecf20Sopenharmony_ci pinctrl-0 = <&state_default>; 1708c2ecf20Sopenharmony_ci 1718c2ecf20Sopenharmony_ci #gpio-cells = <2>; 1728c2ecf20Sopenharmony_ci gpio-controller; 1738c2ecf20Sopenharmony_ci reg = <0xE100B10 0xA0>; 1748c2ecf20Sopenharmony_ci 1758c2ecf20Sopenharmony_ci state_default: pinmux { 1768c2ecf20Sopenharmony_ci stp { 1778c2ecf20Sopenharmony_ci lantiq,groups = "stp"; 1788c2ecf20Sopenharmony_ci lantiq,function = "stp"; 1798c2ecf20Sopenharmony_ci }; 1808c2ecf20Sopenharmony_ci pci { 1818c2ecf20Sopenharmony_ci lantiq,groups = "gnt1"; 1828c2ecf20Sopenharmony_ci lantiq,function = "pci"; 1838c2ecf20Sopenharmony_ci }; 1848c2ecf20Sopenharmony_ci conf_out { 1858c2ecf20Sopenharmony_ci lantiq,pins = "io4", "io5", "io6"; /* stp */ 1868c2ecf20Sopenharmony_ci lantiq,open-drain; 1878c2ecf20Sopenharmony_ci lantiq,pull = <0>; 1888c2ecf20Sopenharmony_ci }; 1898c2ecf20Sopenharmony_ci }; 1908c2ecf20Sopenharmony_ci }; 1918c2ecf20Sopenharmony_ci 192