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