xref: /freebsd/sys/contrib/device-tree/Bindings/pinctrl/qcom,sm7150-tlmm.yaml (revision 8d13bc63c0e1d50bc9e47ac1f26329c999bfecf0)
1fac71e4eSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2fac71e4eSEmmanuel Vadot%YAML 1.2
3fac71e4eSEmmanuel Vadot---
4fac71e4eSEmmanuel Vadot$id: http://devicetree.org/schemas/pinctrl/qcom,sm7150-tlmm.yaml#
5fac71e4eSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6fac71e4eSEmmanuel Vadot
7fac71e4eSEmmanuel Vadottitle: Qualcomm SM7150 TLMM pin controller
8fac71e4eSEmmanuel Vadot
9fac71e4eSEmmanuel Vadotmaintainers:
10fac71e4eSEmmanuel Vadot  - Bjorn Andersson <andersson@kernel.org>
11fac71e4eSEmmanuel Vadot  - Danila Tikhonov <danila@jiaxyga.com>
12fac71e4eSEmmanuel Vadot
13fac71e4eSEmmanuel Vadotdescription:
14fac71e4eSEmmanuel Vadot  Top Level Mode Multiplexer pin controller in Qualcomm SM7150 SoC.
15fac71e4eSEmmanuel Vadot
16fac71e4eSEmmanuel VadotallOf:
17fac71e4eSEmmanuel Vadot  - $ref: /schemas/pinctrl/qcom,tlmm-common.yaml#
18fac71e4eSEmmanuel Vadot
19fac71e4eSEmmanuel Vadotproperties:
20fac71e4eSEmmanuel Vadot  compatible:
21fac71e4eSEmmanuel Vadot    const: qcom,sm7150-tlmm
22fac71e4eSEmmanuel Vadot
23fac71e4eSEmmanuel Vadot  reg:
24fac71e4eSEmmanuel Vadot    maxItems: 3
25fac71e4eSEmmanuel Vadot
26fac71e4eSEmmanuel Vadot  reg-names:
27fac71e4eSEmmanuel Vadot    items:
28fac71e4eSEmmanuel Vadot      - const: west
29fac71e4eSEmmanuel Vadot      - const: north
30fac71e4eSEmmanuel Vadot      - const: south
31fac71e4eSEmmanuel Vadot
32fac71e4eSEmmanuel Vadot  interrupts:
33fac71e4eSEmmanuel Vadot    maxItems: 1
34fac71e4eSEmmanuel Vadot
35fac71e4eSEmmanuel Vadot  gpio-reserved-ranges:
36fac71e4eSEmmanuel Vadot    minItems: 1
37fac71e4eSEmmanuel Vadot    maxItems: 60
38fac71e4eSEmmanuel Vadot
39fac71e4eSEmmanuel Vadot  gpio-line-names:
40fac71e4eSEmmanuel Vadot    maxItems: 119
41fac71e4eSEmmanuel Vadot
42fac71e4eSEmmanuel VadotpatternProperties:
43fac71e4eSEmmanuel Vadot  "-state$":
44fac71e4eSEmmanuel Vadot    oneOf:
45fac71e4eSEmmanuel Vadot      - $ref: "#/$defs/qcom-sm7150-tlmm-state"
46fac71e4eSEmmanuel Vadot      - patternProperties:
47fac71e4eSEmmanuel Vadot          "-pins$":
48fac71e4eSEmmanuel Vadot            $ref: "#/$defs/qcom-sm7150-tlmm-state"
49fac71e4eSEmmanuel Vadot        additionalProperties: false
50fac71e4eSEmmanuel Vadot
51fac71e4eSEmmanuel Vadot$defs:
52fac71e4eSEmmanuel Vadot  qcom-sm7150-tlmm-state:
53fac71e4eSEmmanuel Vadot    type: object
54fac71e4eSEmmanuel Vadot    description:
55fac71e4eSEmmanuel Vadot      Pinctrl node's client devices use subnodes for desired pin configuration.
56fac71e4eSEmmanuel Vadot      Client device subnodes use below standard properties.
57fac71e4eSEmmanuel Vadot    $ref: qcom,tlmm-common.yaml#/$defs/qcom-tlmm-state
58f126890aSEmmanuel Vadot    unevaluatedProperties: false
59fac71e4eSEmmanuel Vadot
60fac71e4eSEmmanuel Vadot    properties:
61fac71e4eSEmmanuel Vadot      pins:
62fac71e4eSEmmanuel Vadot        description:
63fac71e4eSEmmanuel Vadot          List of gpio pins affected by the properties specified in this
64fac71e4eSEmmanuel Vadot          subnode.
65fac71e4eSEmmanuel Vadot        items:
66fac71e4eSEmmanuel Vadot          oneOf:
67fac71e4eSEmmanuel Vadot            - pattern: "^gpio([0-9]|[1-9][0-9]|10[0-9]|11[0-8])$"
68fac71e4eSEmmanuel Vadot            - enum: [ sdc1_rclk, sdc1_clk, sdc1_cmd, sdc1_data, sdc2_clk,
69fac71e4eSEmmanuel Vadot                      sdc2_cmd, sdc2_data, ufs_reset ]
70fac71e4eSEmmanuel Vadot        minItems: 1
71fac71e4eSEmmanuel Vadot        maxItems: 36
72fac71e4eSEmmanuel Vadot
73fac71e4eSEmmanuel Vadot      function:
74fac71e4eSEmmanuel Vadot        description:
75fac71e4eSEmmanuel Vadot          Specify the alternative function to be configured for the specified
76fac71e4eSEmmanuel Vadot          pins.
77fac71e4eSEmmanuel Vadot
78fac71e4eSEmmanuel Vadot        enum: [ gpio, adsp_ext, agera_pll, aoss_cti, atest_char, atest_tsens,
79fac71e4eSEmmanuel Vadot                atest_tsens2, atest_usb1, atest_usb2, cam_mclk, cci_async,
80fac71e4eSEmmanuel Vadot                cci_i2c, cci_timer0, cci_timer1, cci_timer2, cci_timer3,
81fac71e4eSEmmanuel Vadot                cci_timer4, dbg_out, ddr_bist, ddr_pxi0, ddr_pxi1, ddr_pxi2,
82fac71e4eSEmmanuel Vadot                ddr_pxi3, edp_hot, edp_lcd, gcc_gp1, gcc_gp2, gcc_gp3, gp_pdm0,
83fac71e4eSEmmanuel Vadot                gp_pdm1, gp_pdm2, gps_tx, jitter_bist, ldo_en, ldo_update,
84fac71e4eSEmmanuel Vadot                m_voc, mdp_vsync, mdp_vsync0, mdp_vsync1, mdp_vsync2,
85fac71e4eSEmmanuel Vadot                mdp_vsync3, mss_lte, nav_pps_in, nav_pps_out, pa_indicator,
86fac71e4eSEmmanuel Vadot                pci_e, phase_flag, pll_bist, pll_bypassnl, pll_reset, pri_mi2s,
87fac71e4eSEmmanuel Vadot                pri_mi2s_ws, prng_rosc, qdss, qdss_cti, qlink_enable,
88fac71e4eSEmmanuel Vadot                qlink_request, qua_mi2s, qup00, qup01, qup02, qup03, qup04,
89fac71e4eSEmmanuel Vadot                qup10, qup11, qup12, qup13, qup14, qup15, sd_write, sdc40,
90fac71e4eSEmmanuel Vadot                sdc41, sdc42, sdc43, sdc4_clk, sdc4_cmd, sec_mi2s, ter_mi2s,
91fac71e4eSEmmanuel Vadot                tgu_ch0, tgu_ch1, tgu_ch2, tgu_ch3, tsif1_clk, tsif1_data,
92fac71e4eSEmmanuel Vadot                tsif1_en, tsif1_error, tsif1_sync, tsif2_clk, tsif2_data,
93fac71e4eSEmmanuel Vadot                tsif2_en, tsif2_error, tsif2_sync, uim1_clk, uim1_data,
94fac71e4eSEmmanuel Vadot                uim1_present, uim1_reset, uim2_clk, uim2_data, uim2_present,
95fac71e4eSEmmanuel Vadot                uim2_reset, uim_batt, usb_phy, vfr_1, vsense_trigger,
96fac71e4eSEmmanuel Vadot                wlan1_adc0, wlan1_adc1, wlan2_adc0, wlan2_adc1, wsa_clk,
97fac71e4eSEmmanuel Vadot                wsa_data ]
98fac71e4eSEmmanuel Vadot
99fac71e4eSEmmanuel Vadot    required:
100fac71e4eSEmmanuel Vadot      - pins
101fac71e4eSEmmanuel Vadot
102fac71e4eSEmmanuel Vadotrequired:
103fac71e4eSEmmanuel Vadot  - compatible
104fac71e4eSEmmanuel Vadot  - reg
105fac71e4eSEmmanuel Vadot  - reg-names
106fac71e4eSEmmanuel Vadot
107*8d13bc63SEmmanuel VadotunevaluatedProperties: false
108fac71e4eSEmmanuel Vadot
109fac71e4eSEmmanuel Vadotexamples:
110fac71e4eSEmmanuel Vadot  - |
111fac71e4eSEmmanuel Vadot    #include <dt-bindings/interrupt-controller/arm-gic.h>
112fac71e4eSEmmanuel Vadot
113fac71e4eSEmmanuel Vadot    tlmm: pinctrl@3500000 {
114fac71e4eSEmmanuel Vadot        compatible = "qcom,sm7150-tlmm";
115fac71e4eSEmmanuel Vadot        reg = <0x03500000 0x300000>,
116fac71e4eSEmmanuel Vadot              <0x03900000 0x300000>,
117fac71e4eSEmmanuel Vadot              <0x03d00000 0x300000>;
118fac71e4eSEmmanuel Vadot        reg-names = "west", "north", "south";
119fac71e4eSEmmanuel Vadot        interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
120fac71e4eSEmmanuel Vadot        gpio-ranges = <&tlmm 0 0 120>;
121fac71e4eSEmmanuel Vadot        gpio-controller;
122fac71e4eSEmmanuel Vadot        #gpio-cells = <2>;
123fac71e4eSEmmanuel Vadot        interrupt-controller;
124fac71e4eSEmmanuel Vadot        #interrupt-cells = <2>;
125fac71e4eSEmmanuel Vadot        wakeup-parent = <&pdc>;
126fac71e4eSEmmanuel Vadot
127fac71e4eSEmmanuel Vadot        gpio-wo-state {
128fac71e4eSEmmanuel Vadot            pins = "gpio1";
129fac71e4eSEmmanuel Vadot            function = "gpio";
130fac71e4eSEmmanuel Vadot        };
131fac71e4eSEmmanuel Vadot
132fac71e4eSEmmanuel Vadot        uart-w-state {
133fac71e4eSEmmanuel Vadot            rx-pins {
134fac71e4eSEmmanuel Vadot                pins = "gpio44";
135fac71e4eSEmmanuel Vadot                function = "qup12";
136fac71e4eSEmmanuel Vadot                bias-pull-up;
137fac71e4eSEmmanuel Vadot            };
138fac71e4eSEmmanuel Vadot
139fac71e4eSEmmanuel Vadot            tx-pins {
140fac71e4eSEmmanuel Vadot                pins = "gpio45";
141fac71e4eSEmmanuel Vadot                function = "qup12";
142fac71e4eSEmmanuel Vadot                bias-disable;
143fac71e4eSEmmanuel Vadot            };
144fac71e4eSEmmanuel Vadot        };
145fac71e4eSEmmanuel Vadot    };
146fac71e4eSEmmanuel Vadot...
147