1*c66ec88fSEmmanuel VadotQualcomm QCS404 TLMM block 2*c66ec88fSEmmanuel Vadot 3*c66ec88fSEmmanuel VadotThis binding describes the Top Level Mode Multiplexer block found in the 4*c66ec88fSEmmanuel VadotQCS404 platform. 5*c66ec88fSEmmanuel Vadot 6*c66ec88fSEmmanuel Vadot- compatible: 7*c66ec88fSEmmanuel Vadot Usage: required 8*c66ec88fSEmmanuel Vadot Value type: <string> 9*c66ec88fSEmmanuel Vadot Definition: must be "qcom,qcs404-pinctrl" 10*c66ec88fSEmmanuel Vadot 11*c66ec88fSEmmanuel Vadot- reg: 12*c66ec88fSEmmanuel Vadot Usage: required 13*c66ec88fSEmmanuel Vadot Value type: <prop-encoded-array> 14*c66ec88fSEmmanuel Vadot Definition: the base address and size of the north, south and east TLMM 15*c66ec88fSEmmanuel Vadot tiles. 16*c66ec88fSEmmanuel Vadot 17*c66ec88fSEmmanuel Vadot- reg-names: 18*c66ec88fSEmmanuel Vadot Usage: required 19*c66ec88fSEmmanuel Vadot Value type: <stringlist> 20*c66ec88fSEmmanuel Vadot Defintiion: names for the cells of reg, must contain "north", "south" 21*c66ec88fSEmmanuel Vadot and "east". 22*c66ec88fSEmmanuel Vadot 23*c66ec88fSEmmanuel Vadot- interrupts: 24*c66ec88fSEmmanuel Vadot Usage: required 25*c66ec88fSEmmanuel Vadot Value type: <prop-encoded-array> 26*c66ec88fSEmmanuel Vadot Definition: should specify the TLMM summary IRQ. 27*c66ec88fSEmmanuel Vadot 28*c66ec88fSEmmanuel Vadot- interrupt-controller: 29*c66ec88fSEmmanuel Vadot Usage: required 30*c66ec88fSEmmanuel Vadot Value type: <none> 31*c66ec88fSEmmanuel Vadot Definition: identifies this node as an interrupt controller 32*c66ec88fSEmmanuel Vadot 33*c66ec88fSEmmanuel Vadot- #interrupt-cells: 34*c66ec88fSEmmanuel Vadot Usage: required 35*c66ec88fSEmmanuel Vadot Value type: <u32> 36*c66ec88fSEmmanuel Vadot Definition: must be 2. Specifying the pin number and flags, as defined 37*c66ec88fSEmmanuel Vadot in <dt-bindings/interrupt-controller/irq.h> 38*c66ec88fSEmmanuel Vadot 39*c66ec88fSEmmanuel Vadot- gpio-controller: 40*c66ec88fSEmmanuel Vadot Usage: required 41*c66ec88fSEmmanuel Vadot Value type: <none> 42*c66ec88fSEmmanuel Vadot Definition: identifies this node as a gpio controller 43*c66ec88fSEmmanuel Vadot 44*c66ec88fSEmmanuel Vadot- #gpio-cells: 45*c66ec88fSEmmanuel Vadot Usage: required 46*c66ec88fSEmmanuel Vadot Value type: <u32> 47*c66ec88fSEmmanuel Vadot Definition: must be 2. Specifying the pin number and flags, as defined 48*c66ec88fSEmmanuel Vadot in <dt-bindings/gpio/gpio.h> 49*c66ec88fSEmmanuel Vadot 50*c66ec88fSEmmanuel Vadot- gpio-ranges: 51*c66ec88fSEmmanuel Vadot Usage: required 52*c66ec88fSEmmanuel Vadot Definition: see ../gpio/gpio.txt 53*c66ec88fSEmmanuel Vadot 54*c66ec88fSEmmanuel VadotPlease refer to ../gpio/gpio.txt and ../interrupt-controller/interrupts.txt for 55*c66ec88fSEmmanuel Vadota general description of GPIO and interrupt bindings. 56*c66ec88fSEmmanuel Vadot 57*c66ec88fSEmmanuel VadotPlease refer to pinctrl-bindings.txt in this directory for details of the 58*c66ec88fSEmmanuel Vadotcommon pinctrl bindings used by client devices, including the meaning of the 59*c66ec88fSEmmanuel Vadotphrase "pin configuration node". 60*c66ec88fSEmmanuel Vadot 61*c66ec88fSEmmanuel VadotThe pin configuration nodes act as a container for an arbitrary number of 62*c66ec88fSEmmanuel Vadotsubnodes. Each of these subnodes represents some desired configuration for a 63*c66ec88fSEmmanuel Vadotpin, a group, or a list of pins or groups. This configuration can include the 64*c66ec88fSEmmanuel Vadotmux function to select on those pin(s)/group(s), and various pin configuration 65*c66ec88fSEmmanuel Vadotparameters, such as pull-up, drive strength, etc. 66*c66ec88fSEmmanuel Vadot 67*c66ec88fSEmmanuel Vadot 68*c66ec88fSEmmanuel VadotPIN CONFIGURATION NODES: 69*c66ec88fSEmmanuel Vadot 70*c66ec88fSEmmanuel VadotThe name of each subnode is not important; all subnodes should be enumerated 71*c66ec88fSEmmanuel Vadotand processed purely based on their content. 72*c66ec88fSEmmanuel Vadot 73*c66ec88fSEmmanuel VadotEach subnode only affects those parameters that are explicitly listed. In 74*c66ec88fSEmmanuel Vadotother words, a subnode that lists a mux function but no pin configuration 75*c66ec88fSEmmanuel Vadotparameters implies no information about any pin configuration parameters. 76*c66ec88fSEmmanuel VadotSimilarly, a pin subnode that describes a pullup parameter implies no 77*c66ec88fSEmmanuel Vadotinformation about e.g. the mux function. 78*c66ec88fSEmmanuel Vadot 79*c66ec88fSEmmanuel Vadot 80*c66ec88fSEmmanuel VadotThe following generic properties as defined in pinctrl-bindings.txt are valid 81*c66ec88fSEmmanuel Vadotto specify in a pin configuration subnode: 82*c66ec88fSEmmanuel Vadot 83*c66ec88fSEmmanuel Vadot- pins: 84*c66ec88fSEmmanuel Vadot Usage: required 85*c66ec88fSEmmanuel Vadot Value type: <string-array> 86*c66ec88fSEmmanuel Vadot Definition: List of gpio pins affected by the properties specified in 87*c66ec88fSEmmanuel Vadot this subnode. 88*c66ec88fSEmmanuel Vadot 89*c66ec88fSEmmanuel Vadot Valid pins are: 90*c66ec88fSEmmanuel Vadot gpio0-gpio119 91*c66ec88fSEmmanuel Vadot Supports mux, bias and drive-strength 92*c66ec88fSEmmanuel Vadot 93*c66ec88fSEmmanuel Vadot sdc1_clk, sdc1_cmd, sdc1_data, sdc2_clk, sdc2_cmd, 94*c66ec88fSEmmanuel Vadot sdc2_data 95*c66ec88fSEmmanuel Vadot Supports bias and drive-strength 96*c66ec88fSEmmanuel Vadot 97*c66ec88fSEmmanuel Vadot ufs_reset 98*c66ec88fSEmmanuel Vadot Supports bias and drive-strength 99*c66ec88fSEmmanuel Vadot 100*c66ec88fSEmmanuel Vadot- function: 101*c66ec88fSEmmanuel Vadot Usage: required 102*c66ec88fSEmmanuel Vadot Value type: <string> 103*c66ec88fSEmmanuel Vadot Definition: Specify the alternative function to be configured for the 104*c66ec88fSEmmanuel Vadot specified pins. Functions are only valid for gpio pins. 105*c66ec88fSEmmanuel Vadot Valid values are: 106*c66ec88fSEmmanuel Vadot 107*c66ec88fSEmmanuel Vadot gpio, hdmi_tx, hdmi_ddc, blsp_uart_tx_a2, blsp_spi2, m_voc, 108*c66ec88fSEmmanuel Vadot qdss_cti_trig_in_a0, blsp_uart_rx_a2, qdss_tracectl_a, 109*c66ec88fSEmmanuel Vadot blsp_uart2, aud_cdc, blsp_i2c_sda_a2, qdss_tracedata_a, 110*c66ec88fSEmmanuel Vadot blsp_i2c_scl_a2, qdss_tracectl_b, qdss_cti_trig_in_b0, 111*c66ec88fSEmmanuel Vadot blsp_uart1, blsp_spi_mosi_a1, blsp_spi_miso_a1, 112*c66ec88fSEmmanuel Vadot qdss_tracedata_b, blsp_i2c1, blsp_spi_cs_n_a1, gcc_plltest, 113*c66ec88fSEmmanuel Vadot blsp_spi_clk_a1, rgb_data0, blsp_uart5, blsp_spi5, 114*c66ec88fSEmmanuel Vadot adsp_ext, rgb_data1, prng_rosc, rgb_data2, blsp_i2c5, 115*c66ec88fSEmmanuel Vadot gcc_gp1_clk_b, rgb_data3, gcc_gp2_clk_b, blsp_spi0, 116*c66ec88fSEmmanuel Vadot blsp_uart0, gcc_gp3_clk_b, blsp_i2c0, qdss_traceclk_b, 117*c66ec88fSEmmanuel Vadot pcie_clk, nfc_irq, blsp_spi4, nfc_dwl, audio_ts, rgb_data4, 118*c66ec88fSEmmanuel Vadot spi_lcd, blsp_uart_tx_b2, gcc_gp3_clk_a, rgb_data5, 119*c66ec88fSEmmanuel Vadot blsp_uart_rx_b2, blsp_i2c_sda_b2, blsp_i2c_scl_b2, 120*c66ec88fSEmmanuel Vadot pwm_led11, i2s_3_data0_a, ebi2_lcd, i2s_3_data1_a, 121*c66ec88fSEmmanuel Vadot i2s_3_data2_a, atest_char, pwm_led3, i2s_3_data3_a, 122*c66ec88fSEmmanuel Vadot pwm_led4, i2s_4, ebi2_a, dsd_clk_b, pwm_led5, pwm_led6, 123*c66ec88fSEmmanuel Vadot pwm_led7, pwm_led8, pwm_led24, spkr_dac0, blsp_i2c4, 124*c66ec88fSEmmanuel Vadot pwm_led9, pwm_led10, spdifrx_opt, pwm_led12, pwm_led13, 125*c66ec88fSEmmanuel Vadot pwm_led14, wlan1_adc1, rgb_data_b0, pwm_led15, 126*c66ec88fSEmmanuel Vadot blsp_spi_mosi_b1, wlan1_adc0, rgb_data_b1, pwm_led16, 127*c66ec88fSEmmanuel Vadot blsp_spi_miso_b1, qdss_cti_trig_out_b0, wlan2_adc1, 128*c66ec88fSEmmanuel Vadot rgb_data_b2, pwm_led17, blsp_spi_cs_n_b1, wlan2_adc0, 129*c66ec88fSEmmanuel Vadot rgb_data_b3, pwm_led18, blsp_spi_clk_b1, rgb_data_b4, 130*c66ec88fSEmmanuel Vadot pwm_led19, ext_mclk1_b, qdss_traceclk_a, rgb_data_b5, 131*c66ec88fSEmmanuel Vadot pwm_led20, atest_char3, i2s_3_sck_b, ldo_update, bimc_dte0, 132*c66ec88fSEmmanuel Vadot rgb_hsync, pwm_led21, i2s_3_ws_b, dbg_out, rgb_vsync, 133*c66ec88fSEmmanuel Vadot i2s_3_data0_b, ldo_en, hdmi_dtest, rgb_de, i2s_3_data1_b, 134*c66ec88fSEmmanuel Vadot hdmi_lbk9, rgb_clk, atest_char1, i2s_3_data2_b, ebi_cdc, 135*c66ec88fSEmmanuel Vadot hdmi_lbk8, rgb_mdp, atest_char0, i2s_3_data3_b, hdmi_lbk7, 136*c66ec88fSEmmanuel Vadot rgb_data_b6, rgb_data_b7, hdmi_lbk6, rgmii_int, cri_trng1, 137*c66ec88fSEmmanuel Vadot rgmii_wol, cri_trng0, gcc_tlmm, rgmii_ck, rgmii_tx, 138*c66ec88fSEmmanuel Vadot hdmi_lbk5, hdmi_pixel, hdmi_rcv, hdmi_lbk4, rgmii_ctl, 139*c66ec88fSEmmanuel Vadot ext_lpass, rgmii_rx, cri_trng, hdmi_lbk3, hdmi_lbk2, 140*c66ec88fSEmmanuel Vadot qdss_cti_trig_out_b1, rgmii_mdio, hdmi_lbk1, rgmii_mdc, 141*c66ec88fSEmmanuel Vadot hdmi_lbk0, ir_in, wsa_en, rgb_data6, rgb_data7, 142*c66ec88fSEmmanuel Vadot atest_char2, ebi_ch0, blsp_uart3, blsp_spi3, sd_write, 143*c66ec88fSEmmanuel Vadot blsp_i2c3, gcc_gp1_clk_a, qdss_cti_trig_in_b1, 144*c66ec88fSEmmanuel Vadot gcc_gp2_clk_a, ext_mclk0, mclk_in1, i2s_1, dsd_clk_a, 145*c66ec88fSEmmanuel Vadot qdss_cti_trig_in_a1, rgmi_dll1, pwm_led22, pwm_led23, 146*c66ec88fSEmmanuel Vadot qdss_cti_trig_out_a0, rgmi_dll2, pwm_led1, 147*c66ec88fSEmmanuel Vadot qdss_cti_trig_out_a1, pwm_led2, i2s_2, pll_bist, 148*c66ec88fSEmmanuel Vadot ext_mclk1_a, mclk_in2, bimc_dte1, i2s_3_sck_a, i2s_3_ws_a 149*c66ec88fSEmmanuel Vadot 150*c66ec88fSEmmanuel Vadot- bias-disable: 151*c66ec88fSEmmanuel Vadot Usage: optional 152*c66ec88fSEmmanuel Vadot Value type: <none> 153*c66ec88fSEmmanuel Vadot Definition: The specified pins should be configured as no pull. 154*c66ec88fSEmmanuel Vadot 155*c66ec88fSEmmanuel Vadot- bias-pull-down: 156*c66ec88fSEmmanuel Vadot Usage: optional 157*c66ec88fSEmmanuel Vadot Value type: <none> 158*c66ec88fSEmmanuel Vadot Definition: The specified pins should be configured as pull down. 159*c66ec88fSEmmanuel Vadot 160*c66ec88fSEmmanuel Vadot- bias-pull-up: 161*c66ec88fSEmmanuel Vadot Usage: optional 162*c66ec88fSEmmanuel Vadot Value type: <none> 163*c66ec88fSEmmanuel Vadot Definition: The specified pins should be configured as pull up. 164*c66ec88fSEmmanuel Vadot 165*c66ec88fSEmmanuel Vadot- output-high: 166*c66ec88fSEmmanuel Vadot Usage: optional 167*c66ec88fSEmmanuel Vadot Value type: <none> 168*c66ec88fSEmmanuel Vadot Definition: The specified pins are configured in output mode, driven 169*c66ec88fSEmmanuel Vadot high. 170*c66ec88fSEmmanuel Vadot Not valid for sdc pins. 171*c66ec88fSEmmanuel Vadot 172*c66ec88fSEmmanuel Vadot- output-low: 173*c66ec88fSEmmanuel Vadot Usage: optional 174*c66ec88fSEmmanuel Vadot Value type: <none> 175*c66ec88fSEmmanuel Vadot Definition: The specified pins are configured in output mode, driven 176*c66ec88fSEmmanuel Vadot low. 177*c66ec88fSEmmanuel Vadot Not valid for sdc pins. 178*c66ec88fSEmmanuel Vadot 179*c66ec88fSEmmanuel Vadot- drive-strength: 180*c66ec88fSEmmanuel Vadot Usage: optional 181*c66ec88fSEmmanuel Vadot Value type: <u32> 182*c66ec88fSEmmanuel Vadot Definition: Selects the drive strength for the specified pins, in mA. 183*c66ec88fSEmmanuel Vadot Valid values are: 2, 4, 6, 8, 10, 12, 14 and 16 184*c66ec88fSEmmanuel Vadot 185*c66ec88fSEmmanuel VadotExample: 186*c66ec88fSEmmanuel Vadot 187*c66ec88fSEmmanuel Vadot tlmm: pinctrl@1000000 { 188*c66ec88fSEmmanuel Vadot compatible = "qcom,qcs404-pinctrl"; 189*c66ec88fSEmmanuel Vadot reg = <0x01000000 0x200000>, 190*c66ec88fSEmmanuel Vadot <0x01300000 0x200000>, 191*c66ec88fSEmmanuel Vadot <0x07b00000 0x200000>; 192*c66ec88fSEmmanuel Vadot reg-names = "south", "north", "east"; 193*c66ec88fSEmmanuel Vadot interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>; 194*c66ec88fSEmmanuel Vadot gpio-controller; 195*c66ec88fSEmmanuel Vadot #gpio-cells = <2>; 196*c66ec88fSEmmanuel Vadot gpio-ranges = <&tlmm 0 0 120>; 197*c66ec88fSEmmanuel Vadot interrupt-controller; 198*c66ec88fSEmmanuel Vadot #interrupt-cells = <2>; 199*c66ec88fSEmmanuel Vadot }; 200