96 lines
3.2 KiB
Plaintext
96 lines
3.2 KiB
Plaintext
|
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"
|
||
|
- cell-index: <0> - represents device ID.
|
||
|
- 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.
|
||
|
- qcom,tsif-pclk: interface clock name.
|
||
|
- qcom,tsif-ref-clk: reference clock name.
|
||
|
The driver uses clk_get to get the clocks by name. The clocks
|
||
|
should be defined in the relevant clock file (e.g. clock-8974.c).
|
||
|
- gpios: GPIO numbers for TSIF0 (CLK, EN, DATA and SYNC) and TSIF1 (same).
|
||
|
- qcom,gpio-names: GPIO names - strings describing the GPIO functionality.
|
||
|
- qcom,gpios-func: GPIO functionality according to the GPIO functionality table.
|
||
|
GPIO pins can have more than a single functionality, and the TSPP driver
|
||
|
is responsible for configuring the GPIOs to work in TSIF functionality
|
||
|
based on this parameter.
|
||
|
Note: it is assumed that the functionality value (e.g. 1 in 8974 case)
|
||
|
is applicable to all TSIF GPIOs.
|
||
|
|
||
|
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,active-only
|
||
|
- 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";
|
||
|
cell-index = <0>;
|
||
|
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";
|
||
|
qcom,tsif-pclk = "iface_clk";
|
||
|
qcom,tsif-ref-clk = "ref_clk";
|
||
|
gpios = <&msmgpio 89 0>, /* TSIF0 CLK */
|
||
|
<&msmgpio 90 0>, /* TSIF0 EN */
|
||
|
<&msmgpio 91 0>, /* TSIF0 DATA */
|
||
|
<&msmgpio 92 0>, /* TSIF0 SYNC */
|
||
|
<&msmgpio 93 0>, /* TSIF1 CLK */
|
||
|
<&msmgpio 94 0>, /* TSIF1 EN */
|
||
|
<&msmgpio 95 0>, /* TSIF1 DATA */
|
||
|
<&msmgpio 96 0>; /* TSIF1 SYNC */
|
||
|
qcom,gpio-names = "tsif_clk",
|
||
|
"tsif_en",
|
||
|
"tsif_data",
|
||
|
"tsif_sync",
|
||
|
"tsif_clk",
|
||
|
"tsif_en",
|
||
|
"tsif_data",
|
||
|
"tsif_sync";
|
||
|
qcom,gpios-func = <1>;
|
||
|
|
||
|
qcom,msm-bus,name = "tsif";
|
||
|
qcom,msm-bus,num-cases = <2>;
|
||
|
qcom,msm-bus,active-only = <0>;
|
||
|
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 */
|
||
|
};
|
||
|
|
||
|
|