xref: /freebsd/sys/contrib/device-tree/Bindings/pinctrl/qcom,qcm2290-pinctrl.yaml (revision d5b0e70f7e04d971691517ce1304d86a1e367e2e)
18cc087a1SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
28cc087a1SEmmanuel Vadot%YAML 1.2
38cc087a1SEmmanuel Vadot---
48cc087a1SEmmanuel Vadot$id: http://devicetree.org/schemas/pinctrl/qcom,qcm2290-pinctrl.yaml#
58cc087a1SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
68cc087a1SEmmanuel Vadot
78cc087a1SEmmanuel Vadottitle: Qualcomm Technologies, Inc. QCM2290 TLMM block
88cc087a1SEmmanuel Vadot
98cc087a1SEmmanuel Vadotmaintainers:
108cc087a1SEmmanuel Vadot  - Shawn Guo <shawn.guo@linaro.org>
118cc087a1SEmmanuel Vadot
128cc087a1SEmmanuel Vadotdescription:
138cc087a1SEmmanuel Vadot  This binding describes the Top Level Mode Multiplexer block found in the
148cc087a1SEmmanuel Vadot  QCM2290 platform.
158cc087a1SEmmanuel Vadot
168cc087a1SEmmanuel Vadotproperties:
178cc087a1SEmmanuel Vadot  compatible:
188cc087a1SEmmanuel Vadot    const: qcom,qcm2290-tlmm
198cc087a1SEmmanuel Vadot
208cc087a1SEmmanuel Vadot  reg:
218cc087a1SEmmanuel Vadot    maxItems: 1
228cc087a1SEmmanuel Vadot
238cc087a1SEmmanuel Vadot  interrupts:
248cc087a1SEmmanuel Vadot    description: Specifies the TLMM summary IRQ
258cc087a1SEmmanuel Vadot    maxItems: 1
268cc087a1SEmmanuel Vadot
278cc087a1SEmmanuel Vadot  interrupt-controller: true
288cc087a1SEmmanuel Vadot
298cc087a1SEmmanuel Vadot  '#interrupt-cells':
308cc087a1SEmmanuel Vadot    description:
318cc087a1SEmmanuel Vadot      Specifies the PIN numbers and Flags, as defined in defined in
328cc087a1SEmmanuel Vadot      include/dt-bindings/interrupt-controller/irq.h
338cc087a1SEmmanuel Vadot    const: 2
348cc087a1SEmmanuel Vadot
358cc087a1SEmmanuel Vadot  gpio-controller: true
368cc087a1SEmmanuel Vadot
378cc087a1SEmmanuel Vadot  '#gpio-cells':
388cc087a1SEmmanuel Vadot    description: Specifying the pin number and flags, as defined in
398cc087a1SEmmanuel Vadot      include/dt-bindings/gpio/gpio.h
408cc087a1SEmmanuel Vadot    const: 2
418cc087a1SEmmanuel Vadot
428cc087a1SEmmanuel Vadot  gpio-ranges:
438cc087a1SEmmanuel Vadot    maxItems: 1
448cc087a1SEmmanuel Vadot
45*d5b0e70fSEmmanuel Vadot  wakeup-parent: true
468cc087a1SEmmanuel Vadot
478cc087a1SEmmanuel Vadot#PIN CONFIGURATION NODES
488cc087a1SEmmanuel VadotpatternProperties:
498cc087a1SEmmanuel Vadot  '-state$':
508cc087a1SEmmanuel Vadot    oneOf:
518cc087a1SEmmanuel Vadot      - $ref: "#/$defs/qcom-qcm2290-tlmm-state"
528cc087a1SEmmanuel Vadot      - patternProperties:
538cc087a1SEmmanuel Vadot          ".*":
548cc087a1SEmmanuel Vadot            $ref: "#/$defs/qcom-qcm2290-tlmm-state"
558cc087a1SEmmanuel Vadot
568cc087a1SEmmanuel Vadot'$defs':
578cc087a1SEmmanuel Vadot  qcom-qcm2290-tlmm-state:
588cc087a1SEmmanuel Vadot    type: object
598cc087a1SEmmanuel Vadot    description:
608cc087a1SEmmanuel Vadot      Pinctrl node's client devices use subnodes for desired pin configuration.
618cc087a1SEmmanuel Vadot      Client device subnodes use below standard properties.
628cc087a1SEmmanuel Vadot    $ref: "qcom,tlmm-common.yaml#/$defs/qcom-tlmm-state"
638cc087a1SEmmanuel Vadot
648cc087a1SEmmanuel Vadot    properties:
658cc087a1SEmmanuel Vadot      pins:
668cc087a1SEmmanuel Vadot        description:
678cc087a1SEmmanuel Vadot          List of gpio pins affected by the properties specified in this
688cc087a1SEmmanuel Vadot          subnode.
698cc087a1SEmmanuel Vadot        items:
708cc087a1SEmmanuel Vadot          oneOf:
718cc087a1SEmmanuel Vadot            - pattern: "^gpio([0-9]|[1-9][0-9]|1[0-1][0-9]|12[0-6])$"
728cc087a1SEmmanuel Vadot            - enum: [ sdc1_rclk, sdc1_clk, sdc1_cmd, sdc1_data,
738cc087a1SEmmanuel Vadot                      sdc2_clk, sdc2_cmd, sdc2_data ]
748cc087a1SEmmanuel Vadot        minItems: 1
758cc087a1SEmmanuel Vadot        maxItems: 36
768cc087a1SEmmanuel Vadot
778cc087a1SEmmanuel Vadot      function:
788cc087a1SEmmanuel Vadot        description:
798cc087a1SEmmanuel Vadot          Specify the alternative function to be configured for the specified
808cc087a1SEmmanuel Vadot          pins.
818cc087a1SEmmanuel Vadot
828cc087a1SEmmanuel Vadot        enum: [ adsp_ext, agera_pll, atest, cam_mclk, cci_async, cci_i2c,
838cc087a1SEmmanuel Vadot                cci_timer0, cci_timer1, cci_timer2, cci_timer3, char_exec,
848cc087a1SEmmanuel Vadot                cri_trng, cri_trng0, cri_trng1, dac_calib, dbg_out, ddr_bist,
858cc087a1SEmmanuel Vadot                ddr_pxi0, ddr_pxi1, ddr_pxi2, ddr_pxi3, gcc_gp1, gcc_gp2,
868cc087a1SEmmanuel Vadot                gcc_gp3, gpio, gp_pdm0, gp_pdm1, gp_pdm2, gsm0_tx, gsm1_tx,
878cc087a1SEmmanuel Vadot                jitter_bist, mdp_vsync, mdp_vsync_out_0, mdp_vsync_out_1,
888cc087a1SEmmanuel Vadot                mpm_pwr, mss_lte, m_voc, nav_gpio, pa_indicator, pbs0, pbs1,
898cc087a1SEmmanuel Vadot                pbs2, pbs3, pbs4, pbs5, pbs6, pbs7, pbs8, pbs9, pbs10, pbs11,
908cc087a1SEmmanuel Vadot                pbs12, pbs13, pbs14, pbs15, pbs_out, phase_flag, pll_bist,
918cc087a1SEmmanuel Vadot                pll_bypassnl, pll_reset, prng_rosc, pwm_0, pwm_1, pwm_2, pwm_3,
928cc087a1SEmmanuel Vadot                pwm_4, pwm_5, pwm_6, pwm_7, pwm_8, pwm_9, qdss_cti, qdss_gpio,
938cc087a1SEmmanuel Vadot                qup0, qup1, qup2, qup3, qup4, qup5, sdc1_tb, sdc2_tb, sd_write,
948cc087a1SEmmanuel Vadot                ssbi_wtr1, tgu_ch0, tgu_ch1, tgu_ch2, tgu_ch3, tsense_pwm,
958cc087a1SEmmanuel Vadot                uim1_clk, uim1_data, uim1_present, uim1_reset, uim2_clk,
968cc087a1SEmmanuel Vadot                uim2_data, uim2_present, uim2_reset, usb_phy, vfr_1,
978cc087a1SEmmanuel Vadot                vsense_trigger, wlan1_adc0, wlan1_adc1 ]
988cc087a1SEmmanuel Vadot
998cc087a1SEmmanuel Vadot      drive-strength:
1008cc087a1SEmmanuel Vadot        enum: [2, 4, 6, 8, 10, 12, 14, 16]
1018cc087a1SEmmanuel Vadot        default: 2
1028cc087a1SEmmanuel Vadot        description:
1038cc087a1SEmmanuel Vadot          Selects the drive strength for the specified pins, in mA.
1048cc087a1SEmmanuel Vadot
1058cc087a1SEmmanuel Vadot      bias-pull-down: true
1068cc087a1SEmmanuel Vadot
1078cc087a1SEmmanuel Vadot      bias-pull-up: true
1088cc087a1SEmmanuel Vadot
1098cc087a1SEmmanuel Vadot      bias-disable: true
1108cc087a1SEmmanuel Vadot
1118cc087a1SEmmanuel Vadot      output-high: true
1128cc087a1SEmmanuel Vadot
1138cc087a1SEmmanuel Vadot      output-low: true
1148cc087a1SEmmanuel Vadot
1158cc087a1SEmmanuel Vadot    required:
1168cc087a1SEmmanuel Vadot      - pins
1178cc087a1SEmmanuel Vadot
1188cc087a1SEmmanuel Vadot    additionalProperties: false
1198cc087a1SEmmanuel Vadot
120e67e8565SEmmanuel VadotallOf:
121e67e8565SEmmanuel Vadot  - $ref: "pinctrl.yaml#"
122e67e8565SEmmanuel Vadot
1238cc087a1SEmmanuel Vadotrequired:
1248cc087a1SEmmanuel Vadot  - compatible
1258cc087a1SEmmanuel Vadot  - reg
1268cc087a1SEmmanuel Vadot  - interrupts
1278cc087a1SEmmanuel Vadot  - interrupt-controller
1288cc087a1SEmmanuel Vadot  - '#interrupt-cells'
1298cc087a1SEmmanuel Vadot  - gpio-controller
1308cc087a1SEmmanuel Vadot  - '#gpio-cells'
1318cc087a1SEmmanuel Vadot  - gpio-ranges
1328cc087a1SEmmanuel Vadot
1338cc087a1SEmmanuel VadotadditionalProperties: false
1348cc087a1SEmmanuel Vadot
1358cc087a1SEmmanuel Vadotexamples:
1368cc087a1SEmmanuel Vadot  - |
1378cc087a1SEmmanuel Vadot    #include <dt-bindings/interrupt-controller/arm-gic.h>
1388cc087a1SEmmanuel Vadot    tlmm: pinctrl@500000 {
1398cc087a1SEmmanuel Vadot        compatible = "qcom,qcm2290-tlmm";
1408cc087a1SEmmanuel Vadot        reg = <0x500000 0x300000>;
1418cc087a1SEmmanuel Vadot        interrupts = <GIC_SPI 227 IRQ_TYPE_LEVEL_HIGH>;
1428cc087a1SEmmanuel Vadot        gpio-controller;
1438cc087a1SEmmanuel Vadot        #gpio-cells = <2>;
1448cc087a1SEmmanuel Vadot        interrupt-controller;
1458cc087a1SEmmanuel Vadot        #interrupt-cells = <2>;
1468cc087a1SEmmanuel Vadot        gpio-ranges = <&tlmm 0 0 127>;
1478cc087a1SEmmanuel Vadot
1488cc087a1SEmmanuel Vadot        sdc2_on_state: sdc2-on-state {
1498cc087a1SEmmanuel Vadot            clk {
1508cc087a1SEmmanuel Vadot                pins = "sdc2_clk";
1518cc087a1SEmmanuel Vadot                bias-disable;
1528cc087a1SEmmanuel Vadot                drive-strength = <16>;
1538cc087a1SEmmanuel Vadot            };
1548cc087a1SEmmanuel Vadot
1558cc087a1SEmmanuel Vadot            cmd {
1568cc087a1SEmmanuel Vadot                pins = "sdc2_cmd";
1578cc087a1SEmmanuel Vadot                bias-pull-up;
1588cc087a1SEmmanuel Vadot                drive-strength = <10>;
1598cc087a1SEmmanuel Vadot            };
1608cc087a1SEmmanuel Vadot
1618cc087a1SEmmanuel Vadot            data {
1628cc087a1SEmmanuel Vadot                pins = "sdc2_data";
1638cc087a1SEmmanuel Vadot                bias-pull-up;
1648cc087a1SEmmanuel Vadot                drive-strength = <10>;
1658cc087a1SEmmanuel Vadot            };
1668cc087a1SEmmanuel Vadot        };
1678cc087a1SEmmanuel Vadot    };
168