xref: /openbmc/linux/Documentation/devicetree/bindings/pinctrl/qcom,ipq4019-pinctrl.txt (revision cbecf716ca618fd44feda6bd9a64a8179d031fc5)
1e260d2bbSVaradarajan NarayananQualcomm Atheros IPQ4019 TLMM block
2e260d2bbSVaradarajan Narayanan
3e260d2bbSVaradarajan NarayananThis is the Top Level Mode Multiplexor block found on the Qualcomm IPQ8019
4e260d2bbSVaradarajan Narayananplatform, it provides pinctrl, pinmux, pinconf, and gpiolib facilities.
5e260d2bbSVaradarajan Narayanan
6e260d2bbSVaradarajan NarayananRequired properties:
7e260d2bbSVaradarajan Narayanan- compatible: "qcom,ipq4019-pinctrl"
8e260d2bbSVaradarajan Narayanan- reg: Should be the base address and length of the TLMM block.
9e260d2bbSVaradarajan Narayanan- interrupts: Should be the parent IRQ of the TLMM block.
10e260d2bbSVaradarajan Narayanan- interrupt-controller: Marks the device node as an interrupt controller.
11e260d2bbSVaradarajan Narayanan- #interrupt-cells: Should be two.
12e260d2bbSVaradarajan Narayanan- gpio-controller: Marks the device node as a GPIO controller.
13e260d2bbSVaradarajan Narayanan- #gpio-cells : Should be two.
14e260d2bbSVaradarajan Narayanan                The first cell is the gpio pin number and the
15e260d2bbSVaradarajan Narayanan                second cell is used for optional parameters.
16c1e802f6SChristian Lamparter- gpio-ranges: see ../gpio/gpio.txt
17c1e802f6SChristian Lamparter
18c1e802f6SChristian LamparterOptional properties:
19c1e802f6SChristian Lamparter
20c1e802f6SChristian Lamparter- gpio-reserved-ranges: see ../gpio/gpio.txt
21e260d2bbSVaradarajan Narayanan
22e260d2bbSVaradarajan NarayananPlease refer to ../gpio/gpio.txt and ../interrupt-controller/interrupts.txt for
23e260d2bbSVaradarajan Narayanana general description of GPIO and interrupt bindings.
24e260d2bbSVaradarajan Narayanan
25e260d2bbSVaradarajan NarayananPlease refer to pinctrl-bindings.txt in this directory for details of the
26e260d2bbSVaradarajan Narayanancommon pinctrl bindings used by client devices, including the meaning of the
27e260d2bbSVaradarajan Narayananphrase "pin configuration node".
28e260d2bbSVaradarajan Narayanan
29*ab6ccab6SNaoki HayamaThe pin configuration nodes act as a container for an arbitrary number of
30e260d2bbSVaradarajan Narayanansubnodes. Each of these subnodes represents some desired configuration for a
31e260d2bbSVaradarajan Narayananpin, a group, or a list of pins or groups. This configuration can include the
32e260d2bbSVaradarajan Narayananmux function to select on those pin(s)/group(s), and various pin configuration
33e260d2bbSVaradarajan Narayananparameters, such as pull-up, drive strength, etc.
34e260d2bbSVaradarajan Narayanan
35e260d2bbSVaradarajan NarayananThe name of each subnode is not important; all subnodes should be enumerated
36e260d2bbSVaradarajan Narayananand processed purely based on their content.
37e260d2bbSVaradarajan Narayanan
38e260d2bbSVaradarajan NarayananEach subnode only affects those parameters that are explicitly listed. In
39e260d2bbSVaradarajan Narayananother words, a subnode that lists a mux function but no pin configuration
40e260d2bbSVaradarajan Narayananparameters implies no information about any pin configuration parameters.
41e260d2bbSVaradarajan NarayananSimilarly, a pin subnode that describes a pullup parameter implies no
42e260d2bbSVaradarajan Narayananinformation about e.g. the mux function.
43e260d2bbSVaradarajan Narayanan
44e260d2bbSVaradarajan Narayanan
45e260d2bbSVaradarajan NarayananThe following generic properties as defined in pinctrl-bindings.txt are valid
46e260d2bbSVaradarajan Narayananto specify in a pin configuration subnode:
4799d19f5aSBrian Norris pins, function, bias-disable, bias-pull-down, bias-pull-up, drive-open-drain,
4899d19f5aSBrian Norris drive-strength.
49e260d2bbSVaradarajan Narayanan
50e260d2bbSVaradarajan NarayananNon-empty subnodes must specify the 'pins' property.
51e260d2bbSVaradarajan NarayananNote that not all properties are valid for all pins.
52e260d2bbSVaradarajan Narayanan
53e260d2bbSVaradarajan Narayanan
54e260d2bbSVaradarajan NarayananValid values for qcom,pins are:
55e260d2bbSVaradarajan Narayanan  gpio0-gpio99
56e260d2bbSVaradarajan Narayanan    Supports mux, bias and drive-strength
57e260d2bbSVaradarajan Narayanan
58e260d2bbSVaradarajan NarayananValid values for qcom,function are:
591f5f0f2aSChristian Lamparteraud_pin, audio_pwm, blsp_i2c0, blsp_i2c1, blsp_spi0, blsp_spi1, blsp_uart0,
601f5f0f2aSChristian Lamparterblsp_uart1, chip_rst, gpio, i2s_rx, i2s_spdif_in, i2s_spdif_out, i2s_td, i2s_tx,
611f5f0f2aSChristian Lamparterjtag, led0, led1, led2, led3, led4, led5, led6, led7, led8, led9, led10, led11,
621f5f0f2aSChristian Lampartermdc, mdio, pcie, pmu, prng_rosc, qpic, rgmii, rmii, sdio, smart0, smart1,
631f5f0f2aSChristian Lampartersmart2, smart3, tm, wifi0, wifi1
64e260d2bbSVaradarajan Narayanan
65e260d2bbSVaradarajan NarayananExample:
66e260d2bbSVaradarajan Narayanan
67e260d2bbSVaradarajan Narayanan	tlmm: pinctrl@1000000 {
68e260d2bbSVaradarajan Narayanan		compatible = "qcom,ipq4019-pinctrl";
69e260d2bbSVaradarajan Narayanan		reg = <0x1000000 0x300000>;
70e260d2bbSVaradarajan Narayanan
71e260d2bbSVaradarajan Narayanan		gpio-controller;
72e260d2bbSVaradarajan Narayanan		#gpio-cells = <2>;
73c1e802f6SChristian Lamparter		gpio-ranges = <&tlmm 0 0 100>;
74e260d2bbSVaradarajan Narayanan		interrupt-controller;
75e260d2bbSVaradarajan Narayanan		#interrupt-cells = <2>;
76e260d2bbSVaradarajan Narayanan		interrupts = <0 208 0>;
77e260d2bbSVaradarajan Narayanan
78e260d2bbSVaradarajan Narayanan		serial_pins: serial_pinmux {
79e260d2bbSVaradarajan Narayanan			mux {
80e260d2bbSVaradarajan Narayanan				pins = "gpio60", "gpio61";
81e260d2bbSVaradarajan Narayanan				function = "blsp_uart0";
82e260d2bbSVaradarajan Narayanan				bias-disable;
83e260d2bbSVaradarajan Narayanan			};
84e260d2bbSVaradarajan Narayanan		};
85e260d2bbSVaradarajan Narayanan	};
86