1e260d2bbSVaradarajan NarayananQualcomm Atheros IPQ4019 TLMM block 2e260d2bbSVaradarajan Narayanan 3e260d2bbSVaradarajan NarayananThis is the Top Level Mode Multiplexor block found on the Qualcomm IPQ8019 4e260d2bbSVaradarajan Narayananplatform, it provides pinctrl, pinmux, pinconf, and gpiolib facilities. 5e260d2bbSVaradarajan Narayanan 6e260d2bbSVaradarajan NarayananRequired properties: 7e260d2bbSVaradarajan Narayanan- compatible: "qcom,ipq4019-pinctrl" 8e260d2bbSVaradarajan Narayanan- reg: Should be the base address and length of the TLMM block. 9e260d2bbSVaradarajan Narayanan- interrupts: Should be the parent IRQ of the TLMM block. 10e260d2bbSVaradarajan Narayanan- interrupt-controller: Marks the device node as an interrupt controller. 11e260d2bbSVaradarajan Narayanan- #interrupt-cells: Should be two. 12e260d2bbSVaradarajan Narayanan- gpio-controller: Marks the device node as a GPIO controller. 13e260d2bbSVaradarajan Narayanan- #gpio-cells : Should be two. 14e260d2bbSVaradarajan Narayanan The first cell is the gpio pin number and the 15e260d2bbSVaradarajan Narayanan second cell is used for optional parameters. 16c1e802f6SChristian Lamparter- gpio-ranges: see ../gpio/gpio.txt 17c1e802f6SChristian Lamparter 18c1e802f6SChristian LamparterOptional properties: 19c1e802f6SChristian Lamparter 20c1e802f6SChristian Lamparter- gpio-reserved-ranges: see ../gpio/gpio.txt 21e260d2bbSVaradarajan Narayanan 22e260d2bbSVaradarajan NarayananPlease refer to ../gpio/gpio.txt and ../interrupt-controller/interrupts.txt for 23e260d2bbSVaradarajan Narayanana general description of GPIO and interrupt bindings. 24e260d2bbSVaradarajan Narayanan 25e260d2bbSVaradarajan NarayananPlease refer to pinctrl-bindings.txt in this directory for details of the 26e260d2bbSVaradarajan Narayanancommon pinctrl bindings used by client devices, including the meaning of the 27e260d2bbSVaradarajan Narayananphrase "pin configuration node". 28e260d2bbSVaradarajan Narayanan 29*ab6ccab6SNaoki HayamaThe pin configuration nodes act as a container for an arbitrary number of 30e260d2bbSVaradarajan Narayanansubnodes. Each of these subnodes represents some desired configuration for a 31e260d2bbSVaradarajan Narayananpin, a group, or a list of pins or groups. This configuration can include the 32e260d2bbSVaradarajan Narayananmux function to select on those pin(s)/group(s), and various pin configuration 33e260d2bbSVaradarajan Narayananparameters, such as pull-up, drive strength, etc. 34e260d2bbSVaradarajan Narayanan 35e260d2bbSVaradarajan NarayananThe name of each subnode is not important; all subnodes should be enumerated 36e260d2bbSVaradarajan Narayananand processed purely based on their content. 37e260d2bbSVaradarajan Narayanan 38e260d2bbSVaradarajan NarayananEach subnode only affects those parameters that are explicitly listed. In 39e260d2bbSVaradarajan Narayananother words, a subnode that lists a mux function but no pin configuration 40e260d2bbSVaradarajan Narayananparameters implies no information about any pin configuration parameters. 41e260d2bbSVaradarajan NarayananSimilarly, a pin subnode that describes a pullup parameter implies no 42e260d2bbSVaradarajan Narayananinformation about e.g. the mux function. 43e260d2bbSVaradarajan Narayanan 44e260d2bbSVaradarajan Narayanan 45e260d2bbSVaradarajan NarayananThe following generic properties as defined in pinctrl-bindings.txt are valid 46e260d2bbSVaradarajan Narayananto specify in a pin configuration subnode: 4799d19f5aSBrian Norris pins, function, bias-disable, bias-pull-down, bias-pull-up, drive-open-drain, 4899d19f5aSBrian Norris drive-strength. 49e260d2bbSVaradarajan Narayanan 50e260d2bbSVaradarajan NarayananNon-empty subnodes must specify the 'pins' property. 51e260d2bbSVaradarajan NarayananNote that not all properties are valid for all pins. 52e260d2bbSVaradarajan Narayanan 53e260d2bbSVaradarajan Narayanan 54e260d2bbSVaradarajan NarayananValid values for qcom,pins are: 55e260d2bbSVaradarajan Narayanan gpio0-gpio99 56e260d2bbSVaradarajan Narayanan Supports mux, bias and drive-strength 57e260d2bbSVaradarajan Narayanan 58e260d2bbSVaradarajan NarayananValid values for qcom,function are: 591f5f0f2aSChristian Lamparteraud_pin, audio_pwm, blsp_i2c0, blsp_i2c1, blsp_spi0, blsp_spi1, blsp_uart0, 601f5f0f2aSChristian Lamparterblsp_uart1, chip_rst, gpio, i2s_rx, i2s_spdif_in, i2s_spdif_out, i2s_td, i2s_tx, 611f5f0f2aSChristian Lamparterjtag, led0, led1, led2, led3, led4, led5, led6, led7, led8, led9, led10, led11, 621f5f0f2aSChristian Lampartermdc, mdio, pcie, pmu, prng_rosc, qpic, rgmii, rmii, sdio, smart0, smart1, 631f5f0f2aSChristian Lampartersmart2, smart3, tm, wifi0, wifi1 64e260d2bbSVaradarajan Narayanan 65e260d2bbSVaradarajan NarayananExample: 66e260d2bbSVaradarajan Narayanan 67e260d2bbSVaradarajan Narayanan tlmm: pinctrl@1000000 { 68e260d2bbSVaradarajan Narayanan compatible = "qcom,ipq4019-pinctrl"; 69e260d2bbSVaradarajan Narayanan reg = <0x1000000 0x300000>; 70e260d2bbSVaradarajan Narayanan 71e260d2bbSVaradarajan Narayanan gpio-controller; 72e260d2bbSVaradarajan Narayanan #gpio-cells = <2>; 73c1e802f6SChristian Lamparter gpio-ranges = <&tlmm 0 0 100>; 74e260d2bbSVaradarajan Narayanan interrupt-controller; 75e260d2bbSVaradarajan Narayanan #interrupt-cells = <2>; 76e260d2bbSVaradarajan Narayanan interrupts = <0 208 0>; 77e260d2bbSVaradarajan Narayanan 78e260d2bbSVaradarajan Narayanan serial_pins: serial_pinmux { 79e260d2bbSVaradarajan Narayanan mux { 80e260d2bbSVaradarajan Narayanan pins = "gpio60", "gpio61"; 81e260d2bbSVaradarajan Narayanan function = "blsp_uart0"; 82e260d2bbSVaradarajan Narayanan bias-disable; 83e260d2bbSVaradarajan Narayanan }; 84e260d2bbSVaradarajan Narayanan }; 85e260d2bbSVaradarajan Narayanan }; 86