i3c: ast2600: fix register setting for 545 ohm pullups
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@linux.intel.com> Signed-off-by: Jeremy Kerr <jk@codeconstruct.com.au> Link: https://lore.kernel.org/r/20230428001849.1775559-1-jk@codeconstruct.com.au Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
This commit is contained in:
parent
f2539c2079
commit
8c6c78ee3b
|
@ -21,6 +21,7 @@
|
||||||
#define AST2600_I3CG_REG0_SDA_PULLUP_EN_MASK GENMASK(29, 28)
|
#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_2K (0x0 << 28)
|
||||||
#define AST2600_I3CG_REG0_SDA_PULLUP_EN_750 (0x2 << 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_I2C_MODE BIT(0)
|
||||||
#define AST2600_I3CG_REG1_TEST_MODE BIT(1)
|
#define AST2600_I3CG_REG1_TEST_MODE BIT(1)
|
||||||
|
@ -62,8 +63,7 @@ static int ast2600_i3c_pullup_to_reg(unsigned int ohms, u32 *regp)
|
||||||
reg = AST2600_I3CG_REG0_SDA_PULLUP_EN_750;
|
reg = AST2600_I3CG_REG0_SDA_PULLUP_EN_750;
|
||||||
break;
|
break;
|
||||||
case 545:
|
case 545:
|
||||||
reg = AST2600_I3CG_REG0_SDA_PULLUP_EN_2K |
|
reg = AST2600_I3CG_REG0_SDA_PULLUP_EN_545;
|
||||||
AST2600_I3CG_REG0_SDA_PULLUP_EN_750;
|
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
Loading…
Reference in New Issue