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