]> www.infradead.org Git - users/hch/misc.git/commitdiff
i2c: riic: Allow setting frequencies lower than 50KHz
authorClaudiu Beznea <claudiu.beznea.uj@bp.renesas.com>
Tue, 23 Sep 2025 14:18:26 +0000 (17:18 +0300)
committerWolfram Sang <wsa+renesas@sang-engineering.com>
Tue, 23 Sep 2025 19:14:53 +0000 (21:14 +0200)
The MR1.CKS field is 3 bits wide and all the possible values (from 0 to
7) are valid. This is true for all the SoCs currently integrated in
upstream Linux. Take into account CKS=7 which allows setting bus
frequencies lower than 50KHz. This may be useful at least for debugging.

Fixes: d982d6651419 ("i2c: riic: remove clock and frequency restrictions")
Signed-off-by: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com>
Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
drivers/i2c/busses/i2c-riic.c

index 9c164a4b9bb91c794a85d1136b82542957c163a5..b0ee9ac45a976dccd929305b51beb008a6c45ad5 100644 (file)
@@ -386,7 +386,7 @@ static int riic_init_hw(struct riic_dev *riic)
         */
        total_ticks = DIV_ROUND_UP(rate, t->bus_freq_hz ?: 1);
 
-       for (cks = 0; cks < 7; cks++) {
+       for (cks = 0; cks <= 7; cks++) {
                /*
                 * 60% low time must be less than BRL + 2 + 1
                 * BRL max register value is 0x1F.