xref: /openbmc/linux/Documentation/devicetree/bindings/pinctrl/qcom,apq8064-pinctrl.txt (revision c39f2d9db0fd81ea20bb5cce9b3f082ca63753e2)
155f5587aSBjorn AnderssonQualcomm APQ8064 TLMM block
255f5587aSBjorn Andersson
355f5587aSBjorn AnderssonRequired properties:
455f5587aSBjorn Andersson- compatible: "qcom,apq8064-pinctrl"
555f5587aSBjorn Andersson- reg: Should be the base address and length of the TLMM block.
655f5587aSBjorn Andersson- interrupts: Should be the parent IRQ of the TLMM block.
755f5587aSBjorn Andersson- interrupt-controller: Marks the device node as an interrupt controller.
855f5587aSBjorn Andersson- #interrupt-cells: Should be two.
955f5587aSBjorn Andersson- gpio-controller: Marks the device node as a GPIO controller.
1055f5587aSBjorn Andersson- #gpio-cells : Should be two.
1155f5587aSBjorn Andersson                The first cell is the gpio pin number and the
1255f5587aSBjorn Andersson                second cell is used for optional parameters.
13c1e802f6SChristian Lamparter- gpio-ranges: see ../gpio/gpio.txt
14c1e802f6SChristian Lamparter
15c1e802f6SChristian LamparterOptional properties:
16c1e802f6SChristian Lamparter
17c1e802f6SChristian Lamparter- gpio-reserved-ranges: see ../gpio/gpio.txt
1855f5587aSBjorn Andersson
1955f5587aSBjorn AnderssonPlease refer to ../gpio/gpio.txt and ../interrupt-controller/interrupts.txt for
2055f5587aSBjorn Anderssona general description of GPIO and interrupt bindings.
2155f5587aSBjorn Andersson
2255f5587aSBjorn AnderssonPlease refer to pinctrl-bindings.txt in this directory for details of the
2355f5587aSBjorn Anderssoncommon pinctrl bindings used by client devices, including the meaning of the
2455f5587aSBjorn Anderssonphrase "pin configuration node".
2555f5587aSBjorn Andersson
26a0e27f51SSoren BrinkmannQualcomm's pin configuration nodes act as a container for an arbitrary number of
2755f5587aSBjorn Anderssonsubnodes. Each of these subnodes represents some desired configuration for a
2855f5587aSBjorn Anderssonpin, a group, or a list of pins or groups. This configuration can include the
2955f5587aSBjorn Anderssonmux function to select on those pin(s)/group(s), and various pin configuration
3055f5587aSBjorn Anderssonparameters, such as pull-up, drive strength, etc.
3155f5587aSBjorn Andersson
3255f5587aSBjorn AnderssonThe name of each subnode is not important; all subnodes should be enumerated
3355f5587aSBjorn Anderssonand processed purely based on their content.
3455f5587aSBjorn Andersson
3555f5587aSBjorn AnderssonEach subnode only affects those parameters that are explicitly listed. In
3655f5587aSBjorn Anderssonother words, a subnode that lists a mux function but no pin configuration
3755f5587aSBjorn Anderssonparameters implies no information about any pin configuration parameters.
3855f5587aSBjorn AnderssonSimilarly, a pin subnode that describes a pullup parameter implies no
3955f5587aSBjorn Anderssoninformation about e.g. the mux function.
4055f5587aSBjorn Andersson
4155f5587aSBjorn Andersson
4255f5587aSBjorn AnderssonThe following generic properties as defined in pinctrl-bindings.txt are valid
4355f5587aSBjorn Anderssonto specify in a pin configuration subnode:
4455f5587aSBjorn Andersson
45*c50495aaSChristian Lamparter pins, function, bias-disable, bias-pull-down, bias-pull-up, drive-strength,
4655f5587aSBjorn Andersson output-low, output-high.
4755f5587aSBjorn Andersson
4855f5587aSBjorn AnderssonNon-empty subnodes must specify the 'pins' property.
4955f5587aSBjorn Andersson
5055f5587aSBjorn AnderssonValid values for pins are:
5155f5587aSBjorn Andersson  gpio0-gpio89
5255f5587aSBjorn Andersson
5355f5587aSBjorn AnderssonValid values for function are:
542c771084SVinay Simha BN  cam_mclk, codec_mic_i2s, codec_spkr_i2s, gp_clk_0a, gp_clk_0b, gp_clk_1a,
552c771084SVinay Simha BN  gp_clk_1b, gp_clk_2a, gp_clk_2b, gpio, gsbi1, gsbi2, gsbi3, gsbi4,
5655f5587aSBjorn Andersson  gsbi4_cam_i2c, gsbi5, gsbi5_spi_cs1, gsbi5_spi_cs2, gsbi5_spi_cs3, gsbi6,
5755f5587aSBjorn Andersson  gsbi6_spi_cs1, gsbi6_spi_cs2, gsbi6_spi_cs3, gsbi7, gsbi7_spi_cs1,
5855f5587aSBjorn Andersson  gsbi7_spi_cs2, gsbi7_spi_cs3, gsbi_cam_i2c, hdmi, mi2s, riva_bt, riva_fm,
5979c62cddSPramod Gurav  riva_wlan, sdc2, sdc4, slimbus, spkr_i2s, tsif1, tsif2, usb2_hsic, ps_hold
6055f5587aSBjorn Andersson
6155f5587aSBjorn AnderssonExample:
6255f5587aSBjorn Andersson
6355f5587aSBjorn Andersson	msmgpio: pinctrl@800000 {
6455f5587aSBjorn Andersson		compatible = "qcom,apq8064-pinctrl";
6555f5587aSBjorn Andersson		reg = <0x800000 0x4000>;
6655f5587aSBjorn Andersson
6755f5587aSBjorn Andersson		gpio-controller;
6855f5587aSBjorn Andersson		#gpio-cells = <2>;
6955f5587aSBjorn Andersson		interrupt-controller;
7055f5587aSBjorn Andersson		#interrupt-cells = <2>;
710252d6a2SBjorn Andersson		interrupts = <0 16 0x4>;
7255f5587aSBjorn Andersson
7355f5587aSBjorn Andersson		pinctrl-names = "default";
7455f5587aSBjorn Andersson		pinctrl-0 = <&gsbi5_uart_default>;
75c1e802f6SChristian Lamparter		gpio-ranges = <&msmgpio 0 0 90>;
7655f5587aSBjorn Andersson
7755f5587aSBjorn Andersson		gsbi5_uart_default: gsbi5_uart_default {
7855f5587aSBjorn Andersson			mux {
7955f5587aSBjorn Andersson				pins = "gpio51", "gpio52";
8055f5587aSBjorn Andersson				function = "gsbi5";
8155f5587aSBjorn Andersson			};
8255f5587aSBjorn Andersson
8355f5587aSBjorn Andersson			tx {
8455f5587aSBjorn Andersson				pins = "gpio51";
8555f5587aSBjorn Andersson				drive-strength = <4>;
8655f5587aSBjorn Andersson				bias-disable;
8755f5587aSBjorn Andersson			};
8855f5587aSBjorn Andersson
8955f5587aSBjorn Andersson			rx {
9055f5587aSBjorn Andersson				pins = "gpio52";
9155f5587aSBjorn Andersson				drive-strength = <2>;
9255f5587aSBjorn Andersson				bias-pull-up;
9355f5587aSBjorn Andersson			};
9455f5587aSBjorn Andersson		};
9555f5587aSBjorn Andersson	};
96