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