xref: /openbmc/linux/Documentation/devicetree/bindings/pinctrl/qcom,apq8064-pinctrl.txt (revision a0e27f51ba8a04125c22a95c4d3e98297a7191de)
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.
1355f5587aSBjorn Andersson
1455f5587aSBjorn AnderssonPlease refer to ../gpio/gpio.txt and ../interrupt-controller/interrupts.txt for
1555f5587aSBjorn Anderssona general description of GPIO and interrupt bindings.
1655f5587aSBjorn Andersson
1755f5587aSBjorn AnderssonPlease refer to pinctrl-bindings.txt in this directory for details of the
1855f5587aSBjorn Anderssoncommon pinctrl bindings used by client devices, including the meaning of the
1955f5587aSBjorn Anderssonphrase "pin configuration node".
2055f5587aSBjorn Andersson
21*a0e27f51SSoren BrinkmannQualcomm's pin configuration nodes act as a container for an arbitrary number of
2255f5587aSBjorn Anderssonsubnodes. Each of these subnodes represents some desired configuration for a
2355f5587aSBjorn Anderssonpin, a group, or a list of pins or groups. This configuration can include the
2455f5587aSBjorn Anderssonmux function to select on those pin(s)/group(s), and various pin configuration
2555f5587aSBjorn Anderssonparameters, such as pull-up, drive strength, etc.
2655f5587aSBjorn Andersson
2755f5587aSBjorn AnderssonThe name of each subnode is not important; all subnodes should be enumerated
2855f5587aSBjorn Anderssonand processed purely based on their content.
2955f5587aSBjorn Andersson
3055f5587aSBjorn AnderssonEach subnode only affects those parameters that are explicitly listed. In
3155f5587aSBjorn Anderssonother words, a subnode that lists a mux function but no pin configuration
3255f5587aSBjorn Anderssonparameters implies no information about any pin configuration parameters.
3355f5587aSBjorn AnderssonSimilarly, a pin subnode that describes a pullup parameter implies no
3455f5587aSBjorn Anderssoninformation about e.g. the mux function.
3555f5587aSBjorn Andersson
3655f5587aSBjorn Andersson
3755f5587aSBjorn AnderssonThe following generic properties as defined in pinctrl-bindings.txt are valid
3855f5587aSBjorn Anderssonto specify in a pin configuration subnode:
3955f5587aSBjorn Andersson
4055f5587aSBjorn Andersson pins, function, bias-disable, bias-pull-down, bias-pull,up, drive-strength,
4155f5587aSBjorn Andersson output-low, output-high.
4255f5587aSBjorn Andersson
4355f5587aSBjorn AnderssonNon-empty subnodes must specify the 'pins' property.
4455f5587aSBjorn Andersson
4555f5587aSBjorn AnderssonValid values for pins are:
4655f5587aSBjorn Andersson  gpio0-gpio89
4755f5587aSBjorn Andersson
4855f5587aSBjorn AnderssonValid values for function are:
49144ef626SBjorn Andersson  cam_mclk, codec_mic_i2s, codec_spkr_i2s, gpio, gsbi1, gsbi2, gsbi3, gsbi4,
5055f5587aSBjorn Andersson  gsbi4_cam_i2c, gsbi5, gsbi5_spi_cs1, gsbi5_spi_cs2, gsbi5_spi_cs3, gsbi6,
5155f5587aSBjorn Andersson  gsbi6_spi_cs1, gsbi6_spi_cs2, gsbi6_spi_cs3, gsbi7, gsbi7_spi_cs1,
5255f5587aSBjorn Andersson  gsbi7_spi_cs2, gsbi7_spi_cs3, gsbi_cam_i2c, hdmi, mi2s, riva_bt, riva_fm,
5379c62cddSPramod Gurav  riva_wlan, sdc2, sdc4, slimbus, spkr_i2s, tsif1, tsif2, usb2_hsic, ps_hold
5455f5587aSBjorn Andersson
5555f5587aSBjorn AnderssonExample:
5655f5587aSBjorn Andersson
5755f5587aSBjorn Andersson	msmgpio: pinctrl@800000 {
5855f5587aSBjorn Andersson		compatible = "qcom,apq8064-pinctrl";
5955f5587aSBjorn Andersson		reg = <0x800000 0x4000>;
6055f5587aSBjorn Andersson
6155f5587aSBjorn Andersson		gpio-controller;
6255f5587aSBjorn Andersson		#gpio-cells = <2>;
6355f5587aSBjorn Andersson		interrupt-controller;
6455f5587aSBjorn Andersson		#interrupt-cells = <2>;
650252d6a2SBjorn Andersson		interrupts = <0 16 0x4>;
6655f5587aSBjorn Andersson
6755f5587aSBjorn Andersson		pinctrl-names = "default";
6855f5587aSBjorn Andersson		pinctrl-0 = <&gsbi5_uart_default>;
6955f5587aSBjorn Andersson
7055f5587aSBjorn Andersson		gsbi5_uart_default: gsbi5_uart_default {
7155f5587aSBjorn Andersson			mux {
7255f5587aSBjorn Andersson				pins = "gpio51", "gpio52";
7355f5587aSBjorn Andersson				function = "gsbi5";
7455f5587aSBjorn Andersson			};
7555f5587aSBjorn Andersson
7655f5587aSBjorn Andersson			tx {
7755f5587aSBjorn Andersson				pins = "gpio51";
7855f5587aSBjorn Andersson				drive-strength = <4>;
7955f5587aSBjorn Andersson				bias-disable;
8055f5587aSBjorn Andersson			};
8155f5587aSBjorn Andersson
8255f5587aSBjorn Andersson			rx {
8355f5587aSBjorn Andersson				pins = "gpio52";
8455f5587aSBjorn Andersson				drive-strength = <2>;
8555f5587aSBjorn Andersson				bias-pull-up;
8655f5587aSBjorn Andersson			};
8755f5587aSBjorn Andersson		};
8855f5587aSBjorn Andersson	};
89