1*4882a593SmuzhiyunQualcomm Atheros IPQ4019 TLMM block 2*4882a593Smuzhiyun 3*4882a593SmuzhiyunThis is the Top Level Mode Multiplexor block found on the Qualcomm IPQ8019 4*4882a593Smuzhiyunplatform, it provides pinctrl, pinmux, pinconf, and gpiolib facilities. 5*4882a593Smuzhiyun 6*4882a593SmuzhiyunRequired properties: 7*4882a593Smuzhiyun- compatible: "qcom,ipq4019-pinctrl" 8*4882a593Smuzhiyun- reg: Should be the base address and length of the TLMM block. 9*4882a593Smuzhiyun- interrupts: Should be the parent IRQ of the TLMM block. 10*4882a593Smuzhiyun- interrupt-controller: Marks the device node as an interrupt controller. 11*4882a593Smuzhiyun- #interrupt-cells: Should be two. 12*4882a593Smuzhiyun- gpio-controller: Marks the device node as a GPIO controller. 13*4882a593Smuzhiyun- #gpio-cells : Should be two. 14*4882a593Smuzhiyun The first cell is the gpio pin number and the 15*4882a593Smuzhiyun second cell is used for optional parameters. 16*4882a593Smuzhiyun- gpio-ranges: see ../gpio/gpio.txt 17*4882a593Smuzhiyun 18*4882a593SmuzhiyunOptional properties: 19*4882a593Smuzhiyun 20*4882a593Smuzhiyun- gpio-reserved-ranges: see ../gpio/gpio.txt 21*4882a593Smuzhiyun 22*4882a593SmuzhiyunPlease refer to ../gpio/gpio.txt and ../interrupt-controller/interrupts.txt for 23*4882a593Smuzhiyuna general description of GPIO and interrupt bindings. 24*4882a593Smuzhiyun 25*4882a593SmuzhiyunPlease refer to pinctrl-bindings.txt in this directory for details of the 26*4882a593Smuzhiyuncommon pinctrl bindings used by client devices, including the meaning of the 27*4882a593Smuzhiyunphrase "pin configuration node". 28*4882a593Smuzhiyun 29*4882a593SmuzhiyunThe pin configuration nodes act as a container for an arbitrary number of 30*4882a593Smuzhiyunsubnodes. Each of these subnodes represents some desired configuration for a 31*4882a593Smuzhiyunpin, a group, or a list of pins or groups. This configuration can include the 32*4882a593Smuzhiyunmux function to select on those pin(s)/group(s), and various pin configuration 33*4882a593Smuzhiyunparameters, such as pull-up, drive strength, etc. 34*4882a593Smuzhiyun 35*4882a593SmuzhiyunThe name of each subnode is not important; all subnodes should be enumerated 36*4882a593Smuzhiyunand processed purely based on their content. 37*4882a593Smuzhiyun 38*4882a593SmuzhiyunEach subnode only affects those parameters that are explicitly listed. In 39*4882a593Smuzhiyunother words, a subnode that lists a mux function but no pin configuration 40*4882a593Smuzhiyunparameters implies no information about any pin configuration parameters. 41*4882a593SmuzhiyunSimilarly, a pin subnode that describes a pullup parameter implies no 42*4882a593Smuzhiyuninformation about e.g. the mux function. 43*4882a593Smuzhiyun 44*4882a593Smuzhiyun 45*4882a593SmuzhiyunThe following generic properties as defined in pinctrl-bindings.txt are valid 46*4882a593Smuzhiyunto specify in a pin configuration subnode: 47*4882a593Smuzhiyun pins, function, bias-disable, bias-pull-down, bias-pull-up, drive-open-drain, 48*4882a593Smuzhiyun drive-strength. 49*4882a593Smuzhiyun 50*4882a593SmuzhiyunNon-empty subnodes must specify the 'pins' property. 51*4882a593SmuzhiyunNote that not all properties are valid for all pins. 52*4882a593Smuzhiyun 53*4882a593Smuzhiyun 54*4882a593SmuzhiyunValid values for qcom,pins are: 55*4882a593Smuzhiyun gpio0-gpio99 56*4882a593Smuzhiyun Supports mux, bias and drive-strength 57*4882a593Smuzhiyun 58*4882a593SmuzhiyunValid values for qcom,function are: 59*4882a593Smuzhiyunaud_pin, audio_pwm, blsp_i2c0, blsp_i2c1, blsp_spi0, blsp_spi1, blsp_uart0, 60*4882a593Smuzhiyunblsp_uart1, chip_rst, gpio, i2s_rx, i2s_spdif_in, i2s_spdif_out, i2s_td, i2s_tx, 61*4882a593Smuzhiyunjtag, led0, led1, led2, led3, led4, led5, led6, led7, led8, led9, led10, led11, 62*4882a593Smuzhiyunmdc, mdio, pcie, pmu, prng_rosc, qpic, rgmii, rmii, sdio, smart0, smart1, 63*4882a593Smuzhiyunsmart2, smart3, tm, wifi0, wifi1 64*4882a593Smuzhiyun 65*4882a593SmuzhiyunExample: 66*4882a593Smuzhiyun 67*4882a593Smuzhiyun tlmm: pinctrl@1000000 { 68*4882a593Smuzhiyun compatible = "qcom,ipq4019-pinctrl"; 69*4882a593Smuzhiyun reg = <0x1000000 0x300000>; 70*4882a593Smuzhiyun 71*4882a593Smuzhiyun gpio-controller; 72*4882a593Smuzhiyun #gpio-cells = <2>; 73*4882a593Smuzhiyun gpio-ranges = <&tlmm 0 0 100>; 74*4882a593Smuzhiyun interrupt-controller; 75*4882a593Smuzhiyun #interrupt-cells = <2>; 76*4882a593Smuzhiyun interrupts = <0 208 0>; 77*4882a593Smuzhiyun 78*4882a593Smuzhiyun serial_pins: serial_pinmux { 79*4882a593Smuzhiyun mux { 80*4882a593Smuzhiyun pins = "gpio60", "gpio61"; 81*4882a593Smuzhiyun function = "blsp_uart0"; 82*4882a593Smuzhiyun bias-disable; 83*4882a593Smuzhiyun }; 84*4882a593Smuzhiyun }; 85*4882a593Smuzhiyun }; 86