xref: /linux/Documentation/devicetree/bindings/pinctrl/qcom,ipq8064-pinctrl.yaml (revision 3a39d672e7f48b8d6b91a09afa4b55352773b4b5)
1*df1acfd0SRayyan Ansari# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*df1acfd0SRayyan Ansari%YAML 1.2
3*df1acfd0SRayyan Ansari---
4*df1acfd0SRayyan Ansari$id: http://devicetree.org/schemas/pinctrl/qcom,ipq8064-pinctrl.yaml#
5*df1acfd0SRayyan Ansari$schema: http://devicetree.org/meta-schemas/core.yaml#
6*df1acfd0SRayyan Ansari
7*df1acfd0SRayyan Ansarititle: Qualcomm Technologies, Inc. IPQ8064 TLMM block
8*df1acfd0SRayyan Ansari
9*df1acfd0SRayyan Ansarimaintainers:
10*df1acfd0SRayyan Ansari  - Bjorn Andersson <bjorn.andersson@linaro.org>
11*df1acfd0SRayyan Ansari
12*df1acfd0SRayyan Ansaridescription: |
13*df1acfd0SRayyan Ansari  Top Level Mode Multiplexer pin controller in Qualcomm IPQ8064 SoC.
14*df1acfd0SRayyan Ansari
15*df1acfd0SRayyan AnsariallOf:
16*df1acfd0SRayyan Ansari  - $ref: /schemas/pinctrl/qcom,tlmm-common.yaml#
17*df1acfd0SRayyan Ansari
18*df1acfd0SRayyan Ansariproperties:
19*df1acfd0SRayyan Ansari  compatible:
20*df1acfd0SRayyan Ansari    const: qcom,ipq8064-pinctrl
21*df1acfd0SRayyan Ansari
22*df1acfd0SRayyan Ansari  reg:
23*df1acfd0SRayyan Ansari    maxItems: 1
24*df1acfd0SRayyan Ansari
25*df1acfd0SRayyan Ansari  interrupts:
26*df1acfd0SRayyan Ansari    maxItems: 1
27*df1acfd0SRayyan Ansari
28*df1acfd0SRayyan Ansari  gpio-reserved-ranges: true
29*df1acfd0SRayyan Ansari
30*df1acfd0SRayyan AnsaripatternProperties:
31*df1acfd0SRayyan Ansari  "-state$":
32*df1acfd0SRayyan Ansari    oneOf:
33*df1acfd0SRayyan Ansari      - $ref: "#/$defs/qcom-ipq8064-tlmm-state"
34*df1acfd0SRayyan Ansari      - patternProperties:
35*df1acfd0SRayyan Ansari          "-pins$":
36*df1acfd0SRayyan Ansari            $ref: "#/$defs/qcom-ipq8064-tlmm-state"
37*df1acfd0SRayyan Ansari        additionalProperties: false
38*df1acfd0SRayyan Ansari
39*df1acfd0SRayyan Ansari$defs:
40*df1acfd0SRayyan Ansari  qcom-ipq8064-tlmm-state:
41*df1acfd0SRayyan Ansari    type: object
42*df1acfd0SRayyan Ansari    description:
43*df1acfd0SRayyan Ansari      Pinctrl node's client devices use subnodes for desired pin configuration.
44*df1acfd0SRayyan Ansari      Client device subnodes use below standard properties.
45*df1acfd0SRayyan Ansari    $ref: qcom,tlmm-common.yaml#/$defs/qcom-tlmm-state
46*df1acfd0SRayyan Ansari    unevaluatedProperties: false
47*df1acfd0SRayyan Ansari
48*df1acfd0SRayyan Ansari    properties:
49*df1acfd0SRayyan Ansari      pins:
50*df1acfd0SRayyan Ansari        description:
51*df1acfd0SRayyan Ansari          List of gpio pins affected by the properties specified in this
52*df1acfd0SRayyan Ansari          subnode.
53*df1acfd0SRayyan Ansari        items:
54*df1acfd0SRayyan Ansari          oneOf:
55*df1acfd0SRayyan Ansari            - pattern: "^gpio([0-9]|[1-5][0-9]|6[0-8])$"
56*df1acfd0SRayyan Ansari            - enum: [ sdc3_clk, sdc3_cmd, sdc3_data ]
57*df1acfd0SRayyan Ansari        minItems: 1
58*df1acfd0SRayyan Ansari        maxItems: 36
59*df1acfd0SRayyan Ansari
60*df1acfd0SRayyan Ansari      function:
61*df1acfd0SRayyan Ansari        description:
62*df1acfd0SRayyan Ansari          Specify the alternative function to be configured for the specified
63*df1acfd0SRayyan Ansari          pins.
64*df1acfd0SRayyan Ansari        enum: [ mdio, mi2s, pdm, ssbi, spmi, audio_pcm, gpio, gsbi1, gsbi2, gsbi4, gsbi5,
65*df1acfd0SRayyan Ansari                gsbi5_spi_cs1, gsbi5_spi_cs2, gsbi5_spi_cs3, gsbi6, gsbi7, nss_spi, sdc1,
66*df1acfd0SRayyan Ansari                spdif, nand, tsif1, tsif2, usb_fs_n, usb_fs, usb2_hsic, rgmii2, sata,
67*df1acfd0SRayyan Ansari                pcie1_rst, pcie1_prsnt, pcie1_pwren_n, pcie1_pwren, pcie1_pwrflt,
68*df1acfd0SRayyan Ansari                pcie1_clk_req, pcie2_rst, pcie2_prsnt, pcie2_pwren_n, pcie2_pwren,
69*df1acfd0SRayyan Ansari                pcie2_pwrflt, pcie2_clk_req, pcie3_rst, pcie3_prsnt, pcie3_pwren_n,
70*df1acfd0SRayyan Ansari                pcie3_pwren, pcie3_pwrflt, pcie3_clk_req, ps_hold ]
71*df1acfd0SRayyan Ansari
72*df1acfd0SRayyan Ansari    required:
73*df1acfd0SRayyan Ansari      - pins
74*df1acfd0SRayyan Ansari
75*df1acfd0SRayyan Ansarirequired:
76*df1acfd0SRayyan Ansari  - compatible
77*df1acfd0SRayyan Ansari  - reg
78*df1acfd0SRayyan Ansari
79*df1acfd0SRayyan AnsariunevaluatedProperties: false
80*df1acfd0SRayyan Ansari
81*df1acfd0SRayyan Ansariexamples:
82*df1acfd0SRayyan Ansari  - |
83*df1acfd0SRayyan Ansari    #include <dt-bindings/interrupt-controller/arm-gic.h>
84*df1acfd0SRayyan Ansari    tlmm: pinctrl@800000 {
85*df1acfd0SRayyan Ansari        compatible = "qcom,ipq8064-pinctrl";
86*df1acfd0SRayyan Ansari        reg = <0x00800000 0x4000>;
87*df1acfd0SRayyan Ansari
88*df1acfd0SRayyan Ansari        gpio-controller;
89*df1acfd0SRayyan Ansari        #gpio-cells = <2>;
90*df1acfd0SRayyan Ansari        gpio-ranges = <&tlmm 0 0 69>;
91*df1acfd0SRayyan Ansari        interrupt-controller;
92*df1acfd0SRayyan Ansari        #interrupt-cells = <2>;
93*df1acfd0SRayyan Ansari        interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
94*df1acfd0SRayyan Ansari
95*df1acfd0SRayyan Ansari        uart-state {
96*df1acfd0SRayyan Ansari            rx-pins {
97*df1acfd0SRayyan Ansari                pins = "gpio19";
98*df1acfd0SRayyan Ansari                function = "gsbi5";
99*df1acfd0SRayyan Ansari                bias-pull-up;
100*df1acfd0SRayyan Ansari            };
101*df1acfd0SRayyan Ansari
102*df1acfd0SRayyan Ansari            tx-pins {
103*df1acfd0SRayyan Ansari                pins = "gpio18";
104*df1acfd0SRayyan Ansari                function = "gsbi5";
105*df1acfd0SRayyan Ansari                bias-disable;
106*df1acfd0SRayyan Ansari            };
107*df1acfd0SRayyan Ansari        };
108*df1acfd0SRayyan Ansari    };
109