i3c: master: cdns: Update maximum prescaler value for i2c clock
[platform/kernel/linux-starfive.git] / drivers / i3c / master / i3c-master-cdns.c
index 8f1fda3..fa5aaaf 100644 (file)
@@ -76,7 +76,8 @@
 #define PRESCL_CTRL0                   0x14
 #define PRESCL_CTRL0_I2C(x)            ((x) << 16)
 #define PRESCL_CTRL0_I3C(x)            (x)
-#define PRESCL_CTRL0_MAX               GENMASK(9, 0)
+#define PRESCL_CTRL0_I3C_MAX           GENMASK(9, 0)
+#define PRESCL_CTRL0_I2C_MAX           GENMASK(15, 0)
 
 #define PRESCL_CTRL1                   0x18
 #define PRESCL_CTRL1_PP_LOW_MASK       GENMASK(15, 8)
@@ -1233,7 +1234,7 @@ static int cdns_i3c_master_bus_init(struct i3c_master_controller *m)
                return -EINVAL;
 
        pres = DIV_ROUND_UP(sysclk_rate, (bus->scl_rate.i3c * 4)) - 1;
-       if (pres > PRESCL_CTRL0_MAX)
+       if (pres > PRESCL_CTRL0_I3C_MAX)
                return -ERANGE;
 
        bus->scl_rate.i3c = sysclk_rate / ((pres + 1) * 4);
@@ -1246,7 +1247,7 @@ static int cdns_i3c_master_bus_init(struct i3c_master_controller *m)
        max_i2cfreq = bus->scl_rate.i2c;
 
        pres = (sysclk_rate / (max_i2cfreq * 5)) - 1;
-       if (pres > PRESCL_CTRL0_MAX)
+       if (pres > PRESCL_CTRL0_I2C_MAX)
                return -ERANGE;
 
        bus->scl_rate.i2c = sysclk_rate / ((pres + 1) * 5);