From 2e1928c31cb7208d2a7eadb3c6a637d1f9fb54df Mon Sep 17 00:00:00 2001 From: "C.S.M" Date: Wed, 4 Sep 2024 14:02:31 +0800 Subject: [PATCH] fix(i2c): Fix the i2c sda/scl force out register value on some esp chips --- components/hal/esp32c6/include/hal/i2c_ll.h | 8 ++++---- components/hal/esp32h2/include/hal/i2c_ll.h | 8 ++++---- components/hal/esp32p4/include/hal/i2c_ll.h | 8 ++++---- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/components/hal/esp32c6/include/hal/i2c_ll.h b/components/hal/esp32c6/include/hal/i2c_ll.h index 1fc496cbd1..944c8d3bcf 100644 --- a/components/hal/esp32c6/include/hal/i2c_ll.h +++ b/components/hal/esp32c6/include/hal/i2c_ll.h @@ -885,8 +885,8 @@ static inline void i2c_ll_master_init(i2c_dev_t *hw) typeof(hw->ctr) ctrl_reg; ctrl_reg.val = 0; ctrl_reg.ms_mode = 1; - ctrl_reg.sda_force_out = 1; - ctrl_reg.scl_force_out = 1; + ctrl_reg.sda_force_out = 0; + ctrl_reg.scl_force_out = 0; hw->ctr.val = ctrl_reg.val; } @@ -901,8 +901,8 @@ static inline void i2c_ll_slave_init(i2c_dev_t *hw) { typeof(hw->ctr) ctrl_reg; ctrl_reg.val = 0; - ctrl_reg.sda_force_out = 1; - ctrl_reg.scl_force_out = 1; + ctrl_reg.sda_force_out = 0; + ctrl_reg.scl_force_out = 0; hw->ctr.val = ctrl_reg.val; hw->fifo_conf.fifo_addr_cfg_en = 0; } diff --git a/components/hal/esp32h2/include/hal/i2c_ll.h b/components/hal/esp32h2/include/hal/i2c_ll.h index 8d71d89510..c73dc8ef08 100644 --- a/components/hal/esp32h2/include/hal/i2c_ll.h +++ b/components/hal/esp32h2/include/hal/i2c_ll.h @@ -800,8 +800,8 @@ static inline void i2c_ll_master_init(i2c_dev_t *hw) typeof(hw->ctr) ctrl_reg; ctrl_reg.val = 0; ctrl_reg.ms_mode = 1; - ctrl_reg.sda_force_out = 1; - ctrl_reg.scl_force_out = 1; + ctrl_reg.sda_force_out = 0; + ctrl_reg.scl_force_out = 0; hw->ctr.val = ctrl_reg.val; } @@ -816,8 +816,8 @@ static inline void i2c_ll_slave_init(i2c_dev_t *hw) { typeof(hw->ctr) ctrl_reg; ctrl_reg.val = 0; - ctrl_reg.sda_force_out = 1; - ctrl_reg.scl_force_out = 1; + ctrl_reg.sda_force_out = 0; + ctrl_reg.scl_force_out = 0; hw->ctr.val = ctrl_reg.val; hw->fifo_conf.fifo_addr_cfg_en = 0; } diff --git a/components/hal/esp32p4/include/hal/i2c_ll.h b/components/hal/esp32p4/include/hal/i2c_ll.h index c97fcc6cb8..065a92be37 100644 --- a/components/hal/esp32p4/include/hal/i2c_ll.h +++ b/components/hal/esp32p4/include/hal/i2c_ll.h @@ -840,8 +840,8 @@ static inline void i2c_ll_master_init(i2c_dev_t *hw) typeof(hw->ctr) ctrl_reg; ctrl_reg.val = 0; ctrl_reg.ms_mode = 1; - ctrl_reg.sda_force_out = 1; - ctrl_reg.scl_force_out = 1; + ctrl_reg.sda_force_out = 0; + ctrl_reg.scl_force_out = 0; hw->ctr.val = ctrl_reg.val; } @@ -856,8 +856,8 @@ static inline void i2c_ll_slave_init(i2c_dev_t *hw) { typeof(hw->ctr) ctrl_reg; ctrl_reg.val = 0; - ctrl_reg.sda_force_out = 1; - ctrl_reg.scl_force_out = 1; + ctrl_reg.sda_force_out = 0; + ctrl_reg.scl_force_out = 0; hw->ctr.val = ctrl_reg.val; hw->fifo_conf.fifo_addr_cfg_en = 0; }