xref: /freebsd/sys/contrib/device-tree/Bindings/pinctrl/qcom,msm8917-pinctrl.yaml (revision 2846c90520eb4cc74e24d586a0ea0f4a0006bc73)
1*2846c905SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*2846c905SEmmanuel Vadot%YAML 1.2
3*2846c905SEmmanuel Vadot---
4*2846c905SEmmanuel Vadot$id: http://devicetree.org/schemas/pinctrl/qcom,msm8917-pinctrl.yaml#
5*2846c905SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6*2846c905SEmmanuel Vadot
7*2846c905SEmmanuel Vadottitle: Qualcomm MSM8917 TLMM pin controller
8*2846c905SEmmanuel Vadot
9*2846c905SEmmanuel Vadotmaintainers:
10*2846c905SEmmanuel Vadot  - Barnabas Czeman <barnabas.czeman@mainlining.org>
11*2846c905SEmmanuel Vadot
12*2846c905SEmmanuel Vadotdescription:
13*2846c905SEmmanuel Vadot  Top Level Mode Multiplexer pin controller in Qualcomm MSM8917 SoC.
14*2846c905SEmmanuel Vadot
15*2846c905SEmmanuel Vadotproperties:
16*2846c905SEmmanuel Vadot  compatible:
17*2846c905SEmmanuel Vadot    const: qcom,msm8917-pinctrl
18*2846c905SEmmanuel Vadot
19*2846c905SEmmanuel Vadot  reg:
20*2846c905SEmmanuel Vadot    maxItems: 1
21*2846c905SEmmanuel Vadot
22*2846c905SEmmanuel Vadot  interrupts:
23*2846c905SEmmanuel Vadot    maxItems: 1
24*2846c905SEmmanuel Vadot
25*2846c905SEmmanuel Vadot  gpio-reserved-ranges:
26*2846c905SEmmanuel Vadot    minItems: 1
27*2846c905SEmmanuel Vadot    maxItems: 66
28*2846c905SEmmanuel Vadot
29*2846c905SEmmanuel Vadot  gpio-line-names:
30*2846c905SEmmanuel Vadot    maxItems: 134
31*2846c905SEmmanuel Vadot
32*2846c905SEmmanuel VadotpatternProperties:
33*2846c905SEmmanuel Vadot  "-state$":
34*2846c905SEmmanuel Vadot    oneOf:
35*2846c905SEmmanuel Vadot      - $ref: "#/$defs/qcom-msm8917-tlmm-state"
36*2846c905SEmmanuel Vadot      - patternProperties:
37*2846c905SEmmanuel Vadot          "-pins$":
38*2846c905SEmmanuel Vadot            $ref: "#/$defs/qcom-msm8917-tlmm-state"
39*2846c905SEmmanuel Vadot        additionalProperties: false
40*2846c905SEmmanuel Vadot
41*2846c905SEmmanuel Vadot$defs:
42*2846c905SEmmanuel Vadot  qcom-msm8917-tlmm-state:
43*2846c905SEmmanuel Vadot    type: object
44*2846c905SEmmanuel Vadot    description:
45*2846c905SEmmanuel Vadot      Pinctrl node's client devices use subnodes for desired pin configuration.
46*2846c905SEmmanuel Vadot      Client device subnodes use below standard properties.
47*2846c905SEmmanuel Vadot    $ref: qcom,tlmm-common.yaml#/$defs/qcom-tlmm-state
48*2846c905SEmmanuel Vadot    unevaluatedProperties: false
49*2846c905SEmmanuel Vadot
50*2846c905SEmmanuel Vadot    properties:
51*2846c905SEmmanuel Vadot      pins:
52*2846c905SEmmanuel Vadot        description:
53*2846c905SEmmanuel Vadot          List of gpio pins affected by the properties specified in this
54*2846c905SEmmanuel Vadot          subnode.
55*2846c905SEmmanuel Vadot        items:
56*2846c905SEmmanuel Vadot          oneOf:
57*2846c905SEmmanuel Vadot            - pattern: "^gpio([0-9]|[1-9][0-9]|1[0-2][0-9]|13[0-3])$"
58*2846c905SEmmanuel Vadot            - enum: [ sdc1_clk, sdc1_cmd, sdc1_data, sdc1_rclk, sdc2_clk,
59*2846c905SEmmanuel Vadot                      sdc2_cmd, sdc2_data, qdsd_clk, qdsd_cmd, qdsd_data0,
60*2846c905SEmmanuel Vadot                      qdsd_data1, qdsd_data2, qdsd_data3 ]
61*2846c905SEmmanuel Vadot        minItems: 1
62*2846c905SEmmanuel Vadot        maxItems: 16
63*2846c905SEmmanuel Vadot
64*2846c905SEmmanuel Vadot      function:
65*2846c905SEmmanuel Vadot        description:
66*2846c905SEmmanuel Vadot          Specify the alternative function to be configured for the specified
67*2846c905SEmmanuel Vadot          pins.
68*2846c905SEmmanuel Vadot
69*2846c905SEmmanuel Vadot        enum: [ accel_int, adsp_ext, alsp_int, atest_bbrx0, atest_bbrx1,
70*2846c905SEmmanuel Vadot                atest_char, atest_char0, atest_char1, atest_char2,
71*2846c905SEmmanuel Vadot                atest_char3, atest_combodac_to_gpio_native,
72*2846c905SEmmanuel Vadot                atest_gpsadc_dtest0_native, atest_gpsadc_dtest1_native,
73*2846c905SEmmanuel Vadot                atest_tsens, atest_wlan0, atest_wlan1, audio_ref,
74*2846c905SEmmanuel Vadot                audio_reset, bimc_dte0, bimc_dte1, blsp6_spi, blsp8_spi,
75*2846c905SEmmanuel Vadot                blsp_i2c1, blsp_i2c2, blsp_i2c3, blsp_i2c4, blsp_i2c5,
76*2846c905SEmmanuel Vadot                blsp_i2c6, blsp_i2c7, blsp_i2c8, blsp_spi1, blsp_spi2,
77*2846c905SEmmanuel Vadot                blsp_spi3, blsp_spi4, blsp_spi5, blsp_spi6, blsp_spi7,
78*2846c905SEmmanuel Vadot                blsp_spi8, blsp_uart1, blsp_uart2, blsp_uart3, blsp_uart4,
79*2846c905SEmmanuel Vadot                blsp_uart5, blsp_uart6, blsp_uart7, blsp_uart8, cam0_ldo,
80*2846c905SEmmanuel Vadot                cam1_rst, cam1_standby, cam2_rst, cam2_standby, cam_mclk,
81*2846c905SEmmanuel Vadot                cci_async, cci_i2c, cci_timer0, cci_timer1, cdc_pdm0,
82*2846c905SEmmanuel Vadot                codec_int1, codec_int2, codec_mad, coex_uart, cri_trng,
83*2846c905SEmmanuel Vadot                cri_trng0, cri_trng1, dbg_out, dmic0_clk, dmic0_data,
84*2846c905SEmmanuel Vadot                ebi_cdc, ebi_ch0, ext_lpass, forced_usb, fp_gpio, fp_int,
85*2846c905SEmmanuel Vadot                gcc_gp1_clk_a, gcc_gp1_clk_b, gcc_gp2_clk_a, gcc_gp2_clk_b,
86*2846c905SEmmanuel Vadot                gcc_gp3_clk_a, gcc_gp3_clk_b, gcc_plltest, gcc_tlmm, gpio,
87*2846c905SEmmanuel Vadot                gsm0_tx, key_focus, key_snapshot, key_volp, ldo_en,
88*2846c905SEmmanuel Vadot                ldo_update, lpass_slimbus, lpass_slimbus0, lpass_slimbus1,
89*2846c905SEmmanuel Vadot                m_voc, mag_int, mdp_vsync, mipi_dsi0, modem_tsync, nav_pps,
90*2846c905SEmmanuel Vadot                nav_pps_in_a, nav_pps_in_b, nav_tsync, nfc_pwr, ov_ldo,
91*2846c905SEmmanuel Vadot                pa_indicator, pbs0, pbs1, pbs2, pri_mi2s, pri_mi2s_mclk_a,
92*2846c905SEmmanuel Vadot                pri_mi2s_mclk_b, pri_mi2s_ws, prng_rosc,
93*2846c905SEmmanuel Vadot                pwr_crypto_enabled_a, pwr_crypto_enabled_b,
94*2846c905SEmmanuel Vadot                pwr_modem_enabled_a, pwr_modem_enabled_b, pwr_nav_enabled_a,
95*2846c905SEmmanuel Vadot                pwr_nav_enabled_b, qdss_cti_trig_in_a0, qdss_cti_trig_in_a1,
96*2846c905SEmmanuel Vadot                qdss_cti_trig_in_b0, qdss_cti_trig_in_b1,
97*2846c905SEmmanuel Vadot                qdss_cti_trig_out_a0, qdss_cti_trig_out_a1,
98*2846c905SEmmanuel Vadot                qdss_cti_trig_out_b0, qdss_cti_trig_out_b1, qdss_traceclk_a,
99*2846c905SEmmanuel Vadot                qdss_traceclk_b, qdss_tracectl_a, qdss_tracectl_b,
100*2846c905SEmmanuel Vadot                qdss_tracedata_a, qdss_tracedata_b, sd_write, sdcard_det,
101*2846c905SEmmanuel Vadot                sec_mi2s, sec_mi2s_mclk_a, sec_mi2s_mclk_b, sensor_rst,
102*2846c905SEmmanuel Vadot                smb_int, ssbi_wtr1, ts_resout, ts_sample, uim1_clk,
103*2846c905SEmmanuel Vadot                uim1_data, uim1_present, uim1_reset, uim2_clk, uim2_data,
104*2846c905SEmmanuel Vadot                uim2_present, uim2_reset, uim_batt, us_emitter, us_euro,
105*2846c905SEmmanuel Vadot                wcss_bt, wcss_fm, wcss_wlan, wcss_wlan0, wcss_wlan1,
106*2846c905SEmmanuel Vadot                wcss_wlan2, webcam_rst, webcam_standby, wsa_io, wsa_irq ]
107*2846c905SEmmanuel Vadot
108*2846c905SEmmanuel Vadot    required:
109*2846c905SEmmanuel Vadot      - pins
110*2846c905SEmmanuel Vadot
111*2846c905SEmmanuel VadotallOf:
112*2846c905SEmmanuel Vadot  - $ref: /schemas/pinctrl/qcom,tlmm-common.yaml#
113*2846c905SEmmanuel Vadot
114*2846c905SEmmanuel Vadotrequired:
115*2846c905SEmmanuel Vadot  - compatible
116*2846c905SEmmanuel Vadot  - reg
117*2846c905SEmmanuel Vadot
118*2846c905SEmmanuel VadotunevaluatedProperties: false
119*2846c905SEmmanuel Vadot
120*2846c905SEmmanuel Vadotexamples:
121*2846c905SEmmanuel Vadot  - |
122*2846c905SEmmanuel Vadot    #include <dt-bindings/interrupt-controller/arm-gic.h>
123*2846c905SEmmanuel Vadot
124*2846c905SEmmanuel Vadot    tlmm: pinctrl@1000000 {
125*2846c905SEmmanuel Vadot        compatible = "qcom,msm8917-pinctrl";
126*2846c905SEmmanuel Vadot        reg = <0x01000000 0x300000>;
127*2846c905SEmmanuel Vadot        interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
128*2846c905SEmmanuel Vadot        gpio-controller;
129*2846c905SEmmanuel Vadot        gpio-ranges = <&tlmm 0 0 134>;
130*2846c905SEmmanuel Vadot        #gpio-cells = <2>;
131*2846c905SEmmanuel Vadot        interrupt-controller;
132*2846c905SEmmanuel Vadot        #interrupt-cells = <2>;
133*2846c905SEmmanuel Vadot
134*2846c905SEmmanuel Vadot        blsp1-uart2-sleep-state {
135*2846c905SEmmanuel Vadot            pins = "gpio4", "gpio5";
136*2846c905SEmmanuel Vadot            function = "gpio";
137*2846c905SEmmanuel Vadot
138*2846c905SEmmanuel Vadot            drive-strength = <2>;
139*2846c905SEmmanuel Vadot            bias-pull-down;
140*2846c905SEmmanuel Vadot        };
141*2846c905SEmmanuel Vadot
142*2846c905SEmmanuel Vadot        spi1-default-state {
143*2846c905SEmmanuel Vadot            spi-pins {
144*2846c905SEmmanuel Vadot                pins = "gpio0", "gpio1", "gpio3";
145*2846c905SEmmanuel Vadot                function = "blsp_spi1";
146*2846c905SEmmanuel Vadot
147*2846c905SEmmanuel Vadot                drive-strength = <12>;
148*2846c905SEmmanuel Vadot                bias-disable;
149*2846c905SEmmanuel Vadot            };
150*2846c905SEmmanuel Vadot
151*2846c905SEmmanuel Vadot            cs-pins {
152*2846c905SEmmanuel Vadot                pins = "gpio2";
153*2846c905SEmmanuel Vadot                function = "gpio";
154*2846c905SEmmanuel Vadot
155*2846c905SEmmanuel Vadot                drive-strength = <16>;
156*2846c905SEmmanuel Vadot                bias-disable;
157*2846c905SEmmanuel Vadot                output-high;
158*2846c905SEmmanuel Vadot            };
159*2846c905SEmmanuel Vadot        };
160*2846c905SEmmanuel Vadot    };
161