]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
rtc: pcf2127: fix SPI command byte for PCF2131 backport
authorBruno Thomsen <bruno.thomsen@gmail.com>
Wed, 20 Aug 2025 19:30:16 +0000 (21:30 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 25 Sep 2025 09:13:50 +0000 (11:13 +0200)
When commit fa78e9b606a472495ef5b6b3d8b45c37f7727f9d upstream was
backported to LTS branches linux-6.12.y and linux-6.6.y, the SPI regmap
config fix got applied to the I2C regmap config. Most likely due to a new
RTC get/set parm feature introduced in 6.14 causing regmap config sections
in the buttom of the driver to move. LTS branch linux-6.1.y and earlier
does not have PCF2131 device support.

Issue can be seen in buttom of this diff in stable/linux.git tree:
git diff master..linux-6.12.y -- drivers/rtc/rtc-pcf2127.c

Fixes: ee61aec8529e ("rtc: pcf2127: fix SPI command byte for PCF2131")
Fixes: 5cdd1f73401d ("rtc: pcf2127: fix SPI command byte for PCF2131")
Cc: stable@vger.kernel.org
Cc: Alexandre Belloni <alexandre.belloni@bootlin.com>
Cc: Elena Popa <elena.popa@nxp.com>
Cc: Hugo Villeneuve <hvilleneuve@dimonoff.com>
Signed-off-by: Bruno Thomsen <bruno.thomsen@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/rtc/rtc-pcf2127.c

index fc079b9dcf7192b73a908aea00381a3b17c2611f..502571f0c203fa89d7aeacc46e55f23b306a271c 100644 (file)
@@ -1383,11 +1383,6 @@ static int pcf2127_i2c_probe(struct i2c_client *client)
                variant = &pcf21xx_cfg[type];
        }
 
-       if (variant->type == PCF2131) {
-               config.read_flag_mask = 0x0;
-               config.write_flag_mask = 0x0;
-       }
-
        config.max_register = variant->max_register,
 
        regmap = devm_regmap_init(&client->dev, &pcf2127_i2c_regmap,
@@ -1461,6 +1456,11 @@ static int pcf2127_spi_probe(struct spi_device *spi)
                variant = &pcf21xx_cfg[type];
        }
 
+       if (variant->type == PCF2131) {
+               config.read_flag_mask = 0x0;
+               config.write_flag_mask = 0x0;
+       }
+
        config.max_register = variant->max_register;
 
        regmap = devm_regmap_init_spi(spi, &config);