Qualcomm Technologies, Inc. SC7180 TLMM block

This binding describes the Top Level Mode Multiplexer block found in the
SC7180 platform.

- compatible:
	Usage: required
	Value type: <string>
	Definition: must be "qcom,sc7180-pinctrl"

- reg:
	Usage: required
	Value type: <prop-encoded-array>
	Definition: the base address and size of the north, south and west
		    TLMM tiles

- reg-names:
	Usage: required
	Value type: <prop-encoded-array>
	Definition: names for the cells of reg, must contain "north", "south"
		    and "west".

- interrupts:
	Usage: required
	Value type: <prop-encoded-array>
	Definition: should specify the TLMM summary IRQ.

- interrupt-controller:
	Usage: required
	Value type: <none>
	Definition: identifies this node as an interrupt controller

- #interrupt-cells:
	Usage: required
	Value type: <u32>
	Definition: must be 2. Specifying the pin number and flags, as defined
		    in <dt-bindings/interrupt-controller/irq.h>

- gpio-controller:
	Usage: required
	Value type: <none>
	Definition: identifies this node as a gpio controller

- #gpio-cells:
	Usage: required
	Value type: <u32>
	Definition: must be 2. Specifying the pin number and flags, as defined
		    in <dt-bindings/gpio/gpio.h>

- gpio-ranges:
	Usage: required
	Value type: <prop-encoded-array>
	Definition:  see ../gpio/gpio.txt

- gpio-reserved-ranges:
	Usage: optional
	Value type: <prop-encoded-array>
	Definition: see ../gpio/gpio.txt

Please refer to ../gpio/gpio.txt and ../interrupt-controller/interrupts.txt for
a general description of GPIO and interrupt bindings.

Please refer to pinctrl-bindings.txt in this directory for details of the
common pinctrl bindings used by client devices, including the meaning of the
phrase "pin configuration node".

The pin configuration nodes act as a container for an arbitrary number of
subnodes. Each of these subnodes represents some desired configuration for a
pin, a group, or a list of pins or groups. This configuration can include the
mux function to select on those pin(s)/group(s), and various pin configuration
parameters, such as pull-up, drive strength, etc.


PIN CONFIGURATION NODES:

The name of each subnode is not important; all subnodes should be enumerated
and processed purely based on their content.

Each subnode only affects those parameters that are explicitly listed. In
other words, a subnode that lists a mux function but no pin configuration
parameters implies no information about any pin configuration parameters.
Similarly, a pin subnode that describes a pullup parameter implies no
information about e.g. the mux function.


The following generic properties as defined in pinctrl-bindings.txt are valid
to specify in a pin configuration subnode:

- pins:
	Usage: required
	Value type: <string-array>
	Definition: List of gpio pins affected by the properties specified in
		    this subnode.

		    Valid pins are:
		      gpio0-gpio118
		        Supports mux, bias and drive-strength

		      sdc1_clk, sdc1_cmd, sdc1_data sdc2_clk, sdc2_cmd,
		      sdc2_data sdc1_rclk
		        Supports bias and drive-strength

		      ufs_reset
			Supports bias and drive-strength

- function:
	Usage: required
	Value type: <string>
	Definition: Specify the alternative function to be configured for the
		    specified pins. Functions are only valid for gpio pins.
		    Valid values are:

		    adsp_ext, agera_pll, aoss_cti, atest_char, atest_char0,
		    atest_char1, atest_char2, atest_char3, atest_tsens,
		    atest_tsens2, atest_usb1, atest_usb10, atest_usb11,
		    atest_usb12, atest_usb13, atest_usb2, atest_usb20,
		    atest_usb21, atest_usb22, atest_usb23, audio_ref,
		    btfm_slimbus, cam_mclk, cci_async, cci_i2c, cci_timer0,
		    cci_timer1, cci_timer2, cci_timer3, cci_timer4,
		    cri_trng, dbg_out, ddr_bist, ddr_pxi0, ddr_pxi1,
		    ddr_pxi2, ddr_pxi3, dp_hot, edp_lcd, gcc_gp1, gcc_gp2,
		    gcc_gp3, gpio, gp_pdm0, gp_pdm1, gp_pdm2, gps_tx,
		    jitter_bist, ldo_en, ldo_update, lpass_ext, mdp_vsync,
		    mdp_vsync0, mdp_vsync1, mdp_vsync2, mdp_vsync3, mi2s_0,
		    mi2s_1, mi2s_2, mss_lte, m_voc, pa_indicator, phase_flag,
		    PLL_BIST, pll_bypassnl, pll_reset, prng_rosc, qdss,
		    qdss_cti, qlink_enable, qlink_request, qspi_clk, qspi_cs,
		    qspi_data, qup00, qup01, qup02_i2c, qup02_uart, qup03,
		    qup04_i2c, qup04_uart, qup05, qup10, qup11_i2c, qup11_uart,
		    qup12, qup13_i2c, qup13_uart, qup14, qup15, sdc1_tb,
		    sdc2_tb, sd_write, sp_cmu, tgu_ch0, tgu_ch1, tgu_ch2,
		    tgu_ch3, tsense_pwm1, tsense_pwm2, uim1, uim2, uim_batt,
		    usb_phy, vfr_1, _V_GPIO, _V_PPS_IN, _V_PPS_OUT,
		    vsense_trigger, wlan1_adc0, wlan1_adc1, wlan2_adc0,
		    wlan2_adc1,

- bias-disable:
	Usage: optional
	Value type: <none>
	Definition: The specified pins should be configured as no pull.

- bias-pull-down:
	Usage: optional
	Value type: <none>
	Definition: The specified pins should be configured as pull down.

- bias-pull-up:
	Usage: optional
	Value type: <none>
	Definition: The specified pins should be configured as pull up.

- output-high:
	Usage: optional
	Value type: <none>
	Definition: The specified pins are configured in output mode, driven
		    high.
		    Not valid for sdc pins.

- output-low:
	Usage: optional
	Value type: <none>
	Definition: The specified pins are configured in output mode, driven
		    low.
		    Not valid for sdc pins.

- drive-strength:
	Usage: optional
	Value type: <u32>
	Definition: Selects the drive strength for the specified pins, in mA.
		    Valid values are: 2, 4, 6, 8, 10, 12, 14 and 16

Example:

	tlmm: pinctrl@3500000 {
		compatible = "qcom,sc7180-pinctrl";
		reg = <0x3500000 0x300000>,
		      <0x3900000 0x300000>,
		      <0x3D00000 0x300000>;
		reg-names = "west", "north", "south";
		interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
		gpio-controller;
		#gpio-cells = <2>;
		gpio-ranges = <&tlmm 0 0 119>;
		gpio-reserved-ranges = <0 4>, <106 4>;
		interrupt-controller;
		#interrupt-cells = <2>;
	};
