* [PATCH v7 0/2] Add TI TPS65214 PMIC GPIO Support @ 2025-07-21 23:31 Shree Ramamoorthy 2025-07-21 23:31 ` [PATCH v7 1/2] gpio: tps65219: Update _IDX & _OFFSET macro prefix Shree Ramamoorthy ` (2 more replies) 0 siblings, 3 replies; 8+ messages in thread From: Shree Ramamoorthy @ 2025-07-21 23:31 UTC (permalink / raw) To: aaro.koskinen, andreas, khilman, rogerq, tony, linus.walleij, brgl, linux-omap, linux-kernel, linux-gpio Cc: m-leonard, praneeth, jcormier, christophe.jaillet The related MFD series was integrated in mainline during 6.15 cycle [0]. TPS65214 is a Power Management Integrated Circuit (PMIC) that has significant register map overlap with TPS65219. The series introduces TPS65214 and restructures the existing driver to support multiple devices. TPS65215's GPIO specs are the same as TPS65219, so the "tps65219-gpio" compatible string is assigned to two devices in the TPS65219 MFD driver. No additional support is required in the GPIO driver for TPS65215. - TPS65214 has 1 GPIO & 1 GPO, whereas TPS65219/TPS65215 both have 1 GPIO & 2 GPOs. - TPS65214' GPIO direction can be changed with register GENERAL_CONFIG and bit GPIO_CONFIG during device operation. - TPS65219's MULTI_DEVICE_ENABLE bit in register MFP_1_CFG maps to TPS65214's GPIO_VSEL_CONFIG bit. TPS65214 Datasheet: https://www.ti.com/lit/gpn/TPS65214 TPS65214 TRM: https://www.ti.com/lit/pdf/slvud30 TPS65215 TRM: https://www.ti.com/lit/pdf/slvucw5/ Tested on Jon Cormier's AM62x platform with TPS65219. GPIO offsets remained consistent and functional. Signed-off-by: Shree Ramamoorthy <s-ramamoorthy@ti.com> Tested-by: Jonathan Cormier <jcormier@criticallink.com> --- Change Log: v6 -> v7: - Update _set() to return an int because of set_rv() variant - Fix comment format - Consolidate dev_err call to one line - Remove unused variable (dev) from tps65219_gpio_set v5 -> v6: - Add Jon Cormier Reviewed-by and Tested-by tags - Add test info from Jon C. to cover letter - Change copyright to include 2022 & 2025 - Use set_rv() variant instead of deprecated set() v4 -> v5: - Consolidate from 3 to 2 patches - Add specific TPS65215 info to Patch 1 comments + commit message - Remove chip_data struct - Add separate dev-specific template_chip structs - Add dev-specific change_direction functions + assignment in probe - Add PMIC GPIO mapping explanation in comments for future users - Add TPS65214 GPIO0 direction mask macro - Rename _GPIO0_OFFSET in patch 1, in addition to _IDX macro - Update cover letter + add TPS65214 datasheet link v3 -> v4: - Update cover letter - Rebase for 6.16 cycle v2 -> v3: - Correct gpio_chip.ngpio line to use .offset field - Remove unnecessary newlines v1 -> v2: - have any PMIC lists be in alpha-numeric order: TPS65215, then TPS65219 - remove comma after terminator - Add driver prefix to chip_data struct --- [0]: https://lore.kernel.org/all/173928615760.2233464.12306998726512431222.b4-ty@kernel.org/ Shree Ramamoorthy (2): gpio: tps65219: Update _IDX & _OFFSET macro prefix gpio: tps65219: Add support for TI TPS65214 PMIC drivers/gpio/gpio-tps65219.c | 123 +++++++++++++++++++++++++++++------ 1 file changed, 104 insertions(+), 19 deletions(-) -- 2.43.0 ^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH v7 1/2] gpio: tps65219: Update _IDX & _OFFSET macro prefix 2025-07-21 23:31 [PATCH v7 0/2] Add TI TPS65214 PMIC GPIO Support Shree Ramamoorthy @ 2025-07-21 23:31 ` Shree Ramamoorthy 2025-07-21 23:31 ` [PATCH v7 2/2] gpio: tps65219: Add support for TI TPS65214 PMIC Shree Ramamoorthy 2025-07-22 12:33 ` [PATCH v7 0/2] Add TI TPS65214 PMIC GPIO Support Bartosz Golaszewski 2 siblings, 0 replies; 8+ messages in thread From: Shree Ramamoorthy @ 2025-07-21 23:31 UTC (permalink / raw) To: aaro.koskinen, andreas, khilman, rogerq, tony, linus.walleij, brgl, linux-omap, linux-kernel, linux-gpio Cc: m-leonard, praneeth, jcormier, christophe.jaillet TPS65215 and TPS65219 are overlapping PMIC devices. While their regulator features differe, the GPIO features are the same. In the TPS65219 MFD driver, the 2 PMICs share the same "tps65219-gpio" compatible string to limit support for TPS65215 in this GPIO driver to comments. The TPS6521X_GPIO0_IDX and TPS6521X_GPIO0_OFFSET macro name prefixes are updated to indicate these macros apply to both PMICs. Reviewed-by: Roger Quadros <rogerq@kernel.org> Acked-by: Linus Walleij <linus.walleij@linaro.org> Reviewed-by: Jonathan Cormier <jcormier@criticallink.com> Signed-off-by: Shree Ramamoorthy <s-ramamoorthy@ti.com> --- drivers/gpio/gpio-tps65219.c | 27 +++++++++++++++++---------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/drivers/gpio/gpio-tps65219.c b/drivers/gpio/gpio-tps65219.c index 526640c39a11..2355eec0cee6 100644 --- a/drivers/gpio/gpio-tps65219.c +++ b/drivers/gpio/gpio-tps65219.c @@ -1,8 +1,8 @@ // SPDX-License-Identifier: GPL-2.0 /* - * GPIO driver for TI TPS65219 PMICs + * GPIO driver for TI TPS65215/TPS65219 PMICs * - * Copyright (C) 2022 Texas Instruments Incorporated - http://www.ti.com/ + * Copyright (C) 2022, 2025 Texas Instruments Incorporated - http://www.ti.com/ */ #include <linux/bits.h> @@ -13,8 +13,15 @@ #include <linux/regmap.h> #define TPS65219_GPIO0_DIR_MASK BIT(3) -#define TPS65219_GPIO0_OFFSET 2 -#define TPS65219_GPIO0_IDX 0 +#define TPS6521X_GPIO0_OFFSET 2 +#define TPS6521X_GPIO0_IDX 0 + +/* + * TPS65215 & TPS65219 GPIO mapping + * Linux gpio offset 0 -> GPIO (pin16) -> bit_offset 2 + * Linux gpio offset 1 -> GPO1 (pin8 ) -> bit_offset 0 + * Linux gpio offset 2 -> GPO2 (pin17) -> bit_offset 1 + */ struct tps65219_gpio { struct gpio_chip gpio_chip; @@ -26,7 +33,7 @@ static int tps65219_gpio_get_direction(struct gpio_chip *gc, unsigned int offset struct tps65219_gpio *gpio = gpiochip_get_data(gc); int ret, val; - if (offset != TPS65219_GPIO0_IDX) + if (offset != TPS6521X_GPIO0_IDX) return GPIO_LINE_DIRECTION_OUT; ret = regmap_read(gpio->tps->regmap, TPS65219_REG_MFP_1_CONFIG, &val); @@ -42,7 +49,7 @@ static int tps65219_gpio_get(struct gpio_chip *gc, unsigned int offset) struct device *dev = gpio->tps->dev; int ret, val; - if (offset != TPS65219_GPIO0_IDX) { + if (offset != TPS6521X_GPIO0_IDX) { dev_err(dev, "GPIO%d is output only, cannot get\n", offset); return -ENOTSUPP; } @@ -71,7 +78,7 @@ static void tps65219_gpio_set(struct gpio_chip *gc, unsigned int offset, int val struct device *dev = gpio->tps->dev; int v, mask, bit; - bit = (offset == TPS65219_GPIO0_IDX) ? TPS65219_GPIO0_OFFSET : offset - 1; + bit = (offset == TPS6521X_GPIO0_IDX) ? TPS6521X_GPIO0_OFFSET : offset - 1; mask = BIT(bit); v = value ? mask : 0; @@ -117,7 +124,7 @@ static int tps65219_gpio_direction_input(struct gpio_chip *gc, unsigned int offs struct tps65219_gpio *gpio = gpiochip_get_data(gc); struct device *dev = gpio->tps->dev; - if (offset != TPS65219_GPIO0_IDX) { + if (offset != TPS6521X_GPIO0_IDX) { dev_err(dev, "GPIO%d is output only, cannot change to input\n", offset); return -ENOTSUPP; } @@ -131,7 +138,7 @@ static int tps65219_gpio_direction_input(struct gpio_chip *gc, unsigned int offs static int tps65219_gpio_direction_output(struct gpio_chip *gc, unsigned int offset, int value) { tps65219_gpio_set(gc, offset, value); - if (offset != TPS65219_GPIO0_IDX) + if (offset != TPS6521X_GPIO0_IDX) return 0; if (tps65219_gpio_get_direction(gc, offset) == GPIO_LINE_DIRECTION_OUT) @@ -179,5 +186,5 @@ module_platform_driver(tps65219_gpio_driver); MODULE_ALIAS("platform:tps65219-gpio"); MODULE_AUTHOR("Jonathan Cormier <jcormier@criticallink.com>"); -MODULE_DESCRIPTION("TPS65219 GPIO driver"); +MODULE_DESCRIPTION("TPS65215/TPS65219 GPIO driver"); MODULE_LICENSE("GPL"); -- 2.43.0 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH v7 2/2] gpio: tps65219: Add support for TI TPS65214 PMIC 2025-07-21 23:31 [PATCH v7 0/2] Add TI TPS65214 PMIC GPIO Support Shree Ramamoorthy 2025-07-21 23:31 ` [PATCH v7 1/2] gpio: tps65219: Update _IDX & _OFFSET macro prefix Shree Ramamoorthy @ 2025-07-21 23:31 ` Shree Ramamoorthy 2025-07-22 12:33 ` [PATCH v7 0/2] Add TI TPS65214 PMIC GPIO Support Bartosz Golaszewski 2 siblings, 0 replies; 8+ messages in thread From: Shree Ramamoorthy @ 2025-07-21 23:31 UTC (permalink / raw) To: aaro.koskinen, andreas, khilman, rogerq, tony, linus.walleij, brgl, linux-omap, linux-kernel, linux-gpio Cc: m-leonard, praneeth, jcormier, christophe.jaillet Add support for the TI TPS65214 PMIC with the addition of an id_table, separate TPS65214 template_chip, and device-specific _change_direction functions. - Use platform_get_device_id() to assign dev-specific information. - Use different change_direction() functions since TPS65214's GPIO configuration bits are changeable during device operation through bit GPIO_CONFIG in GENERAL_CONFIG register. - Remove MODULE_ALIAS since it is now generated by MODULE_DEVICE_TABLE. - Update _template_chip structs to .set_rv instead of .set. .set_rv supports callbacks for setting line values that return an integer, allowing it to indicate failures. - Remove dev (unused variable) from tps65219_gpio_set function Reviewed-by: Jonathan Cormier <jcormier@criticallink.com> Tested-by: Jonathan Cormier <jcormier@criticallink.com> Signed-off-by: Shree Ramamoorthy <s-ramamoorthy@ti.com> --- drivers/gpio/gpio-tps65219.c | 100 +++++++++++++++++++++++++++++++---- 1 file changed, 89 insertions(+), 11 deletions(-) diff --git a/drivers/gpio/gpio-tps65219.c b/drivers/gpio/gpio-tps65219.c index 2355eec0cee6..def599531a89 100644 --- a/drivers/gpio/gpio-tps65219.c +++ b/drivers/gpio/gpio-tps65219.c @@ -1,6 +1,6 @@ // SPDX-License-Identifier: GPL-2.0 /* - * GPIO driver for TI TPS65215/TPS65219 PMICs + * GPIO driver for TI TPS65214/TPS65215/TPS65219 PMICs * * Copyright (C) 2022, 2025 Texas Instruments Incorporated - http://www.ti.com/ */ @@ -13,10 +13,15 @@ #include <linux/regmap.h> #define TPS65219_GPIO0_DIR_MASK BIT(3) +#define TPS65214_GPIO0_DIR_MASK BIT(1) #define TPS6521X_GPIO0_OFFSET 2 #define TPS6521X_GPIO0_IDX 0 /* + * TPS65214 GPIO mapping + * Linux gpio offset 0 -> GPIO (pin16) -> bit_offset 2 + * Linux gpio offset 1 -> GPO1 (pin9 ) -> bit_offset 0 + * * TPS65215 & TPS65219 GPIO mapping * Linux gpio offset 0 -> GPIO (pin16) -> bit_offset 2 * Linux gpio offset 1 -> GPO1 (pin8 ) -> bit_offset 0 @@ -24,10 +29,26 @@ */ struct tps65219_gpio { + int (*change_dir)(struct gpio_chip *gc, unsigned int offset, unsigned int dir); struct gpio_chip gpio_chip; struct tps65219 *tps; }; +static int tps65214_gpio_get_direction(struct gpio_chip *gc, unsigned int offset) +{ + struct tps65219_gpio *gpio = gpiochip_get_data(gc); + int ret, val; + + if (offset != TPS6521X_GPIO0_IDX) + return GPIO_LINE_DIRECTION_OUT; + + ret = regmap_read(gpio->tps->regmap, TPS65219_REG_GENERAL_CONFIG, &val); + if (ret) + return ret; + + return !(val & TPS65214_GPIO0_DIR_MASK); +} + static int tps65219_gpio_get_direction(struct gpio_chip *gc, unsigned int offset) { struct tps65219_gpio *gpio = gpiochip_get_data(gc); @@ -72,10 +93,9 @@ static int tps65219_gpio_get(struct gpio_chip *gc, unsigned int offset) return ret; } -static void tps65219_gpio_set(struct gpio_chip *gc, unsigned int offset, int value) +static int tps65219_gpio_set(struct gpio_chip *gc, unsigned int offset, int value) { struct tps65219_gpio *gpio = gpiochip_get_data(gc); - struct device *dev = gpio->tps->dev; int v, mask, bit; bit = (offset == TPS6521X_GPIO0_IDX) ? TPS6521X_GPIO0_OFFSET : offset - 1; @@ -83,8 +103,7 @@ static void tps65219_gpio_set(struct gpio_chip *gc, unsigned int offset, int val mask = BIT(bit); v = value ? mask : 0; - if (regmap_update_bits(gpio->tps->regmap, TPS65219_REG_GENERAL_CONFIG, mask, v)) - dev_err(dev, "GPIO%d, set to value %d failed.\n", offset, value); + return regmap_update_bits(gpio->tps->regmap, TPS65219_REG_GENERAL_CONFIG, mask, v); } static int tps65219_gpio_change_direction(struct gpio_chip *gc, unsigned int offset, @@ -119,6 +138,33 @@ static int tps65219_gpio_change_direction(struct gpio_chip *gc, unsigned int off return -ENOTSUPP; } +static int tps65214_gpio_change_direction(struct gpio_chip *gc, unsigned int offset, + unsigned int direction) +{ + struct tps65219_gpio *gpio = gpiochip_get_data(gc); + struct device *dev = gpio->tps->dev; + int val, ret; + + /** + * Verified if GPIO or GPO in parent function + * Masked value: 0 = GPIO, 1 = VSEL + */ + ret = regmap_read(gpio->tps->regmap, TPS65219_REG_MFP_1_CONFIG, &val); + if (ret) + return ret; + + ret = !!(val & BIT(TPS65219_GPIO0_DIR_MASK)); + if (ret) + dev_err(dev, "GPIO%d configured as VSEL, not GPIO\n", offset); + + ret = regmap_update_bits(gpio->tps->regmap, TPS65219_REG_GENERAL_CONFIG, + TPS65214_GPIO0_DIR_MASK, direction); + if (ret) + dev_err(dev, "Fail to change direction to %u for GPIO%d.\n", direction, offset); + + return ret; +} + static int tps65219_gpio_direction_input(struct gpio_chip *gc, unsigned int offset) { struct tps65219_gpio *gpio = gpiochip_get_data(gc); @@ -132,11 +178,13 @@ static int tps65219_gpio_direction_input(struct gpio_chip *gc, unsigned int offs if (tps65219_gpio_get_direction(gc, offset) == GPIO_LINE_DIRECTION_IN) return 0; - return tps65219_gpio_change_direction(gc, offset, GPIO_LINE_DIRECTION_IN); + return gpio->change_dir(gc, offset, GPIO_LINE_DIRECTION_IN); } static int tps65219_gpio_direction_output(struct gpio_chip *gc, unsigned int offset, int value) { + struct tps65219_gpio *gpio = gpiochip_get_data(gc); + tps65219_gpio_set(gc, offset, value); if (offset != TPS6521X_GPIO0_IDX) return 0; @@ -144,9 +192,22 @@ static int tps65219_gpio_direction_output(struct gpio_chip *gc, unsigned int off if (tps65219_gpio_get_direction(gc, offset) == GPIO_LINE_DIRECTION_OUT) return 0; - return tps65219_gpio_change_direction(gc, offset, GPIO_LINE_DIRECTION_OUT); + return gpio->change_dir(gc, offset, GPIO_LINE_DIRECTION_OUT); } +static const struct gpio_chip tps65214_template_chip = { + .label = "tps65214-gpio", + .owner = THIS_MODULE, + .get_direction = tps65214_gpio_get_direction, + .direction_input = tps65219_gpio_direction_input, + .direction_output = tps65219_gpio_direction_output, + .get = tps65219_gpio_get, + .set_rv = tps65219_gpio_set, + .base = -1, + .ngpio = 2, + .can_sleep = true, +}; + static const struct gpio_chip tps65219_template_chip = { .label = "tps65219-gpio", .owner = THIS_MODULE, @@ -154,7 +215,7 @@ static const struct gpio_chip tps65219_template_chip = { .direction_input = tps65219_gpio_direction_input, .direction_output = tps65219_gpio_direction_output, .get = tps65219_gpio_get, - .set = tps65219_gpio_set, + .set_rv = tps65219_gpio_set, .base = -1, .ngpio = 3, .can_sleep = true, @@ -162,6 +223,7 @@ static const struct gpio_chip tps65219_template_chip = { static int tps65219_gpio_probe(struct platform_device *pdev) { + enum pmic_id chip = platform_get_device_id(pdev)->driver_data; struct tps65219 *tps = dev_get_drvdata(pdev->dev.parent); struct tps65219_gpio *gpio; @@ -169,22 +231,38 @@ static int tps65219_gpio_probe(struct platform_device *pdev) if (!gpio) return -ENOMEM; + if (chip == TPS65214) { + gpio->gpio_chip = tps65214_template_chip; + gpio->change_dir = tps65214_gpio_change_direction; + } else if (chip == TPS65219) { + gpio->gpio_chip = tps65219_template_chip; + gpio->change_dir = tps65219_gpio_change_direction; + } else { + return -ENODATA; + } + gpio->tps = tps; - gpio->gpio_chip = tps65219_template_chip; gpio->gpio_chip.parent = tps->dev; return devm_gpiochip_add_data(&pdev->dev, &gpio->gpio_chip, gpio); } +static const struct platform_device_id tps6521x_gpio_id_table[] = { + { "tps65214-gpio", TPS65214 }, + { "tps65219-gpio", TPS65219 }, + { /* sentinel */ } +}; +MODULE_DEVICE_TABLE(platform, tps6521x_gpio_id_table); + static struct platform_driver tps65219_gpio_driver = { .driver = { .name = "tps65219-gpio", }, .probe = tps65219_gpio_probe, + .id_table = tps6521x_gpio_id_table, }; module_platform_driver(tps65219_gpio_driver); -MODULE_ALIAS("platform:tps65219-gpio"); MODULE_AUTHOR("Jonathan Cormier <jcormier@criticallink.com>"); -MODULE_DESCRIPTION("TPS65215/TPS65219 GPIO driver"); +MODULE_DESCRIPTION("TPS65214/TPS65215/TPS65219 GPIO driver"); MODULE_LICENSE("GPL"); -- 2.43.0 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH v7 0/2] Add TI TPS65214 PMIC GPIO Support 2025-07-21 23:31 [PATCH v7 0/2] Add TI TPS65214 PMIC GPIO Support Shree Ramamoorthy 2025-07-21 23:31 ` [PATCH v7 1/2] gpio: tps65219: Update _IDX & _OFFSET macro prefix Shree Ramamoorthy 2025-07-21 23:31 ` [PATCH v7 2/2] gpio: tps65219: Add support for TI TPS65214 PMIC Shree Ramamoorthy @ 2025-07-22 12:33 ` Bartosz Golaszewski 2025-07-22 14:16 ` Jon Cormier 2025-07-22 15:23 ` Shree Ramamoorthy 2 siblings, 2 replies; 8+ messages in thread From: Bartosz Golaszewski @ 2025-07-22 12:33 UTC (permalink / raw) To: Shree Ramamoorthy Cc: aaro.koskinen, andreas, khilman, rogerq, tony, linus.walleij, linux-omap, linux-kernel, linux-gpio, m-leonard, praneeth, jcormier, christophe.jaillet On Tue, Jul 22, 2025 at 1:32 AM Shree Ramamoorthy <s-ramamoorthy@ti.com> wrote: > > The related MFD series was integrated in mainline during 6.15 cycle [0]. > > TPS65214 is a Power Management Integrated Circuit (PMIC) that has > significant register map overlap with TPS65219. The series introduces > TPS65214 and restructures the existing driver to support multiple devices. > > TPS65215's GPIO specs are the same as TPS65219, so the "tps65219-gpio" > compatible string is assigned to two devices in the TPS65219 MFD driver. > No additional support is required in the GPIO driver for TPS65215. > > - TPS65214 has 1 GPIO & 1 GPO, whereas TPS65219/TPS65215 both have 1 GPIO & > 2 GPOs. > - TPS65214' GPIO direction can be changed with register GENERAL_CONFIG and > bit GPIO_CONFIG during device operation. > - TPS65219's MULTI_DEVICE_ENABLE bit in register MFP_1_CFG maps to > TPS65214's GPIO_VSEL_CONFIG bit. > > TPS65214 Datasheet: https://www.ti.com/lit/gpn/TPS65214 > TPS65214 TRM: https://www.ti.com/lit/pdf/slvud30 > TPS65215 TRM: https://www.ti.com/lit/pdf/slvucw5/ > > Tested on Jon Cormier's AM62x platform with TPS65219. > GPIO offsets remained consistent and functional. > > Signed-off-by: Shree Ramamoorthy <s-ramamoorthy@ti.com> > Tested-by: Jonathan Cormier <jcormier@criticallink.com> > --- This doesn't apply on top of my gpio/for-next branch. Do you think you can quickly submit another iteration rebased on top of it? Bartosz ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v7 0/2] Add TI TPS65214 PMIC GPIO Support 2025-07-22 12:33 ` [PATCH v7 0/2] Add TI TPS65214 PMIC GPIO Support Bartosz Golaszewski @ 2025-07-22 14:16 ` Jon Cormier 2025-07-22 14:31 ` Bartosz Golaszewski 2025-07-22 15:23 ` Shree Ramamoorthy 1 sibling, 1 reply; 8+ messages in thread From: Jon Cormier @ 2025-07-22 14:16 UTC (permalink / raw) To: Bartosz Golaszewski Cc: Shree Ramamoorthy, aaro.koskinen, andreas, khilman, rogerq, tony, linus.walleij, linux-omap, linux-kernel, linux-gpio, m-leonard, praneeth, christophe.jaillet On Tue, Jul 22, 2025 at 8:33 AM Bartosz Golaszewski <brgl@bgdev.pl> wrote: > > On Tue, Jul 22, 2025 at 1:32 AM Shree Ramamoorthy <s-ramamoorthy@ti.com> wrote: > > > > The related MFD series was integrated in mainline during 6.15 cycle [0]. > > > > TPS65214 is a Power Management Integrated Circuit (PMIC) that has > > significant register map overlap with TPS65219. The series introduces > > TPS65214 and restructures the existing driver to support multiple devices. > > > > TPS65215's GPIO specs are the same as TPS65219, so the "tps65219-gpio" > > compatible string is assigned to two devices in the TPS65219 MFD driver. > > No additional support is required in the GPIO driver for TPS65215. > > > > - TPS65214 has 1 GPIO & 1 GPO, whereas TPS65219/TPS65215 both have 1 GPIO & > > 2 GPOs. > > - TPS65214' GPIO direction can be changed with register GENERAL_CONFIG and > > bit GPIO_CONFIG during device operation. > > - TPS65219's MULTI_DEVICE_ENABLE bit in register MFP_1_CFG maps to > > TPS65214's GPIO_VSEL_CONFIG bit. > > > > TPS65214 Datasheet: https://www.ti.com/lit/gpn/TPS65214 > > TPS65214 TRM: https://www.ti.com/lit/pdf/slvud30 > > TPS65215 TRM: https://www.ti.com/lit/pdf/slvucw5/ > > > > Tested on Jon Cormier's AM62x platform with TPS65219. > > GPIO offsets remained consistent and functional. > > > > Signed-off-by: Shree Ramamoorthy <s-ramamoorthy@ti.com> > > Tested-by: Jonathan Cormier <jcormier@criticallink.com> > > --- > > This doesn't apply on top of my gpio/for-next branch. Do you think you > can quickly submit another iteration rebased on top of it? Maybe this is a basic question but is there a rule of thumb for where to base patches to be submitted to the mailing lists? I've generally been basing them off the latest tag in linux-stable/master. I suppose this might be one of those it depends on the subsystem things? > > Bartosz -- Jonathan Cormier Senior Software Engineer Voice: 315.425.4045 x222 http://www.CriticalLink.com 6712 Brooklawn Parkway, Syracuse, NY 13211 ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v7 0/2] Add TI TPS65214 PMIC GPIO Support 2025-07-22 14:16 ` Jon Cormier @ 2025-07-22 14:31 ` Bartosz Golaszewski 2025-07-22 14:32 ` Jon Cormier 0 siblings, 1 reply; 8+ messages in thread From: Bartosz Golaszewski @ 2025-07-22 14:31 UTC (permalink / raw) To: Jon Cormier Cc: Shree Ramamoorthy, aaro.koskinen, andreas, khilman, rogerq, tony, linus.walleij, linux-omap, linux-kernel, linux-gpio, m-leonard, praneeth, christophe.jaillet On Tue, Jul 22, 2025 at 4:16 PM Jon Cormier <jcormier@criticallink.com> wrote: > > > > This doesn't apply on top of my gpio/for-next branch. Do you think you > > can quickly submit another iteration rebased on top of it? > Maybe this is a basic question but is there a rule of thumb for where > to base patches to be submitted to the mailing lists? I've generally > been basing them off the latest tag in linux-stable/master. I suppose > this might be one of those it depends on the subsystem things? > > I feed my tree into linux next, so generally using linux-next/master would be your best bet. The rule of thumb typically is checking the subsystem's git tree in MAINTAINERS and using whatever branch goes into the next release. Bartosz ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v7 0/2] Add TI TPS65214 PMIC GPIO Support 2025-07-22 14:31 ` Bartosz Golaszewski @ 2025-07-22 14:32 ` Jon Cormier 0 siblings, 0 replies; 8+ messages in thread From: Jon Cormier @ 2025-07-22 14:32 UTC (permalink / raw) To: Bartosz Golaszewski Cc: Shree Ramamoorthy, aaro.koskinen, andreas, khilman, rogerq, tony, linus.walleij, linux-omap, linux-kernel, linux-gpio, m-leonard, praneeth, christophe.jaillet On Tue, Jul 22, 2025 at 10:31 AM Bartosz Golaszewski <brgl@bgdev.pl> wrote: > > On Tue, Jul 22, 2025 at 4:16 PM Jon Cormier <jcormier@criticallink.com> wrote: > > > > > > This doesn't apply on top of my gpio/for-next branch. Do you think you > > > can quickly submit another iteration rebased on top of it? > > Maybe this is a basic question but is there a rule of thumb for where > > to base patches to be submitted to the mailing lists? I've generally > > been basing them off the latest tag in linux-stable/master. I suppose > > this might be one of those it depends on the subsystem things? > > > > > I feed my tree into linux next, so generally using linux-next/master > would be your best bet. The rule of thumb typically is checking the > subsystem's git tree in MAINTAINERS and using whatever branch goes > into the next release. Awesome, thanks for the info! > > Bartosz -- Jonathan Cormier Senior Software Engineer Voice: 315.425.4045 x222 http://www.CriticalLink.com 6712 Brooklawn Parkway, Syracuse, NY 13211 ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v7 0/2] Add TI TPS65214 PMIC GPIO Support 2025-07-22 12:33 ` [PATCH v7 0/2] Add TI TPS65214 PMIC GPIO Support Bartosz Golaszewski 2025-07-22 14:16 ` Jon Cormier @ 2025-07-22 15:23 ` Shree Ramamoorthy 1 sibling, 0 replies; 8+ messages in thread From: Shree Ramamoorthy @ 2025-07-22 15:23 UTC (permalink / raw) To: Bartosz Golaszewski Cc: aaro.koskinen, andreas, khilman, rogerq, tony, linus.walleij, linux-omap, linux-kernel, linux-gpio, m-leonard, praneeth, jcormier, christophe.jaillet On 7/22/2025 7:33 AM, Bartosz Golaszewski wrote: > On Tue, Jul 22, 2025 at 1:32 AM Shree Ramamoorthy <s-ramamoorthy@ti.com> wrote: >> The related MFD series was integrated in mainline during 6.15 cycle [0]. >> >> TPS65214 is a Power Management Integrated Circuit (PMIC) that has >> significant register map overlap with TPS65219. The series introduces >> TPS65214 and restructures the existing driver to support multiple devices. >> >> TPS65215's GPIO specs are the same as TPS65219, so the "tps65219-gpio" >> compatible string is assigned to two devices in the TPS65219 MFD driver. >> No additional support is required in the GPIO driver for TPS65215. >> >> - TPS65214 has 1 GPIO & 1 GPO, whereas TPS65219/TPS65215 both have 1 GPIO & >> 2 GPOs. >> - TPS65214' GPIO direction can be changed with register GENERAL_CONFIG and >> bit GPIO_CONFIG during device operation. >> - TPS65219's MULTI_DEVICE_ENABLE bit in register MFP_1_CFG maps to >> TPS65214's GPIO_VSEL_CONFIG bit. >> >> TPS65214 Datasheet: https://www.ti.com/lit/gpn/TPS65214 >> TPS65214 TRM: https://www.ti.com/lit/pdf/slvud30 >> TPS65215 TRM: https://www.ti.com/lit/pdf/slvucw5/ >> >> Tested on Jon Cormier's AM62x platform with TPS65219. >> GPIO offsets remained consistent and functional. >> >> Signed-off-by: Shree Ramamoorthy <s-ramamoorthy@ti.com> >> Tested-by: Jonathan Cormier <jcormier@criticallink.com> >> --- > This doesn't apply on top of my gpio/for-next branch. Do you think you > can quickly submit another iteration rebased on top of it? Will rebase and re-submit! Would I send it as v7 RESUBMIT or v8? > > Bartosz ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2025-07-22 15:24 UTC | newest] Thread overview: 8+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2025-07-21 23:31 [PATCH v7 0/2] Add TI TPS65214 PMIC GPIO Support Shree Ramamoorthy 2025-07-21 23:31 ` [PATCH v7 1/2] gpio: tps65219: Update _IDX & _OFFSET macro prefix Shree Ramamoorthy 2025-07-21 23:31 ` [PATCH v7 2/2] gpio: tps65219: Add support for TI TPS65214 PMIC Shree Ramamoorthy 2025-07-22 12:33 ` [PATCH v7 0/2] Add TI TPS65214 PMIC GPIO Support Bartosz Golaszewski 2025-07-22 14:16 ` Jon Cormier 2025-07-22 14:31 ` Bartosz Golaszewski 2025-07-22 14:32 ` Jon Cormier 2025-07-22 15:23 ` Shree Ramamoorthy
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).