xref: /openbmc/linux/Documentation/devicetree/bindings/pinctrl/qcom,apq8084-pinctrl.txt (revision 0898782247ae533d1f4e47a06bc5d4870931b284)
1a9d490c5SGeorgi DjakovQualcomm APQ8084 TLMM block
2a9d490c5SGeorgi Djakov
3a9d490c5SGeorgi DjakovThis binding describes the Top Level Mode Multiplexer block found in the
4a9d490c5SGeorgi DjakovMSM8960 platform.
5a9d490c5SGeorgi Djakov
6a9d490c5SGeorgi Djakov- compatible:
7a9d490c5SGeorgi Djakov	Usage: required
8a9d490c5SGeorgi Djakov	Value type: <string>
9a9d490c5SGeorgi Djakov	Definition: must be "qcom,apq8084-pinctrl"
10a9d490c5SGeorgi Djakov
11a9d490c5SGeorgi Djakov- reg:
12a9d490c5SGeorgi Djakov	Usage: required
13a9d490c5SGeorgi Djakov	Value type: <prop-encoded-array>
14a9d490c5SGeorgi Djakov	Definition: the base address and size of the TLMM register space.
15a9d490c5SGeorgi Djakov
16a9d490c5SGeorgi Djakov- interrupts:
17a9d490c5SGeorgi Djakov	Usage: required
18a9d490c5SGeorgi Djakov	Value type: <prop-encoded-array>
19a9d490c5SGeorgi Djakov	Definition: should specify the TLMM summary IRQ.
20a9d490c5SGeorgi Djakov
21a9d490c5SGeorgi Djakov- interrupt-controller:
22a9d490c5SGeorgi Djakov	Usage: required
23a9d490c5SGeorgi Djakov	Value type: <none>
24a9d490c5SGeorgi Djakov	Definition: identifies this node as an interrupt controller
25a9d490c5SGeorgi Djakov
26a9d490c5SGeorgi Djakov- #interrupt-cells:
27a9d490c5SGeorgi Djakov	Usage: required
28a9d490c5SGeorgi Djakov	Value type: <u32>
29a9d490c5SGeorgi Djakov	Definition: must be 2. Specifying the pin number and flags, as defined
30a9d490c5SGeorgi Djakov		    in <dt-bindings/interrupt-controller/irq.h>
31a9d490c5SGeorgi Djakov
32a9d490c5SGeorgi Djakov- gpio-controller:
33a9d490c5SGeorgi Djakov	Usage: required
34a9d490c5SGeorgi Djakov	Value type: <none>
35a9d490c5SGeorgi Djakov	Definition: identifies this node as a gpio controller
36a9d490c5SGeorgi Djakov
37a9d490c5SGeorgi Djakov- #gpio-cells:
38a9d490c5SGeorgi Djakov	Usage: required
39a9d490c5SGeorgi Djakov	Value type: <u32>
40a9d490c5SGeorgi Djakov	Definition: must be 2. Specifying the pin number and flags, as defined
41a9d490c5SGeorgi Djakov		    in <dt-bindings/gpio/gpio.h>
42a9d490c5SGeorgi Djakov
43c1e802f6SChristian Lamparter- gpio-ranges:
44c1e802f6SChristian Lamparter	Usage: required
45c1e802f6SChristian Lamparter	Definition:  see ../gpio/gpio.txt
46c1e802f6SChristian Lamparter
47c1e802f6SChristian Lamparter- gpio-reserved-ranges:
48c1e802f6SChristian Lamparter	Usage: optional
49c1e802f6SChristian Lamparter	Definition: see ../gpio/gpio.txt
50c1e802f6SChristian Lamparter
51a9d490c5SGeorgi DjakovPlease refer to ../gpio/gpio.txt and ../interrupt-controller/interrupts.txt for
52a9d490c5SGeorgi Djakova general description of GPIO and interrupt bindings.
53a9d490c5SGeorgi Djakov
54a9d490c5SGeorgi DjakovPlease refer to pinctrl-bindings.txt in this directory for details of the
55a9d490c5SGeorgi Djakovcommon pinctrl bindings used by client devices, including the meaning of the
56a9d490c5SGeorgi Djakovphrase "pin configuration node".
57a9d490c5SGeorgi Djakov
58a0e27f51SSoren BrinkmannThe pin configuration nodes act as a container for an arbitrary number of
59a9d490c5SGeorgi Djakovsubnodes. Each of these subnodes represents some desired configuration for a
60a9d490c5SGeorgi Djakovpin, a group, or a list of pins or groups. This configuration can include the
61a9d490c5SGeorgi Djakovmux function to select on those pin(s)/group(s), and various pin configuration
62a9d490c5SGeorgi Djakovparameters, such as pull-up, drive strength, etc.
63a9d490c5SGeorgi Djakov
64a9d490c5SGeorgi Djakov
65a9d490c5SGeorgi DjakovPIN CONFIGURATION NODES:
66a9d490c5SGeorgi Djakov
67a9d490c5SGeorgi DjakovThe name of each subnode is not important; all subnodes should be enumerated
68a9d490c5SGeorgi Djakovand processed purely based on their content.
69a9d490c5SGeorgi Djakov
70a9d490c5SGeorgi DjakovEach subnode only affects those parameters that are explicitly listed. In
71a9d490c5SGeorgi Djakovother words, a subnode that lists a mux function but no pin configuration
72a9d490c5SGeorgi Djakovparameters implies no information about any pin configuration parameters.
73a9d490c5SGeorgi DjakovSimilarly, a pin subnode that describes a pullup parameter implies no
74a9d490c5SGeorgi Djakovinformation about e.g. the mux function.
75a9d490c5SGeorgi Djakov
76a9d490c5SGeorgi Djakov
77a9d490c5SGeorgi DjakovThe following generic properties as defined in pinctrl-bindings.txt are valid
78a9d490c5SGeorgi Djakovto specify in a pin configuration subnode:
79a9d490c5SGeorgi Djakov
80a9d490c5SGeorgi Djakov- pins:
81a9d490c5SGeorgi Djakov	Usage: required
82a9d490c5SGeorgi Djakov	Value type: <string-array>
83a9d490c5SGeorgi Djakov	Definition: List of gpio pins affected by the properties specified in
84a9d490c5SGeorgi Djakov		    this subnode.  Valid pins are:
85a9d490c5SGeorgi Djakov		    gpio0-gpio146,
86a9d490c5SGeorgi Djakov		    sdc1_clk,
87a9d490c5SGeorgi Djakov		    sdc1_cmd,
88a9d490c5SGeorgi Djakov		    sdc1_data
89a9d490c5SGeorgi Djakov		    sdc2_clk,
90a9d490c5SGeorgi Djakov		    sdc2_cmd,
91a9d490c5SGeorgi Djakov		    sdc2_data
92a9d490c5SGeorgi Djakov
93a9d490c5SGeorgi Djakov- function:
94a9d490c5SGeorgi Djakov	Usage: required
95a9d490c5SGeorgi Djakov	Value type: <string>
96a9d490c5SGeorgi Djakov	Definition: Specify the alternative function to be configured for the
97a9d490c5SGeorgi Djakov		    specified pins. Functions are only valid for gpio pins.
98a9d490c5SGeorgi Djakov		    Valid values are:
99a9d490c5SGeorgi Djakov		    adsp_ext, audio_ref, blsp_i2c1, blsp_i2c2, blsp_i2c3,
100a9d490c5SGeorgi Djakov		    blsp_i2c4, blsp_i2c5, blsp_i2c6, blsp_i2c7, blsp_i2c8,
101a9d490c5SGeorgi Djakov		    blsp_i2c9, blsp_i2c10, blsp_i2c11, blsp_i2c12,
102a9d490c5SGeorgi Djakov		    blsp_spi1, blsp_spi2, blsp_spi3, blsp_spi4, blsp_spi5,
103a9d490c5SGeorgi Djakov		    blsp_spi6, blsp_spi7, blsp_spi8, blsp_spi9, blsp_spi10,
104a9d490c5SGeorgi Djakov		    blsp_spi11, blsp_spi12, blsp_uart1, blsp_uart2, blsp_uart3,
105a9d490c5SGeorgi Djakov		    blsp_uart4, blsp_uart5, blsp_uart6, blsp_uart7, blsp_uart8,
106a9d490c5SGeorgi Djakov		    blsp_uart9, blsp_uart10, blsp_uart11, blsp_uart12,
107a9d490c5SGeorgi Djakov		    blsp_uim1, blsp_uim2, blsp_uim3, blsp_uim4, blsp_uim5,
108a9d490c5SGeorgi Djakov		    blsp_uim6, blsp_uim7, blsp_uim8, blsp_uim9, blsp_uim10,
109a9d490c5SGeorgi Djakov		    blsp_uim11, blsp_uim12, cam_mclk0, cam_mclk1, cam_mclk2,
110a9d490c5SGeorgi Djakov		    cam_mclk3, cci_async, cci_async_in0, cci_i2c0, cci_i2c1,
111a9d490c5SGeorgi Djakov		    cci_timer0, cci_timer1, cci_timer2, cci_timer3, cci_timer4,
112a9d490c5SGeorgi Djakov		    edp_hpd, gcc_gp1, gcc_gp2, gcc_gp3, gcc_obt, gcc_vtt,i
113a9d490c5SGeorgi Djakov		    gp_mn, gp_pdm0, gp_pdm1, gp_pdm2, gp0_clk, gp1_clk, gpio,
114a9d490c5SGeorgi Djakov		    hdmi_cec, hdmi_ddc, hdmi_dtest, hdmi_hpd, hdmi_rcv, hsic,
115a9d490c5SGeorgi Djakov		    ldo_en, ldo_update, mdp_vsync, pci_e0, pci_e0_n, pci_e0_rst,
116a9d490c5SGeorgi Djakov		    pci_e1, pci_e1_rst, pci_e1_rst_n, pci_e1_clkreq_n, pri_mi2s,
117a9d490c5SGeorgi Djakov		    qua_mi2s, sata_act, sata_devsleep, sata_devsleep_n,
118a9d490c5SGeorgi Djakov		    sd_write, sdc_emmc_mode, sdc3, sdc4, sec_mi2s, slimbus,
119a9d490c5SGeorgi Djakov		    spdif_tx, spkr_i2s, spkr_i2s_ws, spss_geni, ter_mi2s, tsif1,
120a9d490c5SGeorgi Djakov		    tsif2, uim, uim_batt_alarm
121a9d490c5SGeorgi Djakov
122a9d490c5SGeorgi Djakov- bias-disable:
123a9d490c5SGeorgi Djakov	Usage: optional
124a9d490c5SGeorgi Djakov	Value type: <none>
125*e6187953SColin Ian King	Definition: The specified pins should be configured as no pull.
126a9d490c5SGeorgi Djakov
127a9d490c5SGeorgi Djakov- bias-pull-down:
128a9d490c5SGeorgi Djakov	Usage: optional
129a9d490c5SGeorgi Djakov	Value type: <none>
130*e6187953SColin Ian King	Definition: The specified pins should be configured as pull down.
131a9d490c5SGeorgi Djakov
132a9d490c5SGeorgi Djakov- bias-pull-up:
133a9d490c5SGeorgi Djakov	Usage: optional
134a9d490c5SGeorgi Djakov	Value type: <none>
135*e6187953SColin Ian King	Definition: The specified pins should be configured as pull up.
136a9d490c5SGeorgi Djakov
137a9d490c5SGeorgi Djakov- output-high:
138a9d490c5SGeorgi Djakov	Usage: optional
139a9d490c5SGeorgi Djakov	Value type: <none>
140a9d490c5SGeorgi Djakov	Definition: The specified pins are configured in output mode, driven
141a9d490c5SGeorgi Djakov		    high.
142a9d490c5SGeorgi Djakov		    Not valid for sdc pins.
143a9d490c5SGeorgi Djakov
144a9d490c5SGeorgi Djakov- output-low:
145a9d490c5SGeorgi Djakov	Usage: optional
146a9d490c5SGeorgi Djakov	Value type: <none>
147a9d490c5SGeorgi Djakov	Definition: The specified pins are configured in output mode, driven
148a9d490c5SGeorgi Djakov		    low.
149a9d490c5SGeorgi Djakov		    Not valid for sdc pins.
150a9d490c5SGeorgi Djakov
151a9d490c5SGeorgi Djakov- drive-strength:
152a9d490c5SGeorgi Djakov	Usage: optional
153a9d490c5SGeorgi Djakov	Value type: <u32>
154a9d490c5SGeorgi Djakov	Definition: Selects the drive strength for the specified pins, in mA.
155a9d490c5SGeorgi Djakov		    Valid values are: 2, 4, 6, 8, 10, 12, 14 and 16
156a9d490c5SGeorgi Djakov
157a9d490c5SGeorgi DjakovExample:
158a9d490c5SGeorgi Djakov
159a9d490c5SGeorgi Djakov	tlmm: pinctrl@fd510000 {
160a9d490c5SGeorgi Djakov		compatible = "qcom,apq8084-pinctrl";
161a9d490c5SGeorgi Djakov		reg = <0xfd510000 0x4000>;
162a9d490c5SGeorgi Djakov
163a9d490c5SGeorgi Djakov		gpio-controller;
164a9d490c5SGeorgi Djakov		#gpio-cells = <2>;
165c1e802f6SChristian Lamparter		gpio-ranges = <&tlmm 0 0 147>;
166a9d490c5SGeorgi Djakov		interrupt-controller;
167a9d490c5SGeorgi Djakov		#interrupt-cells = <2>;
168a9d490c5SGeorgi Djakov		interrupts = <0 208 0>;
169a9d490c5SGeorgi Djakov
170a9d490c5SGeorgi Djakov		uart2: uart2-default {
171a9d490c5SGeorgi Djakov			mux {
172a9d490c5SGeorgi Djakov				pins = "gpio4", "gpio5";
173a9d490c5SGeorgi Djakov				function = "blsp_uart2";
174a9d490c5SGeorgi Djakov			};
175a9d490c5SGeorgi Djakov
176a9d490c5SGeorgi Djakov			tx {
177a9d490c5SGeorgi Djakov				pins = "gpio4";
178a9d490c5SGeorgi Djakov				drive-strength = <4>;
179a9d490c5SGeorgi Djakov				bias-disable;
180a9d490c5SGeorgi Djakov			};
181a9d490c5SGeorgi Djakov
182a9d490c5SGeorgi Djakov			rx {
183a9d490c5SGeorgi Djakov				pins = "gpio5";
184a9d490c5SGeorgi Djakov				drive-strength = <2>;
185a9d490c5SGeorgi Djakov				bias-pull-up;
186a9d490c5SGeorgi Djakov			};
187a9d490c5SGeorgi Djakov		};
188a9d490c5SGeorgi Djakov	};
189