Enabling other interfaces in CS47L63 driver

I was going through the driver files for CS47L63 and apparently I2C is not supported for some reason. Here is the code block I'm talking about

static uint32_t cs47l63_comm_i2c_reset(uint32_t bsp_dev_id, bool *was_i2c_busy)
{
	LOG_ERR("Tried to reset I2C, not supported");
	return BSP_STATUS_FAIL;
}

static uint32_t cs47l63_comm_i2c_read_repeated_start(uint32_t bsp_dev_id, uint8_t *write_buffer,
						     uint32_t write_length, uint8_t *read_buffer,
						     uint32_t read_length, bsp_callback_t cb,
						     void *cb_arg)
{
	LOG_ERR("Tried to read repeated start I2C, not supported");
	return BSP_STATUS_FAIL;
}

static uint32_t cs47l63_comm_i2c_write(uint32_t bsp_dev_id, uint8_t *write_buffer,
				       uint32_t write_length, bsp_callback_t cb, void *cb_arg)
{
	LOG_ERR("Tried writing to I2C, not supported");
	return BSP_STATUS_FAIL;
}

static uint32_t cs47l63_comm_i2c_db_write(uint32_t bsp_dev_id, uint8_t *write_buffer_0,
					  uint32_t write_length_0, uint8_t *write_buffer_1,
					  uint32_t write_length_1, bsp_callback_t cb, void *cb_arg)
{
	LOG_ERR("Tried to write double buffered I2C, not supported");
	return BSP_STATUS_FAIL;
}

Is there any explicit reason as to why these functions are disabled and not supported?

If I wanted to use I2C along with SPI for transfer between the codec and SoC, is that possible?

Parents
No Data
Reply
  • Are there any specific points with which you were particularly unsatisfied

    Surely you can see my forum history, . I was "particularly unsatisfied" at every point. Trying to learn such a staggeringly complex system as NCS while simultaneously having to debug Nordic's example code was just too many hurdles at once.

    Speaking of debugging, Nordic should also carefully review cs47l63_syscfg_regs.c which contains absolutely ruinous FLL1 settings, preventing that clock from ever being reconfigured correctly. This causes pernicious hidden problems for all of your ADK customers attempting to write their own code, but Nordic unfathomably fails to realize it, and a novice like me shouldn't be the one pointing it out.

    My requirements for the ADK were not exclusively focused on BLE, but also as a Zephyr classroom for audio and DSP programming, which is the one advertised feature where the ADK fails outright; Nordic has no idea how to program the CS47L63 DSP, and Cirrus Logic refuses to even respond to individual developers, so this entire endeavor was a complete waste of time, money, and effort for me.

    That's all the postmortem I have to offer. I hope it helps, but I've since reboxed and relegated my Audio DK to the cabinet of regrettable purchases.

Children
Related