M7350/kernel/Documentation/devicetree/bindings/arm/msm/msm_tspp.txt
2024-09-09 08:52:07 +00:00

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 */
};