1f9a06b81SDmitry Baryshkov# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 2f9a06b81SDmitry Baryshkov%YAML 1.2 3f9a06b81SDmitry Baryshkov--- 4f9a06b81SDmitry Baryshkov$id: http://devicetree.org/schemas/pinctrl/qcom,pmic-mpp.yaml# 5f9a06b81SDmitry Baryshkov$schema: http://devicetree.org/meta-schemas/core.yaml# 6f9a06b81SDmitry Baryshkov 7f9a06b81SDmitry Baryshkovtitle: Qualcomm PMIC Multi-Purpose Pin (MPP) block 8f9a06b81SDmitry Baryshkov 9f9a06b81SDmitry Baryshkovmaintainers: 10f9a06b81SDmitry Baryshkov - Bjorn Andersson <bjorn.andersson@linaro.org> 11f9a06b81SDmitry Baryshkov 12f9a06b81SDmitry Baryshkovdescription: 13f9a06b81SDmitry Baryshkov This binding describes the MPP block(s) found in the 8xxx series of 14f9a06b81SDmitry Baryshkov PMIC's from Qualcomm. 15f9a06b81SDmitry Baryshkov 16f9a06b81SDmitry Baryshkovproperties: 17f9a06b81SDmitry Baryshkov compatible: 18f9a06b81SDmitry Baryshkov items: 19f9a06b81SDmitry Baryshkov - enum: 20f9a06b81SDmitry Baryshkov - qcom,pm8018-mpp 21f9a06b81SDmitry Baryshkov - qcom,pm8019-mpp 22f9a06b81SDmitry Baryshkov - qcom,pm8038-mpp 23f9a06b81SDmitry Baryshkov - qcom,pm8058-mpp 24f9a06b81SDmitry Baryshkov - qcom,pm8821-mpp 25f9a06b81SDmitry Baryshkov - qcom,pm8841-mpp 26f9a06b81SDmitry Baryshkov - qcom,pm8916-mpp 27f9a06b81SDmitry Baryshkov - qcom,pm8917-mpp 28f9a06b81SDmitry Baryshkov - qcom,pm8921-mpp 29f9a06b81SDmitry Baryshkov - qcom,pm8941-mpp 30f9a06b81SDmitry Baryshkov - qcom,pm8950-mpp 31f9a06b81SDmitry Baryshkov - qcom,pmi8950-mpp 32f9a06b81SDmitry Baryshkov - qcom,pm8994-mpp 33f9a06b81SDmitry Baryshkov - qcom,pma8084-mpp 34f9a06b81SDmitry Baryshkov - qcom,pmi8994-mpp 35f9a06b81SDmitry Baryshkov 36f9a06b81SDmitry Baryshkov - enum: 37f9a06b81SDmitry Baryshkov - qcom,spmi-mpp 38f9a06b81SDmitry Baryshkov - qcom,ssbi-mpp 39f9a06b81SDmitry Baryshkov 40f9a06b81SDmitry Baryshkov reg: 41f9a06b81SDmitry Baryshkov maxItems: 1 42f9a06b81SDmitry Baryshkov 43*8ec664ffSDmitry Baryshkov interrupt-controller: true 44*8ec664ffSDmitry Baryshkov 45*8ec664ffSDmitry Baryshkov '#interrupt-cells': 46*8ec664ffSDmitry Baryshkov const: 2 47f9a06b81SDmitry Baryshkov 48f9a06b81SDmitry Baryshkov gpio-controller: true 49f9a06b81SDmitry Baryshkov gpio-line-names: true 50f9a06b81SDmitry Baryshkov 51f9a06b81SDmitry Baryshkov gpio-ranges: 52f9a06b81SDmitry Baryshkov maxItems: 1 53f9a06b81SDmitry Baryshkov 54f9a06b81SDmitry Baryshkov '#gpio-cells': 55f9a06b81SDmitry Baryshkov const: 2 56f9a06b81SDmitry Baryshkov description: 57f9a06b81SDmitry Baryshkov The first cell will be used to define gpio number and the 58f9a06b81SDmitry Baryshkov second denotes the flags for this gpio 59f9a06b81SDmitry Baryshkov 60f9a06b81SDmitry BaryshkovadditionalProperties: false 61f9a06b81SDmitry Baryshkov 62f9a06b81SDmitry Baryshkovrequired: 63f9a06b81SDmitry Baryshkov - compatible 64f9a06b81SDmitry Baryshkov - reg 65f9a06b81SDmitry Baryshkov - gpio-controller 66f9a06b81SDmitry Baryshkov - '#gpio-cells' 67f9a06b81SDmitry Baryshkov - gpio-ranges 68*8ec664ffSDmitry Baryshkov - interrupt-controller 69f9a06b81SDmitry Baryshkov 70f9a06b81SDmitry BaryshkovpatternProperties: 71f9a06b81SDmitry Baryshkov '-state$': 72f9a06b81SDmitry Baryshkov oneOf: 73f9a06b81SDmitry Baryshkov - $ref: "#/$defs/qcom-pmic-mpp-state" 74f9a06b81SDmitry Baryshkov - patternProperties: 75f9a06b81SDmitry Baryshkov "mpp": 76f9a06b81SDmitry Baryshkov $ref: "#/$defs/qcom-pmic-mpp-state" 77f9a06b81SDmitry Baryshkov additionalProperties: false 78f9a06b81SDmitry Baryshkov 79f9a06b81SDmitry Baryshkov$defs: 80f9a06b81SDmitry Baryshkov qcom-pmic-mpp-state: 81f9a06b81SDmitry Baryshkov type: object 82f9a06b81SDmitry Baryshkov allOf: 83f9a06b81SDmitry Baryshkov - $ref: "pinmux-node.yaml" 84f9a06b81SDmitry Baryshkov - $ref: "pincfg-node.yaml" 85f9a06b81SDmitry Baryshkov properties: 86f9a06b81SDmitry Baryshkov pins: 87f9a06b81SDmitry Baryshkov description: 88f9a06b81SDmitry Baryshkov List of gpio pins affected by the properties specified in 89f9a06b81SDmitry Baryshkov this subnode. Valid pins are 90f9a06b81SDmitry Baryshkov - mpp1-mpp4 for pm8841 91f9a06b81SDmitry Baryshkov - mpp1-mpp4 for pm8916 92f9a06b81SDmitry Baryshkov - mpp1-mpp8 for pm8941 93f9a06b81SDmitry Baryshkov - mpp1-mpp4 for pm8950 94f9a06b81SDmitry Baryshkov - mpp1-mpp4 for pmi8950 95f9a06b81SDmitry Baryshkov - mpp1-mpp4 for pma8084 96f9a06b81SDmitry Baryshkov 97f9a06b81SDmitry Baryshkov items: 98f9a06b81SDmitry Baryshkov pattern: "^mpp([0-9]+)$" 99f9a06b81SDmitry Baryshkov 100f9a06b81SDmitry Baryshkov function: 101f9a06b81SDmitry Baryshkov items: 102f9a06b81SDmitry Baryshkov - enum: 103f9a06b81SDmitry Baryshkov - digital 104f9a06b81SDmitry Baryshkov - analog 105f9a06b81SDmitry Baryshkov - sink 106f9a06b81SDmitry Baryshkov 107f9a06b81SDmitry Baryshkov bias-disable: true 108f9a06b81SDmitry Baryshkov bias-pull-up: true 109f9a06b81SDmitry Baryshkov bias-high-impedance: true 110f9a06b81SDmitry Baryshkov input-enable: true 111f9a06b81SDmitry Baryshkov output-high: true 112f9a06b81SDmitry Baryshkov output-low: true 113f9a06b81SDmitry Baryshkov power-source: true 114f9a06b81SDmitry Baryshkov 115f9a06b81SDmitry Baryshkov qcom,analog-level: 116f9a06b81SDmitry Baryshkov $ref: /schemas/types.yaml#/definitions/uint32 117f9a06b81SDmitry Baryshkov description: 118f9a06b81SDmitry Baryshkov Selects the source for analog output. Valued values are defined in 119f9a06b81SDmitry Baryshkov <dt-binding/pinctrl/qcom,pmic-mpp.h> PMIC_MPP_AOUT_LVL_* 120f9a06b81SDmitry Baryshkov enum: [0, 1, 2, 3, 4, 5, 6, 7] 121f9a06b81SDmitry Baryshkov 122f9a06b81SDmitry Baryshkov qcom,atest: 123f9a06b81SDmitry Baryshkov $ref: /schemas/types.yaml#/definitions/uint32 124f9a06b81SDmitry Baryshkov description: 125f9a06b81SDmitry Baryshkov Selects ATEST rail to route to GPIO when it's 126f9a06b81SDmitry Baryshkov configured in analog-pass-through mode. 127f9a06b81SDmitry Baryshkov enum: [1, 2, 3, 4] 128f9a06b81SDmitry Baryshkov 129f9a06b81SDmitry Baryshkov qcom,dtest: 130f9a06b81SDmitry Baryshkov $ref: /schemas/types.yaml#/definitions/uint32 131f9a06b81SDmitry Baryshkov description: 132f9a06b81SDmitry Baryshkov Selects DTEST rail to route to GPIO when it's 133f9a06b81SDmitry Baryshkov configured as digital input. 134f9a06b81SDmitry Baryshkov enum: [1, 2, 3, 4] 135f9a06b81SDmitry Baryshkov 136f9a06b81SDmitry Baryshkov qcom,amux-route: 137f9a06b81SDmitry Baryshkov $ref: /schemas/types.yaml#/definitions/uint32 138f9a06b81SDmitry Baryshkov description: 139f9a06b81SDmitry Baryshkov Selects the source for analog input. Valid values are defined in 140f9a06b81SDmitry Baryshkov <dt-bindings/pinctrl/qcom,pmic-mpp.h> PMIC_MPP_AMUX_ROUTE_CH5, 141f9a06b81SDmitry Baryshkov PMIC_MPP_AMUX_ROUTE_CH6... 142f9a06b81SDmitry Baryshkov enum: [0, 1, 2, 3, 4, 5, 6, 7] 143f9a06b81SDmitry Baryshkov 144f9a06b81SDmitry Baryshkov qcom,paired: 145f9a06b81SDmitry Baryshkov - description: 146f9a06b81SDmitry Baryshkov Indicates that the pin should be operating in paired mode. 147f9a06b81SDmitry Baryshkov 148f9a06b81SDmitry Baryshkov required: 149f9a06b81SDmitry Baryshkov - pins 150f9a06b81SDmitry Baryshkov - function 151f9a06b81SDmitry Baryshkov 152f9a06b81SDmitry Baryshkov additionalProperties: false 153f9a06b81SDmitry Baryshkov 154f9a06b81SDmitry Baryshkovexamples: 155f9a06b81SDmitry Baryshkov - | 156f9a06b81SDmitry Baryshkov #include <dt-bindings/pinctrl/qcom,pmic-mpp.h> 157f9a06b81SDmitry Baryshkov 158f9a06b81SDmitry Baryshkov pm8841_mpp: mpps@a000 { 159f9a06b81SDmitry Baryshkov compatible = "qcom,pm8841-mpp", "qcom,spmi-mpp"; 160f9a06b81SDmitry Baryshkov reg = <0xa000 0>; 161f9a06b81SDmitry Baryshkov gpio-controller; 162f9a06b81SDmitry Baryshkov #gpio-cells = <2>; 163f9a06b81SDmitry Baryshkov gpio-ranges = <&pm8841_mpp 0 0 4>; 164f9a06b81SDmitry Baryshkov gpio-line-names = "VDD_PX_BIAS", "WLAN_LED_CTRL", 165f9a06b81SDmitry Baryshkov "BT_LED_CTRL", "GPIO-F"; 166*8ec664ffSDmitry Baryshkov interrupt-controller; 167*8ec664ffSDmitry Baryshkov #interrupt-cells = <2>; 168f9a06b81SDmitry Baryshkov 169f9a06b81SDmitry Baryshkov pinctrl-names = "default"; 170f9a06b81SDmitry Baryshkov pinctrl-0 = <&pm8841_default>; 171f9a06b81SDmitry Baryshkov 172f9a06b81SDmitry Baryshkov mpp1-state { 173f9a06b81SDmitry Baryshkov pins = "mpp1"; 174f9a06b81SDmitry Baryshkov function = "digital"; 175f9a06b81SDmitry Baryshkov input-enable; 176f9a06b81SDmitry Baryshkov power-source = <PM8841_MPP_S3>; 177f9a06b81SDmitry Baryshkov }; 178f9a06b81SDmitry Baryshkov 179f9a06b81SDmitry Baryshkov default-state { 180f9a06b81SDmitry Baryshkov gpio-mpp { 181f9a06b81SDmitry Baryshkov pins = "mpp1", "mpp2", "mpp3", "mpp4"; 182f9a06b81SDmitry Baryshkov function = "digital"; 183f9a06b81SDmitry Baryshkov input-enable; 184f9a06b81SDmitry Baryshkov power-source = <PM8841_MPP_S3>; 185f9a06b81SDmitry Baryshkov }; 186f9a06b81SDmitry Baryshkov }; 187f9a06b81SDmitry Baryshkov }; 188f9a06b81SDmitry Baryshkov... 189