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