[PATCH] i3c: ast2600: fix register setting for 545 ohm pullups

Jeremy Kerr jk at codeconstruct.com.au
Thu Apr 27 17:18:49 PDT 2023


The 2k register setting is zero, OR-ing it in doesn't parallel the 2k
and 750 ohm pullups. We need a separate value for the 545 ohm setting.

Reported-by: Lukwinski Zbigniew <zbigniew.lukwinski at linux.intel.com>
Signed-off-by: Jeremy Kerr <jk at codeconstruct.com.au>

---
 drivers/i3c/master/ast2600-i3c-master.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/i3c/master/ast2600-i3c-master.c b/drivers/i3c/master/ast2600-i3c-master.c
index b3f0fe1e63c3..d9af7b1cf878 100644
--- a/drivers/i3c/master/ast2600-i3c-master.c
+++ b/drivers/i3c/master/ast2600-i3c-master.c
@@ -21,6 +21,7 @@
 #define AST2600_I3CG_REG0_SDA_PULLUP_EN_MASK	GENMASK(29, 28)
 #define AST2600_I3CG_REG0_SDA_PULLUP_EN_2K	(0x0 << 28)
 #define AST2600_I3CG_REG0_SDA_PULLUP_EN_750	(0x2 << 28)
+#define AST2600_I3CG_REG0_SDA_PULLUP_EN_545	(0x3 << 28)
 
 #define AST2600_I3CG_REG1_I2C_MODE		BIT(0)
 #define AST2600_I3CG_REG1_TEST_MODE		BIT(1)
@@ -60,8 +61,7 @@ static int ast2600_i3c_pullup_to_reg(unsigned int ohms, u32 *regp)
 		reg = AST2600_I3CG_REG0_SDA_PULLUP_EN_750;
 		break;
 	case 545:
-		reg = AST2600_I3CG_REG0_SDA_PULLUP_EN_2K |
-			AST2600_I3CG_REG0_SDA_PULLUP_EN_750;
+		reg = AST2600_I3CG_REG0_SDA_PULLUP_EN_545;
 		break;
 	default:
 		return -EINVAL;
-- 
2.39.1




More information about the linux-i3c mailing list