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