diff options
author | Daniel Baluta <daniel.baluta@nxp.com> | 2019-08-01 11:56:36 +0200 |
---|---|---|
committer | Shawn Guo <shawnguo@kernel.org> | 2019-08-12 15:19:25 +0200 |
commit | ffbf23d50353915dc2622a3b7b4ddc678165f92d (patch) | |
tree | 7659b89235051a65d0df50eec8d165e07baa017f /drivers/bus | |
parent | soc: imx-scu: Add SoC UID(unique identifier) support (diff) | |
download | linux-ffbf23d50353915dc2622a3b7b4ddc678165f92d.tar.xz linux-ffbf23d50353915dc2622a3b7b4ddc678165f92d.zip |
firmware: imx: Add DSP IPC protocol interface
Some of i.MX8 processors (e.g i.MX8QM, i.MX8QXP) contain
the Tensilica HiFi4 DSP for advanced pre- and post-audio
processing.
The communication between Host CPU and DSP firmware is
taking place using a shared memory area for message passing
and a dedicated Messaging Unit for notifications.
DSP IPC protocol offers a doorbell interface using
imx-mailbox API.
We use 4 MU channels (2 x TXDB, 2 x RXDB) to implement a
request-reply protocol.
Connection 0 (txdb0, rxdb0):
- Host writes messasge to shared memory [SHMEM]
- Host sends a request [MU]
- DSP handles request [SHMEM]
- DSP sends reply [MU]
Connection 1 (txdb1, rxdb1):
- DSP writes a message to shared memory [SHMEM]
- DSP sends a request [MU]
- Host handles request [SHMEM]
- Host sends reply [MU]
The protocol interface will be used by a Host client to
communicate with the DSP. First client will be the i.MX8
part from Sound Open Firmware infrastructure.
The protocol offers the following interface:
On Tx:
- imx_dsp_ring_doorbell, will be called to notify the DSP
that it needs to handle a request.
On Rx:
- clients need to provide two callbacks:
.handle_reply
.handle_request
- the callbacks will be used by the protocol on
notification arrival from DSP.
Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
Reviewed-by: Oleksij Rempel <o.rempel@pengutronix.de>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
Diffstat (limited to 'drivers/bus')
0 files changed, 0 insertions, 0 deletions