driver: i2s: move to new logger

Move drivers to new logger and change samples enabling logging in
prj.conf.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
This commit is contained in:
Anas Nashif 2018-10-08 18:03:38 -04:00
commit a66967b0f2
5 changed files with 71 additions and 79 deletions

View file

@ -20,19 +20,9 @@ config I2S_INIT_PRIORITY
help help
Device driver initialization priority. Device driver initialization priority.
config SYS_LOG_I2S_LEVEL module = I2S
int "I2S Driver Log level" module-str = i2s
depends on SYS_LOG source "subsys/logging/Kconfig.template.log_config"
default 0
range 0 4
help
Sets log level for I2S drivers.
Levels are:
0 OFF, do not write
1 ERROR, only write SYS_LOG_ERR
2 WARNING, write SYS_LOG_WRN in addition to previous level
3 INFO, write SYS_LOG_INF in addition to previous levels
4 DEBUG, write SYS_LOG_DBG in addition to previous levels
comment "Device Drivers" comment "Device Drivers"

View file

@ -23,9 +23,10 @@
#include <soc.h> #include <soc.h>
#include "i2s_cavs.h" #include "i2s_cavs.h"
#define SYS_LOG_DOMAIN "dev/i2s_cavs" #define LOG_DOMAIN dev_i2s_cavs
#define SYS_LOG_LEVEL CONFIG_SYS_LOG_I2S_LEVEL #define LOG_LEVEL CONFIG_I2S_LOG_LEVEL
#include <logging/sys_log.h> #include <logging/log.h>
LOG_MODULE_REGISTER(LOG_DOMAIN);
#ifdef CONFIG_DCACHE_WRITEBACK #ifdef CONFIG_DCACHE_WRITEBACK
#define DCACHE_INVALIDATE(addr, size) \ #define DCACHE_INVALIDATE(addr, size) \
@ -210,13 +211,13 @@ static int start_dma(struct device *dev_dma, u32_t channel,
ret = dma_config(dev_dma, channel, cfg); ret = dma_config(dev_dma, channel, cfg);
if (ret < 0) { if (ret < 0) {
SYS_LOG_ERR("dma_config failed: %d", ret); LOG_ERR("dma_config failed: %d", ret);
return ret; return ret;
} }
ret = dma_start(dev_dma, channel); ret = dma_start(dev_dma, channel);
if (ret < 0) { if (ret < 0) {
SYS_LOG_ERR("dma_start failed: %d", ret); LOG_ERR("dma_start failed: %d", ret);
} }
return ret; return ret;
@ -243,7 +244,7 @@ static void dma_tx_callback(struct device *dev_dma, u32_t channel, int status)
/* Stop transmission if there was an error */ /* Stop transmission if there was an error */
if (strm->state == I2S_STATE_ERROR) { if (strm->state == I2S_STATE_ERROR) {
SYS_LOG_DBG("TX error detected"); LOG_DBG("TX error detected");
goto tx_disable; goto tx_disable;
} }
@ -274,7 +275,7 @@ static void dma_tx_callback(struct device *dev_dma, u32_t channel, int status)
strm->mem_block, (void *)&(ssp->ssd), strm->mem_block, (void *)&(ssp->ssd),
mem_block_size); mem_block_size);
if (ret < 0) { if (ret < 0) {
SYS_LOG_DBG("Failed to start TX DMA transfer: %d", ret); LOG_DBG("Failed to start TX DMA transfer: %d", ret);
goto tx_disable; goto tx_disable;
} }
return; return;
@ -315,13 +316,13 @@ static int i2s_cavs_configure(struct device *dev, enum i2s_dir dir,
if (dir == I2S_DIR_TX) { if (dir == I2S_DIR_TX) {
strm = &dev_data->tx; strm = &dev_data->tx;
} else { } else {
SYS_LOG_ERR("TX direction must be selected"); LOG_ERR("TX direction must be selected");
return -EINVAL; return -EINVAL;
} }
if (strm->state != I2S_STATE_NOT_READY && if (strm->state != I2S_STATE_NOT_READY &&
strm->state != I2S_STATE_READY) { strm->state != I2S_STATE_READY) {
SYS_LOG_ERR("invalid state"); LOG_ERR("invalid state");
return -EINVAL; return -EINVAL;
} }
@ -334,13 +335,13 @@ static int i2s_cavs_configure(struct device *dev, enum i2s_dir dir,
if (word_size_bits < CAVS_SSP_WORD_SIZE_BITS_MIN || if (word_size_bits < CAVS_SSP_WORD_SIZE_BITS_MIN ||
word_size_bits > CAVS_SSP_WORD_SIZE_BITS_MAX) { word_size_bits > CAVS_SSP_WORD_SIZE_BITS_MAX) {
SYS_LOG_ERR("Unsupported I2S word size"); LOG_ERR("Unsupported I2S word size");
return -EINVAL; return -EINVAL;
} }
if (num_words < CAVS_SSP_WORD_PER_FRAME_MIN || if (num_words < CAVS_SSP_WORD_PER_FRAME_MIN ||
num_words > CAVS_SSP_WORD_PER_FRAME_MAX) { num_words > CAVS_SSP_WORD_PER_FRAME_MAX) {
SYS_LOG_ERR("Unsupported words per frame number"); LOG_ERR("Unsupported words per frame number");
return -EINVAL; return -EINVAL;
} }
@ -408,7 +409,7 @@ static int i2s_cavs_configure(struct device *dev, enum i2s_dir dir,
break; break;
default: default:
SYS_LOG_ERR("Unsupported Clock format"); LOG_ERR("Unsupported Clock format");
return -EINVAL; return -EINVAL;
} }
@ -417,7 +418,7 @@ static int i2s_cavs_configure(struct device *dev, enum i2s_dir dir,
/* BCLK is generated from MCLK - must be divisible */ /* BCLK is generated from MCLK - must be divisible */
if (mclk % bit_clk_freq) { if (mclk % bit_clk_freq) {
SYS_LOG_INF("MCLK/BCLK is not an integer, using M/N divider"); LOG_INF("MCLK/BCLK is not an integer, using M/N divider");
/* /*
* Simplification: Instead of calculating lowest values of * Simplification: Instead of calculating lowest values of
@ -440,7 +441,7 @@ static int i2s_cavs_configure(struct device *dev, enum i2s_dir dir,
/* divisor must be within SCR range */ /* divisor must be within SCR range */
if (mdiv > (SSCR0_SCR_MASK >> 8)) { if (mdiv > (SSCR0_SCR_MASK >> 8)) {
SYS_LOG_ERR("Divisor is not within SCR range"); LOG_ERR("Divisor is not within SCR range");
return -EINVAL; return -EINVAL;
} }
@ -476,7 +477,7 @@ static int i2s_cavs_configure(struct device *dev, enum i2s_dir dir,
case I2S_FMT_DATA_FORMAT_PCM_SHORT: case I2S_FMT_DATA_FORMAT_PCM_SHORT:
case I2S_FMT_DATA_FORMAT_PCM_LONG: case I2S_FMT_DATA_FORMAT_PCM_LONG:
default: default:
SYS_LOG_ERR("Unsupported I2S data format"); LOG_ERR("Unsupported I2S data format");
return -EINVAL; return -EINVAL;
} }
@ -532,7 +533,7 @@ static int tx_stream_start(struct stream *strm,
strm->mem_block, (void *)&(ssp->ssd), strm->mem_block, (void *)&(ssp->ssd),
mem_block_size); mem_block_size);
if (ret < 0) { if (ret < 0) {
SYS_LOG_ERR("Failed to start TX DMA transfer: %d", ret); LOG_ERR("Failed to start TX DMA transfer: %d", ret);
return ret; return ret;
} }
@ -605,14 +606,14 @@ static int i2s_cavs_trigger(struct device *dev, enum i2s_dir dir,
if (dir == I2S_DIR_TX) { if (dir == I2S_DIR_TX) {
strm = &dev_data->tx; strm = &dev_data->tx;
} else { } else {
SYS_LOG_ERR("TX direction must be selected"); LOG_ERR("TX direction must be selected");
return -EINVAL; return -EINVAL;
} }
switch (cmd) { switch (cmd) {
case I2S_TRIGGER_START: case I2S_TRIGGER_START:
if (strm->state != I2S_STATE_READY) { if (strm->state != I2S_STATE_READY) {
SYS_LOG_DBG("START trigger: invalid state"); LOG_DBG("START trigger: invalid state");
return -EIO; return -EIO;
} }
@ -620,7 +621,7 @@ static int i2s_cavs_trigger(struct device *dev, enum i2s_dir dir,
ret = strm->stream_start(strm, ssp, dev_data->dev_dma); ret = strm->stream_start(strm, ssp, dev_data->dev_dma);
if (ret < 0) { if (ret < 0) {
SYS_LOG_DBG("START trigger failed %d", ret); LOG_DBG("START trigger failed %d", ret);
return ret; return ret;
} }
@ -632,7 +633,7 @@ static int i2s_cavs_trigger(struct device *dev, enum i2s_dir dir,
key = irq_lock(); key = irq_lock();
if (strm->state != I2S_STATE_RUNNING) { if (strm->state != I2S_STATE_RUNNING) {
irq_unlock(key); irq_unlock(key);
SYS_LOG_DBG("STOP trigger: invalid state"); LOG_DBG("STOP trigger: invalid state");
return -EIO; return -EIO;
} }
strm->state = I2S_STATE_STOPPING; strm->state = I2S_STATE_STOPPING;
@ -644,7 +645,7 @@ static int i2s_cavs_trigger(struct device *dev, enum i2s_dir dir,
key = irq_lock(); key = irq_lock();
if (strm->state != I2S_STATE_RUNNING) { if (strm->state != I2S_STATE_RUNNING) {
irq_unlock(key); irq_unlock(key);
SYS_LOG_DBG("DRAIN trigger: invalid state"); LOG_DBG("DRAIN trigger: invalid state");
return -EIO; return -EIO;
} }
strm->state = I2S_STATE_STOPPING; strm->state = I2S_STATE_STOPPING;
@ -653,7 +654,7 @@ static int i2s_cavs_trigger(struct device *dev, enum i2s_dir dir,
case I2S_TRIGGER_DROP: case I2S_TRIGGER_DROP:
if (strm->state == I2S_STATE_NOT_READY) { if (strm->state == I2S_STATE_NOT_READY) {
SYS_LOG_DBG("DROP trigger: invalid state"); LOG_DBG("DROP trigger: invalid state");
return -EIO; return -EIO;
} }
strm->stream_disable(strm, ssp, dev_data->dev_dma); strm->stream_disable(strm, ssp, dev_data->dev_dma);
@ -663,7 +664,7 @@ static int i2s_cavs_trigger(struct device *dev, enum i2s_dir dir,
case I2S_TRIGGER_PREPARE: case I2S_TRIGGER_PREPARE:
if (strm->state != I2S_STATE_ERROR) { if (strm->state != I2S_STATE_ERROR) {
SYS_LOG_DBG("PREPARE trigger: invalid state"); LOG_DBG("PREPARE trigger: invalid state");
return -EIO; return -EIO;
} }
strm->state = I2S_STATE_READY; strm->state = I2S_STATE_READY;
@ -671,7 +672,7 @@ static int i2s_cavs_trigger(struct device *dev, enum i2s_dir dir,
break; break;
default: default:
SYS_LOG_ERR("Unsupported trigger command"); LOG_ERR("Unsupported trigger command");
return -EINVAL; return -EINVAL;
} }
@ -686,13 +687,13 @@ static int i2s_cavs_write(struct device *dev, void *mem_block, size_t size)
if (dev_data->tx.state != I2S_STATE_RUNNING && if (dev_data->tx.state != I2S_STATE_RUNNING &&
dev_data->tx.state != I2S_STATE_READY) { dev_data->tx.state != I2S_STATE_READY) {
SYS_LOG_ERR("invalid state"); LOG_ERR("invalid state");
return -EIO; return -EIO;
} }
ret = k_sem_take(&dev_data->tx.sem, dev_data->tx.cfg.timeout); ret = k_sem_take(&dev_data->tx.sem, dev_data->tx.cfg.timeout);
if (ret < 0) { if (ret < 0) {
SYS_LOG_ERR("Failure taking sem"); LOG_ERR("Failure taking sem");
return ret; return ret;
} }
@ -729,14 +730,14 @@ static int i2s1_cavs_initialize(struct device *dev)
dev_data->dev_dma = device_get_binding(CONFIG_I2S_CAVS_DMA_NAME); dev_data->dev_dma = device_get_binding(CONFIG_I2S_CAVS_DMA_NAME);
if (!dev_data->dev_dma) { if (!dev_data->dev_dma) {
SYS_LOG_ERR("%s device not found", CONFIG_I2S_CAVS_DMA_NAME); LOG_ERR("%s device not found", CONFIG_I2S_CAVS_DMA_NAME);
return -ENODEV; return -ENODEV;
} }
/* Enable module's IRQ */ /* Enable module's IRQ */
irq_enable(dev_cfg->irq_id); irq_enable(dev_cfg->irq_id);
SYS_LOG_INF("Device %s initialized", DEV_NAME(dev)); LOG_INF("Device %s initialized", DEV_NAME(dev));
return 0; return 0;
} }

View file

@ -27,9 +27,10 @@
#include <i2s.h> #include <i2s.h>
#include <soc.h> #include <soc.h>
#define SYS_LOG_DOMAIN "dev/i2s_sam_ssc" #define LOG_DOMAIN dev_i2s_sam_ssc
#define SYS_LOG_LEVEL CONFIG_SYS_LOG_I2S_LEVEL #define LOG_LEVEL CONFIG_I2S_LOG_LEVEL
#include <logging/sys_log.h> #include <logging/log.h>
LOG_MODULE_REGISTER(LOG_DOMAIN);
/* FIXME change to /* FIXME change to
* #if __DCACHE_PRESENT == 1 * #if __DCACHE_PRESENT == 1
@ -234,7 +235,7 @@ static void dma_rx_callback(struct device *dev_dma, u32_t channel, int status)
(void *)&(ssc->SSC_RHR), stream->mem_block, (void *)&(ssc->SSC_RHR), stream->mem_block,
stream->cfg.block_size); stream->cfg.block_size);
if (ret < 0) { if (ret < 0) {
SYS_LOG_DBG("Failed to start RX DMA transfer: %d", ret); LOG_DBG("Failed to start RX DMA transfer: %d", ret);
goto rx_disable; goto rx_disable;
} }
@ -263,7 +264,7 @@ static void dma_tx_callback(struct device *dev_dma, u32_t channel, int status)
/* Stop transmission if there was an error */ /* Stop transmission if there was an error */
if (stream->state == I2S_STATE_ERROR) { if (stream->state == I2S_STATE_ERROR) {
SYS_LOG_DBG("TX error detected"); LOG_DBG("TX error detected");
goto tx_disable; goto tx_disable;
} }
@ -293,7 +294,7 @@ static void dma_tx_callback(struct device *dev_dma, u32_t channel, int status)
stream->mem_block, (void *)&(ssc->SSC_THR), stream->mem_block, (void *)&(ssc->SSC_THR),
mem_block_size); mem_block_size);
if (ret < 0) { if (ret < 0) {
SYS_LOG_DBG("Failed to start TX DMA transfer: %d", ret); LOG_DBG("Failed to start TX DMA transfer: %d", ret);
goto tx_disable; goto tx_disable;
} }
@ -360,7 +361,7 @@ static int set_rx_data_format(const struct i2s_sam_dev_cfg *const dev_cfg,
break; break;
default: default:
SYS_LOG_ERR("Unsupported I2S data format"); LOG_ERR("Unsupported I2S data format");
return -EINVAL; return -EINVAL;
} }
@ -446,7 +447,7 @@ static int set_tx_data_format(const struct i2s_sam_dev_cfg *const dev_cfg,
break; break;
default: default:
SYS_LOG_ERR("Unsupported I2S data format"); LOG_ERR("Unsupported I2S data format");
return -EINVAL; return -EINVAL;
} }
@ -497,13 +498,13 @@ static int bit_clock_set(Ssc *const ssc, u32_t bit_clk_freq)
u32_t clk_div = SOC_ATMEL_SAM_MCK_FREQ_HZ / bit_clk_freq / 2; u32_t clk_div = SOC_ATMEL_SAM_MCK_FREQ_HZ / bit_clk_freq / 2;
if (clk_div == 0 || clk_div >= (1 << 12)) { if (clk_div == 0 || clk_div >= (1 << 12)) {
SYS_LOG_ERR("Invalid bit clock frequency"); LOG_ERR("Invalid bit clock frequency");
return -EINVAL; return -EINVAL;
} }
ssc->SSC_CMR = clk_div; ssc->SSC_CMR = clk_div;
SYS_LOG_DBG("freq = %d", bit_clk_freq); LOG_DBG("freq = %d", bit_clk_freq);
return 0; return 0;
} }
@ -545,13 +546,13 @@ static int i2s_sam_configure(struct device *dev, enum i2s_dir dir,
} else if (dir == I2S_DIR_TX) { } else if (dir == I2S_DIR_TX) {
stream = &dev_data->tx; stream = &dev_data->tx;
} else { } else {
SYS_LOG_ERR("Either RX or TX direction must be selected"); LOG_ERR("Either RX or TX direction must be selected");
return -EINVAL; return -EINVAL;
} }
if (stream->state != I2S_STATE_NOT_READY && if (stream->state != I2S_STATE_NOT_READY &&
stream->state != I2S_STATE_READY) { stream->state != I2S_STATE_READY) {
SYS_LOG_ERR("invalid state"); LOG_ERR("invalid state");
return -EINVAL; return -EINVAL;
} }
@ -563,26 +564,26 @@ static int i2s_sam_configure(struct device *dev, enum i2s_dir dir,
} }
if (i2s_cfg->format & I2S_FMT_FRAME_CLK_INV) { if (i2s_cfg->format & I2S_FMT_FRAME_CLK_INV) {
SYS_LOG_ERR("Frame clock inversion is not implemented"); LOG_ERR("Frame clock inversion is not implemented");
SYS_LOG_ERR("Please submit a patch"); LOG_ERR("Please submit a patch");
return -EINVAL; return -EINVAL;
} }
if (i2s_cfg->format & I2S_FMT_BIT_CLK_INV) { if (i2s_cfg->format & I2S_FMT_BIT_CLK_INV) {
SYS_LOG_ERR("Bit clock inversion is not implemented"); LOG_ERR("Bit clock inversion is not implemented");
SYS_LOG_ERR("Please submit a patch"); LOG_ERR("Please submit a patch");
return -EINVAL; return -EINVAL;
} }
if (word_size_bits < SAM_SSC_WORD_SIZE_BITS_MIN || if (word_size_bits < SAM_SSC_WORD_SIZE_BITS_MIN ||
word_size_bits > SAM_SSC_WORD_SIZE_BITS_MAX) { word_size_bits > SAM_SSC_WORD_SIZE_BITS_MAX) {
SYS_LOG_ERR("Unsupported I2S word size"); LOG_ERR("Unsupported I2S word size");
return -EINVAL; return -EINVAL;
} }
if (num_words < SAM_SSC_WORD_PER_FRAME_MIN || if (num_words < SAM_SSC_WORD_PER_FRAME_MIN ||
num_words > SAM_SSC_WORD_PER_FRAME_MAX) { num_words > SAM_SSC_WORD_PER_FRAME_MAX) {
SYS_LOG_ERR("Unsupported words per frame number"); LOG_ERR("Unsupported words per frame number");
return -EINVAL; return -EINVAL;
} }
@ -635,7 +636,7 @@ static int rx_stream_start(struct stream *stream, Ssc *const ssc,
(void *)&(ssc->SSC_RHR), stream->mem_block, (void *)&(ssc->SSC_RHR), stream->mem_block,
stream->cfg.block_size); stream->cfg.block_size);
if (ret < 0) { if (ret < 0) {
SYS_LOG_ERR("Failed to start RX DMA transfer: %d", ret); LOG_ERR("Failed to start RX DMA transfer: %d", ret);
return ret; return ret;
} }
@ -676,7 +677,7 @@ static int tx_stream_start(struct stream *stream, Ssc *const ssc,
stream->mem_block, (void *)&(ssc->SSC_THR), stream->mem_block, (void *)&(ssc->SSC_THR),
mem_block_size); mem_block_size);
if (ret < 0) { if (ret < 0) {
SYS_LOG_ERR("Failed to start TX DMA transfer: %d", ret); LOG_ERR("Failed to start TX DMA transfer: %d", ret);
return ret; return ret;
} }
@ -757,14 +758,14 @@ static int i2s_sam_trigger(struct device *dev, enum i2s_dir dir,
} else if (dir == I2S_DIR_TX) { } else if (dir == I2S_DIR_TX) {
stream = &dev_data->tx; stream = &dev_data->tx;
} else { } else {
SYS_LOG_ERR("Either RX or TX direction must be selected"); LOG_ERR("Either RX or TX direction must be selected");
return -EINVAL; return -EINVAL;
} }
switch (cmd) { switch (cmd) {
case I2S_TRIGGER_START: case I2S_TRIGGER_START:
if (stream->state != I2S_STATE_READY) { if (stream->state != I2S_STATE_READY) {
SYS_LOG_DBG("START trigger: invalid state"); LOG_DBG("START trigger: invalid state");
return -EIO; return -EIO;
} }
@ -772,7 +773,7 @@ static int i2s_sam_trigger(struct device *dev, enum i2s_dir dir,
ret = stream->stream_start(stream, ssc, dev_data->dev_dma); ret = stream->stream_start(stream, ssc, dev_data->dev_dma);
if (ret < 0) { if (ret < 0) {
SYS_LOG_DBG("START trigger failed %d", ret); LOG_DBG("START trigger failed %d", ret);
return ret; return ret;
} }
@ -784,7 +785,7 @@ static int i2s_sam_trigger(struct device *dev, enum i2s_dir dir,
key = irq_lock(); key = irq_lock();
if (stream->state != I2S_STATE_RUNNING) { if (stream->state != I2S_STATE_RUNNING) {
irq_unlock(key); irq_unlock(key);
SYS_LOG_DBG("STOP trigger: invalid state"); LOG_DBG("STOP trigger: invalid state");
return -EIO; return -EIO;
} }
stream->state = I2S_STATE_STOPPING; stream->state = I2S_STATE_STOPPING;
@ -796,7 +797,7 @@ static int i2s_sam_trigger(struct device *dev, enum i2s_dir dir,
key = irq_lock(); key = irq_lock();
if (stream->state != I2S_STATE_RUNNING) { if (stream->state != I2S_STATE_RUNNING) {
irq_unlock(key); irq_unlock(key);
SYS_LOG_DBG("DRAIN trigger: invalid state"); LOG_DBG("DRAIN trigger: invalid state");
return -EIO; return -EIO;
} }
stream->state = I2S_STATE_STOPPING; stream->state = I2S_STATE_STOPPING;
@ -805,7 +806,7 @@ static int i2s_sam_trigger(struct device *dev, enum i2s_dir dir,
case I2S_TRIGGER_DROP: case I2S_TRIGGER_DROP:
if (stream->state == I2S_STATE_NOT_READY) { if (stream->state == I2S_STATE_NOT_READY) {
SYS_LOG_DBG("DROP trigger: invalid state"); LOG_DBG("DROP trigger: invalid state");
return -EIO; return -EIO;
} }
stream->stream_disable(stream, ssc, dev_data->dev_dma); stream->stream_disable(stream, ssc, dev_data->dev_dma);
@ -815,7 +816,7 @@ static int i2s_sam_trigger(struct device *dev, enum i2s_dir dir,
case I2S_TRIGGER_PREPARE: case I2S_TRIGGER_PREPARE:
if (stream->state != I2S_STATE_ERROR) { if (stream->state != I2S_STATE_ERROR) {
SYS_LOG_DBG("PREPARE trigger: invalid state"); LOG_DBG("PREPARE trigger: invalid state");
return -EIO; return -EIO;
} }
stream->state = I2S_STATE_READY; stream->state = I2S_STATE_READY;
@ -823,7 +824,7 @@ static int i2s_sam_trigger(struct device *dev, enum i2s_dir dir,
break; break;
default: default:
SYS_LOG_ERR("Unsupported trigger command"); LOG_ERR("Unsupported trigger command");
return -EINVAL; return -EINVAL;
} }
@ -836,7 +837,7 @@ static int i2s_sam_read(struct device *dev, void **mem_block, size_t *size)
int ret; int ret;
if (dev_data->rx.state == I2S_STATE_NOT_READY) { if (dev_data->rx.state == I2S_STATE_NOT_READY) {
SYS_LOG_DBG("invalid state"); LOG_DBG("invalid state");
return -EIO; return -EIO;
} }
@ -863,7 +864,7 @@ static int i2s_sam_write(struct device *dev, void *mem_block, size_t size)
if (dev_data->tx.state != I2S_STATE_RUNNING && if (dev_data->tx.state != I2S_STATE_RUNNING &&
dev_data->tx.state != I2S_STATE_READY) { dev_data->tx.state != I2S_STATE_READY) {
SYS_LOG_DBG("invalid state"); LOG_DBG("invalid state");
return -EIO; return -EIO;
} }
@ -894,14 +895,14 @@ static void i2s_sam_isr(void *arg)
dev_data->rx.state = I2S_STATE_ERROR; dev_data->rx.state = I2S_STATE_ERROR;
/* Disable interrupt */ /* Disable interrupt */
ssc->SSC_IDR = SSC_IDR_OVRUN; ssc->SSC_IDR = SSC_IDR_OVRUN;
SYS_LOG_DBG("RX buffer overrun error"); LOG_DBG("RX buffer overrun error");
} }
/* Check for TX buffer underrun */ /* Check for TX buffer underrun */
if (isr_status & SSC_SR_TXEMPTY) { if (isr_status & SSC_SR_TXEMPTY) {
dev_data->tx.state = I2S_STATE_ERROR; dev_data->tx.state = I2S_STATE_ERROR;
/* Disable interrupt */ /* Disable interrupt */
ssc->SSC_IDR = SSC_IDR_TXEMPTY; ssc->SSC_IDR = SSC_IDR_TXEMPTY;
SYS_LOG_DBG("TX buffer underrun error"); LOG_DBG("TX buffer underrun error");
} }
} }
@ -921,7 +922,7 @@ static int i2s_sam_initialize(struct device *dev)
dev_data->dev_dma = device_get_binding(CONFIG_I2S_SAM_SSC_DMA_NAME); dev_data->dev_dma = device_get_binding(CONFIG_I2S_SAM_SSC_DMA_NAME);
if (!dev_data->dev_dma) { if (!dev_data->dev_dma) {
SYS_LOG_ERR("%s device not found", CONFIG_I2S_SAM_SSC_DMA_NAME); LOG_ERR("%s device not found", CONFIG_I2S_SAM_SSC_DMA_NAME);
return -ENODEV; return -ENODEV;
} }
@ -937,7 +938,7 @@ static int i2s_sam_initialize(struct device *dev)
/* Enable module's IRQ */ /* Enable module's IRQ */
irq_enable(dev_cfg->irq_id); irq_enable(dev_cfg->irq_id);
SYS_LOG_INF("Device %s initialized", DEV_NAME(dev)); LOG_INF("Device %s initialized", DEV_NAME(dev));
return 0; return 0;
} }

View file

@ -1,4 +1,4 @@
CONFIG_I2S=y CONFIG_I2S=y
CONFIG_SYS_LOG=y CONFIG_LOG=y
CONFIG_SYS_LOG_I2S_LEVEL=3 CONFIG_I2S_LOG_LEVEL_DBG=y
CONFIG_ZTEST=y CONFIG_ZTEST=y

View file

@ -1,4 +1,4 @@
CONFIG_I2S=y CONFIG_I2S=y
CONFIG_SYS_LOG=y CONFIG_LOG=y
CONFIG_SYS_LOG_I2S_LEVEL=3 CONFIG_I2S_LOG_LEVEL_DBG=y
CONFIG_ZTEST=y CONFIG_ZTEST=y