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