1a9d490c5SGeorgi DjakovQualcomm APQ8084 TLMM block 2a9d490c5SGeorgi Djakov 3a9d490c5SGeorgi DjakovThis binding describes the Top Level Mode Multiplexer block found in the 4a9d490c5SGeorgi DjakovMSM8960 platform. 5a9d490c5SGeorgi Djakov 6a9d490c5SGeorgi Djakov- compatible: 7a9d490c5SGeorgi Djakov Usage: required 8a9d490c5SGeorgi Djakov Value type: <string> 9a9d490c5SGeorgi Djakov Definition: must be "qcom,apq8084-pinctrl" 10a9d490c5SGeorgi Djakov 11a9d490c5SGeorgi Djakov- reg: 12a9d490c5SGeorgi Djakov Usage: required 13a9d490c5SGeorgi Djakov Value type: <prop-encoded-array> 14a9d490c5SGeorgi Djakov Definition: the base address and size of the TLMM register space. 15a9d490c5SGeorgi Djakov 16a9d490c5SGeorgi Djakov- interrupts: 17a9d490c5SGeorgi Djakov Usage: required 18a9d490c5SGeorgi Djakov Value type: <prop-encoded-array> 19a9d490c5SGeorgi Djakov Definition: should specify the TLMM summary IRQ. 20a9d490c5SGeorgi Djakov 21a9d490c5SGeorgi Djakov- interrupt-controller: 22a9d490c5SGeorgi Djakov Usage: required 23a9d490c5SGeorgi Djakov Value type: <none> 24a9d490c5SGeorgi Djakov Definition: identifies this node as an interrupt controller 25a9d490c5SGeorgi Djakov 26a9d490c5SGeorgi Djakov- #interrupt-cells: 27a9d490c5SGeorgi Djakov Usage: required 28a9d490c5SGeorgi Djakov Value type: <u32> 29a9d490c5SGeorgi Djakov Definition: must be 2. Specifying the pin number and flags, as defined 30a9d490c5SGeorgi Djakov in <dt-bindings/interrupt-controller/irq.h> 31a9d490c5SGeorgi Djakov 32a9d490c5SGeorgi Djakov- gpio-controller: 33a9d490c5SGeorgi Djakov Usage: required 34a9d490c5SGeorgi Djakov Value type: <none> 35a9d490c5SGeorgi Djakov Definition: identifies this node as a gpio controller 36a9d490c5SGeorgi Djakov 37a9d490c5SGeorgi Djakov- #gpio-cells: 38a9d490c5SGeorgi Djakov Usage: required 39a9d490c5SGeorgi Djakov Value type: <u32> 40a9d490c5SGeorgi Djakov Definition: must be 2. Specifying the pin number and flags, as defined 41a9d490c5SGeorgi Djakov in <dt-bindings/gpio/gpio.h> 42a9d490c5SGeorgi Djakov 43c1e802f6SChristian Lamparter- gpio-ranges: 44c1e802f6SChristian Lamparter Usage: required 45c1e802f6SChristian Lamparter Definition: see ../gpio/gpio.txt 46c1e802f6SChristian Lamparter 47c1e802f6SChristian Lamparter- gpio-reserved-ranges: 48c1e802f6SChristian Lamparter Usage: optional 49c1e802f6SChristian Lamparter Definition: see ../gpio/gpio.txt 50c1e802f6SChristian Lamparter 51a9d490c5SGeorgi DjakovPlease refer to ../gpio/gpio.txt and ../interrupt-controller/interrupts.txt for 52a9d490c5SGeorgi Djakova general description of GPIO and interrupt bindings. 53a9d490c5SGeorgi Djakov 54a9d490c5SGeorgi DjakovPlease refer to pinctrl-bindings.txt in this directory for details of the 55a9d490c5SGeorgi Djakovcommon pinctrl bindings used by client devices, including the meaning of the 56a9d490c5SGeorgi Djakovphrase "pin configuration node". 57a9d490c5SGeorgi Djakov 58a0e27f51SSoren BrinkmannThe pin configuration nodes act as a container for an arbitrary number of 59a9d490c5SGeorgi Djakovsubnodes. Each of these subnodes represents some desired configuration for a 60a9d490c5SGeorgi Djakovpin, a group, or a list of pins or groups. This configuration can include the 61a9d490c5SGeorgi Djakovmux function to select on those pin(s)/group(s), and various pin configuration 62a9d490c5SGeorgi Djakovparameters, such as pull-up, drive strength, etc. 63a9d490c5SGeorgi Djakov 64a9d490c5SGeorgi Djakov 65a9d490c5SGeorgi DjakovPIN CONFIGURATION NODES: 66a9d490c5SGeorgi Djakov 67a9d490c5SGeorgi DjakovThe name of each subnode is not important; all subnodes should be enumerated 68a9d490c5SGeorgi Djakovand processed purely based on their content. 69a9d490c5SGeorgi Djakov 70a9d490c5SGeorgi DjakovEach subnode only affects those parameters that are explicitly listed. In 71a9d490c5SGeorgi Djakovother words, a subnode that lists a mux function but no pin configuration 72a9d490c5SGeorgi Djakovparameters implies no information about any pin configuration parameters. 73a9d490c5SGeorgi DjakovSimilarly, a pin subnode that describes a pullup parameter implies no 74a9d490c5SGeorgi Djakovinformation about e.g. the mux function. 75a9d490c5SGeorgi Djakov 76a9d490c5SGeorgi Djakov 77a9d490c5SGeorgi DjakovThe following generic properties as defined in pinctrl-bindings.txt are valid 78a9d490c5SGeorgi Djakovto specify in a pin configuration subnode: 79a9d490c5SGeorgi Djakov 80a9d490c5SGeorgi Djakov- pins: 81a9d490c5SGeorgi Djakov Usage: required 82a9d490c5SGeorgi Djakov Value type: <string-array> 83a9d490c5SGeorgi Djakov Definition: List of gpio pins affected by the properties specified in 84a9d490c5SGeorgi Djakov this subnode. Valid pins are: 85a9d490c5SGeorgi Djakov gpio0-gpio146, 86a9d490c5SGeorgi Djakov sdc1_clk, 87a9d490c5SGeorgi Djakov sdc1_cmd, 88a9d490c5SGeorgi Djakov sdc1_data 89a9d490c5SGeorgi Djakov sdc2_clk, 90a9d490c5SGeorgi Djakov sdc2_cmd, 91a9d490c5SGeorgi Djakov sdc2_data 92a9d490c5SGeorgi Djakov 93a9d490c5SGeorgi Djakov- function: 94a9d490c5SGeorgi Djakov Usage: required 95a9d490c5SGeorgi Djakov Value type: <string> 96a9d490c5SGeorgi Djakov Definition: Specify the alternative function to be configured for the 97a9d490c5SGeorgi Djakov specified pins. Functions are only valid for gpio pins. 98a9d490c5SGeorgi Djakov Valid values are: 99a9d490c5SGeorgi Djakov adsp_ext, audio_ref, blsp_i2c1, blsp_i2c2, blsp_i2c3, 100a9d490c5SGeorgi Djakov blsp_i2c4, blsp_i2c5, blsp_i2c6, blsp_i2c7, blsp_i2c8, 101a9d490c5SGeorgi Djakov blsp_i2c9, blsp_i2c10, blsp_i2c11, blsp_i2c12, 102a9d490c5SGeorgi Djakov blsp_spi1, blsp_spi2, blsp_spi3, blsp_spi4, blsp_spi5, 103a9d490c5SGeorgi Djakov blsp_spi6, blsp_spi7, blsp_spi8, blsp_spi9, blsp_spi10, 104a9d490c5SGeorgi Djakov blsp_spi11, blsp_spi12, blsp_uart1, blsp_uart2, blsp_uart3, 105a9d490c5SGeorgi Djakov blsp_uart4, blsp_uart5, blsp_uart6, blsp_uart7, blsp_uart8, 106a9d490c5SGeorgi Djakov blsp_uart9, blsp_uart10, blsp_uart11, blsp_uart12, 107a9d490c5SGeorgi Djakov blsp_uim1, blsp_uim2, blsp_uim3, blsp_uim4, blsp_uim5, 108a9d490c5SGeorgi Djakov blsp_uim6, blsp_uim7, blsp_uim8, blsp_uim9, blsp_uim10, 109a9d490c5SGeorgi Djakov blsp_uim11, blsp_uim12, cam_mclk0, cam_mclk1, cam_mclk2, 110a9d490c5SGeorgi Djakov cam_mclk3, cci_async, cci_async_in0, cci_i2c0, cci_i2c1, 111a9d490c5SGeorgi Djakov cci_timer0, cci_timer1, cci_timer2, cci_timer3, cci_timer4, 112a9d490c5SGeorgi Djakov edp_hpd, gcc_gp1, gcc_gp2, gcc_gp3, gcc_obt, gcc_vtt,i 113a9d490c5SGeorgi Djakov gp_mn, gp_pdm0, gp_pdm1, gp_pdm2, gp0_clk, gp1_clk, gpio, 114a9d490c5SGeorgi Djakov hdmi_cec, hdmi_ddc, hdmi_dtest, hdmi_hpd, hdmi_rcv, hsic, 115a9d490c5SGeorgi Djakov ldo_en, ldo_update, mdp_vsync, pci_e0, pci_e0_n, pci_e0_rst, 116a9d490c5SGeorgi Djakov pci_e1, pci_e1_rst, pci_e1_rst_n, pci_e1_clkreq_n, pri_mi2s, 117a9d490c5SGeorgi Djakov qua_mi2s, sata_act, sata_devsleep, sata_devsleep_n, 118a9d490c5SGeorgi Djakov sd_write, sdc_emmc_mode, sdc3, sdc4, sec_mi2s, slimbus, 119a9d490c5SGeorgi Djakov spdif_tx, spkr_i2s, spkr_i2s_ws, spss_geni, ter_mi2s, tsif1, 120a9d490c5SGeorgi Djakov tsif2, uim, uim_batt_alarm 121a9d490c5SGeorgi Djakov 122a9d490c5SGeorgi Djakov- bias-disable: 123a9d490c5SGeorgi Djakov Usage: optional 124a9d490c5SGeorgi Djakov Value type: <none> 125*e6187953SColin Ian King Definition: The specified pins should be configured as no pull. 126a9d490c5SGeorgi Djakov 127a9d490c5SGeorgi Djakov- bias-pull-down: 128a9d490c5SGeorgi Djakov Usage: optional 129a9d490c5SGeorgi Djakov Value type: <none> 130*e6187953SColin Ian King Definition: The specified pins should be configured as pull down. 131a9d490c5SGeorgi Djakov 132a9d490c5SGeorgi Djakov- bias-pull-up: 133a9d490c5SGeorgi Djakov Usage: optional 134a9d490c5SGeorgi Djakov Value type: <none> 135*e6187953SColin Ian King Definition: The specified pins should be configured as pull up. 136a9d490c5SGeorgi Djakov 137a9d490c5SGeorgi Djakov- output-high: 138a9d490c5SGeorgi Djakov Usage: optional 139a9d490c5SGeorgi Djakov Value type: <none> 140a9d490c5SGeorgi Djakov Definition: The specified pins are configured in output mode, driven 141a9d490c5SGeorgi Djakov high. 142a9d490c5SGeorgi Djakov Not valid for sdc pins. 143a9d490c5SGeorgi Djakov 144a9d490c5SGeorgi Djakov- output-low: 145a9d490c5SGeorgi Djakov Usage: optional 146a9d490c5SGeorgi Djakov Value type: <none> 147a9d490c5SGeorgi Djakov Definition: The specified pins are configured in output mode, driven 148a9d490c5SGeorgi Djakov low. 149a9d490c5SGeorgi Djakov Not valid for sdc pins. 150a9d490c5SGeorgi Djakov 151a9d490c5SGeorgi Djakov- drive-strength: 152a9d490c5SGeorgi Djakov Usage: optional 153a9d490c5SGeorgi Djakov Value type: <u32> 154a9d490c5SGeorgi Djakov Definition: Selects the drive strength for the specified pins, in mA. 155a9d490c5SGeorgi Djakov Valid values are: 2, 4, 6, 8, 10, 12, 14 and 16 156a9d490c5SGeorgi Djakov 157a9d490c5SGeorgi DjakovExample: 158a9d490c5SGeorgi Djakov 159a9d490c5SGeorgi Djakov tlmm: pinctrl@fd510000 { 160a9d490c5SGeorgi Djakov compatible = "qcom,apq8084-pinctrl"; 161a9d490c5SGeorgi Djakov reg = <0xfd510000 0x4000>; 162a9d490c5SGeorgi Djakov 163a9d490c5SGeorgi Djakov gpio-controller; 164a9d490c5SGeorgi Djakov #gpio-cells = <2>; 165c1e802f6SChristian Lamparter gpio-ranges = <&tlmm 0 0 147>; 166a9d490c5SGeorgi Djakov interrupt-controller; 167a9d490c5SGeorgi Djakov #interrupt-cells = <2>; 168a9d490c5SGeorgi Djakov interrupts = <0 208 0>; 169a9d490c5SGeorgi Djakov 170a9d490c5SGeorgi Djakov uart2: uart2-default { 171a9d490c5SGeorgi Djakov mux { 172a9d490c5SGeorgi Djakov pins = "gpio4", "gpio5"; 173a9d490c5SGeorgi Djakov function = "blsp_uart2"; 174a9d490c5SGeorgi Djakov }; 175a9d490c5SGeorgi Djakov 176a9d490c5SGeorgi Djakov tx { 177a9d490c5SGeorgi Djakov pins = "gpio4"; 178a9d490c5SGeorgi Djakov drive-strength = <4>; 179a9d490c5SGeorgi Djakov bias-disable; 180a9d490c5SGeorgi Djakov }; 181a9d490c5SGeorgi Djakov 182a9d490c5SGeorgi Djakov rx { 183a9d490c5SGeorgi Djakov pins = "gpio5"; 184a9d490c5SGeorgi Djakov drive-strength = <2>; 185a9d490c5SGeorgi Djakov bias-pull-up; 186a9d490c5SGeorgi Djakov }; 187a9d490c5SGeorgi Djakov }; 188a9d490c5SGeorgi Djakov }; 189