Qualcomm PMIC Multi-Purpose Pin (MPP) block This binding describes the MPP block(s) found in the 8xxx series of PMIC's from Qualcomm. - compatible: Usage: required Value type: Definition: Should contain one of: "qcom,pm8841-mpp", "qcom,pm8916-mpp", "qcom,pm8941-mpp", "qcom,pma8084-mpp", - reg: Usage: required Value type: Definition: Register base of the MPP block and length. - interrupts: Usage: required Value type: Definition: Must contain an array of encoded interrupt specifiers for each available MPP - gpio-controller: Usage: required Value type: Definition: Mark the device node as a GPIO controller - #gpio-cells: Usage: required Value type: Definition: Must be 2; the first cell will be used to define MPP number and the second denotes the flags for this MPP Please refer to ../gpio/gpio.txt and ../interrupt-controller/interrupts.txt for a general description of GPIO and interrupt bindings. Please refer to pinctrl-bindings.txt in this directory for details of the common pinctrl bindings used by client devices, including the meaning of the phrase "pin configuration node". The pin configuration nodes act as a container for an arbitrary number of subnodes. Each of these subnodes represents some desired configuration for a pin or a list of pins. This configuration can include the mux function to select on those pin(s), and various pin configuration parameters, as listed below. SUBNODES: The name of each subnode is not important; all subnodes should be enumerated and processed purely based on their content. Each subnode only affects those parameters that are explicitly listed. In other words, a subnode that lists a mux function but no pin configuration parameters implies no information about any pin configuration parameters. Similarly, a pin subnode that describes a pullup parameter implies no information about e.g. the mux function. The following generic properties as defined in pinctrl-bindings.txt are valid to specify in a pin configuration subnode: - pins: Usage: required Value type: Definition: List of MPP pins affected by the properties specified in this subnode. Valid pins are: mpp1-mpp4 for pm8841 mpp1-mpp4 for pm8916 mpp1-mpp8 for pm8941 mpp1-mpp4 for pma8084 - function: Usage: required Value type: Definition: Specify the alternative function to be configured for the specified pins. Valid values are: "normal", "paired", "dtest1", "dtest2", "dtest3", "dtest4" - bias-disable: Usage: optional Value type: Definition: The specified pins should be configured as no pull. - bias-pull-up: Usage: optional Value type: Definition: The specified pins should be configured as pull up. Valid values are 600, 10000 and 30000 in bidirectional mode only, i.e. when operating in qcom,analog-mode and input and outputs are enabled. The hardware ignores the configuration when operating in other modes. - bias-high-impedance: Usage: optional Value type: Definition: The specified pins will put in high-Z mode and disabled. - input-enable: Usage: optional Value type: Definition: The specified pins are put in input mode, i.e. their input buffer is enabled - output-high: Usage: optional Value type: Definition: The specified pins are configured in output mode, driven high. - output-low: Usage: optional Value type: Definition: The specified pins are configured in output mode, driven low. - power-source: Usage: optional Value type: Definition: Selects the power source for the specified pins. Valid power sources are defined in - qcom,analog-mode: Usage: optional Value type: Definition: Selects Analog mode of operation: combined with input-enable and/or output-high, output-low MPP could operate as Bidirectional Logic, Analog Input, Analog Output. - qcom,amux-route: Usage: optional Value type: Definition: Selects the source for analog input. Valid values are defined in PMIC_MPP_AMUX_ROUTE_CH5, PMIC_MPP_AMUX_ROUTE_CH6... Example: mpps@a000 { compatible = "qcom,pm8841-mpp"; reg = <0xa000>; gpio-controller; #gpio-cells = <2>; interrupts = <4 0xa0 0 0>, <4 0xa1 0 0>, <4 0xa2 0 0>, <4 0xa3 0 0>; pinctrl-names = "default"; pinctrl-0 = <&pm8841_default>; pm8841_default: default { gpio { pins = "mpp1", "mpp2", "mpp3", "mpp4"; function = "normal"; input-enable; power-source = ; }; }; };