xref: /freebsd/sys/contrib/device-tree/Bindings/pinctrl/qcom,ipq5332-tlmm.yaml (revision 8d13bc63c0e1d50bc9e47ac1f26329c999bfecf0)
1cb7aa33aSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2cb7aa33aSEmmanuel Vadot%YAML 1.2
3cb7aa33aSEmmanuel Vadot---
4cb7aa33aSEmmanuel Vadot$id: http://devicetree.org/schemas/pinctrl/qcom,ipq5332-tlmm.yaml#
5cb7aa33aSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6cb7aa33aSEmmanuel Vadot
7cb7aa33aSEmmanuel Vadottitle: Qualcomm IPQ5332 TLMM pin controller
8cb7aa33aSEmmanuel Vadot
9cb7aa33aSEmmanuel Vadotmaintainers:
10cb7aa33aSEmmanuel Vadot  - Bjorn Andersson <andersson@kernel.org>
11cb7aa33aSEmmanuel Vadot  - Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
12cb7aa33aSEmmanuel Vadot
13cb7aa33aSEmmanuel Vadotdescription: |
14cb7aa33aSEmmanuel Vadot  Top Level Mode Multiplexer pin controller in Qualcomm IPQ5332 SoC.
15cb7aa33aSEmmanuel Vadot
16cb7aa33aSEmmanuel VadotallOf:
17cb7aa33aSEmmanuel Vadot  - $ref: /schemas/pinctrl/qcom,tlmm-common.yaml#
18cb7aa33aSEmmanuel Vadot
19cb7aa33aSEmmanuel Vadotproperties:
20cb7aa33aSEmmanuel Vadot  compatible:
21cb7aa33aSEmmanuel Vadot    const: qcom,ipq5332-tlmm
22cb7aa33aSEmmanuel Vadot
23cb7aa33aSEmmanuel Vadot  reg:
24cb7aa33aSEmmanuel Vadot    maxItems: 1
25cb7aa33aSEmmanuel Vadot
26cb7aa33aSEmmanuel Vadot  interrupts:
27cb7aa33aSEmmanuel Vadot    maxItems: 1
28cb7aa33aSEmmanuel Vadot
29cb7aa33aSEmmanuel Vadot  gpio-reserved-ranges:
30cb7aa33aSEmmanuel Vadot    minItems: 1
31cb7aa33aSEmmanuel Vadot    maxItems: 27
32cb7aa33aSEmmanuel Vadot
33cb7aa33aSEmmanuel Vadot  gpio-line-names:
34cb7aa33aSEmmanuel Vadot    maxItems: 53
35cb7aa33aSEmmanuel Vadot
36cb7aa33aSEmmanuel VadotpatternProperties:
37cb7aa33aSEmmanuel Vadot  "-state$":
38cb7aa33aSEmmanuel Vadot    oneOf:
39cb7aa33aSEmmanuel Vadot      - $ref: "#/$defs/qcom-ipq5332-tlmm-state"
40cb7aa33aSEmmanuel Vadot      - patternProperties:
41cb7aa33aSEmmanuel Vadot          "-pins$":
42cb7aa33aSEmmanuel Vadot            $ref: "#/$defs/qcom-ipq5332-tlmm-state"
43cb7aa33aSEmmanuel Vadot        additionalProperties: false
44cb7aa33aSEmmanuel Vadot
45cb7aa33aSEmmanuel Vadot$defs:
46cb7aa33aSEmmanuel Vadot  qcom-ipq5332-tlmm-state:
47cb7aa33aSEmmanuel Vadot    type: object
48cb7aa33aSEmmanuel Vadot    description:
49cb7aa33aSEmmanuel Vadot      Pinctrl node's client devices use subnodes for desired pin configuration.
50cb7aa33aSEmmanuel Vadot      Client device subnodes use below standard properties.
51cb7aa33aSEmmanuel Vadot    $ref: qcom,tlmm-common.yaml#/$defs/qcom-tlmm-state
52fac71e4eSEmmanuel Vadot    unevaluatedProperties: false
53cb7aa33aSEmmanuel Vadot
54cb7aa33aSEmmanuel Vadot    properties:
55cb7aa33aSEmmanuel Vadot      pins:
56cb7aa33aSEmmanuel Vadot        description:
57cb7aa33aSEmmanuel Vadot          List of gpio pins affected by the properties specified in this
58cb7aa33aSEmmanuel Vadot          subnode.
59cb7aa33aSEmmanuel Vadot        items:
60cb7aa33aSEmmanuel Vadot          pattern: "^gpio([0-9]|[1-4][0-9]|5[0-2])$"
61cb7aa33aSEmmanuel Vadot        minItems: 1
62cb7aa33aSEmmanuel Vadot        maxItems: 36
63cb7aa33aSEmmanuel Vadot
64cb7aa33aSEmmanuel Vadot      function:
65cb7aa33aSEmmanuel Vadot        description:
66cb7aa33aSEmmanuel Vadot          Specify the alternative function to be configured for the specified
67cb7aa33aSEmmanuel Vadot          pins.
68cb7aa33aSEmmanuel Vadot
69cb7aa33aSEmmanuel Vadot        enum: [ atest_char, atest_char0, atest_char1, atest_char2, atest_char3,
70cb7aa33aSEmmanuel Vadot                atest_tic, audio_pri, audio_pri0, audio_pri1, audio_sec,
71cb7aa33aSEmmanuel Vadot                audio_sec0, audio_sec1, blsp0_i2c, blsp0_spi, blsp0_uart0,
72cb7aa33aSEmmanuel Vadot                blsp0_uart1, blsp1_i2c0, blsp1_i2c1, blsp1_spi0, blsp1_spi1,
73cb7aa33aSEmmanuel Vadot                blsp1_uart0, blsp1_uart1, blsp1_uart2, blsp2_i2c0, blsp2_i2c1,
74cb7aa33aSEmmanuel Vadot                blsp2_spi, blsp2_spi0, blsp2_spi1, core_voltage, cri_trng0,
75cb7aa33aSEmmanuel Vadot                cri_trng1, cri_trng2, cri_trng3, cxc_clk, cxc_data, dbg_out,
76cb7aa33aSEmmanuel Vadot                gcc_plltest, gcc_tlmm, gpio, lock_det, mac0, mac1, mdc0, mdc1,
77cb7aa33aSEmmanuel Vadot                mdio0, mdio1, pc, pcie0_clk, pcie0_wake, pcie1_clk, pcie1_wake,
78cb7aa33aSEmmanuel Vadot                pcie2_clk, pcie2_wake, pll_test, prng_rosc0, prng_rosc1,
79cb7aa33aSEmmanuel Vadot                prng_rosc2, prng_rosc3, pta, pwm0, pwm1, pwm2, pwm3,
80cb7aa33aSEmmanuel Vadot                qdss_cti_trig_in_a0, qdss_cti_trig_in_a1, qdss_cti_trig_in_b0,
81cb7aa33aSEmmanuel Vadot                qdss_cti_trig_in_b1, qdss_cti_trig_out_a0,
82cb7aa33aSEmmanuel Vadot                qdss_cti_trig_out_a1, qdss_cti_trig_out_b0,
83cb7aa33aSEmmanuel Vadot                qdss_cti_trig_out_b1, qdss_traceclk_a, qdss_traceclk_b,
84cb7aa33aSEmmanuel Vadot                qdss_tracectl_a, qdss_tracectl_b, qdss_tracedata_a,
85cb7aa33aSEmmanuel Vadot                qdss_tracedata_b, qspi_data, qspi_clk, qspi_cs, resout, rx0,
86cb7aa33aSEmmanuel Vadot                rx1, sdc_data, sdc_clk, sdc_cmd, tsens_max, wci_txd, wci_rxd,
87cb7aa33aSEmmanuel Vadot                wsi_clk, wsi_clk3, wsi_data, wsi_data3, wsis_reset, xfem ]
88cb7aa33aSEmmanuel Vadot
89cb7aa33aSEmmanuel Vadot    required:
90cb7aa33aSEmmanuel Vadot      - pins
91cb7aa33aSEmmanuel Vadot
92cb7aa33aSEmmanuel Vadotrequired:
93cb7aa33aSEmmanuel Vadot  - compatible
94cb7aa33aSEmmanuel Vadot  - reg
95cb7aa33aSEmmanuel Vadot
96*8d13bc63SEmmanuel VadotunevaluatedProperties: false
97cb7aa33aSEmmanuel Vadot
98cb7aa33aSEmmanuel Vadotexamples:
99cb7aa33aSEmmanuel Vadot  - |
100cb7aa33aSEmmanuel Vadot    #include <dt-bindings/interrupt-controller/arm-gic.h>
101cb7aa33aSEmmanuel Vadot
102cb7aa33aSEmmanuel Vadot    tlmm: pinctrl@1000000 {
103cb7aa33aSEmmanuel Vadot        compatible = "qcom,ipq5332-tlmm";
104cb7aa33aSEmmanuel Vadot        reg = <0x01000000 0x300000>;
105cb7aa33aSEmmanuel Vadot        gpio-controller;
106cb7aa33aSEmmanuel Vadot        #gpio-cells = <0x2>;
107cb7aa33aSEmmanuel Vadot        gpio-ranges = <&tlmm 0 0 53>;
108cb7aa33aSEmmanuel Vadot        interrupts = <GIC_SPI 249 IRQ_TYPE_LEVEL_HIGH>;
109cb7aa33aSEmmanuel Vadot        interrupt-controller;
110cb7aa33aSEmmanuel Vadot        #interrupt-cells = <0x2>;
111cb7aa33aSEmmanuel Vadot
112cb7aa33aSEmmanuel Vadot        serial0-state {
113cb7aa33aSEmmanuel Vadot            pins = "gpio18", "gpio19";
114cb7aa33aSEmmanuel Vadot            function = "blsp0_uart0";
115cb7aa33aSEmmanuel Vadot            drive-strength = <8>;
116cb7aa33aSEmmanuel Vadot            bias-pull-up;
117cb7aa33aSEmmanuel Vadot        };
118cb7aa33aSEmmanuel Vadot    };
119