ret_code_t nrf_drv_i2s_init(nrf_drv_i2s_config_t const * p_config, nrf_drv_i2s_data_handler_t handler) { ASSERT(handler); if (m_cb.state != NRF_DRV_STATE_UNINITIALIZED) { return NRF_ERROR_INVALID_STATE; } if (p_config == NULL) { p_config = &m_default_config; } if (!nrf_i2s_configure(NRF_I2S, p_config->mode, p_config->format, p_config->alignment, p_config->sample_width, p_config->channels, p_config->mck_setup, p_config->ratio)) { return NRF_ERROR_INVALID_PARAM; } configure_pins(p_config); m_cb.handler = handler; nrf_drv_common_irq_enable(I2S_IRQn, p_config->irq_priority); m_cb.state = NRF_DRV_STATE_INITIALIZED; return NRF_SUCCESS; }
ret_code_t nrf_drv_i2s_init(nrf_drv_i2s_config_t const * p_config, nrf_drv_i2s_data_handler_t handler) { ASSERT(handler); ret_code_t err_code; if (m_cb.state != NRF_DRV_STATE_UNINITIALIZED) { err_code = NRF_ERROR_INVALID_STATE; NRF_LOG_WARNING("Function: %s, error code: %s.", (uint32_t)__func__, (uint32_t)NRF_LOG_ERROR_STRING_GET(err_code)); return err_code; } if (p_config == NULL) { p_config = &m_default_config; } if (!nrf_i2s_configure(NRF_I2S, p_config->mode, p_config->format, p_config->alignment, p_config->sample_width, p_config->channels, p_config->mck_setup, p_config->ratio)) { err_code = NRF_ERROR_INVALID_PARAM; NRF_LOG_WARNING("Function: %s, error code: %s.", (uint32_t)__func__, (uint32_t)NRF_LOG_ERROR_STRING_GET(err_code)); return err_code; } configure_pins(p_config); m_cb.handler = handler; nrf_drv_common_irq_enable(I2S_IRQn, p_config->irq_priority); m_cb.state = NRF_DRV_STATE_INITIALIZED; err_code = NRF_SUCCESS; NRF_LOG_INFO("Function: %s, error code: %s.", (uint32_t)__func__, (uint32_t)NRF_LOG_ERROR_STRING_GET(err_code)); return err_code; }
nrfx_err_t nrfx_i2s_init(nrfx_i2s_config_t const * p_config, nrfx_i2s_data_handler_t handler) { NRFX_ASSERT(p_config); NRFX_ASSERT(handler); nrfx_err_t err_code; if (m_cb.state != NRFX_DRV_STATE_UNINITIALIZED) { err_code = NRFX_ERROR_INVALID_STATE; NRFX_LOG_WARNING("Function: %s, error code: %s.", __func__, NRFX_LOG_ERROR_STRING_GET(err_code)); return err_code; } if (!nrf_i2s_configure(NRF_I2S, p_config->mode, p_config->format, p_config->alignment, p_config->sample_width, p_config->channels, p_config->mck_setup, p_config->ratio)) { err_code = NRFX_ERROR_INVALID_PARAM; NRFX_LOG_WARNING("Function: %s, error code: %s.", __func__, NRFX_LOG_ERROR_STRING_GET(err_code)); return err_code; } configure_pins(p_config); m_cb.handler = handler; NRFX_IRQ_PRIORITY_SET(I2S_IRQn, p_config->irq_priority); NRFX_IRQ_ENABLE(I2S_IRQn); m_cb.state = NRFX_DRV_STATE_INITIALIZED; NRFX_LOG_INFO("Initialized."); return NRFX_SUCCESS; }