xref: /freebsd/sys/contrib/device-tree/Bindings/pinctrl/qcom,sm6125-pinctrl.yaml (revision 7ef62cebc2f965b0f640263e179276928885e33d)
15956d97fSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
25956d97fSEmmanuel Vadot%YAML 1.2
35956d97fSEmmanuel Vadot---
45956d97fSEmmanuel Vadot$id: http://devicetree.org/schemas/pinctrl/qcom,sm6125-pinctrl.yaml#
55956d97fSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
65956d97fSEmmanuel Vadottitle: Qualcomm Technologies, Inc. SM6125 TLMM block
75956d97fSEmmanuel Vadot
85956d97fSEmmanuel Vadotmaintainers:
95956d97fSEmmanuel Vadot  - Martin Botka <martin.botka@somainline.org>
105956d97fSEmmanuel Vadot
115956d97fSEmmanuel Vadotdescription: |
125956d97fSEmmanuel Vadot  This binding describes the Top Level Mode Multiplexer (TLMM) block found
135956d97fSEmmanuel Vadot  in the SM6125 platform.
145956d97fSEmmanuel Vadot
155956d97fSEmmanuel VadotallOf:
16e67e8565SEmmanuel Vadot  - $ref: "pinctrl.yaml#"
175956d97fSEmmanuel Vadot  - $ref: /schemas/pinctrl/qcom,tlmm-common.yaml#
185956d97fSEmmanuel Vadot
195956d97fSEmmanuel Vadotproperties:
205956d97fSEmmanuel Vadot  compatible:
215956d97fSEmmanuel Vadot    const: qcom,sm6125-tlmm
225956d97fSEmmanuel Vadot
235956d97fSEmmanuel Vadot  reg:
245956d97fSEmmanuel Vadot    minItems: 3
255956d97fSEmmanuel Vadot    maxItems: 3
265956d97fSEmmanuel Vadot
275956d97fSEmmanuel Vadot  reg-names:
285956d97fSEmmanuel Vadot    items:
295956d97fSEmmanuel Vadot      - const: "west"
305956d97fSEmmanuel Vadot      - const: "south"
315956d97fSEmmanuel Vadot      - const: "east"
325956d97fSEmmanuel Vadot
335956d97fSEmmanuel Vadot  interrupts: true
345956d97fSEmmanuel Vadot  interrupt-controller: true
355956d97fSEmmanuel Vadot  '#interrupt-cells': true
365956d97fSEmmanuel Vadot  gpio-controller: true
375956d97fSEmmanuel Vadot  gpio-reserved-ranges: true
385956d97fSEmmanuel Vadot  '#gpio-cells': true
395956d97fSEmmanuel Vadot  gpio-ranges: true
405956d97fSEmmanuel Vadot  wakeup-parent: true
415956d97fSEmmanuel Vadot
425956d97fSEmmanuel Vadotrequired:
435956d97fSEmmanuel Vadot  - compatible
445956d97fSEmmanuel Vadot  - reg
455956d97fSEmmanuel Vadot  - reg-names
465956d97fSEmmanuel Vadot
475956d97fSEmmanuel VadotadditionalProperties: false
485956d97fSEmmanuel Vadot
495956d97fSEmmanuel VadotpatternProperties:
505956d97fSEmmanuel Vadot  '-state$':
515956d97fSEmmanuel Vadot    oneOf:
525956d97fSEmmanuel Vadot      - $ref: "#/$defs/qcom-sm6125-tlmm-state"
535956d97fSEmmanuel Vadot      - patternProperties:
54*7ef62cebSEmmanuel Vadot          "-pins$":
555956d97fSEmmanuel Vadot            $ref: "#/$defs/qcom-sm6125-tlmm-state"
56*7ef62cebSEmmanuel Vadot        additionalProperties: false
575956d97fSEmmanuel Vadot
585956d97fSEmmanuel Vadot$defs:
595956d97fSEmmanuel Vadot  qcom-sm6125-tlmm-state:
605956d97fSEmmanuel Vadot    type: object
615956d97fSEmmanuel Vadot    description:
625956d97fSEmmanuel Vadot      Pinctrl node's client devices use subnodes for desired pin configuration.
635956d97fSEmmanuel Vadot      Client device subnodes use below standard properties.
645956d97fSEmmanuel Vadot
655956d97fSEmmanuel Vadot    properties:
665956d97fSEmmanuel Vadot      pins:
675956d97fSEmmanuel Vadot        description:
685956d97fSEmmanuel Vadot          List of gpio pins affected by the properties specified in this
695956d97fSEmmanuel Vadot          subnode.
705956d97fSEmmanuel Vadot        items:
715956d97fSEmmanuel Vadot          oneOf:
725956d97fSEmmanuel Vadot            - pattern: "^gpio[0-9]|[1-9][0-9]|1[0-2][0-9]|13[0-2]$"
735956d97fSEmmanuel Vadot            - enum: [ sdc1_clk, sdc1_cmd, sdc1_data, sdc2_clk, sdc2_cmd, sdc2_data ]
745956d97fSEmmanuel Vadot        minItems: 1
755956d97fSEmmanuel Vadot        maxItems: 36
765956d97fSEmmanuel Vadot
775956d97fSEmmanuel Vadot      function:
785956d97fSEmmanuel Vadot        description:
795956d97fSEmmanuel Vadot          Specify the alternative function to be configured for the specified
805956d97fSEmmanuel Vadot          pins.
815956d97fSEmmanuel Vadot
825956d97fSEmmanuel Vadot        enum: [ adsp_ext, agera_pll, atest_char, atest_char0, atest_char1,
835956d97fSEmmanuel Vadot                atest_char2, atest_char3, atest_tsens, atest_tsens2, atest_usb1,
845956d97fSEmmanuel Vadot                atest_usb10, atest_usb11, atest_usb12, atest_usb13, atest_usb2,
855956d97fSEmmanuel Vadot                atest_usb20, atest_usb21, atest_usb22, atest_usb23, aud_sb,
865956d97fSEmmanuel Vadot                audio_ref, cam_mclk, cci_async, cci_i2c, cci_timer0, cci_timer1,
875956d97fSEmmanuel Vadot                cci_timer2, cci_timer3, cci_timer4, copy_gp, copy_phase, cri_trng,
885956d97fSEmmanuel Vadot                cri_trng0, cri_trng1, dbg_out, ddr_bist, ddr_pxi0, ddr_pxi1,
895956d97fSEmmanuel Vadot                ddr_pxi2, ddr_pxi3, debug_hot, dmic0_clk, dmic0_data, dmic1_clk,
905956d97fSEmmanuel Vadot                dmic1_data, dp_hot, edp_hot, edp_lcd, gcc_gp1, gcc_gp2, gcc_gp3,
915956d97fSEmmanuel Vadot                gp_pdm0, gp_pdm1, gp_pdm2, gpio, gps_tx, jitter_bist, ldo_en,
925956d97fSEmmanuel Vadot                ldo_update, m_voc, mclk1, mclk2, mdp_vsync, mdp_vsync0, mdp_vsync1,
935956d97fSEmmanuel Vadot                mdp_vsync2, mdp_vsync3, mdp_vsync4, mdp_vsync5, mpm_pwr, mss_lte,
945956d97fSEmmanuel Vadot                nav_pps, pa_indicator, phase_flag, pll_bist, pll_bypassnl, pll_reset,
955956d97fSEmmanuel Vadot                pri_mi2s, pri_mi2s_ws, prng_rosc, qca_sb, qdss_cti, qdss, qlink_enable,
965956d97fSEmmanuel Vadot                qlink_request, qua_mi2s, qui_mi2s, qup00, qup01, qup02, qup03, qup04,
975956d97fSEmmanuel Vadot                qup10, qup11, qup12, qup13, qup14, sd_write, sec_mi2s, sp_cmu, swr_rx,
985956d97fSEmmanuel Vadot                swr_tx, ter_mi2s, tgu_ch0, tgu_ch1, tgu_ch2, tgu_ch3, tsense_pwm,
995956d97fSEmmanuel Vadot                uim1_clk, uim1_data, uim1_present, uim1_reset, uim2_clk, uim2_data,
1005956d97fSEmmanuel Vadot                uim2_present, uim2_reset, unused1, unused2, usb_phy, vfr_1, vsense_trigger,
1015956d97fSEmmanuel Vadot                wlan1_adc0, wlan1_adc1, wlan2_adc0, wlan2_adc1, wsa_clk, wsa_data ]
1025956d97fSEmmanuel Vadot
1035956d97fSEmmanuel Vadot
1045956d97fSEmmanuel Vadot      bias-disable: true
1055956d97fSEmmanuel Vadot      bias-pull-down: true
1065956d97fSEmmanuel Vadot      bias-pull-up: true
1075956d97fSEmmanuel Vadot      drive-strength: true
1085956d97fSEmmanuel Vadot      input-enable: true
1095956d97fSEmmanuel Vadot      output-high: true
1105956d97fSEmmanuel Vadot      output-low: true
1115956d97fSEmmanuel Vadot
1125956d97fSEmmanuel Vadot    required:
1135956d97fSEmmanuel Vadot      - pins
114*7ef62cebSEmmanuel Vadot
115*7ef62cebSEmmanuel Vadot    allOf:
116*7ef62cebSEmmanuel Vadot      - $ref: "qcom,tlmm-common.yaml#/$defs/qcom-tlmm-state"
117*7ef62cebSEmmanuel Vadot      - if:
118*7ef62cebSEmmanuel Vadot          properties:
119*7ef62cebSEmmanuel Vadot            pins:
120*7ef62cebSEmmanuel Vadot              pattern: "^gpio[0-9]|[1-9][0-9]|1[0-2][0-9]|13[0-2]$"
121*7ef62cebSEmmanuel Vadot        then:
122*7ef62cebSEmmanuel Vadot          required:
1235956d97fSEmmanuel Vadot            - function
1245956d97fSEmmanuel Vadot
1255956d97fSEmmanuel Vadot    additionalProperties: false
1265956d97fSEmmanuel Vadot
1275956d97fSEmmanuel Vadotexamples:
1285956d97fSEmmanuel Vadot  - |
1295956d97fSEmmanuel Vadot    #include <dt-bindings/interrupt-controller/arm-gic.h>
1305956d97fSEmmanuel Vadot    pinctrl@500000 {
1315956d97fSEmmanuel Vadot        compatible = "qcom,sm6125-tlmm";
1325956d97fSEmmanuel Vadot        reg = <0x00500000 0x400000>,
1335956d97fSEmmanuel Vadot              <0x00900000 0x400000>,
1345956d97fSEmmanuel Vadot              <0x00d00000 0x400000>;
1355956d97fSEmmanuel Vadot        reg-names = "west", "south", "east";
1365956d97fSEmmanuel Vadot        interrupts = <GIC_SPI 227 IRQ_TYPE_LEVEL_HIGH>;
1375956d97fSEmmanuel Vadot        gpio-controller;
1385956d97fSEmmanuel Vadot        gpio-ranges = <&tlmm 0 0 134>;
1395956d97fSEmmanuel Vadot        #gpio-cells = <2>;
1405956d97fSEmmanuel Vadot        interrupt-controller;
1415956d97fSEmmanuel Vadot        #interrupt-cells = <2>;
142*7ef62cebSEmmanuel Vadot
143*7ef62cebSEmmanuel Vadot        sdc2-off-state {
144*7ef62cebSEmmanuel Vadot            clk-pins {
145*7ef62cebSEmmanuel Vadot                pins = "sdc2_clk";
146*7ef62cebSEmmanuel Vadot                drive-strength = <2>;
147*7ef62cebSEmmanuel Vadot                bias-disable;
148*7ef62cebSEmmanuel Vadot            };
149*7ef62cebSEmmanuel Vadot
150*7ef62cebSEmmanuel Vadot            cmd-pins {
151*7ef62cebSEmmanuel Vadot                pins = "sdc2_cmd";
152*7ef62cebSEmmanuel Vadot                drive-strength = <2>;
153*7ef62cebSEmmanuel Vadot                bias-pull-up;
154*7ef62cebSEmmanuel Vadot            };
155*7ef62cebSEmmanuel Vadot
156*7ef62cebSEmmanuel Vadot            data-pins {
157*7ef62cebSEmmanuel Vadot                pins = "sdc2_data";
158*7ef62cebSEmmanuel Vadot                drive-strength = <2>;
159*7ef62cebSEmmanuel Vadot                bias-pull-up;
160*7ef62cebSEmmanuel Vadot            };
161*7ef62cebSEmmanuel Vadot        };
1625956d97fSEmmanuel Vadot    };
163