xref: /openbmc/linux/Documentation/devicetree/bindings/pinctrl/qcom,apq8064-pinctrl.txt (revision 2c7710847c444d22e0dd7f843fdbf892304e1cae)
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
21a0e27f51SSoren 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:
49*2c771084SVinay Simha BN  cam_mclk, codec_mic_i2s, codec_spkr_i2s, gp_clk_0a, gp_clk_0b, gp_clk_1a,
50*2c771084SVinay Simha BN  gp_clk_1b, gp_clk_2a, gp_clk_2b, gpio, gsbi1, gsbi2, gsbi3, gsbi4,
5155f5587aSBjorn Andersson  gsbi4_cam_i2c, gsbi5, gsbi5_spi_cs1, gsbi5_spi_cs2, gsbi5_spi_cs3, gsbi6,
5255f5587aSBjorn Andersson  gsbi6_spi_cs1, gsbi6_spi_cs2, gsbi6_spi_cs3, gsbi7, gsbi7_spi_cs1,
5355f5587aSBjorn Andersson  gsbi7_spi_cs2, gsbi7_spi_cs3, gsbi_cam_i2c, hdmi, mi2s, riva_bt, riva_fm,
5479c62cddSPramod Gurav  riva_wlan, sdc2, sdc4, slimbus, spkr_i2s, tsif1, tsif2, usb2_hsic, ps_hold
5555f5587aSBjorn Andersson
5655f5587aSBjorn AnderssonExample:
5755f5587aSBjorn Andersson
5855f5587aSBjorn Andersson	msmgpio: pinctrl@800000 {
5955f5587aSBjorn Andersson		compatible = "qcom,apq8064-pinctrl";
6055f5587aSBjorn Andersson		reg = <0x800000 0x4000>;
6155f5587aSBjorn Andersson
6255f5587aSBjorn Andersson		gpio-controller;
6355f5587aSBjorn Andersson		#gpio-cells = <2>;
6455f5587aSBjorn Andersson		interrupt-controller;
6555f5587aSBjorn Andersson		#interrupt-cells = <2>;
660252d6a2SBjorn Andersson		interrupts = <0 16 0x4>;
6755f5587aSBjorn Andersson
6855f5587aSBjorn Andersson		pinctrl-names = "default";
6955f5587aSBjorn Andersson		pinctrl-0 = <&gsbi5_uart_default>;
7055f5587aSBjorn Andersson
7155f5587aSBjorn Andersson		gsbi5_uart_default: gsbi5_uart_default {
7255f5587aSBjorn Andersson			mux {
7355f5587aSBjorn Andersson				pins = "gpio51", "gpio52";
7455f5587aSBjorn Andersson				function = "gsbi5";
7555f5587aSBjorn Andersson			};
7655f5587aSBjorn Andersson
7755f5587aSBjorn Andersson			tx {
7855f5587aSBjorn Andersson				pins = "gpio51";
7955f5587aSBjorn Andersson				drive-strength = <4>;
8055f5587aSBjorn Andersson				bias-disable;
8155f5587aSBjorn Andersson			};
8255f5587aSBjorn Andersson
8355f5587aSBjorn Andersson			rx {
8455f5587aSBjorn Andersson				pins = "gpio52";
8555f5587aSBjorn Andersson				drive-strength = <2>;
8655f5587aSBjorn Andersson				bias-pull-up;
8755f5587aSBjorn Andersson			};
8855f5587aSBjorn Andersson		};
8955f5587aSBjorn Andersson	};
90