18c2ecf20Sopenharmony_ci== Amlogic Meson pinmux controller ==
28c2ecf20Sopenharmony_ci
38c2ecf20Sopenharmony_ciRequired properties for the root node:
48c2ecf20Sopenharmony_ci - compatible: one of "amlogic,meson8-cbus-pinctrl"
58c2ecf20Sopenharmony_ci		      "amlogic,meson8b-cbus-pinctrl"
68c2ecf20Sopenharmony_ci		      "amlogic,meson8m2-cbus-pinctrl"
78c2ecf20Sopenharmony_ci		      "amlogic,meson8-aobus-pinctrl"
88c2ecf20Sopenharmony_ci		      "amlogic,meson8b-aobus-pinctrl"
98c2ecf20Sopenharmony_ci		      "amlogic,meson8m2-aobus-pinctrl"
108c2ecf20Sopenharmony_ci		      "amlogic,meson-gxbb-periphs-pinctrl"
118c2ecf20Sopenharmony_ci		      "amlogic,meson-gxbb-aobus-pinctrl"
128c2ecf20Sopenharmony_ci		      "amlogic,meson-gxl-periphs-pinctrl"
138c2ecf20Sopenharmony_ci		      "amlogic,meson-gxl-aobus-pinctrl"
148c2ecf20Sopenharmony_ci		      "amlogic,meson-axg-periphs-pinctrl"
158c2ecf20Sopenharmony_ci		      "amlogic,meson-axg-aobus-pinctrl"
168c2ecf20Sopenharmony_ci		      "amlogic,meson-g12a-periphs-pinctrl"
178c2ecf20Sopenharmony_ci		      "amlogic,meson-g12a-aobus-pinctrl"
188c2ecf20Sopenharmony_ci		      "amlogic,meson-a1-periphs-pinctrl"
198c2ecf20Sopenharmony_ci - reg: address and size of registers controlling irq functionality
208c2ecf20Sopenharmony_ci
218c2ecf20Sopenharmony_ci=== GPIO sub-nodes ===
228c2ecf20Sopenharmony_ci
238c2ecf20Sopenharmony_ciThe GPIO bank for the controller is represented as a sub-node and it acts as a
248c2ecf20Sopenharmony_ciGPIO controller.
258c2ecf20Sopenharmony_ci
268c2ecf20Sopenharmony_ciRequired properties for sub-nodes are:
278c2ecf20Sopenharmony_ci - reg: should contain a list of address and size, one tuple for each entry
288c2ecf20Sopenharmony_ci   in reg-names.
298c2ecf20Sopenharmony_ci - reg-names: an array of strings describing the "reg" entries.
308c2ecf20Sopenharmony_ci   Must contain "mux" and "gpio".
318c2ecf20Sopenharmony_ci   May contain "pull", "pull-enable" and "ds" when appropriate.
328c2ecf20Sopenharmony_ci - gpio-controller: identifies the node as a gpio controller
338c2ecf20Sopenharmony_ci - #gpio-cells: must be 2
348c2ecf20Sopenharmony_ci
358c2ecf20Sopenharmony_ci=== Other sub-nodes ===
368c2ecf20Sopenharmony_ci
378c2ecf20Sopenharmony_ciChild nodes without the "gpio-controller" represent some desired
388c2ecf20Sopenharmony_ciconfiguration for a pin or a group. Those nodes can be pinmux nodes or
398c2ecf20Sopenharmony_ciconfiguration nodes.
408c2ecf20Sopenharmony_ci
418c2ecf20Sopenharmony_ciRequired properties for pinmux nodes are:
428c2ecf20Sopenharmony_ci - groups: a list of pinmux groups. The list of all available groups
438c2ecf20Sopenharmony_ci   depends on the SoC and can be found in driver sources.
448c2ecf20Sopenharmony_ci - function: the name of a function to activate for the specified set
458c2ecf20Sopenharmony_ci   of groups. The list of all available functions depends on the SoC
468c2ecf20Sopenharmony_ci   and can be found in driver sources.
478c2ecf20Sopenharmony_ci
488c2ecf20Sopenharmony_ciRequired properties for configuration nodes:
498c2ecf20Sopenharmony_ci - pins: a list of pin names
508c2ecf20Sopenharmony_ci
518c2ecf20Sopenharmony_ciConfiguration nodes support the following generic properties, as
528c2ecf20Sopenharmony_cidescribed in file pinctrl-bindings.txt:
538c2ecf20Sopenharmony_ci - "bias-disable"
548c2ecf20Sopenharmony_ci - "bias-pull-up"
558c2ecf20Sopenharmony_ci - "bias-pull-down"
568c2ecf20Sopenharmony_ci - "output-enable"
578c2ecf20Sopenharmony_ci - "output-disable"
588c2ecf20Sopenharmony_ci - "output-low"
598c2ecf20Sopenharmony_ci - "output-high"
608c2ecf20Sopenharmony_ci
618c2ecf20Sopenharmony_ciOptional properties :
628c2ecf20Sopenharmony_ci - drive-strength-microamp: Drive strength for the specified pins in uA.
638c2ecf20Sopenharmony_ci			    This property is only valid for G12A and newer.
648c2ecf20Sopenharmony_ci
658c2ecf20Sopenharmony_ci=== Example ===
668c2ecf20Sopenharmony_ci
678c2ecf20Sopenharmony_ci	pinctrl: pinctrl@c1109880 {
688c2ecf20Sopenharmony_ci		compatible = "amlogic,meson8-cbus-pinctrl";
698c2ecf20Sopenharmony_ci		reg = <0xc1109880 0x10>;
708c2ecf20Sopenharmony_ci		#address-cells = <1>;
718c2ecf20Sopenharmony_ci		#size-cells = <1>;
728c2ecf20Sopenharmony_ci		ranges;
738c2ecf20Sopenharmony_ci
748c2ecf20Sopenharmony_ci		gpio: banks@c11080b0 {
758c2ecf20Sopenharmony_ci			reg = <0xc11080b0 0x28>,
768c2ecf20Sopenharmony_ci			      <0xc11080e8 0x18>,
778c2ecf20Sopenharmony_ci			      <0xc1108120 0x18>,
788c2ecf20Sopenharmony_ci			      <0xc1108030 0x30>;
798c2ecf20Sopenharmony_ci			reg-names = "mux", "pull", "pull-enable", "gpio";
808c2ecf20Sopenharmony_ci			gpio-controller;
818c2ecf20Sopenharmony_ci			#gpio-cells = <2>;
828c2ecf20Sopenharmony_ci               };
838c2ecf20Sopenharmony_ci
848c2ecf20Sopenharmony_ci		nand {
858c2ecf20Sopenharmony_ci			mux {
868c2ecf20Sopenharmony_ci				groups = "nand_io", "nand_io_ce0", "nand_io_ce1",
878c2ecf20Sopenharmony_ci					 "nand_io_rb0", "nand_ale", "nand_cle",
888c2ecf20Sopenharmony_ci					 "nand_wen_clk", "nand_ren_clk", "nand_dqs",
898c2ecf20Sopenharmony_ci					 "nand_ce2", "nand_ce3";
908c2ecf20Sopenharmony_ci				function = "nand";
918c2ecf20Sopenharmony_ci			};
928c2ecf20Sopenharmony_ci		};
938c2ecf20Sopenharmony_ci	};
94