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

title: Qualcomm Technologies, Inc. SC8180X TLMM block

maintainers:
  - Bjorn Andersson <bjorn.andersson@linaro.org>

description: |
  This binding describes the Top Level Mode Multiplexer block found in the
  SC8180X platform.

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

properties:
  compatible:
    const: qcom,sc8180x-tlmm

  reg:
    maxItems: 3

  reg-names:
    items:
      - const: "west"
      - const: "east"
      - const: "south"

  interrupts: true
  interrupt-controller: true
  '#interrupt-cells': true
  gpio-controller: true
  gpio-reserved-ranges: true
  '#gpio-cells': true
  gpio-ranges: true
  wakeup-parent: true

required:
  - compatible
  - reg
  - reg-names

additionalProperties: false

patternProperties:
  '-state$':
    oneOf:
      - $ref: "#/$defs/qcom-sc8180x-tlmm-state"
      - patternProperties:
          ".*":
            $ref: "#/$defs/qcom-sc8180x-tlmm-state"

'$defs':
  qcom-sc8180x-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"

    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-8][0-9])$"
            - enum: [ sdc2_clk, sdc2_cmd, sdc2_data, ufs_reset ]
        minItems: 1
        maxItems: 16

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

        enum: [ adsp_ext, agera_pll, aoss_cti, atest_char, atest_tsens,
                atest_tsens2, atest_usb0, atest_usb1, atest_usb2, atest_usb3,
                atest_usb4, audio_ref, btfm_slimbus, cam_mclk, cci_async,
                cci_i2c, cci_timer0, cci_timer1, cci_timer2, cci_timer3,
                cci_timer4, cci_timer5, cci_timer6, cci_timer7, cci_timer8,
                cci_timer9, cri_trng, dbg_out, ddr_bist, ddr_pxi, debug_hot,
                dp_hot, edp_hot, edp_lcd, emac_phy, emac_pps, gcc_gp1, gcc_gp2,
                gcc_gp3, gcc_gp4, gcc_gp5, gpio, gps, grfc, hs1_mi2s, hs2_mi2s,
                hs3_mi2s, jitter_bist, lpass_slimbus, m_voc, mdp_vsync,
                mdp_vsync0, mdp_vsync1, mdp_vsync2, mdp_vsync3, mdp_vsync4,
                mdp_vsync5, mss_lte, nav_pps, pa_indicator, pci_e0, pci_e1,
                pci_e2, pci_e3, phase_flag, pll_bist, pll_bypassnl, pll_reset,
                pri_mi2s, pri_mi2s_ws, prng_rosc, qdss_cti, qdss_gpio, qlink,
                qspi0, qspi0_clk, qspi0_cs, qspi1, qspi1_clk, qspi1_cs,
                qua_mi2s, qup0, qup1, qup2, qup3, qup4, qup5, qup6, qup7, qup8,
                qup9, qup10, qup11, qup12, qup13, qup14, qup15, qup16, qup17,
                qup18, qup19, qup_l4, qup_l5, qup_l6, rgmii, sd_write, sdc4,
                sdc4_clk, sdc4_cmd, sec_mi2s, sp_cmu, spkr_i2s, ter_mi2s, tgu,
                tsense_pwm1, tsense_pwm2, tsif1, tsif2, uim1, uim2, uim_batt,
                usb0_phy, usb1_phy, usb2phy_ac, vfr_1, vsense_trigger,
                wlan1_adc, wlan2_adc, wmss_reset ]

      bias-disable: true
      bias-pull-down: true
      bias-pull-up: true
      drive-strength: true
      input-enable: true
      output-high: true
      output-low: true

    required:
      - pins
      - function

    additionalProperties: false

examples:
  - |
        #include <dt-bindings/interrupt-controller/arm-gic.h>
        pinctrl@3100000 {
                compatible = "qcom,sc8180x-tlmm";
                reg = <0x03100000 0x300000>,
                      <0x03500000 0x700000>,
                      <0x03d00000 0x300000>;
                reg-names = "west", "east", "south";
                interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
                gpio-controller;
                #gpio-cells = <2>;
                interrupt-controller;
                #interrupt-cells = <2>;
                gpio-ranges = <&tlmm 0 0 190>;

                gpio-wo-subnode-state {
                        pins = "gpio1";
                        function = "gpio";
                };

                uart-w-subnodes-state {
                        rx {
                                pins = "gpio4";
                                function = "qup6";
                                bias-pull-up;
                        };

                        tx {
                                pins = "gpio5";
                                function = "qup6";
                                bias-disable;
                        };
                };
        };
...
