Merge "dt-bindings: qcom-sps-dma: Add snapshot of SPS DMA driver"

This commit is contained in:
qctecmdr 2020-10-09 19:37:36 -07:00 • committed by Gerrit - the friendly Code Review server
commit aa80d9fb02
2 changed files with 162 additions and 0 deletions

View file

@ -0,0 +1,42 @@
* Qualcomm technologies inc, DMA engine driver for BAM (Bus Access Manager).
Required properties:
- compatible: Should be "qcom,sps-dma".
- reg: Should contain DMA registers location and length. This should include
all of the per-channel registers.
- interrupts: Should contain the BAM interrupt number.
- qcom,summing-threshold: Should contain the BAM event threshold of
the sum of descriptors' sizes in bytes.
Optional properties:
- qcom,managed-locally : Use when BAM global device control is managed locally
by the application processor.
Example:
dma_blsp1: qcom,sps-dma@f9904000 { /* BLSP1 */
#dma-cells = <4>;
compatible = "qcom,sps-dma";
reg = <0xf9904000 0x19000>;
interrupts = <0 238 0>;
qcom,summing-threshold = <10>;
};
DMA clients connected to the qcom-sps-dma DMA controller must use the format
described in the dma.txt file, using a five-cell specifier for each channel,
a phandle plus four integer cells, as shown below:
dmas = <[phandle of the dma controller] [pipe index] [number of descriptors]
[sps_connect flags] [sps_register_event flags]>;
Example:
i2c_2: i2c@f9924000 { /* BLSP1 QUP2 */
.
.
.
/* <&phandle pipe-idx n-descs connect-flags event-flags> */
dmas = <&dma_blsp1 14 32 0x20000020 0x20>,
<&dma_blsp1 15 64 0x20000020 0x20>;
dma-names = "tx", "rx";
};

View file

@ -0,0 +1,120 @@
* Qualcomm Technologies Inc, BLSP MSM HSUART
Required properties:
- compatible :
- "qcom,msm-hsuart-v14" to be used for UARTDM Core v1.4
- reg : offset and length of the register set for both the device,
uart core and bam core
- reg-names :
- "core_mem" to be used as name of the uart core
- "bam_mem" to be used as name of the bam core
- interrupts : interrupts for both the device,uart core and bam core
- interrupt-names :
- "core_irq" to be used as uart irq
- "bam irq" to be used as bam irq
- #interrupt-cells: Specifies the number of cells needed to encode an interrupt
source. The type shall be a <u32> and the value shall be 1
- #address-cells: Specifies the number of cells needed to encode an address.
The type shall be <u32> and the value shall be 0
- interrupt-parent = It is needed for interrupt mapping
- bam-tx-ep-pipe-index : BAM TX Endpoint Pipe Index for HSUART
- bam-rx-ep-pipe-index : BAM RX Endpoint Pipe Index for HSUART
BLSP has a static pipe allocation and assumes a pair-pipe for each uart core.
Pipes [2*i : 2*i+1] are allocated for UART cores where i = [0 : 5].
Hence, Minimum and Maximum permitted value of endpoint pipe index to be used
with uart core is 0 and 11 respectively.
There is one HSUART block used in MSM devices,
"qcom,msm-hsuart-v14". The msm-serial-hs driver is
able to handle this, and matches against the "qcom,msm-hsuart-v14"
as the compatibility.
The registers for the "qcom,msm-hsuart-v14" device need to specify both
register blocks - uart core and bam core.
Example:
uart7: uart@f995d000 {
compatible = "qcom,msm-hsuart-v14";
reg = <0xf995d000 0x1000>,
<0xf9944000 0x5000>;
reg-names = "core_mem", "bam_mem";
interrupt-names = "core_irq", "bam_irq";
#address-cells = <0>;
interrupt-parent = <&uart7>;
interrupts = <0 1>;
#interrupt-cells = <1>;
interrupt-map = <0 &intc 0 113 0
1 &intc 0 239 0>
qcom,bam-tx-ep-pipe-index = <0>;
qcom,bam-rx-ep-pipe-index = <1>;
};
Optional properties:
- qcom,<gpio-name>-gpio : handle to the GPIO node, see "gpios property" in
Documentation/devicetree/bindings/gpio/gpio.txt.
"gpio-name" can be "tx", "rx", "cts" and "rfr" based on number of UART GPIOs
need to configured.
Gpio's are optional if it is required to be not configured by UART driver or
case where there is nothing connected and we want to use internal loopback mode
for uart.
- qcom, wakeup_irq : UART RX GPIO IRQ line to be configured as wakeup source.
- qcom,inject-rx-on-wakeup : inject_rx_on_wakeup enables feature where on
receiving interrupt with UART RX GPIO IRQ line (i.e. above wakeup_irq property),
HSUART driver injects provided character with property rx_to_inject.
- qcom, rx-char-to-inject : The character to be inserted on wakeup.
- qcom, no-suspend-delay : This decides system to go to suspend immediately
or not
- interconnects: pairs of phandles and interconnect provider specifier
to denote the edge source and destination ports of
the interconnect path. Please refer to
Documentation/devicetree/bindings/interconnect/
for more details.
- interconnect-names: List of interconnect path name strings sorted in the same
order as the interconnects property. Consumers drivers will use
interconnect-names to match interconnect paths with interconnect
specifiers. Please refer to Documentation/devicetree/bindings/
interconnect/ for more details.
Aliases :
An alias may be optionally used to bind the UART device to a TTY device
(ttyHS<alias_num>) with a given alias number. Aliases are of the form
uart<n> where <n> is an integer representing the alias number to use.
On systems with multiple UART devices present, an alias may optionally be
defined for such devices. The alias value should be from 0 to 255.
Example:
aliases {
uart4 = &uart7; // This device will be enumerated as ttyHS4
};
uart7: uart@f995d000 {
compatible = "qcom,msm-hsuart-v14"
reg = <0x19c40000 0x1000">,
<0xf9944000 0x5000>;
reg-names = "core_mem", "bam_mem";
interrupt-names = "core_irq", "bam_irq", "wakeup_irq";
#address-cells = <0>;
interrupt-parent = <&uart7>;
interrupts = <0 1 2>;
#interrupt-cells = <1>;
interrupt-map-mask = <0xffffffff>;
interrupt-map = <0 &intc 0 113 0
1 &intc 0 239 0
2 &msmgpio 42 0>;
qcom,tx-gpio = <&msmgpio 41 0x00>;
qcom,rx-gpio = <&msmgpio 42 0x00>;
qcom,cts-gpio = <&msmgpio 43 0x00>;
qcom,rfr-gpio = <&msmgpio 44 0x00>;
qcom,inject-rx-on-wakeup = <1>;
qcom,rx-char-to-inject = <0xFD>;
qcom,bam-tx-ep-pipe-index = <0>;
qcom,bam-rx-ep-pipe-index = <1>;
interconnect-names = "blsp-ddr";
interconnects = <&system_noc MASTER_BLSP_1 &mc_virt SLAVE_EBI1>;
};