162306a36Sopenharmony_ciLantiq FALCON pinmux controller
262306a36Sopenharmony_ci
362306a36Sopenharmony_ciRequired properties:
462306a36Sopenharmony_ci- compatible: "lantiq,pinctrl-falcon"
562306a36Sopenharmony_ci- reg: Should contain the physical address and length of the gpio/pinmux
662306a36Sopenharmony_ci  register range
762306a36Sopenharmony_ci
862306a36Sopenharmony_ciPlease refer to pinctrl-bindings.txt in this directory for details of the
962306a36Sopenharmony_cicommon pinctrl bindings used by client devices, including the meaning of the
1062306a36Sopenharmony_ciphrase "pin configuration node".
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_ciLantiq's pin configuration nodes act as a container for an arbitrary number of
1362306a36Sopenharmony_cisubnodes. Each of these subnodes represents some desired configuration for a
1462306a36Sopenharmony_cipin, a group, or a list of pins or groups. This configuration can include the
1562306a36Sopenharmony_cimux function to select on those group(s), and two pin configuration parameters:
1662306a36Sopenharmony_cipull-up and open-drain
1762306a36Sopenharmony_ci
1862306a36Sopenharmony_ciThe name of each subnode is not important as long as it is unique; all subnodes
1962306a36Sopenharmony_cishould be enumerated and processed purely based on their content.
2062306a36Sopenharmony_ci
2162306a36Sopenharmony_ciEach subnode only affects those parameters that are explicitly listed. In
2262306a36Sopenharmony_ciother words, a subnode that lists a mux function but no pin configuration
2362306a36Sopenharmony_ciparameters implies no information about any pin configuration parameters.
2462306a36Sopenharmony_ciSimilarly, a pin subnode that describes a pullup parameter implies no
2562306a36Sopenharmony_ciinformation about e.g. the mux function.
2662306a36Sopenharmony_ci
2762306a36Sopenharmony_ciWe support 2 types of nodes.
2862306a36Sopenharmony_ci
2962306a36Sopenharmony_ciDefinition of mux function groups:
3062306a36Sopenharmony_ci
3162306a36Sopenharmony_ciRequired subnode-properties:
3262306a36Sopenharmony_ci- lantiq,groups : An array of strings. Each string contains the name of a group.
3362306a36Sopenharmony_ci  Valid values for these names are listed below.
3462306a36Sopenharmony_ci- lantiq,function: A string containing the name of the function to mux to the
3562306a36Sopenharmony_ci  group. Valid values for function names are listed below.
3662306a36Sopenharmony_ci
3762306a36Sopenharmony_ciValid values for group and function names:
3862306a36Sopenharmony_ci
3962306a36Sopenharmony_ci  mux groups:
4062306a36Sopenharmony_ci    por, ntr, ntr8k, hrst, mdio, bootled, asc0, spi, spi cs0, spi cs1, i2c,
4162306a36Sopenharmony_ci    jtag, slic, pcm, asc1
4262306a36Sopenharmony_ci
4362306a36Sopenharmony_ci  functions:
4462306a36Sopenharmony_ci    rst, ntr, mdio, led, asc, spi, i2c, jtag, slic, pcm
4562306a36Sopenharmony_ci
4662306a36Sopenharmony_ci
4762306a36Sopenharmony_ciDefinition of pin configurations:
4862306a36Sopenharmony_ci
4962306a36Sopenharmony_ciRequired subnode-properties:
5062306a36Sopenharmony_ci- lantiq,pins : An array of strings. Each string contains the name of a pin.
5162306a36Sopenharmony_ci  Valid values for these names are listed below.
5262306a36Sopenharmony_ci
5362306a36Sopenharmony_ciOptional subnode-properties:
5462306a36Sopenharmony_ci- lantiq,pull: Integer, representing the pull-down/up to apply to the pin.
5562306a36Sopenharmony_ci    0: none, 1: down
5662306a36Sopenharmony_ci- lantiq,drive-current: Boolean, enables drive-current
5762306a36Sopenharmony_ci- lantiq,slew-rate: Boolean, enables slew-rate
5862306a36Sopenharmony_ci
5962306a36Sopenharmony_ciExample:
6062306a36Sopenharmony_ci	pinmux0 {
6162306a36Sopenharmony_ci		compatible = "lantiq,pinctrl-falcon";
6262306a36Sopenharmony_ci		pinctrl-names = "default";
6362306a36Sopenharmony_ci		pinctrl-0 = <&state_default>;
6462306a36Sopenharmony_ci
6562306a36Sopenharmony_ci		state_default: pinmux {
6662306a36Sopenharmony_ci			asc0 {
6762306a36Sopenharmony_ci				lantiq,groups = "asc0";
6862306a36Sopenharmony_ci				lantiq,function = "asc";
6962306a36Sopenharmony_ci			};
7062306a36Sopenharmony_ci			ntr {
7162306a36Sopenharmony_ci				lantiq,groups = "ntr8k";
7262306a36Sopenharmony_ci				lantiq,function = "ntr";
7362306a36Sopenharmony_ci			};
7462306a36Sopenharmony_ci			i2c {
7562306a36Sopenharmony_ci				lantiq,groups = "i2c";
7662306a36Sopenharmony_ci				lantiq,function = "i2c";
7762306a36Sopenharmony_ci			};
7862306a36Sopenharmony_ci			hrst {
7962306a36Sopenharmony_ci				lantiq,groups = "hrst";
8062306a36Sopenharmony_ci				lantiq,function = "rst";
8162306a36Sopenharmony_ci			};
8262306a36Sopenharmony_ci		};
8362306a36Sopenharmony_ci	};
84