xref: /linux/Documentation/devicetree/bindings/pinctrl/qcom,qcs615-tlmm.yaml (revision 2d32fba02e0e5b67fb3a4ea51dde80c0db83f1c1)
1*55c487eaSLijuan Gao# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*55c487eaSLijuan Gao%YAML 1.2
3*55c487eaSLijuan Gao---
4*55c487eaSLijuan Gao$id: http://devicetree.org/schemas/pinctrl/qcom,qcs615-tlmm.yaml#
5*55c487eaSLijuan Gao$schema: http://devicetree.org/meta-schemas/core.yaml#
6*55c487eaSLijuan Gao
7*55c487eaSLijuan Gaotitle: Qualcomm Technologies, Inc. QCS615 TLMM block
8*55c487eaSLijuan Gao
9*55c487eaSLijuan Gaomaintainers:
10*55c487eaSLijuan Gao  - Lijuan Gao <quic_lijuang@quicinc.com>
11*55c487eaSLijuan Gao
12*55c487eaSLijuan Gaodescription:
13*55c487eaSLijuan Gao  Top Level Mode Multiplexer pin controller in Qualcomm QCS615 SoC.
14*55c487eaSLijuan Gao
15*55c487eaSLijuan GaoallOf:
16*55c487eaSLijuan Gao  - $ref: /schemas/pinctrl/qcom,tlmm-common.yaml#
17*55c487eaSLijuan Gao
18*55c487eaSLijuan Gaoproperties:
19*55c487eaSLijuan Gao  compatible:
20*55c487eaSLijuan Gao    const: qcom,qcs615-tlmm
21*55c487eaSLijuan Gao
22*55c487eaSLijuan Gao  reg:
23*55c487eaSLijuan Gao    maxItems: 3
24*55c487eaSLijuan Gao
25*55c487eaSLijuan Gao  reg-names:
26*55c487eaSLijuan Gao    items:
27*55c487eaSLijuan Gao      - const: east
28*55c487eaSLijuan Gao      - const: west
29*55c487eaSLijuan Gao      - const: south
30*55c487eaSLijuan Gao
31*55c487eaSLijuan Gao  interrupts:
32*55c487eaSLijuan Gao    maxItems: 1
33*55c487eaSLijuan Gao
34*55c487eaSLijuan Gao  gpio-reserved-ranges:
35*55c487eaSLijuan Gao    minItems: 1
36*55c487eaSLijuan Gao    maxItems: 62
37*55c487eaSLijuan Gao
38*55c487eaSLijuan Gao  gpio-line-names:
39*55c487eaSLijuan Gao    maxItems: 123
40*55c487eaSLijuan Gao
41*55c487eaSLijuan GaopatternProperties:
42*55c487eaSLijuan Gao  "-state$":
43*55c487eaSLijuan Gao    oneOf:
44*55c487eaSLijuan Gao      - $ref: "#/$defs/qcom-qcs615-tlmm-state"
45*55c487eaSLijuan Gao      - type: object
46*55c487eaSLijuan Gao        patternProperties:
47*55c487eaSLijuan Gao          "-pins$":
48*55c487eaSLijuan Gao            $ref: "#/$defs/qcom-qcs615-tlmm-state"
49*55c487eaSLijuan Gao        additionalProperties: false
50*55c487eaSLijuan Gao
51*55c487eaSLijuan Gao$defs:
52*55c487eaSLijuan Gao  qcom-qcs615-tlmm-state:
53*55c487eaSLijuan Gao    type: object
54*55c487eaSLijuan Gao    description:
55*55c487eaSLijuan Gao      Pinctrl node's client devices use subnodes for desired pin configuration.
56*55c487eaSLijuan Gao      Client device subnodes use below standard properties.
57*55c487eaSLijuan Gao    $ref: qcom,tlmm-common.yaml#/$defs/qcom-tlmm-state
58*55c487eaSLijuan Gao    unevaluatedProperties: false
59*55c487eaSLijuan Gao
60*55c487eaSLijuan Gao    properties:
61*55c487eaSLijuan Gao      pins:
62*55c487eaSLijuan Gao        description:
63*55c487eaSLijuan Gao          List of gpio pins affected by the properties specified in this
64*55c487eaSLijuan Gao          subnode.
65*55c487eaSLijuan Gao        items:
66*55c487eaSLijuan Gao          oneOf:
67*55c487eaSLijuan Gao            - pattern: "^gpio([0-9]|[1-9][0-9]|1[0-1][0-9]|12[0-2])$"
68*55c487eaSLijuan Gao            - enum: [ sdc1_clk, sdc1_cmd, sdc1_data, sdc1_rclk,
69*55c487eaSLijuan Gao                      sdc2_clk, sdc2_cmd, sdc2_data, ufs_reset ]
70*55c487eaSLijuan Gao        minItems: 1
71*55c487eaSLijuan Gao        maxItems: 36
72*55c487eaSLijuan Gao
73*55c487eaSLijuan Gao      function:
74*55c487eaSLijuan Gao        description:
75*55c487eaSLijuan Gao          Specify the alternative function to be configured for the specified
76*55c487eaSLijuan Gao          pins.
77*55c487eaSLijuan Gao        enum: [ gpio, adsp_ext, agera_pll, aoss_cti, atest_char, atest_tsens,
78*55c487eaSLijuan Gao                atest_usb, cam_mclk, cci_async, cci_i2c, cci_timer, copy_gp,
79*55c487eaSLijuan Gao                copy_phase, cri_trng, dbg_out_clk, ddr_bist, ddr_pxi, dp_hot,
80*55c487eaSLijuan Gao                edp_hot, edp_lcd, emac_gcc, emac_phy_intr, forced_usb, gcc_gp,
81*55c487eaSLijuan Gao                gp_pdm, gps_tx, hs0_mi2s, hs1_mi2s, jitter_bist, ldo_en,
82*55c487eaSLijuan Gao                ldo_update, m_voc, mclk1, mclk2, mdp_vsync, mdp_vsync0_out,
83*55c487eaSLijuan Gao                mdp_vsync1_out, mdp_vsync2_out, mdp_vsync3_out, mdp_vsync4_out,
84*55c487eaSLijuan Gao                mdp_vsync5_out, mi2s_1, mss_lte, nav_pps_in, nav_pps_out,
85*55c487eaSLijuan Gao                pa_indicator_or, pcie_clk_req, pcie_ep_rst, phase_flag, pll_bist,
86*55c487eaSLijuan Gao                pll_bypassnl, pll_reset_n, prng_rosc, qdss_cti, qdss_gpio,
87*55c487eaSLijuan Gao                qlink_enable, qlink_request, qspi, qup0, qup1, rgmii,
88*55c487eaSLijuan Gao                sd_write_protect, sp_cmu, ter_mi2s, tgu_ch, uim1, uim2, usb0_hs,
89*55c487eaSLijuan Gao                usb1_hs, usb_phy_ps, vfr_1, vsense_trigger_mirnat, wlan, wsa_clk,
90*55c487eaSLijuan Gao                wsa_data ]
91*55c487eaSLijuan Gao
92*55c487eaSLijuan Gao    required:
93*55c487eaSLijuan Gao      - pins
94*55c487eaSLijuan Gao
95*55c487eaSLijuan Gaorequired:
96*55c487eaSLijuan Gao  - compatible
97*55c487eaSLijuan Gao  - reg
98*55c487eaSLijuan Gao  - reg-names
99*55c487eaSLijuan Gao
100*55c487eaSLijuan GaounevaluatedProperties: false
101*55c487eaSLijuan Gao
102*55c487eaSLijuan Gaoexamples:
103*55c487eaSLijuan Gao  - |
104*55c487eaSLijuan Gao    #include <dt-bindings/interrupt-controller/arm-gic.h>
105*55c487eaSLijuan Gao
106*55c487eaSLijuan Gao    tlmm: pinctrl@3000000 {
107*55c487eaSLijuan Gao        compatible = "qcom,qcs615-tlmm";
108*55c487eaSLijuan Gao        reg = <0x03100000 0x300000>,
109*55c487eaSLijuan Gao              <0x03500000 0x300000>,
110*55c487eaSLijuan Gao              <0x03c00000 0x300000>;
111*55c487eaSLijuan Gao        reg-names = "east", "west", "south";
112*55c487eaSLijuan Gao        interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
113*55c487eaSLijuan Gao        gpio-ranges = <&tlmm 0 0 123>;
114*55c487eaSLijuan Gao        gpio-controller;
115*55c487eaSLijuan Gao        #gpio-cells = <2>;
116*55c487eaSLijuan Gao        interrupt-controller;
117*55c487eaSLijuan Gao        #interrupt-cells = <2>;
118*55c487eaSLijuan Gao
119*55c487eaSLijuan Gao        qup3-uart2-state {
120*55c487eaSLijuan Gao            pins ="gpio16", "gpio17";
121*55c487eaSLijuan Gao            function = "qup0";
122*55c487eaSLijuan Gao        };
123*55c487eaSLijuan Gao    };
124*55c487eaSLijuan Gao...
125