Merges https://github.com/espressif/esp-idf/pull/10811
@@ -1443,7 +1443,7 @@ static void IRAM_ATTR i2c_master_cmd_begin_static(i2c_port_t i2c_num, portBASE_T
}
p_i2c->cmd_idx++;
p_i2c->cmd_link.head = p_i2c->cmd_link.head->next;
- if (p_i2c->cmd_link.head == NULL || p_i2c->cmd_idx >= 15) {
+ if (p_i2c->cmd_link.head == NULL || p_i2c->cmd_idx >= (SOC_I2C_CMD_REG_NUM-1)) {
p_i2c->cmd_idx = 0;
break;
@@ -291,6 +291,10 @@ config SOC_I2C_FIFO_LEN
int
default 32
+config SOC_I2C_CMD_REG_NUM
+ int
+ default 16
+
config SOC_I2C_SUPPORT_SLAVE
bool
default y
@@ -176,6 +176,7 @@
#define SOC_I2C_NUM (2)
#define SOC_I2C_FIFO_LEN (32) /*!< I2C hardware FIFO depth */
+#define SOC_I2C_CMD_REG_NUM (16) /*!< Number of I2C command registers */
#define SOC_I2C_SUPPORT_SLAVE (1)
#define SOC_I2C_SUPPORT_APB (1)
@@ -267,6 +267,10 @@ config SOC_I2C_FIFO_LEN
default 16
+ default 8
config SOC_I2C_SUPPORT_HW_CLR_BUS
@@ -134,6 +134,7 @@
#define SOC_I2C_NUM (1U)
#define SOC_I2C_FIFO_LEN (16) /*!< I2C hardware FIFO depth */
+#define SOC_I2C_CMD_REG_NUM (8) /*!< Number of I2C command registers */
// FSM_RST only resets the FSM, not using it. So SOC_I2C_SUPPORT_HW_FSM_RST not defined.
#define SOC_I2C_SUPPORT_HW_CLR_BUS (1)
@@ -363,6 +363,10 @@ config SOC_I2C_FIFO_LEN
@@ -175,6 +175,7 @@
@@ -455,6 +455,10 @@ config SOC_I2C_FIFO_LEN
@@ -208,6 +208,7 @@
@@ -447,6 +447,10 @@ config SOC_I2C_FIFO_LEN
#define SOC_I2C_NUM (2U)
@@ -367,6 +367,10 @@ config SOC_I2C_FIFO_LEN
@@ -174,6 +174,7 @@
@@ -419,6 +419,10 @@ config SOC_I2C_FIFO_LEN
@@ -177,6 +177,7 @@