18c2ecf20Sopenharmony_ciCSR SiRFatlas7 pinmux controller
28c2ecf20Sopenharmony_ci
38c2ecf20Sopenharmony_ciRequired properties:
48c2ecf20Sopenharmony_ci- compatible	: "sirf,atlas7-ioc"
58c2ecf20Sopenharmony_ci- reg		: Address range of the pinctrl registers
68c2ecf20Sopenharmony_ci
78c2ecf20Sopenharmony_ciFor example, pinctrl might have properties like the following:
88c2ecf20Sopenharmony_ci	pinctrl: ioc@18880000 {
98c2ecf20Sopenharmony_ci			compatible = "sirf,atlas7-ioc";
108c2ecf20Sopenharmony_ci			reg = <0x18880000 0x1000>;
118c2ecf20Sopenharmony_ci
128c2ecf20Sopenharmony_ci			a_ac97_pmx: ac97@0 {
138c2ecf20Sopenharmony_ci				ac97 {
148c2ecf20Sopenharmony_ci					groups = "audio_ac97_grp";
158c2ecf20Sopenharmony_ci					function = "audio_ac97";
168c2ecf20Sopenharmony_ci				};
178c2ecf20Sopenharmony_ci			};
188c2ecf20Sopenharmony_ci
198c2ecf20Sopenharmony_ci			...
208c2ecf20Sopenharmony_ci
218c2ecf20Sopenharmony_ci			sd2_pmx: sd2@0 {
228c2ecf20Sopenharmony_ci				sd2 {
238c2ecf20Sopenharmony_ci					groups = "sd2_grp0";
248c2ecf20Sopenharmony_ci					function = "sd2";
258c2ecf20Sopenharmony_ci				};
268c2ecf20Sopenharmony_ci			};
278c2ecf20Sopenharmony_ci
288c2ecf20Sopenharmony_ci			...
298c2ecf20Sopenharmony_ci
308c2ecf20Sopenharmony_ci
318c2ecf20Sopenharmony_ci			sample0_cfg: sample0@0 {
328c2ecf20Sopenharmony_ci				sample0 {
338c2ecf20Sopenharmony_ci					pins = "ldd_0", "ldd_1";
348c2ecf20Sopenharmony_ci					bias-pull-up;
358c2ecf20Sopenharmony_ci				};
368c2ecf20Sopenharmony_ci			};
378c2ecf20Sopenharmony_ci
388c2ecf20Sopenharmony_ci			sample1_cfg: sample1@0 {
398c2ecf20Sopenharmony_ci				sample1 {
408c2ecf20Sopenharmony_ci					pins = "ldd_2", "ldd_3";
418c2ecf20Sopenharmony_ci					input-schmitt-enable;
428c2ecf20Sopenharmony_ci				};
438c2ecf20Sopenharmony_ci			};
448c2ecf20Sopenharmony_ci
458c2ecf20Sopenharmony_ci			sample2_cfg: sample2@0 {
468c2ecf20Sopenharmony_ci				sample2 {
478c2ecf20Sopenharmony_ci					groups = "uart4_nopause_grp";
488c2ecf20Sopenharmony_ci					bias-pull-down;
498c2ecf20Sopenharmony_ci				};
508c2ecf20Sopenharmony_ci			};
518c2ecf20Sopenharmony_ci
528c2ecf20Sopenharmony_ci			sample3_cfg: sample3@0 {
538c2ecf20Sopenharmony_ci				sample3 {
548c2ecf20Sopenharmony_ci					pins = "ldd_4", "ldd_5";
558c2ecf20Sopenharmony_ci					drive-strength = <2>;
568c2ecf20Sopenharmony_ci				};
578c2ecf20Sopenharmony_ci			};
588c2ecf20Sopenharmony_ci	};
598c2ecf20Sopenharmony_ci
608c2ecf20Sopenharmony_ciPlease refer to pinctrl-bindings.txt in this directory for details of the common
618c2ecf20Sopenharmony_cipinctrl bindings used by client devices.
628c2ecf20Sopenharmony_ci
638c2ecf20Sopenharmony_ciSiRFatlas7's pinmux nodes act as a container for an arbitrary number of subnodes.
648c2ecf20Sopenharmony_ciEach of these subnodes represents some desired configuration for a group of pins.
658c2ecf20Sopenharmony_ci
668c2ecf20Sopenharmony_ciRequired subnode-properties:
678c2ecf20Sopenharmony_ci- groups : An array of strings. Each string contains the name of a group.
688c2ecf20Sopenharmony_ci- function: A string containing the name of the function to mux to the
698c2ecf20Sopenharmony_ci  group.
708c2ecf20Sopenharmony_ci
718c2ecf20Sopenharmony_ci  Valid values for group and function names can be found from looking at the
728c2ecf20Sopenharmony_ci  group and function arrays in driver files:
738c2ecf20Sopenharmony_ci  drivers/pinctrl/pinctrl-sirf.c
748c2ecf20Sopenharmony_ci
758c2ecf20Sopenharmony_ciFor example, pinctrl might have subnodes like the following:
768c2ecf20Sopenharmony_ci	sd0_pmx: sd0@0 {
778c2ecf20Sopenharmony_ci		sd0 {
788c2ecf20Sopenharmony_ci			groups = "sd0_grp";
798c2ecf20Sopenharmony_ci			function = "sd0";
808c2ecf20Sopenharmony_ci		};
818c2ecf20Sopenharmony_ci	};
828c2ecf20Sopenharmony_ci
838c2ecf20Sopenharmony_ci	sd1_pmx0: sd1@0 {
848c2ecf20Sopenharmony_ci		sd1 {
858c2ecf20Sopenharmony_ci			groups = "sd1_grp0";
868c2ecf20Sopenharmony_ci			function = "sd1_m0";
878c2ecf20Sopenharmony_ci		};
888c2ecf20Sopenharmony_ci	};
898c2ecf20Sopenharmony_ci
908c2ecf20Sopenharmony_ci	sd1_pmx1: sd1@1 {
918c2ecf20Sopenharmony_ci		sd1 {
928c2ecf20Sopenharmony_ci			groups = "sd1_grp1";
938c2ecf20Sopenharmony_ci			function = "sd1_m1";
948c2ecf20Sopenharmony_ci		};
958c2ecf20Sopenharmony_ci	};
968c2ecf20Sopenharmony_ci
978c2ecf20Sopenharmony_ciFor a specific board, if it wants to use sd1,
988c2ecf20Sopenharmony_ciit can add the following to its board-specific .dts file.
998c2ecf20Sopenharmony_cisd1: sd@12340000 {
1008c2ecf20Sopenharmony_ci	pinctrl-names = "default";
1018c2ecf20Sopenharmony_ci	pinctrl-0 = <&sd1_pmx0>;
1028c2ecf20Sopenharmony_ci}
1038c2ecf20Sopenharmony_ci
1048c2ecf20Sopenharmony_cior
1058c2ecf20Sopenharmony_ci
1068c2ecf20Sopenharmony_cisd1: sd@12340000 {
1078c2ecf20Sopenharmony_ci	pinctrl-names = "default";
1088c2ecf20Sopenharmony_ci	pinctrl-0 = <&sd1_pmx1>;
1098c2ecf20Sopenharmony_ci}
110