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