# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/pinctrl/qcom,msm8916-pinctrl.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Qualcomm MSM8916 TLMM pin controller

maintainers:
  - Bjorn Andersson <andersson@kernel.org>
  - Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>

description:
  Top Level Mode Multiplexer pin controller in Qualcomm MSM8916 SoC.

properties:
  compatible:
    const: qcom,msm8916-pinctrl

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

  gpio-reserved-ranges:
    minItems: 1
    maxItems: 61

  gpio-line-names:
    maxItems: 122

patternProperties:
  "-state$":
    oneOf:
      - $ref: "#/$defs/qcom-msm8916-tlmm-state"
      - patternProperties:
          "-pins$":
            $ref: "#/$defs/qcom-msm8916-tlmm-state"
        additionalProperties: false

$defs:
  qcom-msm8916-tlmm-state:
    type: object
    description:
      Pinctrl node's client devices use subnodes for desired pin configuration.
      Client device subnodes use below standard properties.
    $ref: qcom,tlmm-common.yaml#/$defs/qcom-tlmm-state
    unevaluatedProperties: false

    properties:
      pins:
        description:
          List of gpio pins affected by the properties specified in this
          subnode.
        items:
          oneOf:
            - pattern: "^gpio([0-9]|[1-9][0-9]|1[0-1][0-9]|12[01])$"
            - enum: [ qdsd_clk, qdsd_cmd, qdsd_data0, qdsd_data1, qdsd_data2,
                      qdsd_data3, sdc1_clk, sdc1_cmd, sdc1_data, sdc2_clk,
                      sdc2_cmd, sdc2_data ]
        minItems: 1
        maxItems: 36

      function:
        description:
          Specify the alternative function to be configured for the specified
          pins.

        enum: [ gpio, adsp_ext, alsp_int, atest_bbrx0, atest_bbrx1, atest_char,
                atest_char0, atest_char1, atest_char2, atest_char3,
                atest_combodac, atest_gpsadc0, atest_gpsadc1, atest_tsens,
                atest_wlan0, atest_wlan1, backlight_en, bimc_dte0, bimc_dte1,
                blsp_i2c1, blsp_i2c2, blsp_i2c3, blsp_i2c4, blsp_i2c5,
                blsp_i2c6, blsp_spi1, blsp_spi1_cs1, blsp_spi1_cs2,
                blsp_spi1_cs3, blsp_spi2, blsp_spi2_cs1, blsp_spi2_cs2,
                blsp_spi2_cs3, blsp_spi3, blsp_spi3_cs1, blsp_spi3_cs2,
                blsp_spi3_cs3, blsp_spi4, blsp_spi5, blsp_spi6, blsp_uart1,
                blsp_uart2, blsp_uim1, blsp_uim2, cam1_rst, cam1_standby,
                cam_mclk0, cam_mclk1, cci_async, cci_i2c, cci_timer0,
                cci_timer1, cci_timer2, cdc_pdm0, codec_mad, dbg_out,
                display_5v, dmic0_clk, dmic0_data, dsi_rst, ebi0_wrcdc,
                euro_us, ext_lpass, flash_strobe, gcc_gp1_clk_a, gcc_gp1_clk_b,
                gcc_gp2_clk_a, gcc_gp2_clk_b, gcc_gp3_clk_a, gcc_gp3_clk_b,
                gsm0_tx0, gsm0_tx1, gsm1_tx0, gsm1_tx1, gyro_accl, kpsns0,
                kpsns1, kpsns2, ldo_en, ldo_update, mag_int, mdp_vsync,
                modem_tsync, m_voc, nav_pps, nav_tsync, pa_indicator, pbs0,
                pbs1, pbs2, pri_mi2s, pri_mi2s_ws, prng_rosc,
                pwr_crypto_enabled_a, pwr_crypto_enabled_b,
                pwr_modem_enabled_a, pwr_modem_enabled_b, pwr_nav_enabled_a,
                pwr_nav_enabled_b, qdss_ctitrig_in_a0, qdss_ctitrig_in_a1,
                qdss_ctitrig_in_b0, qdss_ctitrig_in_b1, qdss_ctitrig_out_a0,
                qdss_ctitrig_out_a1, qdss_ctitrig_out_b0, qdss_ctitrig_out_b1,
                qdss_traceclk_a, qdss_traceclk_b, qdss_tracectl_a,
                qdss_tracectl_b, qdss_tracedata_a, qdss_tracedata_b, reset_n,
                sd_card, sd_write, sec_mi2s, smb_int, ssbi_wtr0, ssbi_wtr1,
                uim1, uim2, uim3, uim_batt, wcss_bt, wcss_fm, wcss_wlan,
                webcam1_rst ]

    required:
      - pins

allOf:
  - $ref: /schemas/pinctrl/qcom,tlmm-common.yaml#

required:
  - compatible
  - reg

unevaluatedProperties: false

examples:
  - |
    #include <dt-bindings/interrupt-controller/arm-gic.h>

    msmgpio: pinctrl@1000000 {
        compatible = "qcom,msm8916-pinctrl";
        reg = <0x01000000 0x300000>;
        interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
        gpio-controller;
        gpio-ranges = <&msmgpio 0 0 122>;
        #gpio-cells = <2>;
        interrupt-controller;
        #interrupt-cells = <2>;

        blsp1-uart2-sleep-state {
            pins = "gpio4", "gpio5";
            function = "gpio";

            drive-strength = <2>;
            bias-pull-down;
        };

        spi1-default-state {
            spi-pins {
                pins = "gpio0", "gpio1", "gpio3";
                function = "blsp_spi1";

                drive-strength = <12>;
                bias-disable;
            };

            cs-pins {
                pins = "gpio2";
                function = "gpio";

                drive-strength = <16>;
                bias-disable;
                output-high;
            };
        };
    };
