soc/intel_adsp: Require definitions for cavs_hda.h
Rather than defining them in the header, require a set of defines be provided to cavs_hda.h as part of the expected input to the API. Signed-off-by: Tom Burdick <thomas.burdick@intel.com>
This commit is contained in:
parent
e018a3dff7
commit
602ef3fb0e
6 changed files with 39 additions and 17 deletions
|
@ -4,14 +4,6 @@
|
||||||
* SPDX-License-Identifier: Apache-2.0
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <drivers/dma.h>
|
|
||||||
#include <cavs_hda.h>
|
|
||||||
#include "dma_cavs_hda.h"
|
|
||||||
|
|
||||||
#define LOG_LEVEL CONFIG_DMA_LOG_LEVEL
|
|
||||||
#include <logging/log.h>
|
|
||||||
LOG_MODULE_REGISTER(dma_cavs_hda_dma);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Intel CAVS HDA DMA (Stream) driver
|
* @brief Intel CAVS HDA DMA (Stream) driver
|
||||||
*
|
*
|
||||||
|
@ -30,6 +22,19 @@ LOG_MODULE_REGISTER(dma_cavs_hda_dma);
|
||||||
* communicate to or from the Host or Link. Each stream set is uni directional.
|
* communicate to or from the Host or Link. Each stream set is uni directional.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include <drivers/dma.h>
|
||||||
|
|
||||||
|
#include "dma_cavs_hda.h"
|
||||||
|
|
||||||
|
#include <logging/log.h>
|
||||||
|
LOG_MODULE_REGISTER(dma_cavs_hda_dma, CONFIG_DMA_LOG_LEVEL);
|
||||||
|
|
||||||
|
/* Define low level driver required values */
|
||||||
|
#define HDA_HOST_IN_BASE DT_PROP_BY_IDX(DT_NODELABEL(hda_host_in), reg, 0)
|
||||||
|
#define HDA_HOST_OUT_BASE DT_PROP_BY_IDX(DT_NODELABEL(hda_host_out), reg, 0)
|
||||||
|
#define HDA_STREAM_COUNT DT_PROP(DT_NODELABEL(hda_host_out), dma_channels)
|
||||||
|
#define HDA_REGBLOCK_SIZE DT_PROP_BY_IDX(DT_NODELABEL(hda_host_out), reg, 1)
|
||||||
|
#include <cavs_hda.h>
|
||||||
|
|
||||||
int cavs_hda_dma_host_in_config(const struct device *dev,
|
int cavs_hda_dma_host_in_config(const struct device *dev,
|
||||||
uint32_t channel,
|
uint32_t channel,
|
||||||
|
|
|
@ -7,7 +7,6 @@
|
||||||
#define DT_DRV_COMPAT intel_cavs_hda_host_in
|
#define DT_DRV_COMPAT intel_cavs_hda_host_in
|
||||||
|
|
||||||
#include <drivers/dma.h>
|
#include <drivers/dma.h>
|
||||||
#include <cavs_hda.h>
|
|
||||||
#include "dma_cavs_hda.h"
|
#include "dma_cavs_hda.h"
|
||||||
|
|
||||||
#define LOG_LEVEL CONFIG_DMA_LOG_LEVEL
|
#define LOG_LEVEL CONFIG_DMA_LOG_LEVEL
|
||||||
|
|
|
@ -7,7 +7,6 @@
|
||||||
#define DT_DRV_COMPAT intel_cavs_hda_host_out
|
#define DT_DRV_COMPAT intel_cavs_hda_host_out
|
||||||
|
|
||||||
#include <drivers/dma.h>
|
#include <drivers/dma.h>
|
||||||
#include <cavs_hda.h>
|
|
||||||
#include "dma_cavs_hda.h"
|
#include "dma_cavs_hda.h"
|
||||||
|
|
||||||
#define LOG_LEVEL CONFIG_DMA_LOG_LEVEL
|
#define LOG_LEVEL CONFIG_DMA_LOG_LEVEL
|
||||||
|
|
|
@ -17,13 +17,22 @@
|
||||||
* Provides low level calls to support cAVS HDA streams with
|
* Provides low level calls to support cAVS HDA streams with
|
||||||
* minimal abstraction that allows testing the hardware
|
* minimal abstraction that allows testing the hardware
|
||||||
* and its demands separately from the intended DMA API
|
* and its demands separately from the intended DMA API
|
||||||
* usage.
|
* usage. The only requirement is that you define the base
|
||||||
|
* addresses, the stream count, and the size of the ip blocks.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define HDA_HOST_OUT_BASE 0x72800
|
#ifndef HDA_HOST_OUT_BASE
|
||||||
#define HDA_HOST_IN_BASE 0x72c00
|
#error Must define HDA_HOST_OUT_BASE
|
||||||
#define HDA_STREAM_COUNT 7
|
#endif
|
||||||
#define HDA_REGBLOCK_SIZE 0x40
|
#ifndef HDA_HOST_IN_BASE
|
||||||
|
#error Must define HDA_HOST_IN_BASE
|
||||||
|
#endif
|
||||||
|
#ifndef HDA_STREAM_COUNT
|
||||||
|
#error Must define HDA_STREAM_COUNT
|
||||||
|
#endif
|
||||||
|
#ifndef HDA_REGBLOCK_SIZE
|
||||||
|
#error Must define HDA_REGBLOCK_SIZE
|
||||||
|
#endif
|
||||||
|
|
||||||
/* The read/write positions are masked to 24 bits */
|
/* The read/write positions are masked to 24 bits */
|
||||||
#define HDA_RWP_MASK 0x00FFFFFF
|
#define HDA_RWP_MASK 0x00FFFFFF
|
||||||
|
|
|
@ -6,7 +6,6 @@
|
||||||
#include <kernel.h>
|
#include <kernel.h>
|
||||||
#include <ztest.h>
|
#include <ztest.h>
|
||||||
#include <cavs_ipc.h>
|
#include <cavs_ipc.h>
|
||||||
#include <cavs_hda.h>
|
|
||||||
#include <drivers/dma.h>
|
#include <drivers/dma.h>
|
||||||
#include "tests.h"
|
#include "tests.h"
|
||||||
|
|
||||||
|
@ -17,6 +16,11 @@
|
||||||
|
|
||||||
static __aligned(128) uint8_t dma_buf[DMA_BUF_SIZE];
|
static __aligned(128) uint8_t dma_buf[DMA_BUF_SIZE];
|
||||||
|
|
||||||
|
#define HDA_HOST_IN_BASE DT_PROP_BY_IDX(DT_NODELABEL(hda_host_in), reg, 0)
|
||||||
|
#define HDA_HOST_OUT_BASE DT_PROP_BY_IDX(DT_NODELABEL(hda_host_out), reg, 0)
|
||||||
|
#define HDA_STREAM_COUNT DT_PROP(DT_NODELABEL(hda_host_out), dma_channels)
|
||||||
|
#define HDA_REGBLOCK_SIZE DT_PROP_BY_IDX(DT_NODELABEL(hda_host_out), reg, 1)
|
||||||
|
#include <cavs_hda.h>
|
||||||
|
|
||||||
static volatile int msg_cnt;
|
static volatile int msg_cnt;
|
||||||
static volatile int msg_res;
|
static volatile int msg_res;
|
||||||
|
|
|
@ -6,9 +6,15 @@
|
||||||
#include <kernel.h>
|
#include <kernel.h>
|
||||||
#include <ztest.h>
|
#include <ztest.h>
|
||||||
#include <cavs_ipc.h>
|
#include <cavs_ipc.h>
|
||||||
#include <cavs_hda.h>
|
#include <devicetree.h>
|
||||||
#include "tests.h"
|
#include "tests.h"
|
||||||
|
|
||||||
|
#define HDA_HOST_IN_BASE DT_PROP_BY_IDX(DT_NODELABEL(hda_host_in), reg, 0)
|
||||||
|
#define HDA_HOST_OUT_BASE DT_PROP_BY_IDX(DT_NODELABEL(hda_host_out), reg, 0)
|
||||||
|
#define HDA_STREAM_COUNT DT_PROP(DT_NODELABEL(hda_host_out), dma_channels)
|
||||||
|
#define HDA_REGBLOCK_SIZE DT_PROP_BY_IDX(DT_NODELABEL(hda_host_out), reg, 1)
|
||||||
|
#include <cavs_hda.h>
|
||||||
|
|
||||||
#define IPC_TIMEOUT K_MSEC(500)
|
#define IPC_TIMEOUT K_MSEC(500)
|
||||||
#define STREAM_ID 3U
|
#define STREAM_ID 3U
|
||||||
#define HDA_BUF_SIZE 256
|
#define HDA_BUF_SIZE 256
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue