xref: /linux/Documentation/devicetree/bindings/pinctrl/qcom,ipq9574-tlmm.yaml (revision 5b63ccb69ee8ee5ddb58d8ce105b880905678bd5)
1*5b63ccb6SDevi Priya# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*5b63ccb6SDevi Priya%YAML 1.2
3*5b63ccb6SDevi Priya---
4*5b63ccb6SDevi Priya$id: http://devicetree.org/schemas/pinctrl/qcom,ipq9574-tlmm.yaml#
5*5b63ccb6SDevi Priya$schema: http://devicetree.org/meta-schemas/core.yaml#
6*5b63ccb6SDevi Priya
7*5b63ccb6SDevi Priyatitle: Qualcomm Technologies, Inc. IPQ9574 TLMM block
8*5b63ccb6SDevi Priya
9*5b63ccb6SDevi Priyamaintainers:
10*5b63ccb6SDevi Priya  - Bjorn Andersson <andersson@kernel.org>
11*5b63ccb6SDevi Priya  - Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
12*5b63ccb6SDevi Priya
13*5b63ccb6SDevi Priyadescription:
14*5b63ccb6SDevi Priya  Top Level Mode Multiplexer pin controller in Qualcomm IPQ9574 SoC.
15*5b63ccb6SDevi Priya
16*5b63ccb6SDevi Priyaproperties:
17*5b63ccb6SDevi Priya  compatible:
18*5b63ccb6SDevi Priya    const: qcom,ipq9574-tlmm
19*5b63ccb6SDevi Priya
20*5b63ccb6SDevi Priya  reg:
21*5b63ccb6SDevi Priya    maxItems: 1
22*5b63ccb6SDevi Priya
23*5b63ccb6SDevi Priya  interrupts:
24*5b63ccb6SDevi Priya    maxItems: 1
25*5b63ccb6SDevi Priya
26*5b63ccb6SDevi Priya  interrupt-controller: true
27*5b63ccb6SDevi Priya  "#interrupt-cells": true
28*5b63ccb6SDevi Priya  gpio-controller: true
29*5b63ccb6SDevi Priya  "#gpio-cells": true
30*5b63ccb6SDevi Priya  gpio-ranges: true
31*5b63ccb6SDevi Priya  wakeup-parent: true
32*5b63ccb6SDevi Priya
33*5b63ccb6SDevi Priya  gpio-reserved-ranges:
34*5b63ccb6SDevi Priya    minItems: 1
35*5b63ccb6SDevi Priya    maxItems: 33
36*5b63ccb6SDevi Priya
37*5b63ccb6SDevi Priya  gpio-line-names:
38*5b63ccb6SDevi Priya    maxItems: 65
39*5b63ccb6SDevi Priya
40*5b63ccb6SDevi PriyapatternProperties:
41*5b63ccb6SDevi Priya  "-state$":
42*5b63ccb6SDevi Priya    oneOf:
43*5b63ccb6SDevi Priya      - $ref: "#/$defs/qcom-ipq9574-tlmm-state"
44*5b63ccb6SDevi Priya      - patternProperties:
45*5b63ccb6SDevi Priya          "-pins$":
46*5b63ccb6SDevi Priya            $ref: "#/$defs/qcom-ipq9574-tlmm-state"
47*5b63ccb6SDevi Priya        additionalProperties: false
48*5b63ccb6SDevi Priya
49*5b63ccb6SDevi Priya$defs:
50*5b63ccb6SDevi Priya  qcom-ipq9574-tlmm-state:
51*5b63ccb6SDevi Priya    type: object
52*5b63ccb6SDevi Priya    description:
53*5b63ccb6SDevi Priya      Pinctrl node's client devices use subnodes for desired pin configuration.
54*5b63ccb6SDevi Priya      Client device subnodes use below standard properties.
55*5b63ccb6SDevi Priya    $ref: qcom,tlmm-common.yaml#/$defs/qcom-tlmm-state
56*5b63ccb6SDevi Priya
57*5b63ccb6SDevi Priya    properties:
58*5b63ccb6SDevi Priya      pins:
59*5b63ccb6SDevi Priya        description:
60*5b63ccb6SDevi Priya          List of gpio pins affected by the properties specified in this
61*5b63ccb6SDevi Priya          subnode.
62*5b63ccb6SDevi Priya        items:
63*5b63ccb6SDevi Priya          pattern: "^gpio([0-9]|[1-5][0-9]|6[0-4])$"
64*5b63ccb6SDevi Priya        minItems: 1
65*5b63ccb6SDevi Priya        maxItems: 8
66*5b63ccb6SDevi Priya
67*5b63ccb6SDevi Priya      function:
68*5b63ccb6SDevi Priya        description:
69*5b63ccb6SDevi Priya          Specify the alternative function to be configured for the specified
70*5b63ccb6SDevi Priya          pins.
71*5b63ccb6SDevi Priya
72*5b63ccb6SDevi Priya        enum: [ atest_char, atest_char0, atest_char1, atest_char2, atest_char3,
73*5b63ccb6SDevi Priya                audio_pdm0, audio_pdm1, audio_pri, audio_sec, blsp0_spi, blsp0_uart,
74*5b63ccb6SDevi Priya                blsp1_i2c, blsp1_spi, blsp1_uart, blsp2_i2c, blsp2_spi,
75*5b63ccb6SDevi Priya                blsp2_uart, blsp3_i2c, blsp3_spi, blsp3_uart, blsp4_i2c,
76*5b63ccb6SDevi Priya                blsp4_spi, blsp4_uart, blsp5_i2c, blsp5_uart, cri_trng0,
77*5b63ccb6SDevi Priya                cri_trng1, cri_trng3, cxc0, cxc1, dbg_out, dwc_ddrphy,
78*5b63ccb6SDevi Priya                gcc_plltest, gcc_tlmm, mac, mdc, mdio, pcie0_clk, pcie0_wake,
79*5b63ccb6SDevi Priya                pcie1_clk, pcie1_wake, pcie2_clk, pcie2_wake, pcie3_clk, pcie3_wake,
80*5b63ccb6SDevi Priya                prng_rosc0, prng_rosc1, prng_rosc2, prng_rosc3, pta, pwm,
81*5b63ccb6SDevi Priya                qdss_cti_trig_in_a0, qdss_cti_trig_in_a1, qdss_cti_trig_in_b0,
82*5b63ccb6SDevi Priya                qdss_cti_trig_in_b1, qdss_cti_trig_out_a0, qdss_cti_trig_out_a1,
83*5b63ccb6SDevi Priya                qdss_cti_trig_out_b0, qdss_cti_trig_out_b1, qdss_traceclk_a,
84*5b63ccb6SDevi Priya                qdss_traceclk_b, qdss_tracectl_a, qdss_tracectl_b, qdss_tracedata_a,
85*5b63ccb6SDevi Priya                qdss_tracedata_b, qdss_tracedata_b, qspi_clk, qspi_cs, qspi_data,
86*5b63ccb6SDevi Priya                rx0, rx1, sdc_clk, sdc_cmd, sdc_data, sdc_rclk, tsens_max,
87*5b63ccb6SDevi Priya                wci20, wci21, wsa_swrm ]
88*5b63ccb6SDevi Priya
89*5b63ccb6SDevi Priya      bias-pull-down: true
90*5b63ccb6SDevi Priya      bias-pull-up: true
91*5b63ccb6SDevi Priya      bias-disable: true
92*5b63ccb6SDevi Priya      drive-strength: true
93*5b63ccb6SDevi Priya      input-enable: true
94*5b63ccb6SDevi Priya      output-high: true
95*5b63ccb6SDevi Priya      output-low: true
96*5b63ccb6SDevi Priya
97*5b63ccb6SDevi Priya    required:
98*5b63ccb6SDevi Priya      - pins
99*5b63ccb6SDevi Priya
100*5b63ccb6SDevi Priya    additionalProperties: false
101*5b63ccb6SDevi Priya
102*5b63ccb6SDevi PriyaallOf:
103*5b63ccb6SDevi Priya  - $ref: /schemas/pinctrl/qcom,tlmm-common.yaml#
104*5b63ccb6SDevi Priya
105*5b63ccb6SDevi Priyarequired:
106*5b63ccb6SDevi Priya  - compatible
107*5b63ccb6SDevi Priya  - reg
108*5b63ccb6SDevi Priya
109*5b63ccb6SDevi PriyaadditionalProperties: false
110*5b63ccb6SDevi Priya
111*5b63ccb6SDevi Priyaexamples:
112*5b63ccb6SDevi Priya  - |
113*5b63ccb6SDevi Priya    #include <dt-bindings/interrupt-controller/arm-gic.h>
114*5b63ccb6SDevi Priya    tlmm: pinctrl@1000000 {
115*5b63ccb6SDevi Priya        compatible = "qcom,ipq9574-tlmm";
116*5b63ccb6SDevi Priya        reg = <0x01000000 0x300000>;
117*5b63ccb6SDevi Priya        interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
118*5b63ccb6SDevi Priya        gpio-controller;
119*5b63ccb6SDevi Priya        #gpio-cells = <2>;
120*5b63ccb6SDevi Priya        interrupt-controller;
121*5b63ccb6SDevi Priya        #interrupt-cells = <2>;
122*5b63ccb6SDevi Priya        gpio-ranges = <&tlmm 0 0 65>;
123*5b63ccb6SDevi Priya
124*5b63ccb6SDevi Priya        uart2-state {
125*5b63ccb6SDevi Priya            pins = "gpio34", "gpio35";
126*5b63ccb6SDevi Priya            function = "blsp2_uart";
127*5b63ccb6SDevi Priya            drive-strength = <8>;
128*5b63ccb6SDevi Priya            bias-pull-down;
129*5b63ccb6SDevi Priya        };
130*5b63ccb6SDevi Priya    };
131