1ST Ericsson Nomadik pinmux controller 2 3Required properties: 4- compatible: "stericsson,db8500-pinctrl", "stericsson,db8540-pinctrl", 5 "stericsson,stn8815-pinctrl" 6- reg: Should contain the register physical address and length of the PRCMU. 7 8Please refer to pinctrl-bindings.txt in this directory for details of the 9common pinctrl bindings used by client devices, including the meaning of the 10phrase "pin configuration node". 11 12ST Ericsson's pin configuration nodes act as a container for an arbitrary number of 13subnodes. Each of these subnodes represents some desired configuration for a 14pin, a group, or a list of pins or groups. This configuration can include the 15mux function to select on those pin(s)/group(s), and various pin configuration 16parameters, such as input, output, pull up, pull down... 17 18The name of each subnode is not important; all subnodes should be enumerated 19and processed purely based on their content. The subnodes use the generic 20pin multiplexing node layout from the standard pin control bindings 21(see pinctrl-bindings.txt): 22 23Required pin multiplexing subnode properties: 24- function: A string containing the name of the function to mux to the 25 pin or group. 26- groups : An array of strings. Each string contains the name of a pin 27 group that will be combined with the function to form a multiplexing 28 set-up. 29 30Required pin configuration subnode properties: 31- pins: A string array describing the pins affected by the configuration 32 in the node. 33- ste,config: Handle of pin configuration node 34 (e.g. ste,config = <&slpm_in_wkup_pdis>) 35 36- ste,input : <0/1/2> 37 0: input with no pull 38 1: input with pull up, 39 2: input with pull down, 40 41- ste,output: <0/1/2> 42 0: output low, 43 1: output high, 44 2: output (value is not specified). 45 46- ste,sleep: <0/1> 47 0: sleep mode disable, 48 1: sleep mode enable. 49 50- ste,sleep-input: <0/1/2/3> 51 0: sleep input with no pull, 52 1: sleep input with pull up, 53 2: sleep input with pull down. 54 3: sleep input and keep last input configuration (no pull, pull up or pull down). 55 56- ste,sleep-output: <0/1/2> 57 0: sleep output low, 58 1: sleep output high, 59 2: sleep output (value is not specified). 60 61- ste,sleep-gpio: <0/1> 62 0: disable sleep gpio mode, 63 1: enable sleep gpio mode. 64 65- ste,sleep-wakeup: <0/1> 66 0: wake-up detection enabled, 67 1: wake-up detection disabled. 68 69- ste,sleep-pull-disable: <0/1> 70 0: GPIO pull-up or pull-down resistor is enabled, when pin is an input, 71 1: GPIO pull-up and pull-down resistor are disabled. 72 73Example board file extract: 74 75 pinctrl@80157000 { 76 compatible = "stericsson,db8500-pinctrl"; 77 reg = <0x80157000 0x2000>; 78 79 pinctrl-names = "default"; 80 81 slpm_in_wkup_pdis: slpm_in_wkup_pdis { 82 ste,sleep = <1>; 83 ste,sleep-input = <3>; 84 ste,sleep-wakeup = <1>; 85 ste,sleep-pull-disable = <0>; 86 }; 87 88 slpm_out_hi_wkup_pdis: slpm_out_hi_wkup_pdis { 89 ste,sleep = <1>; 90 ste,sleep-output = <1>; 91 ste,sleep-wakeup = <1>; 92 ste,sleep-pull-disable = <0>; 93 }; 94 95 slpm_out_wkup_pdis: slpm_out_wkup_pdis { 96 ste,sleep = <1>; 97 ste,sleep-output = <2>; 98 ste,sleep-wakeup = <1>; 99 ste,sleep-pull-disable = <0>; 100 }; 101 102 uart0 { 103 uart0_default_mux: uart0_mux { 104 u0_default_mux { 105 function = "u0"; 106 pins = "u0_a_1"; 107 }; 108 }; 109 uart0_default_mode: uart0_default { 110 uart0_default_cfg1 { 111 pins = "GPIO0", "GPIO2"; 112 ste,input = <1>; 113 }; 114 115 uart0_default_cfg2 { 116 pins = "GPIO1", "GPIO3"; 117 ste,output = <1>; 118 }; 119 }; 120 uart0_sleep_mode: uart0_sleep { 121 uart0_sleep_cfg1 { 122 pins = "GPIO0", "GPIO2"; 123 ste,config = <&slpm_in_wkup_pdis>; 124 }; 125 uart0_sleep_cfg2 { 126 pins = "GPIO1"; 127 ste,config = <&slpm_out_hi_wkup_pdis>; 128 }; 129 uart0_sleep_cfg3 { 130 pins = "GPIO3"; 131 ste,config = <&slpm_out_wkup_pdis>; 132 }; 133 }; 134 }; 135 }; 136 137 uart@80120000 { 138 compatible = "arm,pl011", "arm,primecell"; 139 reg = <0x80120000 0x1000>; 140 interrupts = <0 11 0x4>; 141 142 pinctrl-names = "default","sleep"; 143 pinctrl-0 = <&uart0_default_mux>, <&uart0_default_mode>; 144 pinctrl-1 = <&uart0_sleep_mode>; 145 }; 146