18c2ecf20Sopenharmony_ciQualcomm Atheros IPQ4019 TLMM block 28c2ecf20Sopenharmony_ci 38c2ecf20Sopenharmony_ciThis is the Top Level Mode Multiplexor block found on the Qualcomm IPQ8019 48c2ecf20Sopenharmony_ciplatform, it provides pinctrl, pinmux, pinconf, and gpiolib facilities. 58c2ecf20Sopenharmony_ci 68c2ecf20Sopenharmony_ciRequired properties: 78c2ecf20Sopenharmony_ci- compatible: "qcom,ipq4019-pinctrl" 88c2ecf20Sopenharmony_ci- reg: Should be the base address and length of the TLMM block. 98c2ecf20Sopenharmony_ci- interrupts: Should be the parent IRQ of the TLMM block. 108c2ecf20Sopenharmony_ci- interrupt-controller: Marks the device node as an interrupt controller. 118c2ecf20Sopenharmony_ci- #interrupt-cells: Should be two. 128c2ecf20Sopenharmony_ci- gpio-controller: Marks the device node as a GPIO controller. 138c2ecf20Sopenharmony_ci- #gpio-cells : Should be two. 148c2ecf20Sopenharmony_ci The first cell is the gpio pin number and the 158c2ecf20Sopenharmony_ci second cell is used for optional parameters. 168c2ecf20Sopenharmony_ci- gpio-ranges: see ../gpio/gpio.txt 178c2ecf20Sopenharmony_ci 188c2ecf20Sopenharmony_ciOptional properties: 198c2ecf20Sopenharmony_ci 208c2ecf20Sopenharmony_ci- gpio-reserved-ranges: see ../gpio/gpio.txt 218c2ecf20Sopenharmony_ci 228c2ecf20Sopenharmony_ciPlease refer to ../gpio/gpio.txt and ../interrupt-controller/interrupts.txt for 238c2ecf20Sopenharmony_cia general description of GPIO and interrupt bindings. 248c2ecf20Sopenharmony_ci 258c2ecf20Sopenharmony_ciPlease refer to pinctrl-bindings.txt in this directory for details of the 268c2ecf20Sopenharmony_cicommon pinctrl bindings used by client devices, including the meaning of the 278c2ecf20Sopenharmony_ciphrase "pin configuration node". 288c2ecf20Sopenharmony_ci 298c2ecf20Sopenharmony_ciThe pin configuration nodes act as a container for an arbitrary number of 308c2ecf20Sopenharmony_cisubnodes. Each of these subnodes represents some desired configuration for a 318c2ecf20Sopenharmony_cipin, a group, or a list of pins or groups. This configuration can include the 328c2ecf20Sopenharmony_cimux function to select on those pin(s)/group(s), and various pin configuration 338c2ecf20Sopenharmony_ciparameters, such as pull-up, drive strength, etc. 348c2ecf20Sopenharmony_ci 358c2ecf20Sopenharmony_ciThe name of each subnode is not important; all subnodes should be enumerated 368c2ecf20Sopenharmony_ciand processed purely based on their content. 378c2ecf20Sopenharmony_ci 388c2ecf20Sopenharmony_ciEach subnode only affects those parameters that are explicitly listed. In 398c2ecf20Sopenharmony_ciother words, a subnode that lists a mux function but no pin configuration 408c2ecf20Sopenharmony_ciparameters implies no information about any pin configuration parameters. 418c2ecf20Sopenharmony_ciSimilarly, a pin subnode that describes a pullup parameter implies no 428c2ecf20Sopenharmony_ciinformation about e.g. the mux function. 438c2ecf20Sopenharmony_ci 448c2ecf20Sopenharmony_ci 458c2ecf20Sopenharmony_ciThe following generic properties as defined in pinctrl-bindings.txt are valid 468c2ecf20Sopenharmony_cito specify in a pin configuration subnode: 478c2ecf20Sopenharmony_ci pins, function, bias-disable, bias-pull-down, bias-pull-up, drive-open-drain, 488c2ecf20Sopenharmony_ci drive-strength. 498c2ecf20Sopenharmony_ci 508c2ecf20Sopenharmony_ciNon-empty subnodes must specify the 'pins' property. 518c2ecf20Sopenharmony_ciNote that not all properties are valid for all pins. 528c2ecf20Sopenharmony_ci 538c2ecf20Sopenharmony_ci 548c2ecf20Sopenharmony_ciValid values for qcom,pins are: 558c2ecf20Sopenharmony_ci gpio0-gpio99 568c2ecf20Sopenharmony_ci Supports mux, bias and drive-strength 578c2ecf20Sopenharmony_ci 588c2ecf20Sopenharmony_ciValid values for qcom,function are: 598c2ecf20Sopenharmony_ciaud_pin, audio_pwm, blsp_i2c0, blsp_i2c1, blsp_spi0, blsp_spi1, blsp_uart0, 608c2ecf20Sopenharmony_ciblsp_uart1, chip_rst, gpio, i2s_rx, i2s_spdif_in, i2s_spdif_out, i2s_td, i2s_tx, 618c2ecf20Sopenharmony_cijtag, led0, led1, led2, led3, led4, led5, led6, led7, led8, led9, led10, led11, 628c2ecf20Sopenharmony_cimdc, mdio, pcie, pmu, prng_rosc, qpic, rgmii, rmii, sdio, smart0, smart1, 638c2ecf20Sopenharmony_cismart2, smart3, tm, wifi0, wifi1 648c2ecf20Sopenharmony_ci 658c2ecf20Sopenharmony_ciExample: 668c2ecf20Sopenharmony_ci 678c2ecf20Sopenharmony_ci tlmm: pinctrl@1000000 { 688c2ecf20Sopenharmony_ci compatible = "qcom,ipq4019-pinctrl"; 698c2ecf20Sopenharmony_ci reg = <0x1000000 0x300000>; 708c2ecf20Sopenharmony_ci 718c2ecf20Sopenharmony_ci gpio-controller; 728c2ecf20Sopenharmony_ci #gpio-cells = <2>; 738c2ecf20Sopenharmony_ci gpio-ranges = <&tlmm 0 0 100>; 748c2ecf20Sopenharmony_ci interrupt-controller; 758c2ecf20Sopenharmony_ci #interrupt-cells = <2>; 768c2ecf20Sopenharmony_ci interrupts = <0 208 0>; 778c2ecf20Sopenharmony_ci 788c2ecf20Sopenharmony_ci serial_pins: serial_pinmux { 798c2ecf20Sopenharmony_ci mux { 808c2ecf20Sopenharmony_ci pins = "gpio60", "gpio61"; 818c2ecf20Sopenharmony_ci function = "blsp_uart0"; 828c2ecf20Sopenharmony_ci bias-disable; 838c2ecf20Sopenharmony_ci }; 848c2ecf20Sopenharmony_ci }; 858c2ecf20Sopenharmony_ci }; 86