xref: /freebsd/sys/contrib/device-tree/Bindings/pinctrl/qcom,ipq4019-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,ipq4019-pinctrl.yaml#
5*b2d2a78aSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6*b2d2a78aSEmmanuel Vadot
7*b2d2a78aSEmmanuel Vadottitle: Qualcomm Technologies, Inc. IPQ4019 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 IPQ4019 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,ipq4019-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-ipq4019-tlmm-state"
34*b2d2a78aSEmmanuel Vadot      - patternProperties:
35*b2d2a78aSEmmanuel Vadot          "-pins$":
36*b2d2a78aSEmmanuel Vadot            $ref: "#/$defs/qcom-ipq4019-tlmm-state"
37*b2d2a78aSEmmanuel Vadot        additionalProperties: false
38*b2d2a78aSEmmanuel Vadot
39*b2d2a78aSEmmanuel Vadot  "-hog(-[0-9]+)?$":
40*b2d2a78aSEmmanuel Vadot    type: object
41*b2d2a78aSEmmanuel Vadot    required:
42*b2d2a78aSEmmanuel Vadot      - gpio-hog
43*b2d2a78aSEmmanuel Vadot
44*b2d2a78aSEmmanuel Vadot$defs:
45*b2d2a78aSEmmanuel Vadot  qcom-ipq4019-tlmm-state:
46*b2d2a78aSEmmanuel Vadot    type: object
47*b2d2a78aSEmmanuel Vadot    description:
48*b2d2a78aSEmmanuel Vadot      Pinctrl node's client devices use subnodes for desired pin configuration.
49*b2d2a78aSEmmanuel Vadot      Client device subnodes use below standard properties.
50*b2d2a78aSEmmanuel Vadot    $ref: qcom,tlmm-common.yaml#/$defs/qcom-tlmm-state
51*b2d2a78aSEmmanuel Vadot    unevaluatedProperties: false
52*b2d2a78aSEmmanuel Vadot
53*b2d2a78aSEmmanuel Vadot    properties:
54*b2d2a78aSEmmanuel Vadot      pins:
55*b2d2a78aSEmmanuel Vadot        description:
56*b2d2a78aSEmmanuel Vadot          List of gpio pins affected by the properties specified in this
57*b2d2a78aSEmmanuel Vadot          subnode.
58*b2d2a78aSEmmanuel Vadot        items:
59*b2d2a78aSEmmanuel Vadot          pattern: "^gpio([0-9]|[1-9][0-9])$"
60*b2d2a78aSEmmanuel Vadot        minItems: 1
61*b2d2a78aSEmmanuel Vadot        maxItems: 36
62*b2d2a78aSEmmanuel Vadot
63*b2d2a78aSEmmanuel Vadot      function:
64*b2d2a78aSEmmanuel Vadot        description:
65*b2d2a78aSEmmanuel Vadot          Specify the alternative function to be configured for the specified
66*b2d2a78aSEmmanuel Vadot          pins.
67*b2d2a78aSEmmanuel Vadot        enum: [ aud_pin, audio_pwm, blsp_i2c0, blsp_i2c1, blsp_spi0,
68*b2d2a78aSEmmanuel Vadot                blsp_spi1, blsp_uart0, blsp_uart1, chip_rst, gpio,
69*b2d2a78aSEmmanuel Vadot                i2s_rx, i2s_spdif_in, i2s_spdif_out, i2s_td, i2s_tx,
70*b2d2a78aSEmmanuel Vadot                jtag, led0, led1, led2, led3, led4, led5, led6, led7,
71*b2d2a78aSEmmanuel Vadot                led8, led9, led10, led11, mdc, mdio, pcie, pmu,
72*b2d2a78aSEmmanuel Vadot                prng_rosc, qpic, rgmii, rmii, sdio, smart0, smart1,
73*b2d2a78aSEmmanuel Vadot                smart2, smart3, tm, wifi0, wifi1 ]
74*b2d2a78aSEmmanuel Vadot
75*b2d2a78aSEmmanuel Vadot    required:
76*b2d2a78aSEmmanuel Vadot      - pins
77*b2d2a78aSEmmanuel Vadot
78*b2d2a78aSEmmanuel Vadotrequired:
79*b2d2a78aSEmmanuel Vadot  - compatible
80*b2d2a78aSEmmanuel Vadot  - reg
81*b2d2a78aSEmmanuel Vadot
82*b2d2a78aSEmmanuel VadotunevaluatedProperties: false
83*b2d2a78aSEmmanuel Vadot
84*b2d2a78aSEmmanuel Vadotexamples:
85*b2d2a78aSEmmanuel Vadot  - |
86*b2d2a78aSEmmanuel Vadot    #include <dt-bindings/interrupt-controller/arm-gic.h>
87*b2d2a78aSEmmanuel Vadot    tlmm: pinctrl@1000000 {
88*b2d2a78aSEmmanuel Vadot        compatible = "qcom,ipq4019-pinctrl";
89*b2d2a78aSEmmanuel Vadot        reg = <0x01000000 0x300000>;
90*b2d2a78aSEmmanuel Vadot
91*b2d2a78aSEmmanuel Vadot        gpio-controller;
92*b2d2a78aSEmmanuel Vadot        #gpio-cells = <2>;
93*b2d2a78aSEmmanuel Vadot        gpio-ranges = <&tlmm 0 0 100>;
94*b2d2a78aSEmmanuel Vadot        interrupt-controller;
95*b2d2a78aSEmmanuel Vadot        #interrupt-cells = <2>;
96*b2d2a78aSEmmanuel Vadot        interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
97*b2d2a78aSEmmanuel Vadot
98*b2d2a78aSEmmanuel Vadot        uart-state {
99*b2d2a78aSEmmanuel Vadot            pins = "gpio16", "gpio17";
100*b2d2a78aSEmmanuel Vadot            function = "blsp_uart0";
101*b2d2a78aSEmmanuel Vadot            bias-disable;
102*b2d2a78aSEmmanuel Vadot        };
103*b2d2a78aSEmmanuel Vadot    };
104