xref: /freebsd/sys/contrib/device-tree/Bindings/pinctrl/qcom,apq8084-pinctrl.yaml (revision b2d2a78ad80ec68d4a17f5aef97d21686cb1e29b)
1*b2d2a78aSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*b2d2a78aSEmmanuel Vadot%YAML 1.2
3*b2d2a78aSEmmanuel Vadot---
4*b2d2a78aSEmmanuel Vadot$id: http://devicetree.org/schemas/pinctrl/qcom,apq8084-pinctrl.yaml#
5*b2d2a78aSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6*b2d2a78aSEmmanuel Vadot
7*b2d2a78aSEmmanuel Vadottitle: Qualcomm Technologies, Inc. APQ8084 TLMM block
8*b2d2a78aSEmmanuel Vadot
9*b2d2a78aSEmmanuel Vadotmaintainers:
10*b2d2a78aSEmmanuel Vadot  - Bjorn Andersson <bjorn.andersson@linaro.org>
11*b2d2a78aSEmmanuel Vadot
12*b2d2a78aSEmmanuel Vadotdescription: |
13*b2d2a78aSEmmanuel Vadot  Top Level Mode Multiplexer pin controller in Qualcomm APQ8084 SoC.
14*b2d2a78aSEmmanuel Vadot
15*b2d2a78aSEmmanuel VadotallOf:
16*b2d2a78aSEmmanuel Vadot  - $ref: /schemas/pinctrl/qcom,tlmm-common.yaml#
17*b2d2a78aSEmmanuel Vadot
18*b2d2a78aSEmmanuel Vadotproperties:
19*b2d2a78aSEmmanuel Vadot  compatible:
20*b2d2a78aSEmmanuel Vadot    const: qcom,apq8084-pinctrl
21*b2d2a78aSEmmanuel Vadot
22*b2d2a78aSEmmanuel Vadot  reg:
23*b2d2a78aSEmmanuel Vadot    maxItems: 1
24*b2d2a78aSEmmanuel Vadot
25*b2d2a78aSEmmanuel Vadot  interrupts:
26*b2d2a78aSEmmanuel Vadot    maxItems: 1
27*b2d2a78aSEmmanuel Vadot
28*b2d2a78aSEmmanuel Vadot  gpio-reserved-ranges: true
29*b2d2a78aSEmmanuel Vadot
30*b2d2a78aSEmmanuel VadotpatternProperties:
31*b2d2a78aSEmmanuel Vadot  "-state$":
32*b2d2a78aSEmmanuel Vadot    oneOf:
33*b2d2a78aSEmmanuel Vadot      - $ref: "#/$defs/qcom-apq8084-tlmm-state"
34*b2d2a78aSEmmanuel Vadot      - patternProperties:
35*b2d2a78aSEmmanuel Vadot          "-pins$":
36*b2d2a78aSEmmanuel Vadot            $ref: "#/$defs/qcom-apq8084-tlmm-state"
37*b2d2a78aSEmmanuel Vadot        additionalProperties: false
38*b2d2a78aSEmmanuel Vadot
39*b2d2a78aSEmmanuel Vadot$defs:
40*b2d2a78aSEmmanuel Vadot  qcom-apq8084-tlmm-state:
41*b2d2a78aSEmmanuel Vadot    type: object
42*b2d2a78aSEmmanuel Vadot    description:
43*b2d2a78aSEmmanuel Vadot      Pinctrl node's client devices use subnodes for desired pin configuration.
44*b2d2a78aSEmmanuel Vadot      Client device subnodes use below standard properties.
45*b2d2a78aSEmmanuel Vadot    $ref: qcom,tlmm-common.yaml#/$defs/qcom-tlmm-state
46*b2d2a78aSEmmanuel Vadot    unevaluatedProperties: false
47*b2d2a78aSEmmanuel Vadot
48*b2d2a78aSEmmanuel Vadot    properties:
49*b2d2a78aSEmmanuel Vadot      pins:
50*b2d2a78aSEmmanuel Vadot        description:
51*b2d2a78aSEmmanuel Vadot          List of gpio pins affected by the properties specified in this
52*b2d2a78aSEmmanuel Vadot          subnode.
53*b2d2a78aSEmmanuel Vadot        items:
54*b2d2a78aSEmmanuel Vadot          oneOf:
55*b2d2a78aSEmmanuel Vadot            - pattern: "^gpio([0-9]|[1-9][0-9]|1[0-3][0-9]|14[0-6])$"
56*b2d2a78aSEmmanuel Vadot            - enum: [ sdc1_clk, sdc1_cmd, sdc1_data, sdc2_clk, sdc2_cmd,
57*b2d2a78aSEmmanuel Vadot                      sdc2_data ]
58*b2d2a78aSEmmanuel Vadot        minItems: 1
59*b2d2a78aSEmmanuel Vadot        maxItems: 36
60*b2d2a78aSEmmanuel Vadot
61*b2d2a78aSEmmanuel Vadot      function:
62*b2d2a78aSEmmanuel Vadot        description:
63*b2d2a78aSEmmanuel Vadot          Specify the alternative function to be configured for the specified
64*b2d2a78aSEmmanuel Vadot          pins.
65*b2d2a78aSEmmanuel Vadot        enum: [ adsp_ext, audio_ref, blsp_i2c1, blsp_i2c2, blsp_i2c3,
66*b2d2a78aSEmmanuel Vadot                blsp_i2c4, blsp_i2c5, blsp_i2c6, blsp_i2c7, blsp_i2c8,
67*b2d2a78aSEmmanuel Vadot                blsp_i2c9, blsp_i2c10, blsp_i2c11, blsp_i2c12,
68*b2d2a78aSEmmanuel Vadot                blsp_spi1, blsp_spi1_cs1, blsp_spi1_cs2, blsp_spi1_cs3,
69*b2d2a78aSEmmanuel Vadot                blsp_spi2, blsp_spi3, blsp_spi3_cs1, blsp_spi3_cs2,
70*b2d2a78aSEmmanuel Vadot                blsp_spi3_cs3, blsp_spi4, blsp_spi5, blsp_spi6,
71*b2d2a78aSEmmanuel Vadot                blsp_spi7, blsp_spi8, blsp_spi9, blsp_spi10,
72*b2d2a78aSEmmanuel Vadot                blsp_spi10_cs1, blsp_spi10_cs2, blsp_spi10_cs3,
73*b2d2a78aSEmmanuel Vadot                blsp_spi11, blsp_spi12, blsp_uart1, blsp_uart2,
74*b2d2a78aSEmmanuel Vadot                blsp_uart3, blsp_uart4, blsp_uart5, blsp_uart6,
75*b2d2a78aSEmmanuel Vadot                blsp_uart7, blsp_uart8, blsp_uart9, blsp_uart10,
76*b2d2a78aSEmmanuel Vadot                blsp_uart11, blsp_uart12, blsp_uim1, blsp_uim2,
77*b2d2a78aSEmmanuel Vadot                blsp_uim3, blsp_uim4, blsp_uim5, blsp_uim6, blsp_uim7,
78*b2d2a78aSEmmanuel Vadot                blsp_uim8, blsp_uim9, blsp_uim10, blsp_uim11,
79*b2d2a78aSEmmanuel Vadot                blsp_uim12, cam_mclk0, cam_mclk1, cam_mclk2, cam_mclk3,
80*b2d2a78aSEmmanuel Vadot                cci_async, cci_async_in0, cci_i2c0, cci_i2c1,
81*b2d2a78aSEmmanuel Vadot                cci_timer0, cci_timer1, cci_timer2, cci_timer3,
82*b2d2a78aSEmmanuel Vadot                cci_timer4, edp_hpd, gcc_gp1, gcc_gp2, gcc_gp3,
83*b2d2a78aSEmmanuel Vadot                gcc_obt, gcc_vtt, gp_mn, gp_pdm0, gp_pdm1, gp_pdm2,
84*b2d2a78aSEmmanuel Vadot                gp0_clk, gp1_clk, gpio, hdmi_cec, hdmi_ddc, hdmi_dtest,
85*b2d2a78aSEmmanuel Vadot                hdmi_hpd, hdmi_rcv, hsic, ldo_en, ldo_update,
86*b2d2a78aSEmmanuel Vadot                mdp_vsync, pci_e0, pci_e0_n, pci_e0_rst, pci_e1,
87*b2d2a78aSEmmanuel Vadot                pci_e1_rst, pci_e1_rst_n, pci_e1_clkreq_n, pri_mi2s,
88*b2d2a78aSEmmanuel Vadot                qua_mi2s, sata_act, sata_devsleep, sata_devsleep_n,
89*b2d2a78aSEmmanuel Vadot                sd_write, sdc_emmc_mode, sdc3, sdc4, sec_mi2s, slimbus,
90*b2d2a78aSEmmanuel Vadot                spdif_tx, spkr_i2s, spkr_i2s_ws, spss_geni, ter_mi2s,
91*b2d2a78aSEmmanuel Vadot                tsif1, tsif2, uim, uim_batt_alarm ]
92*b2d2a78aSEmmanuel Vadot
93*b2d2a78aSEmmanuel Vadot    required:
94*b2d2a78aSEmmanuel Vadot      - pins
95*b2d2a78aSEmmanuel Vadot
96*b2d2a78aSEmmanuel Vadotrequired:
97*b2d2a78aSEmmanuel Vadot  - compatible
98*b2d2a78aSEmmanuel Vadot  - reg
99*b2d2a78aSEmmanuel Vadot
100*b2d2a78aSEmmanuel VadotunevaluatedProperties: false
101*b2d2a78aSEmmanuel Vadot
102*b2d2a78aSEmmanuel Vadotexamples:
103*b2d2a78aSEmmanuel Vadot  - |
104*b2d2a78aSEmmanuel Vadot    #include <dt-bindings/interrupt-controller/arm-gic.h>
105*b2d2a78aSEmmanuel Vadot    tlmm: pinctrl@fd510000 {
106*b2d2a78aSEmmanuel Vadot        compatible = "qcom,apq8084-pinctrl";
107*b2d2a78aSEmmanuel Vadot        reg = <0xfd510000 0x4000>;
108*b2d2a78aSEmmanuel Vadot
109*b2d2a78aSEmmanuel Vadot        gpio-controller;
110*b2d2a78aSEmmanuel Vadot        #gpio-cells = <2>;
111*b2d2a78aSEmmanuel Vadot        gpio-ranges = <&tlmm 0 0 147>;
112*b2d2a78aSEmmanuel Vadot        interrupt-controller;
113*b2d2a78aSEmmanuel Vadot        #interrupt-cells = <2>;
114*b2d2a78aSEmmanuel Vadot        interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
115*b2d2a78aSEmmanuel Vadot
116*b2d2a78aSEmmanuel Vadot        uart-state {
117*b2d2a78aSEmmanuel Vadot            rx-pins {
118*b2d2a78aSEmmanuel Vadot                pins = "gpio5";
119*b2d2a78aSEmmanuel Vadot                function = "blsp_uart2";
120*b2d2a78aSEmmanuel Vadot                bias-pull-up;
121*b2d2a78aSEmmanuel Vadot            };
122*b2d2a78aSEmmanuel Vadot
123*b2d2a78aSEmmanuel Vadot            tx-pins {
124*b2d2a78aSEmmanuel Vadot                pins = "gpio4";
125*b2d2a78aSEmmanuel Vadot                function = "blsp_uart2";
126*b2d2a78aSEmmanuel Vadot                bias-disable;
127*b2d2a78aSEmmanuel Vadot            };
128*b2d2a78aSEmmanuel Vadot        };
129*b2d2a78aSEmmanuel Vadot    };
130