1Qualcomm PMIC Multi-Purpose Pin (MPP) block 2 3This binding describes the MPP block(s) found in the 8xxx series 4of PMIC's from Qualcomm. 5 6- compatible: 7 Usage: required 8 Value type: <string> 9 Definition: Should contain one of: 10 "qcom,pm8018-mpp", 11 "qcom,pm8038-mpp", 12 "qcom,pm8058-mpp", 13 "qcom,pm8821-mpp", 14 "qcom,pm8841-mpp", 15 "qcom,pm8916-mpp", 16 "qcom,pm8917-mpp", 17 "qcom,pm8921-mpp", 18 "qcom,pm8941-mpp", 19 "qcom,pm8950-mpp", 20 "qcom,pmi8950-mpp", 21 "qcom,pm8994-mpp", 22 "qcom,pma8084-mpp", 23 24 And must contain either "qcom,spmi-mpp" or "qcom,ssbi-mpp" 25 if the device is on an spmi bus or an ssbi bus respectively. 26 27- reg: 28 Usage: required 29 Value type: <prop-encoded-array> 30 Definition: Register base of the MPP block and length. 31 32- interrupts: 33 Usage: required 34 Value type: <prop-encoded-array> 35 Definition: Must contain an array of encoded interrupt specifiers for 36 each available MPP 37 38- gpio-controller: 39 Usage: required 40 Value type: <none> 41 Definition: Mark the device node as a GPIO controller 42 43- #gpio-cells: 44 Usage: required 45 Value type: <u32> 46 Definition: Must be 2; 47 the first cell will be used to define MPP number and the 48 second denotes the flags for this MPP 49 50Please refer to ../gpio/gpio.txt and ../interrupt-controller/interrupts.txt for 51a general description of GPIO and interrupt bindings. 52 53Please refer to pinctrl-bindings.txt in this directory for details of the 54common pinctrl bindings used by client devices, including the meaning of the 55phrase "pin configuration node". 56 57The pin configuration nodes act as a container for an arbitrary number of 58subnodes. Each of these subnodes represents some desired configuration for a 59pin or a list of pins. This configuration can include the 60mux function to select on those pin(s), and various pin configuration 61parameters, as listed below. 62 63SUBNODES: 64 65The name of each subnode is not important; all subnodes should be enumerated 66and processed purely based on their content. 67 68Each subnode only affects those parameters that are explicitly listed. In 69other words, a subnode that lists a mux function but no pin configuration 70parameters implies no information about any pin configuration parameters. 71Similarly, a pin subnode that describes a pullup parameter implies no 72information about e.g. the mux function. 73 74The following generic properties as defined in pinctrl-bindings.txt are valid 75to specify in a pin configuration subnode: 76 77- pins: 78 Usage: required 79 Value type: <string-array> 80 Definition: List of MPP pins affected by the properties specified in 81 this subnode. Valid pins are: 82 mpp1-mpp4 for pm8841 83 mpp1-mpp4 for pm8916 84 mpp1-mpp8 for pm8941 85 mpp1-mpp4 for pm8950 86 mpp1-mpp4 for pmi8950 87 mpp1-mpp4 for pma8084 88 89- function: 90 Usage: required 91 Value type: <string> 92 Definition: Specify the alternative function to be configured for the 93 specified pins. Valid values are: 94 "digital", 95 "analog", 96 "sink" 97 98- bias-disable: 99 Usage: optional 100 Value type: <none> 101 Definition: The specified pins should be configured as no pull. 102 103- bias-pull-up: 104 Usage: optional 105 Value type: <u32> 106 Definition: The specified pins should be configured as pull up. 107 Valid values are 600, 10000 and 30000 in bidirectional mode 108 only, i.e. when operating in qcom,analog-mode and input and 109 outputs are enabled. The hardware ignores the configuration 110 when operating in other modes. 111 112- bias-high-impedance: 113 Usage: optional 114 Value type: <none> 115 Definition: The specified pins will put in high-Z mode and disabled. 116 117- input-enable: 118 Usage: optional 119 Value type: <none> 120 Definition: The specified pins are put in input mode, i.e. their input 121 buffer is enabled 122 123- output-high: 124 Usage: optional 125 Value type: <none> 126 Definition: The specified pins are configured in output mode, driven 127 high. 128 129- output-low: 130 Usage: optional 131 Value type: <none> 132 Definition: The specified pins are configured in output mode, driven 133 low. 134 135- power-source: 136 Usage: optional 137 Value type: <u32> 138 Definition: Selects the power source for the specified pins. Valid power 139 sources are defined in <dt-bindings/pinctrl/qcom,pmic-mpp.h> 140 141- qcom,analog-level: 142 Usage: optional 143 Value type: <u32> 144 Definition: Selects the source for analog output. Valued values are 145 defined in <dt-binding/pinctrl/qcom,pmic-mpp.h> 146 PMIC_MPP_AOUT_LVL_* 147 148- qcom,dtest: 149 Usage: optional 150 Value type: <u32> 151 Definition: Selects which dtest rail to be routed in the various functions. 152 Valid values are 1-4 153 154- qcom,amux-route: 155 Usage: optional 156 Value type: <u32> 157 Definition: Selects the source for analog input. Valid values are 158 defined in <dt-bindings/pinctrl/qcom,pmic-mpp.h> 159 PMIC_MPP_AMUX_ROUTE_CH5, PMIC_MPP_AMUX_ROUTE_CH6... 160- qcom,paired: 161 Usage: optional 162 Value type: <none> 163 Definition: Indicates that the pin should be operating in paired mode. 164 165Example: 166 167 mpps@a000 { 168 compatible = "qcom,pm8841-mpp", "qcom,spmi-mpp"; 169 reg = <0xa000>; 170 gpio-controller; 171 #gpio-cells = <2>; 172 interrupts = <4 0xa0 0 0>, <4 0xa1 0 0>, <4 0xa2 0 0>, <4 0xa3 0 0>; 173 174 pinctrl-names = "default"; 175 pinctrl-0 = <&pm8841_default>; 176 177 pm8841_default: default { 178 gpio { 179 pins = "mpp1", "mpp2", "mpp3", "mpp4"; 180 function = "digital"; 181 input-enable; 182 power-source = <PM8841_MPP_S3>; 183 }; 184 }; 185 }; 186