xref: /freebsd/sys/contrib/device-tree/Bindings/pinctrl/qcom,ipq4019-pinctrl.txt (revision 6be3386466ab79a84b48429ae66244f21526d3df)
1c66ec88fSEmmanuel VadotQualcomm Atheros IPQ4019 TLMM block
2c66ec88fSEmmanuel Vadot
3c66ec88fSEmmanuel VadotThis is the Top Level Mode Multiplexor block found on the Qualcomm IPQ8019
4c66ec88fSEmmanuel Vadotplatform, it provides pinctrl, pinmux, pinconf, and gpiolib facilities.
5c66ec88fSEmmanuel Vadot
6c66ec88fSEmmanuel VadotRequired properties:
7c66ec88fSEmmanuel Vadot- compatible: "qcom,ipq4019-pinctrl"
8c66ec88fSEmmanuel Vadot- reg: Should be the base address and length of the TLMM block.
9c66ec88fSEmmanuel Vadot- interrupts: Should be the parent IRQ of the TLMM block.
10c66ec88fSEmmanuel Vadot- interrupt-controller: Marks the device node as an interrupt controller.
11c66ec88fSEmmanuel Vadot- #interrupt-cells: Should be two.
12c66ec88fSEmmanuel Vadot- gpio-controller: Marks the device node as a GPIO controller.
13c66ec88fSEmmanuel Vadot- #gpio-cells : Should be two.
14c66ec88fSEmmanuel Vadot                The first cell is the gpio pin number and the
15c66ec88fSEmmanuel Vadot                second cell is used for optional parameters.
16c66ec88fSEmmanuel Vadot- gpio-ranges: see ../gpio/gpio.txt
17c66ec88fSEmmanuel Vadot
18c66ec88fSEmmanuel VadotOptional properties:
19c66ec88fSEmmanuel Vadot
20c66ec88fSEmmanuel Vadot- gpio-reserved-ranges: see ../gpio/gpio.txt
21c66ec88fSEmmanuel Vadot
22c66ec88fSEmmanuel VadotPlease refer to ../gpio/gpio.txt and ../interrupt-controller/interrupts.txt for
23c66ec88fSEmmanuel Vadota general description of GPIO and interrupt bindings.
24c66ec88fSEmmanuel Vadot
25c66ec88fSEmmanuel VadotPlease refer to pinctrl-bindings.txt in this directory for details of the
26c66ec88fSEmmanuel Vadotcommon pinctrl bindings used by client devices, including the meaning of the
27c66ec88fSEmmanuel Vadotphrase "pin configuration node".
28c66ec88fSEmmanuel Vadot
29*6be33864SEmmanuel VadotThe pin configuration nodes act as a container for an arbitrary number of
30c66ec88fSEmmanuel Vadotsubnodes. Each of these subnodes represents some desired configuration for a
31c66ec88fSEmmanuel Vadotpin, a group, or a list of pins or groups. This configuration can include the
32c66ec88fSEmmanuel Vadotmux function to select on those pin(s)/group(s), and various pin configuration
33c66ec88fSEmmanuel Vadotparameters, such as pull-up, drive strength, etc.
34c66ec88fSEmmanuel Vadot
35c66ec88fSEmmanuel VadotThe name of each subnode is not important; all subnodes should be enumerated
36c66ec88fSEmmanuel Vadotand processed purely based on their content.
37c66ec88fSEmmanuel Vadot
38c66ec88fSEmmanuel VadotEach subnode only affects those parameters that are explicitly listed. In
39c66ec88fSEmmanuel Vadotother words, a subnode that lists a mux function but no pin configuration
40c66ec88fSEmmanuel Vadotparameters implies no information about any pin configuration parameters.
41c66ec88fSEmmanuel VadotSimilarly, a pin subnode that describes a pullup parameter implies no
42c66ec88fSEmmanuel Vadotinformation about e.g. the mux function.
43c66ec88fSEmmanuel Vadot
44c66ec88fSEmmanuel Vadot
45c66ec88fSEmmanuel VadotThe following generic properties as defined in pinctrl-bindings.txt are valid
46c66ec88fSEmmanuel Vadotto specify in a pin configuration subnode:
47c66ec88fSEmmanuel Vadot pins, function, bias-disable, bias-pull-down, bias-pull-up, drive-open-drain,
48c66ec88fSEmmanuel Vadot drive-strength.
49c66ec88fSEmmanuel Vadot
50c66ec88fSEmmanuel VadotNon-empty subnodes must specify the 'pins' property.
51c66ec88fSEmmanuel VadotNote that not all properties are valid for all pins.
52c66ec88fSEmmanuel Vadot
53c66ec88fSEmmanuel Vadot
54c66ec88fSEmmanuel VadotValid values for qcom,pins are:
55c66ec88fSEmmanuel Vadot  gpio0-gpio99
56c66ec88fSEmmanuel Vadot    Supports mux, bias and drive-strength
57c66ec88fSEmmanuel Vadot
58c66ec88fSEmmanuel VadotValid values for qcom,function are:
59c66ec88fSEmmanuel Vadotaud_pin, audio_pwm, blsp_i2c0, blsp_i2c1, blsp_spi0, blsp_spi1, blsp_uart0,
60c66ec88fSEmmanuel Vadotblsp_uart1, chip_rst, gpio, i2s_rx, i2s_spdif_in, i2s_spdif_out, i2s_td, i2s_tx,
61c66ec88fSEmmanuel Vadotjtag, led0, led1, led2, led3, led4, led5, led6, led7, led8, led9, led10, led11,
62c66ec88fSEmmanuel Vadotmdc, mdio, pcie, pmu, prng_rosc, qpic, rgmii, rmii, sdio, smart0, smart1,
63c66ec88fSEmmanuel Vadotsmart2, smart3, tm, wifi0, wifi1
64c66ec88fSEmmanuel Vadot
65c66ec88fSEmmanuel VadotExample:
66c66ec88fSEmmanuel Vadot
67c66ec88fSEmmanuel Vadot	tlmm: pinctrl@1000000 {
68c66ec88fSEmmanuel Vadot		compatible = "qcom,ipq4019-pinctrl";
69c66ec88fSEmmanuel Vadot		reg = <0x1000000 0x300000>;
70c66ec88fSEmmanuel Vadot
71c66ec88fSEmmanuel Vadot		gpio-controller;
72c66ec88fSEmmanuel Vadot		#gpio-cells = <2>;
73c66ec88fSEmmanuel Vadot		gpio-ranges = <&tlmm 0 0 100>;
74c66ec88fSEmmanuel Vadot		interrupt-controller;
75c66ec88fSEmmanuel Vadot		#interrupt-cells = <2>;
76c66ec88fSEmmanuel Vadot		interrupts = <0 208 0>;
77c66ec88fSEmmanuel Vadot
78c66ec88fSEmmanuel Vadot		serial_pins: serial_pinmux {
79c66ec88fSEmmanuel Vadot			mux {
80c66ec88fSEmmanuel Vadot				pins = "gpio60", "gpio61";
81c66ec88fSEmmanuel Vadot				function = "blsp_uart0";
82c66ec88fSEmmanuel Vadot				bias-disable;
83c66ec88fSEmmanuel Vadot			};
84c66ec88fSEmmanuel Vadot		};
85c66ec88fSEmmanuel Vadot	};
86