xref: /linux/Documentation/devicetree/bindings/pinctrl/qcom,milos-tlmm.yaml (revision 186f3edfdd41f2ae87fc40a9ccba52a3bf930994)
1*fd7dac34SLuca Weiss# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*fd7dac34SLuca Weiss%YAML 1.2
3*fd7dac34SLuca Weiss---
4*fd7dac34SLuca Weiss$id: http://devicetree.org/schemas/pinctrl/qcom,milos-tlmm.yaml#
5*fd7dac34SLuca Weiss$schema: http://devicetree.org/meta-schemas/core.yaml#
6*fd7dac34SLuca Weiss
7*fd7dac34SLuca Weisstitle: Qualcomm Technologies, Inc. Milos TLMM block
8*fd7dac34SLuca Weiss
9*fd7dac34SLuca Weissmaintainers:
10*fd7dac34SLuca Weiss  - Luca Weiss <luca.weiss@fairphone.com>
11*fd7dac34SLuca Weiss
12*fd7dac34SLuca Weissdescription:
13*fd7dac34SLuca Weiss  Top Level Mode Multiplexer pin controller in Qualcomm Milos SoC.
14*fd7dac34SLuca Weiss
15*fd7dac34SLuca WeissallOf:
16*fd7dac34SLuca Weiss  - $ref: /schemas/pinctrl/qcom,tlmm-common.yaml#
17*fd7dac34SLuca Weiss
18*fd7dac34SLuca Weissproperties:
19*fd7dac34SLuca Weiss  compatible:
20*fd7dac34SLuca Weiss    const: qcom,milos-tlmm
21*fd7dac34SLuca Weiss
22*fd7dac34SLuca Weiss  reg:
23*fd7dac34SLuca Weiss    maxItems: 1
24*fd7dac34SLuca Weiss
25*fd7dac34SLuca Weiss  interrupts:
26*fd7dac34SLuca Weiss    maxItems: 1
27*fd7dac34SLuca Weiss
28*fd7dac34SLuca Weiss  gpio-reserved-ranges:
29*fd7dac34SLuca Weiss    minItems: 1
30*fd7dac34SLuca Weiss    maxItems: 84
31*fd7dac34SLuca Weiss
32*fd7dac34SLuca Weiss  gpio-line-names:
33*fd7dac34SLuca Weiss    maxItems: 167
34*fd7dac34SLuca Weiss
35*fd7dac34SLuca WeisspatternProperties:
36*fd7dac34SLuca Weiss  "-state$":
37*fd7dac34SLuca Weiss    oneOf:
38*fd7dac34SLuca Weiss      - $ref: "#/$defs/qcom-milos-tlmm-state"
39*fd7dac34SLuca Weiss      - patternProperties:
40*fd7dac34SLuca Weiss          "-pins$":
41*fd7dac34SLuca Weiss            $ref: "#/$defs/qcom-milos-tlmm-state"
42*fd7dac34SLuca Weiss        additionalProperties: false
43*fd7dac34SLuca Weiss
44*fd7dac34SLuca Weiss$defs:
45*fd7dac34SLuca Weiss  qcom-milos-tlmm-state:
46*fd7dac34SLuca Weiss    type: object
47*fd7dac34SLuca Weiss    description:
48*fd7dac34SLuca Weiss      Pinctrl node's client devices use subnodes for desired pin configuration.
49*fd7dac34SLuca Weiss      Client device subnodes use below standard properties.
50*fd7dac34SLuca Weiss    $ref: qcom,tlmm-common.yaml#/$defs/qcom-tlmm-state
51*fd7dac34SLuca Weiss    unevaluatedProperties: false
52*fd7dac34SLuca Weiss
53*fd7dac34SLuca Weiss    properties:
54*fd7dac34SLuca Weiss      pins:
55*fd7dac34SLuca Weiss        description:
56*fd7dac34SLuca Weiss          List of gpio pins affected by the properties specified in this
57*fd7dac34SLuca Weiss          subnode.
58*fd7dac34SLuca Weiss        items:
59*fd7dac34SLuca Weiss          oneOf:
60*fd7dac34SLuca Weiss            - pattern: "^gpio([0-9]|[1-9][0-9]|1[0-5][0-9]|16[0-7])$"
61*fd7dac34SLuca Weiss            - enum: [ ufs_reset, sdc2_clk, sdc2_cmd, sdc2_data ]
62*fd7dac34SLuca Weiss        minItems: 1
63*fd7dac34SLuca Weiss        maxItems: 36
64*fd7dac34SLuca Weiss
65*fd7dac34SLuca Weiss      function:
66*fd7dac34SLuca Weiss        description:
67*fd7dac34SLuca Weiss          Specify the alternative function to be configured for the specified
68*fd7dac34SLuca Weiss          pins.
69*fd7dac34SLuca Weiss        enum: [ gpio, aoss_cti, atest_char, atest_usb, audio_ext_mclk0,
70*fd7dac34SLuca Weiss                audio_ext_mclk1, audio_ref_clk, cam_mclk, cci_async_in0,
71*fd7dac34SLuca Weiss                cci_i2c_scl, cci_i2c_sda, cci_timer, coex_uart1_rx,
72*fd7dac34SLuca Weiss                coex_uart1_tx, dbg_out_clk, ddr_bist_complete, ddr_bist_fail,
73*fd7dac34SLuca Weiss                ddr_bist_start, ddr_bist_stop, ddr_pxi0, ddr_pxi1, dp0_hot,
74*fd7dac34SLuca Weiss                egpio, gcc_gp1, gcc_gp2, gcc_gp3, host2wlan_sol, i2s0_data0,
75*fd7dac34SLuca Weiss                i2s0_data1, i2s0_sck, i2s0_ws, ibi_i3c, jitter_bist, mdp_vsync,
76*fd7dac34SLuca Weiss                mdp_vsync0_out, mdp_vsync1_out, mdp_vsync2_out, mdp_vsync3_out,
77*fd7dac34SLuca Weiss                mdp_vsync_e, nav_gpio0, nav_gpio1, nav_gpio2, pcie0_clk_req_n,
78*fd7dac34SLuca Weiss                pcie1_clk_req_n, phase_flag, pll_bist_sync, pll_clk_aux,
79*fd7dac34SLuca Weiss                prng_rosc0, prng_rosc1, prng_rosc2, prng_rosc3, qdss_cti,
80*fd7dac34SLuca Weiss                qdss_gpio, qlink0_enable, qlink0_request, qlink0_wmss,
81*fd7dac34SLuca Weiss                qlink1_enable, qlink1_request, qlink1_wmss, qspi0, qup0_se0,
82*fd7dac34SLuca Weiss                qup0_se1, qup0_se2, qup0_se3, qup0_se4, qup0_se5, qup0_se6,
83*fd7dac34SLuca Weiss                qup1_se0, qup1_se1, qup1_se2, qup1_se3, qup1_se4, qup1_se5,
84*fd7dac34SLuca Weiss                qup1_se6, resout_gpio_n, sd_write_protect, sdc1_clk, sdc1_cmd,
85*fd7dac34SLuca Weiss                sdc1_data, sdc1_rclk, sdc2_clk, sdc2_cmd, sdc2_data,
86*fd7dac34SLuca Weiss                sdc2_fb_clk, tb_trig_sdc1, tb_trig_sdc2, tgu_ch0_trigout,
87*fd7dac34SLuca Weiss                tgu_ch1_trigout, tmess_prng0, tmess_prng1, tmess_prng2,
88*fd7dac34SLuca Weiss                tmess_prng3, tsense_pwm1, tsense_pwm2, uim0_clk, uim0_data,
89*fd7dac34SLuca Weiss                uim0_present, uim0_reset, uim1_clk_mira, uim1_clk_mirb,
90*fd7dac34SLuca Weiss                uim1_data_mira, uim1_data_mirb, uim1_present_mira,
91*fd7dac34SLuca Weiss                uim1_present_mirb, uim1_reset_mira, uim1_reset_mirb, usb0_hs,
92*fd7dac34SLuca Weiss                usb0_phy_ps, vfr_0, vfr_1, vsense_trigger_mirnat, wcn_sw,
93*fd7dac34SLuca Weiss                wcn_sw_ctrl ]
94*fd7dac34SLuca Weiss
95*fd7dac34SLuca Weiss    required:
96*fd7dac34SLuca Weiss      - pins
97*fd7dac34SLuca Weiss
98*fd7dac34SLuca Weissrequired:
99*fd7dac34SLuca Weiss  - compatible
100*fd7dac34SLuca Weiss  - reg
101*fd7dac34SLuca Weiss
102*fd7dac34SLuca WeissunevaluatedProperties: false
103*fd7dac34SLuca Weiss
104*fd7dac34SLuca Weissexamples:
105*fd7dac34SLuca Weiss  - |
106*fd7dac34SLuca Weiss    #include <dt-bindings/interrupt-controller/arm-gic.h>
107*fd7dac34SLuca Weiss    tlmm: pinctrl@f100000 {
108*fd7dac34SLuca Weiss        compatible = "qcom,milos-tlmm";
109*fd7dac34SLuca Weiss        reg = <0x0f100000 0x300000>;
110*fd7dac34SLuca Weiss
111*fd7dac34SLuca Weiss        interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
112*fd7dac34SLuca Weiss
113*fd7dac34SLuca Weiss        gpio-controller;
114*fd7dac34SLuca Weiss        #gpio-cells = <2>;
115*fd7dac34SLuca Weiss
116*fd7dac34SLuca Weiss        interrupt-controller;
117*fd7dac34SLuca Weiss        #interrupt-cells = <2>;
118*fd7dac34SLuca Weiss
119*fd7dac34SLuca Weiss        gpio-ranges = <&tlmm 0 0 168>;
120*fd7dac34SLuca Weiss
121*fd7dac34SLuca Weiss        gpio-wo-state {
122*fd7dac34SLuca Weiss            pins = "gpio1";
123*fd7dac34SLuca Weiss            function = "gpio";
124*fd7dac34SLuca Weiss        };
125*fd7dac34SLuca Weiss
126*fd7dac34SLuca Weiss        qup-uart5-default-state {
127*fd7dac34SLuca Weiss            pins = "gpio25", "gpio26";
128*fd7dac34SLuca Weiss            function = "qup0_se5";
129*fd7dac34SLuca Weiss            drive-strength = <2>;
130*fd7dac34SLuca Weiss            bias-disable;
131*fd7dac34SLuca Weiss        };
132*fd7dac34SLuca Weiss    };
133*fd7dac34SLuca Weiss...
134