18c2ecf20Sopenharmony_ciLantiq FALCON pinmux controller
28c2ecf20Sopenharmony_ci
38c2ecf20Sopenharmony_ciRequired properties:
48c2ecf20Sopenharmony_ci- compatible: "lantiq,pinctrl-falcon"
58c2ecf20Sopenharmony_ci- reg: Should contain the physical address and length of the gpio/pinmux
68c2ecf20Sopenharmony_ci  register range
78c2ecf20Sopenharmony_ci
88c2ecf20Sopenharmony_ciPlease refer to pinctrl-bindings.txt in this directory for details of the
98c2ecf20Sopenharmony_cicommon pinctrl bindings used by client devices, including the meaning of the
108c2ecf20Sopenharmony_ciphrase "pin configuration node".
118c2ecf20Sopenharmony_ci
128c2ecf20Sopenharmony_ciLantiq's pin configuration nodes act as a container for an arbitrary number of
138c2ecf20Sopenharmony_cisubnodes. Each of these subnodes represents some desired configuration for a
148c2ecf20Sopenharmony_cipin, a group, or a list of pins or groups. This configuration can include the
158c2ecf20Sopenharmony_cimux function to select on those group(s), and two pin configuration parameters:
168c2ecf20Sopenharmony_cipull-up and open-drain
178c2ecf20Sopenharmony_ci
188c2ecf20Sopenharmony_ciThe name of each subnode is not important as long as it is unique; all subnodes
198c2ecf20Sopenharmony_cishould be enumerated and processed purely based on their content.
208c2ecf20Sopenharmony_ci
218c2ecf20Sopenharmony_ciEach subnode only affects those parameters that are explicitly listed. In
228c2ecf20Sopenharmony_ciother words, a subnode that lists a mux function but no pin configuration
238c2ecf20Sopenharmony_ciparameters implies no information about any pin configuration parameters.
248c2ecf20Sopenharmony_ciSimilarly, a pin subnode that describes a pullup parameter implies no
258c2ecf20Sopenharmony_ciinformation about e.g. the mux function.
268c2ecf20Sopenharmony_ci
278c2ecf20Sopenharmony_ciWe support 2 types of nodes.
288c2ecf20Sopenharmony_ci
298c2ecf20Sopenharmony_ciDefinition of mux function groups:
308c2ecf20Sopenharmony_ci
318c2ecf20Sopenharmony_ciRequired subnode-properties:
328c2ecf20Sopenharmony_ci- lantiq,groups : An array of strings. Each string contains the name of a group.
338c2ecf20Sopenharmony_ci  Valid values for these names are listed below.
348c2ecf20Sopenharmony_ci- lantiq,function: A string containing the name of the function to mux to the
358c2ecf20Sopenharmony_ci  group. Valid values for function names are listed below.
368c2ecf20Sopenharmony_ci
378c2ecf20Sopenharmony_ciValid values for group and function names:
388c2ecf20Sopenharmony_ci
398c2ecf20Sopenharmony_ci  mux groups:
408c2ecf20Sopenharmony_ci    por, ntr, ntr8k, hrst, mdio, bootled, asc0, spi, spi cs0, spi cs1, i2c,
418c2ecf20Sopenharmony_ci    jtag, slic, pcm, asc1
428c2ecf20Sopenharmony_ci
438c2ecf20Sopenharmony_ci  functions:
448c2ecf20Sopenharmony_ci    rst, ntr, mdio, led, asc, spi, i2c, jtag, slic, pcm
458c2ecf20Sopenharmony_ci
468c2ecf20Sopenharmony_ci
478c2ecf20Sopenharmony_ciDefinition of pin configurations:
488c2ecf20Sopenharmony_ci
498c2ecf20Sopenharmony_ciRequired subnode-properties:
508c2ecf20Sopenharmony_ci- lantiq,pins : An array of strings. Each string contains the name of a pin.
518c2ecf20Sopenharmony_ci  Valid values for these names are listed below.
528c2ecf20Sopenharmony_ci
538c2ecf20Sopenharmony_ciOptional subnode-properties:
548c2ecf20Sopenharmony_ci- lantiq,pull: Integer, representing the pull-down/up to apply to the pin.
558c2ecf20Sopenharmony_ci    0: none, 1: down
568c2ecf20Sopenharmony_ci- lantiq,drive-current: Boolean, enables drive-current
578c2ecf20Sopenharmony_ci- lantiq,slew-rate: Boolean, enables slew-rate
588c2ecf20Sopenharmony_ci
598c2ecf20Sopenharmony_ciExample:
608c2ecf20Sopenharmony_ci	pinmux0 {
618c2ecf20Sopenharmony_ci		compatible = "lantiq,pinctrl-falcon";
628c2ecf20Sopenharmony_ci		pinctrl-names = "default";
638c2ecf20Sopenharmony_ci		pinctrl-0 = <&state_default>;
648c2ecf20Sopenharmony_ci
658c2ecf20Sopenharmony_ci		state_default: pinmux {
668c2ecf20Sopenharmony_ci			asc0 {
678c2ecf20Sopenharmony_ci				lantiq,groups = "asc0";
688c2ecf20Sopenharmony_ci				lantiq,function = "asc";
698c2ecf20Sopenharmony_ci			};
708c2ecf20Sopenharmony_ci			ntr {
718c2ecf20Sopenharmony_ci				lantiq,groups = "ntr8k";
728c2ecf20Sopenharmony_ci				lantiq,function = "ntr";
738c2ecf20Sopenharmony_ci			};
748c2ecf20Sopenharmony_ci			i2c {
758c2ecf20Sopenharmony_ci				lantiq,groups = "i2c";
768c2ecf20Sopenharmony_ci				lantiq,function = "i2c";
778c2ecf20Sopenharmony_ci			};
788c2ecf20Sopenharmony_ci			hrst {
798c2ecf20Sopenharmony_ci				lantiq,groups = "hrst";
808c2ecf20Sopenharmony_ci				lantiq,function = "rst";
818c2ecf20Sopenharmony_ci			};
828c2ecf20Sopenharmony_ci		};
838c2ecf20Sopenharmony_ci	};
84