1*4882a593SmuzhiyunCSR SiRFatlas7 pinmux controller 2*4882a593Smuzhiyun 3*4882a593SmuzhiyunRequired properties: 4*4882a593Smuzhiyun- compatible : "sirf,atlas7-ioc" 5*4882a593Smuzhiyun- reg : Address range of the pinctrl registers 6*4882a593Smuzhiyun 7*4882a593SmuzhiyunFor example, pinctrl might have properties like the following: 8*4882a593Smuzhiyun pinctrl: ioc@18880000 { 9*4882a593Smuzhiyun compatible = "sirf,atlas7-ioc"; 10*4882a593Smuzhiyun reg = <0x18880000 0x1000>; 11*4882a593Smuzhiyun 12*4882a593Smuzhiyun a_ac97_pmx: ac97@0 { 13*4882a593Smuzhiyun ac97 { 14*4882a593Smuzhiyun groups = "audio_ac97_grp"; 15*4882a593Smuzhiyun function = "audio_ac97"; 16*4882a593Smuzhiyun }; 17*4882a593Smuzhiyun }; 18*4882a593Smuzhiyun 19*4882a593Smuzhiyun ... 20*4882a593Smuzhiyun 21*4882a593Smuzhiyun sd2_pmx: sd2@0 { 22*4882a593Smuzhiyun sd2 { 23*4882a593Smuzhiyun groups = "sd2_grp0"; 24*4882a593Smuzhiyun function = "sd2"; 25*4882a593Smuzhiyun }; 26*4882a593Smuzhiyun }; 27*4882a593Smuzhiyun 28*4882a593Smuzhiyun ... 29*4882a593Smuzhiyun 30*4882a593Smuzhiyun 31*4882a593Smuzhiyun sample0_cfg: sample0@0 { 32*4882a593Smuzhiyun sample0 { 33*4882a593Smuzhiyun pins = "ldd_0", "ldd_1"; 34*4882a593Smuzhiyun bias-pull-up; 35*4882a593Smuzhiyun }; 36*4882a593Smuzhiyun }; 37*4882a593Smuzhiyun 38*4882a593Smuzhiyun sample1_cfg: sample1@0 { 39*4882a593Smuzhiyun sample1 { 40*4882a593Smuzhiyun pins = "ldd_2", "ldd_3"; 41*4882a593Smuzhiyun input-schmitt-enable; 42*4882a593Smuzhiyun }; 43*4882a593Smuzhiyun }; 44*4882a593Smuzhiyun 45*4882a593Smuzhiyun sample2_cfg: sample2@0 { 46*4882a593Smuzhiyun sample2 { 47*4882a593Smuzhiyun groups = "uart4_nopause_grp"; 48*4882a593Smuzhiyun bias-pull-down; 49*4882a593Smuzhiyun }; 50*4882a593Smuzhiyun }; 51*4882a593Smuzhiyun 52*4882a593Smuzhiyun sample3_cfg: sample3@0 { 53*4882a593Smuzhiyun sample3 { 54*4882a593Smuzhiyun pins = "ldd_4", "ldd_5"; 55*4882a593Smuzhiyun drive-strength = <2>; 56*4882a593Smuzhiyun }; 57*4882a593Smuzhiyun }; 58*4882a593Smuzhiyun }; 59*4882a593Smuzhiyun 60*4882a593SmuzhiyunPlease refer to pinctrl-bindings.txt in this directory for details of the common 61*4882a593Smuzhiyunpinctrl bindings used by client devices. 62*4882a593Smuzhiyun 63*4882a593SmuzhiyunSiRFatlas7's pinmux nodes act as a container for an arbitrary number of subnodes. 64*4882a593SmuzhiyunEach of these subnodes represents some desired configuration for a group of pins. 65*4882a593Smuzhiyun 66*4882a593SmuzhiyunRequired subnode-properties: 67*4882a593Smuzhiyun- groups : An array of strings. Each string contains the name of a group. 68*4882a593Smuzhiyun- function: A string containing the name of the function to mux to the 69*4882a593Smuzhiyun group. 70*4882a593Smuzhiyun 71*4882a593Smuzhiyun Valid values for group and function names can be found from looking at the 72*4882a593Smuzhiyun group and function arrays in driver files: 73*4882a593Smuzhiyun drivers/pinctrl/pinctrl-sirf.c 74*4882a593Smuzhiyun 75*4882a593SmuzhiyunFor example, pinctrl might have subnodes like the following: 76*4882a593Smuzhiyun sd0_pmx: sd0@0 { 77*4882a593Smuzhiyun sd0 { 78*4882a593Smuzhiyun groups = "sd0_grp"; 79*4882a593Smuzhiyun function = "sd0"; 80*4882a593Smuzhiyun }; 81*4882a593Smuzhiyun }; 82*4882a593Smuzhiyun 83*4882a593Smuzhiyun sd1_pmx0: sd1@0 { 84*4882a593Smuzhiyun sd1 { 85*4882a593Smuzhiyun groups = "sd1_grp0"; 86*4882a593Smuzhiyun function = "sd1_m0"; 87*4882a593Smuzhiyun }; 88*4882a593Smuzhiyun }; 89*4882a593Smuzhiyun 90*4882a593Smuzhiyun sd1_pmx1: sd1@1 { 91*4882a593Smuzhiyun sd1 { 92*4882a593Smuzhiyun groups = "sd1_grp1"; 93*4882a593Smuzhiyun function = "sd1_m1"; 94*4882a593Smuzhiyun }; 95*4882a593Smuzhiyun }; 96*4882a593Smuzhiyun 97*4882a593SmuzhiyunFor a specific board, if it wants to use sd1, 98*4882a593Smuzhiyunit can add the following to its board-specific .dts file. 99*4882a593Smuzhiyunsd1: sd@12340000 { 100*4882a593Smuzhiyun pinctrl-names = "default"; 101*4882a593Smuzhiyun pinctrl-0 = <&sd1_pmx0>; 102*4882a593Smuzhiyun} 103*4882a593Smuzhiyun 104*4882a593Smuzhiyunor 105*4882a593Smuzhiyun 106*4882a593Smuzhiyunsd1: sd@12340000 { 107*4882a593Smuzhiyun pinctrl-names = "default"; 108*4882a593Smuzhiyun pinctrl-0 = <&sd1_pmx1>; 109*4882a593Smuzhiyun} 110