blob: ee8f06e0195774364e287be7a470b8e667cdc7f5 [file] [log] [blame]
TSPP Driver
For information on the TSPP driver, please refer to the TSPP driver
documentation: Documentation/arm/msm/tspp.txt.
The devicetree representation of the TSPP block should be:
Required properties:
- compatible: "qcom,msm_tspp"
- reg: physical memory base addresses and sizes for the following:
TSIF0, TSIF1, TSPP and TSPP_BAM.
- reg-names: names of the memory regions.
- interrupts: represents IRQ numbers for the following:
TSIF_TSPP_IRQ, TSIF0_IRQ, TSIF1_IRQ, TSIF_BAM_IRQ.
- interrupt-names: TSPP, TSIF and BAM interrupt names.
- pinctrl-names: the names of the pinctrl states that are used by the driver to
configure the TLMM pins. The allowed states are:
disabled - both tsif inputs are not used
tsif0-mode1 - only tsif0 is active in mode 1 (no sync signal)
tsif0-mode2 - only tsif0 is used in mode 2 (with sync signal)
tsif1-mode1 - only tsif1 is active in mode 1 (no sync signal)
tsif1-mode2 - only tsif1 is used in mode 2 (with sync signal)
dual-tsif-mode1 - both tsif0 and tsif1 are active, in mode 1
dual-tsif-mode1 - both tsif0 and tsif1 are active, in mode 2
- pinctrl-#: a list of pinctrl phandles for the different pinctrl states. Refer
to "Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt" for
the pinctrl handles definitions. Each pinctrl-# corresponds to the
respective state name that appears under pinctrl-state list.
Note that when switching from one state to another, any pins in
the old state which do not appear in the new state are automatically
disabled by the pinctrl framework.
Optional properties:
- vdd_cx-supply: Reference to the regulator that supplies the CX rail.
Some hardware platforms (e.g. 8974-v2) require the voltage of the rail
supplying power to the TSIF hardware block to be elevated before
enabling the TSIF clocks.
- Refer to "Documentation/devicetree/bindings/arm/msm/msm_bus.txt" for
the below optional properties:
- qcom,msm-bus,name
- qcom,msm-bus,num-cases
- qcom,msm-bus,num-paths
- qcom,msm-bus,vectors-KBps
Example (for 8974 platform, avaialble at msm8974.dtsi):
tspp: msm_tspp@f99d8000 {
compatible = "qcom,msm_tspp";
reg = <0xf99d8000 0x1000>, /* MSM_TSIF0_PHYS */
<0xf99d9000 0x1000>, /* MSM_TSIF1_PHYS */
<0xf99da000 0x1000>, /* MSM_TSPP_PHYS */
<0xf99c4000 0x14000>; /* MSM_TSPP_BAM_PHYS */
reg-names = "MSM_TSIF0_PHYS",
"MSM_TSIF1_PHYS",
"MSM_TSPP_PHYS",
"MSM_TSPP_BAM_PHYS";
interrupts = <0 153 0>, /* TSIF_TSPP_IRQ */
<0 151 0>, /* TSIF0_IRQ */
<0 152 0>, /* TSIF1_IRQ */
<0 154 0>; /* TSIF_BAM_IRQ */
interrupt-names = "TSIF_TSPP_IRQ",
"TSIF0_IRQ",
"TSIF1_IRQ",
"TSIF_BAM_IRQ";
pinctrl-names = "disabled",
"tsif0-mode1", "tsif0-mode2",
"tsif1-mode1", "tsif1-mode2",
"dual-tsif-mode1", "dual-tsif-mode2";
pinctrl-0 = <>; /* disabled */
pinctrl-1 = <&tsif0_signals_active>; /* tsif0-mode1 */
pinctrl-2 = <&tsif0_signals_active
&tsif0_sync_active>; /* tsif0-mode2 */
pinctrl-3 = <&tsif1_signals_active>; /* tsif1-mode1 */
pinctrl-4 = <&tsif1_signals_active
&tsif1_sync_active>; /* tsif1-mode2 */
pinctrl-5 = <&tsif0_signals_active
&tsif1_signals_active>; /* dual-tsif-mode1 */
pinctrl-6 = <&tsif0_signals_active
&tsif0_sync_active
&tsif1_signals_active
&tsif1_sync_active>; /* dual-tsif-mode2 */
qcom,msm-bus,name = "tsif";
qcom,msm-bus,num-cases = <2>;
qcom,msm-bus,num-paths = <1>;
qcom,msm-bus,vectors-KBps =
<82 512 0 0>, /* No vote */
<82 512 12288 24576>; /* Max. bandwidth, 2xTSIF, each max of 96Mbps */
};