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