xref: /linux/Documentation/devicetree/bindings/pinctrl/qcom,ipq4019-pinctrl.yaml (revision 3a39d672e7f48b8d6b91a09afa4b55352773b4b5)
106881e91SRayyan Ansari# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
206881e91SRayyan Ansari%YAML 1.2
306881e91SRayyan Ansari---
406881e91SRayyan Ansari$id: http://devicetree.org/schemas/pinctrl/qcom,ipq4019-pinctrl.yaml#
506881e91SRayyan Ansari$schema: http://devicetree.org/meta-schemas/core.yaml#
606881e91SRayyan Ansari
706881e91SRayyan Ansarititle: Qualcomm Technologies, Inc. IPQ4019 TLMM block
806881e91SRayyan Ansari
906881e91SRayyan Ansarimaintainers:
1006881e91SRayyan Ansari  - Bjorn Andersson <bjorn.andersson@linaro.org>
1106881e91SRayyan Ansari
1206881e91SRayyan Ansaridescription: |
1306881e91SRayyan Ansari  Top Level Mode Multiplexer pin controller in Qualcomm IPQ4019 SoC.
1406881e91SRayyan Ansari
1506881e91SRayyan AnsariallOf:
1606881e91SRayyan Ansari  - $ref: /schemas/pinctrl/qcom,tlmm-common.yaml#
1706881e91SRayyan Ansari
1806881e91SRayyan Ansariproperties:
1906881e91SRayyan Ansari  compatible:
2006881e91SRayyan Ansari    const: qcom,ipq4019-pinctrl
2106881e91SRayyan Ansari
2206881e91SRayyan Ansari  reg:
2306881e91SRayyan Ansari    maxItems: 1
2406881e91SRayyan Ansari
2506881e91SRayyan Ansari  interrupts:
2606881e91SRayyan Ansari    maxItems: 1
2706881e91SRayyan Ansari
2806881e91SRayyan Ansari  gpio-reserved-ranges: true
2906881e91SRayyan Ansari
3006881e91SRayyan AnsaripatternProperties:
3106881e91SRayyan Ansari  "-state$":
3206881e91SRayyan Ansari    oneOf:
3306881e91SRayyan Ansari      - $ref: "#/$defs/qcom-ipq4019-tlmm-state"
3406881e91SRayyan Ansari      - patternProperties:
3506881e91SRayyan Ansari          "-pins$":
3606881e91SRayyan Ansari            $ref: "#/$defs/qcom-ipq4019-tlmm-state"
3706881e91SRayyan Ansari        additionalProperties: false
3806881e91SRayyan Ansari
3906881e91SRayyan Ansari  "-hog(-[0-9]+)?$":
40*ae4e8454SKrzysztof Kozlowski    type: object
4106881e91SRayyan Ansari    required:
4206881e91SRayyan Ansari      - gpio-hog
4306881e91SRayyan Ansari
4406881e91SRayyan Ansari$defs:
4506881e91SRayyan Ansari  qcom-ipq4019-tlmm-state:
4606881e91SRayyan Ansari    type: object
4706881e91SRayyan Ansari    description:
4806881e91SRayyan Ansari      Pinctrl node's client devices use subnodes for desired pin configuration.
4906881e91SRayyan Ansari      Client device subnodes use below standard properties.
5006881e91SRayyan Ansari    $ref: qcom,tlmm-common.yaml#/$defs/qcom-tlmm-state
5106881e91SRayyan Ansari    unevaluatedProperties: false
5206881e91SRayyan Ansari
5306881e91SRayyan Ansari    properties:
5406881e91SRayyan Ansari      pins:
5506881e91SRayyan Ansari        description:
5606881e91SRayyan Ansari          List of gpio pins affected by the properties specified in this
5706881e91SRayyan Ansari          subnode.
5806881e91SRayyan Ansari        items:
5906881e91SRayyan Ansari          pattern: "^gpio([0-9]|[1-9][0-9])$"
6006881e91SRayyan Ansari        minItems: 1
6106881e91SRayyan Ansari        maxItems: 36
6206881e91SRayyan Ansari
6306881e91SRayyan Ansari      function:
6406881e91SRayyan Ansari        description:
6506881e91SRayyan Ansari          Specify the alternative function to be configured for the specified
6606881e91SRayyan Ansari          pins.
6706881e91SRayyan Ansari        enum: [ aud_pin, audio_pwm, blsp_i2c0, blsp_i2c1, blsp_spi0,
6806881e91SRayyan Ansari                blsp_spi1, blsp_uart0, blsp_uart1, chip_rst, gpio,
6906881e91SRayyan Ansari                i2s_rx, i2s_spdif_in, i2s_spdif_out, i2s_td, i2s_tx,
7006881e91SRayyan Ansari                jtag, led0, led1, led2, led3, led4, led5, led6, led7,
7106881e91SRayyan Ansari                led8, led9, led10, led11, mdc, mdio, pcie, pmu,
7206881e91SRayyan Ansari                prng_rosc, qpic, rgmii, rmii, sdio, smart0, smart1,
7306881e91SRayyan Ansari                smart2, smart3, tm, wifi0, wifi1 ]
7406881e91SRayyan Ansari
7506881e91SRayyan Ansari    required:
7606881e91SRayyan Ansari      - pins
7706881e91SRayyan Ansari
7806881e91SRayyan Ansarirequired:
7906881e91SRayyan Ansari  - compatible
8006881e91SRayyan Ansari  - reg
8106881e91SRayyan Ansari
8206881e91SRayyan AnsariunevaluatedProperties: false
8306881e91SRayyan Ansari
8406881e91SRayyan Ansariexamples:
8506881e91SRayyan Ansari  - |
8606881e91SRayyan Ansari    #include <dt-bindings/interrupt-controller/arm-gic.h>
8706881e91SRayyan Ansari    tlmm: pinctrl@1000000 {
8806881e91SRayyan Ansari        compatible = "qcom,ipq4019-pinctrl";
8906881e91SRayyan Ansari        reg = <0x01000000 0x300000>;
9006881e91SRayyan Ansari
9106881e91SRayyan Ansari        gpio-controller;
9206881e91SRayyan Ansari        #gpio-cells = <2>;
9306881e91SRayyan Ansari        gpio-ranges = <&tlmm 0 0 100>;
9406881e91SRayyan Ansari        interrupt-controller;
9506881e91SRayyan Ansari        #interrupt-cells = <2>;
9606881e91SRayyan Ansari        interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
9706881e91SRayyan Ansari
9806881e91SRayyan Ansari        uart-state {
9906881e91SRayyan Ansari            pins = "gpio16", "gpio17";
10006881e91SRayyan Ansari            function = "blsp_uart0";
10106881e91SRayyan Ansari            bias-disable;
10206881e91SRayyan Ansari        };
10306881e91SRayyan Ansari    };
104