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