mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-12-29 17:25:38 +00:00
mfd: tps6594-spi: Add TI TPS65224 PMIC SPI
Add support for TPS65224 PMIC in TPS6594's SPI driver which has significant functional overlap. Signed-off-by: Bhargav Raviprakash <bhargav.r@ltts.com> Acked-by: Julien Panis <jpanis@baylibre.com> Link: https://lore.kernel.org/r/0109018f2fdc6328-6d13785c-9832-471b-bdfe-fb1dac3bdc60-000000@ap-south-1.amazonses.com Signed-off-by: Lee Jones <lee@kernel.org>
This commit is contained in:
parent
f8e5fc60e6
commit
02716864fd
@ -1,6 +1,6 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
/*
|
||||
* SPI access driver for TI TPS6594/TPS6593/LP8764 PMICs
|
||||
* SPI access driver for TI TPS65224/TPS6594/TPS6593/LP8764 PMICs
|
||||
*
|
||||
* Copyright (C) 2023 BayLibre Incorporated - https://www.baylibre.com/
|
||||
*/
|
||||
@ -66,7 +66,7 @@ static int tps6594_spi_reg_write(void *context, unsigned int reg, unsigned int v
|
||||
return spi_write(spi, buf, count);
|
||||
}
|
||||
|
||||
static const struct regmap_config tps6594_spi_regmap_config = {
|
||||
static struct regmap_config tps6594_spi_regmap_config = {
|
||||
.reg_bits = 16,
|
||||
.val_bits = 8,
|
||||
.max_register = TPS6594_REG_DWD_FAIL_CNT_REG,
|
||||
@ -81,6 +81,7 @@ static const struct of_device_id tps6594_spi_of_match_table[] = {
|
||||
{ .compatible = "ti,tps6594-q1", .data = (void *)TPS6594, },
|
||||
{ .compatible = "ti,tps6593-q1", .data = (void *)TPS6593, },
|
||||
{ .compatible = "ti,lp8764-q1", .data = (void *)LP8764, },
|
||||
{ .compatible = "ti,tps65224-q1", .data = (void *)TPS65224, },
|
||||
{}
|
||||
};
|
||||
MODULE_DEVICE_TABLE(of, tps6594_spi_of_match_table);
|
||||
@ -101,15 +102,18 @@ static int tps6594_spi_probe(struct spi_device *spi)
|
||||
tps->reg = spi_get_chipselect(spi, 0);
|
||||
tps->irq = spi->irq;
|
||||
|
||||
tps->regmap = devm_regmap_init(dev, NULL, spi, &tps6594_spi_regmap_config);
|
||||
if (IS_ERR(tps->regmap))
|
||||
return dev_err_probe(dev, PTR_ERR(tps->regmap), "Failed to init regmap\n");
|
||||
|
||||
match = of_match_device(tps6594_spi_of_match_table, dev);
|
||||
if (!match)
|
||||
return dev_err_probe(dev, -EINVAL, "Failed to find matching chip ID\n");
|
||||
tps->chip_id = (unsigned long)match->data;
|
||||
|
||||
if (tps->chip_id == TPS65224)
|
||||
tps6594_spi_regmap_config.volatile_table = &tps65224_volatile_table;
|
||||
|
||||
tps->regmap = devm_regmap_init(dev, NULL, spi, &tps6594_spi_regmap_config);
|
||||
if (IS_ERR(tps->regmap))
|
||||
return dev_err_probe(dev, PTR_ERR(tps->regmap), "Failed to init regmap\n");
|
||||
|
||||
crc8_populate_msb(tps6594_spi_crc_table, TPS6594_CRC8_POLYNOMIAL);
|
||||
|
||||
return tps6594_device_init(tps, enable_crc);
|
||||
@ -125,5 +129,5 @@ static struct spi_driver tps6594_spi_driver = {
|
||||
module_spi_driver(tps6594_spi_driver);
|
||||
|
||||
MODULE_AUTHOR("Julien Panis <jpanis@baylibre.com>");
|
||||
MODULE_DESCRIPTION("TPS6594 SPI Interface Driver");
|
||||
MODULE_DESCRIPTION("SPI Interface Driver for TPS65224, TPS6594/3, and LP8764");
|
||||
MODULE_LICENSE("GPL");
|
||||
|
Loading…
Reference in New Issue
Block a user