xref: /openbmc/linux/Documentation/devicetree/bindings/pinctrl/qcom,sm8150-pinctrl.yaml (revision 1ac731c529cd4d6adbce134754b51ff7d822b145)
149b02b60SKrzysztof Kozlowski# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
249b02b60SKrzysztof Kozlowski%YAML 1.2
349b02b60SKrzysztof Kozlowski---
449b02b60SKrzysztof Kozlowski$id: http://devicetree.org/schemas/pinctrl/qcom,sm8150-pinctrl.yaml#
549b02b60SKrzysztof Kozlowski$schema: http://devicetree.org/meta-schemas/core.yaml#
649b02b60SKrzysztof Kozlowski
749b02b60SKrzysztof Kozlowskititle: Qualcomm SM8150 TLMM pin controller
849b02b60SKrzysztof Kozlowski
949b02b60SKrzysztof Kozlowskimaintainers:
1049b02b60SKrzysztof Kozlowski  - Bjorn Andersson <andersson@kernel.org>
1149b02b60SKrzysztof Kozlowski  - Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
1249b02b60SKrzysztof Kozlowski
1349b02b60SKrzysztof Kozlowskidescription:
1449b02b60SKrzysztof Kozlowski  Top Level Mode Multiplexer pin controller in Qualcomm SM8150 SoC.
1549b02b60SKrzysztof Kozlowski
1649b02b60SKrzysztof Kozlowskiproperties:
1749b02b60SKrzysztof Kozlowski  compatible:
1849b02b60SKrzysztof Kozlowski    const: qcom,sm8150-pinctrl
1949b02b60SKrzysztof Kozlowski
2049b02b60SKrzysztof Kozlowski  reg:
2149b02b60SKrzysztof Kozlowski    maxItems: 4
2249b02b60SKrzysztof Kozlowski
2349b02b60SKrzysztof Kozlowski  reg-names:
2449b02b60SKrzysztof Kozlowski    items:
2549b02b60SKrzysztof Kozlowski      - const: west
2649b02b60SKrzysztof Kozlowski      - const: east
2749b02b60SKrzysztof Kozlowski      - const: north
2849b02b60SKrzysztof Kozlowski      - const: south
2949b02b60SKrzysztof Kozlowski
3012a18bb7SKrzysztof Kozlowski  interrupts:
3112a18bb7SKrzysztof Kozlowski    maxItems: 1
3212a18bb7SKrzysztof Kozlowski
3349b02b60SKrzysztof Kozlowski  interrupt-controller: true
3449b02b60SKrzysztof Kozlowski  "#interrupt-cells": true
3549b02b60SKrzysztof Kozlowski  gpio-controller: true
3649b02b60SKrzysztof Kozlowski  "#gpio-cells": true
3749b02b60SKrzysztof Kozlowski  gpio-ranges: true
3849b02b60SKrzysztof Kozlowski  wakeup-parent: true
3949b02b60SKrzysztof Kozlowski
4049b02b60SKrzysztof Kozlowski  gpio-reserved-ranges:
4149b02b60SKrzysztof Kozlowski    minItems: 1
4249b02b60SKrzysztof Kozlowski    maxItems: 88
4349b02b60SKrzysztof Kozlowski
4449b02b60SKrzysztof Kozlowski  gpio-line-names:
4549b02b60SKrzysztof Kozlowski    maxItems: 175
4649b02b60SKrzysztof Kozlowski
4749b02b60SKrzysztof KozlowskipatternProperties:
4849b02b60SKrzysztof Kozlowski  "-state$":
4949b02b60SKrzysztof Kozlowski    oneOf:
5049b02b60SKrzysztof Kozlowski      - $ref: "#/$defs/qcom-sm8150-tlmm-state"
5149b02b60SKrzysztof Kozlowski      - patternProperties:
5249b02b60SKrzysztof Kozlowski          "-pins$":
5349b02b60SKrzysztof Kozlowski            $ref: "#/$defs/qcom-sm8150-tlmm-state"
5449b02b60SKrzysztof Kozlowski        additionalProperties: false
5549b02b60SKrzysztof Kozlowski
5649b02b60SKrzysztof Kozlowski$defs:
5749b02b60SKrzysztof Kozlowski  qcom-sm8150-tlmm-state:
5849b02b60SKrzysztof Kozlowski    type: object
5949b02b60SKrzysztof Kozlowski    description:
6049b02b60SKrzysztof Kozlowski      Pinctrl node's client devices use subnodes for desired pin configuration.
6149b02b60SKrzysztof Kozlowski      Client device subnodes use below standard properties.
6249b02b60SKrzysztof Kozlowski    $ref: qcom,tlmm-common.yaml#/$defs/qcom-tlmm-state
635a81d722SKrzysztof Kozlowski    unevaluatedProperties: false
6449b02b60SKrzysztof Kozlowski
6549b02b60SKrzysztof Kozlowski    properties:
6649b02b60SKrzysztof Kozlowski      pins:
6749b02b60SKrzysztof Kozlowski        description:
6849b02b60SKrzysztof Kozlowski          List of gpio pins affected by the properties specified in this
6949b02b60SKrzysztof Kozlowski          subnode.
7049b02b60SKrzysztof Kozlowski        items:
7149b02b60SKrzysztof Kozlowski          oneOf:
7249b02b60SKrzysztof Kozlowski            - pattern: "^gpio([0-9]|[1-9][0-9]|1[0-6][0-9]|17[0-4])$"
7349b02b60SKrzysztof Kozlowski            - enum: [ sdc2_clk, sdc2_cmd, sdc2_data, ufs_reset ]
7449b02b60SKrzysztof Kozlowski        minItems: 1
7549b02b60SKrzysztof Kozlowski        maxItems: 36
7649b02b60SKrzysztof Kozlowski
7749b02b60SKrzysztof Kozlowski      function:
7849b02b60SKrzysztof Kozlowski        description:
7949b02b60SKrzysztof Kozlowski          Specify the alternative function to be configured for the specified
8049b02b60SKrzysztof Kozlowski          pins.
8149b02b60SKrzysztof Kozlowski
8249b02b60SKrzysztof Kozlowski        enum: [ adsp_ext, agera_pll, aoss_cti, ddr_pxi2, atest_char,
8349b02b60SKrzysztof Kozlowski                atest_char0, atest_char1, atest_char2, atest_char3, audio_ref,
8449b02b60SKrzysztof Kozlowski                atest_usb1, atest_usb2, atest_usb10, atest_usb11, atest_usb12,
85*b19a1d8fSRob Herring                atest_usb13, atest_usb20, atest_usb21, atest_usb22,
8649b02b60SKrzysztof Kozlowski                atest_usb23, btfm_slimbus, cam_mclk, cci_async, cci_i2c,
8749b02b60SKrzysztof Kozlowski                cci_timer0, cci_timer1, cci_timer2, cci_timer3, cci_timer4,
8849b02b60SKrzysztof Kozlowski                cri_trng, cri_trng0, cri_trng1, dbg_out, ddr_bist, ddr_pxi0,
8949b02b60SKrzysztof Kozlowski                ddr_pxi1, ddr_pxi3, edp_hot, edp_lcd, emac_phy, emac_pps,
9049b02b60SKrzysztof Kozlowski                gcc_gp1, gcc_gp2, gcc_gp3, gpio, hs1_mi2s, hs2_mi2s, hs3_mi2s,
9149b02b60SKrzysztof Kozlowski                jitter_bist, lpass_slimbus, mdp_vsync, mdp_vsync0, mdp_vsync1,
9249b02b60SKrzysztof Kozlowski                mdp_vsync2, mdp_vsync3, mss_lte, m_voc, nav_pps, pa_indicator,
9349b02b60SKrzysztof Kozlowski                pci_e0, phase_flag, pll_bypassnl, pll_bist, pci_e1, pll_reset,
9449b02b60SKrzysztof Kozlowski                pri_mi2s, pri_mi2s_ws, prng_rosc, qdss, qdss_cti,
9549b02b60SKrzysztof Kozlowski                qlink_request, qlink_enable, qspi0, qspi1, qspi2, qspi3,
9649b02b60SKrzysztof Kozlowski                qspi_clk, qspi_cs, qua_mi2s, qup0, qup1, qup2, qup3, qup4,
9749b02b60SKrzysztof Kozlowski                qup5, qup6, qup7, qup8, qup9, qup10, qup11, qup12, qup13,
9849b02b60SKrzysztof Kozlowski                qup14, qup15, qup16, qup17, qup18, qup19, qup_l4, qup_l5,
9949b02b60SKrzysztof Kozlowski                qup_l6, rgmii, sdc4, sd_write, sec_mi2s, spkr_i2s, sp_cmu,
10049b02b60SKrzysztof Kozlowski                ter_mi2s, tgu_ch0, tgu_ch1, tgu_ch2, tgu_ch3, tsense_pwm1,
10149b02b60SKrzysztof Kozlowski                tsense_pwm2, tsif1, tsif2, uim1, uim2, uim_batt, usb2phy_ac,
10249b02b60SKrzysztof Kozlowski                usb_phy, vfr_1, vsense_trigger, wlan1_adc0, wlan1_adc1,
10349b02b60SKrzysztof Kozlowski                wlan2_adc0, wlan2_adc1, wmss_reset ]
10449b02b60SKrzysztof Kozlowski
10549b02b60SKrzysztof Kozlowski    required:
10649b02b60SKrzysztof Kozlowski      - pins
10749b02b60SKrzysztof Kozlowski
10849b02b60SKrzysztof KozlowskiallOf:
10949b02b60SKrzysztof Kozlowski  - $ref: /schemas/pinctrl/qcom,tlmm-common.yaml#
11049b02b60SKrzysztof Kozlowski
11149b02b60SKrzysztof Kozlowskirequired:
11249b02b60SKrzysztof Kozlowski  - compatible
11349b02b60SKrzysztof Kozlowski  - reg
11449b02b60SKrzysztof Kozlowski  - reg-names
11549b02b60SKrzysztof Kozlowski
11649b02b60SKrzysztof KozlowskiadditionalProperties: false
11749b02b60SKrzysztof Kozlowski
11849b02b60SKrzysztof Kozlowskiexamples:
11949b02b60SKrzysztof Kozlowski  - |
12049b02b60SKrzysztof Kozlowski    #include <dt-bindings/interrupt-controller/arm-gic.h>
12149b02b60SKrzysztof Kozlowski
12249b02b60SKrzysztof Kozlowski    tlmm: pinctrl@3100000 {
12349b02b60SKrzysztof Kozlowski        compatible = "qcom,sm8150-pinctrl";
12449b02b60SKrzysztof Kozlowski        reg = <0x03100000 0x300000>,
12549b02b60SKrzysztof Kozlowski              <0x03500000 0x300000>,
12649b02b60SKrzysztof Kozlowski              <0x03900000 0x300000>,
12749b02b60SKrzysztof Kozlowski              <0x03d00000 0x300000>;
12849b02b60SKrzysztof Kozlowski        reg-names = "west", "east", "north", "south";
12949b02b60SKrzysztof Kozlowski        interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
13049b02b60SKrzysztof Kozlowski        gpio-ranges = <&tlmm 0 0 176>;
13149b02b60SKrzysztof Kozlowski        gpio-controller;
13249b02b60SKrzysztof Kozlowski        #gpio-cells = <2>;
13349b02b60SKrzysztof Kozlowski        interrupt-controller;
13449b02b60SKrzysztof Kozlowski        #interrupt-cells = <2>;
13549b02b60SKrzysztof Kozlowski        wakeup-parent = <&pdc>;
13649b02b60SKrzysztof Kozlowski
13749b02b60SKrzysztof Kozlowski        qup-spi0-default-state {
13849b02b60SKrzysztof Kozlowski            pins = "gpio0", "gpio1", "gpio2", "gpio3";
13949b02b60SKrzysztof Kozlowski            function = "qup0";
14049b02b60SKrzysztof Kozlowski            drive-strength = <6>;
14149b02b60SKrzysztof Kozlowski            bias-disable;
14249b02b60SKrzysztof Kozlowski        };
14349b02b60SKrzysztof Kozlowski
14449b02b60SKrzysztof Kozlowski        pcie1-default-state {
14549b02b60SKrzysztof Kozlowski            perst-pins {
14649b02b60SKrzysztof Kozlowski                pins = "gpio102";
14749b02b60SKrzysztof Kozlowski                function = "gpio";
14849b02b60SKrzysztof Kozlowski                drive-strength = <2>;
14949b02b60SKrzysztof Kozlowski                bias-pull-down;
15049b02b60SKrzysztof Kozlowski            };
15149b02b60SKrzysztof Kozlowski
15249b02b60SKrzysztof Kozlowski            clkreq-pins {
15349b02b60SKrzysztof Kozlowski                pins = "gpio103";
15449b02b60SKrzysztof Kozlowski                function = "pci_e1";
15549b02b60SKrzysztof Kozlowski                drive-strength = <2>;
15649b02b60SKrzysztof Kozlowski                bias-pull-up;
15749b02b60SKrzysztof Kozlowski            };
15849b02b60SKrzysztof Kozlowski
15949b02b60SKrzysztof Kozlowski            wake-pins {
16049b02b60SKrzysztof Kozlowski                pins = "gpio104";
16149b02b60SKrzysztof Kozlowski                function = "gpio";
16249b02b60SKrzysztof Kozlowski                drive-strength = <2>;
16349b02b60SKrzysztof Kozlowski                bias-pull-up;
16449b02b60SKrzysztof Kozlowski            };
16549b02b60SKrzysztof Kozlowski        };
16649b02b60SKrzysztof Kozlowski    };
167