linux/drivers/gpio
Jerome Neanne 57e30e00bd gpio: tps65219: add GPIO support for TPS65219 PMIC
Add support for TPS65219 PMICs GPIO interface.

3 GPIO pins:
- GPIO0 only is IO but input mode reserved for MULTI_DEVICE_ENABLE usage.
- GPIO1 and GPIO2 are Output only and referred as GPO1 and GPO2 in spec.

GPIO0 is statically configured as input or output prior to Linux boot.
it is used for MULTI_DEVICE_ENABLE function.
This setting is statically configured by NVM.
GPIO0 can't be used as a generic GPIO (specification Table 8-34).
It's either a GPO when MULTI_DEVICE_EN=0 or a GPI when MULTI_DEVICE_EN=1.

Datasheet describes specific usage for non standard GPIO.

Datasheet: https://www.ti.com/lit/ds/symlink/tps65219.pdf
Co-developed-by: Jonathan Cormier <jcormier@criticallink.com>
Signed-off-by: Jonathan Cormier <jcormier@criticallink.com>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Jerome Neanne <jneanne@baylibre.com>
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
2023-06-13 14:49:56 +02:00
..
gpio-74x164.c spi: make remove callback a void function 2022-02-09 13:00:45 +00:00
gpio-74xx-mmio.c gpio: 74xx-mmio: Use bits instead of plain numbers for flags 2022-07-28 15:47:56 +02:00
gpio-104-dio-48e.c gpio updates for v6.4-rc1 2023-04-25 17:18:18 -07:00
gpio-104-idi-48.c gpio: 104-idi-48: Enable use_raw_spinlock for idi48_regmap_config 2023-04-11 21:08:31 +02:00
gpio-104-idio-16.c gpio: 104-idio-16: Utilize the idio-16 GPIO library 2022-10-25 09:57:57 +02:00
gpio-adnp.c gpio: Switch i2c drivers back to use .probe() 2023-05-23 10:09:11 +02:00
gpio-adp5520.c gpio: adp5520: cleanup probe error path + remove platform_set_drvdata() 2021-05-21 15:29:53 +02:00
gpio-aggregator.c gpio: aggregator: Add missing header(s) 2023-03-06 12:33:02 +02:00
gpio-altera-a10sr.c gpio: altera-a10sr: Switch to use fwnode instead of of_node 2022-01-24 17:23:15 +02:00
gpio-altera.c gpio: altera: drop of_match_ptr for ID table 2023-03-15 10:38:03 +01:00
gpio-amd8111.c gpio: amd8111: Fix PCI device reference count leak 2022-11-30 17:18:35 +01:00
gpio-amd-fch.c
gpio-amdpt.c gpio: use raw spinlock for gpio chip shadowed data 2022-04-25 12:10:02 +02:00
gpio-arizona.c gpio: arizona: Remove unused header(s) 2022-10-19 17:03:55 +03:00
gpio-aspeed-sgpio.c gpio: aspeed-sgpio: Convert to immutable irq_chip 2023-03-10 16:17:20 +01:00
gpio-aspeed.c gpio: aspeed: Convert to immutable irq_chip 2023-03-10 16:17:19 +01:00
gpio-ath79.c gpio: ath79: Convert to immutable irq_chip 2023-03-10 16:17:23 +01:00
gpio-bcm-kona.c treewide: Replace GPLv2 boilerplate/reference with SPDX - gpl-2.0_30.RULE (part 2) 2022-06-10 14:51:35 +02:00
gpio-bd9571mwv.c gpio: bd9571mwv: remove platform_set_drvdata() + cleanup probe 2021-05-21 15:43:26 +02:00
gpio-bd71815.c gpio: Support ROHM BD71815 GPOs 2021-04-14 10:19:22 +01:00
gpio-bd71828.c gpio: Get rid of duplicate of_node assignment in the drivers 2021-12-17 17:39:35 +01:00
gpio-brcmstb.c gpio: brcmstb: Use devm_platform_get_and_ioremap_resource() 2023-05-23 10:23:46 +02:00
gpio-bt8xx.c drivers: gpio: bt8xx: prefer dev_err()/dev_warn() over of raw printk 2020-12-08 09:41:32 +01:00
gpio-cadence.c gpio: cadence: Convert to immutable irq_chip 2023-03-10 16:17:24 +01:00
gpio-clps711x.c
gpio-creg-snps.c gpio: Setup parent device and get rid of unnecessary of_node assignment 2021-12-17 17:44:19 +01:00
gpio-crystalcove.c gpio: crystalcove: Join function declarations and long lines 2022-06-06 14:09:16 +03:00
gpio-cs5535.c gpio: cs5535: Simplify the return expression of cs5535_gpio_probe() 2020-12-12 01:37:46 +01:00
gpio-da9052.c gpio: da9052: Remove unused header(s) 2022-10-19 17:03:55 +03:00
gpio-da9055.c gpio: da9055: remove platform_set_drvdata() + cleanup probe 2021-05-21 14:45:57 +02:00
gpio-davinci.c gpio: davinci: make davinci_gpio_dev_pm_ops static 2023-06-13 11:45:06 +02:00
gpio-delay.c gpio: Add gpio delay driver 2023-06-02 18:29:15 +02:00
gpio-dln2.c gpio: dln2: make irq_chip immutable 2022-06-06 14:09:16 +03:00
gpio-dwapb.c gpio: dwapb: Don't print error on -EPROBE_DEFER 2022-06-10 14:26:15 +02:00
gpio-eic-sprd.c gpio: eic-sprd: Make the irqchip immutable 2022-12-30 16:57:27 +01:00
gpio-elkhartlake.c gpio: elkhartlake: Introduce Intel Elkhart Lake PSE GPIO 2023-03-06 17:10:46 +02:00
gpio-em.c gpio: Get rid of duplicate of_node assignment in the drivers 2021-12-17 17:39:35 +01:00
gpio-en7523.c gpio: Add support for Airoha EN7523 GPIO controller 2022-02-02 10:16:19 +01:00
gpio-ep93xx.c gpio: ep93xx: remove unused variable 2023-01-27 14:05:38 +01:00
gpio-exar.c gpio: exar: Allow IO port access 2022-10-26 14:52:02 +02:00
gpio-f7188x.c gpio-f7188x: use unique labels for banks/chips 2022-09-01 16:14:35 +02:00
gpio-ftgpio010.c gpio: ftgpio010: drop of_match_ptr for ID table 2023-03-15 10:37:56 +01:00
gpio-fxl6408.c gpio: Switch i2c drivers back to use .probe() 2023-05-23 10:09:11 +02:00
gpio-ge.c gpio: ge: Remove duplicate assignment of of_gpio_n_cells 2023-01-30 15:55:30 +01:00
gpio-gpio-mm.c gpio: gpio-mm: Migrate to regmap API 2023-01-30 15:55:28 +01:00
gpio-grgpio.c gpio: grgpio: Fix device removing 2022-06-23 16:42:27 +02:00
gpio-gw-pld.c gpio: Switch i2c drivers back to use .probe() 2023-05-23 10:09:11 +02:00
gpio-hisi.c gpio: hisi: Convert to immutable irq_chip 2023-03-10 16:17:27 +01:00
gpio-hlwd.c gpio: hlwd: Convert to immutable irq_chip 2023-03-10 16:17:29 +01:00
gpio-htc-egpio.c
gpio-i8255.c gpio: i8255: Remove unused legacy interface 2023-01-30 15:55:28 +01:00
gpio-i8255.h gpio: i8255: Remove unused legacy interface 2023-01-30 15:55:28 +01:00
gpio-ich.c gpio: ich: Use devm_gpiochip_add_data() to simplify remove path 2023-03-09 16:08:39 +02:00
gpio-idio-16.c gpio: idio-16: Introduce the ACCES IDIO-16 GPIO library module 2022-10-25 09:56:46 +02:00
gpio-idio-16.h gpio: idio-16: Introduce the ACCES IDIO-16 GPIO library module 2022-10-25 09:56:46 +02:00
gpio-idt3243x.c gpio: idt3243x: Convert to immutable irq_chip 2023-03-10 16:17:30 +01:00
gpio-imx-scu.c gpio: remove MODULE_LICENSE in non-modules 2023-03-06 10:47:22 +01:00
gpio-it87.c gpio: it87: remove unused code 2021-05-05 16:07:41 +02:00
gpio-ixp4xx.c gpio: ixp4xx: Use devm_platform_ioremap_resource() 2023-05-11 11:07:51 +02:00
gpio-janz-ttl.c
gpio-kempld.c
gpio-latch.c gpio: Add gpio latch driver 2022-10-26 14:52:01 +02:00
gpio-ljca.c gpio: Add support for Intel LJCA USB GPIO driver 2023-04-26 11:40:29 +01:00
gpio-logicvc.c gpio: logicvc: Remove redundant error printing in logicvc_gpio_probe() 2021-05-12 13:35:39 +02:00
gpio-loongson1.c gpio: loongson1: Add DT support 2023-03-23 14:31:18 +01:00
gpio-loongson-64bit.c gpio: loongson: Remove unnecessary .owner 2023-03-10 16:27:28 +01:00
gpio-loongson.c
gpio-lp873x.c treewide: Replace GPLv2 boilerplate/reference with SPDX - gpl-2.0_319.RULE 2022-06-10 14:51:36 +02:00
gpio-lp3943.c gpio: lp3943: unsigned to unsigned int cleanup 2022-07-19 09:57:40 +02:00
gpio-lp87565.c treewide: Replace GPLv2 boilerplate/reference with SPDX - gpl-2.0_319.RULE 2022-06-10 14:51:36 +02:00
gpio-lpc18xx.c
gpio-lpc32xx.c gpio: Setup parent device and get rid of unnecessary of_node assignment 2021-12-17 17:44:19 +01:00
gpio-madera.c
gpio-max730x.c gpio: max730x: Make __max730x_remove() return void 2021-10-13 19:52:26 +02:00
gpio-max732x.c gpio: Switch i2c drivers back to use .probe() 2023-05-23 10:09:11 +02:00
gpio-max3191x.c spi: make remove callback a void function 2022-02-09 13:00:45 +00:00
gpio-max7300.c gpio: Switch i2c drivers back to use .probe() 2023-05-23 10:09:11 +02:00
gpio-max7301.c spi: make remove callback a void function 2022-02-09 13:00:45 +00:00
gpio-max77620.c gpio: max77620: Make the irqchip immutable 2022-05-05 14:56:37 +02:00
gpio-max77650.c
gpio-mb86s7x.c
gpio-mc33880.c spi: make remove callback a void function 2022-02-09 13:00:45 +00:00
gpio-menz127.c gpio: use raw spinlock for gpio chip shadowed data 2022-04-25 12:10:02 +02:00
gpio-merrifield.c gpio: merrifield: Utilise temporary variable for struct device 2023-03-06 17:10:46 +02:00
gpio-ml-ioh.c gpio: ml-ioh: Convert to use managed functions pcim* and devm_* 2022-05-20 19:20:35 +02:00
gpio-mlxbf2.c gpio: mlxbf2: Convert to immutable irq_chip 2023-03-10 16:17:32 +01:00
gpio-mlxbf.c
gpio-mm-lantiq.c gpio: mm-lantiq: Fix typo in the newly added header filename 2023-03-23 16:22:18 +02:00
gpio-mmio.c gpio: use raw spinlock for gpio chip shadowed data 2022-04-25 12:10:02 +02:00
gpio-mockup.c gpio: mockup: Add missing header(s) 2022-10-24 12:29:11 +03:00
gpio-moxtet.c treewide: change my e-mail address, fix my name 2021-04-09 14:54:23 -07:00
gpio-mpc8xxx.c gpio: mpc8xxx: Fix support for IRQ_TYPE_LEVEL_LOW flow_type in mpc85xx 2022-09-07 13:17:23 +02:00
gpio-mpc5200.c gpiolib: split of_mm_gpio_chip out of linux/of_gpio.h 2023-03-06 12:33:01 +02:00
gpio-msc313.c gpio: msc313: Convert to immutable irq_chip 2023-03-10 16:17:31 +01:00
gpio-mt7621.c gpio updates for v6.1-rc1 2022-10-08 09:46:29 -07:00
gpio-mvebu.c gpio: mvebu: Use IS_REACHABLE instead of IS_ENABLED for CONFIG_PWM 2023-01-30 15:55:31 +01:00
gpio-mxc.c gpio: mxc: Unlock on error path in mxc_flip_edge() 2023-01-25 13:33:29 +01:00
gpio-mxs.c gpio: remove MODULE_LICENSE in non-modules 2023-03-06 10:47:22 +01:00
gpio-octeon.c
gpio-omap.c gpio: omap: Convert to immutable irq_chip 2023-03-10 16:17:35 +01:00
gpio-palmas.c gpio: Get rid of duplicate of_node assignment in the drivers 2021-12-17 17:39:35 +01:00
gpio-pca953x.c gpio: Switch i2c drivers back to use .probe() 2023-05-23 10:09:11 +02:00
gpio-pca9570.c gpio: Switch i2c drivers back to use .probe() 2023-05-23 10:09:11 +02:00
gpio-pcf857x.c gpio: Switch i2c drivers back to use .probe() 2023-05-23 10:09:11 +02:00
gpio-pch.c gpio: pch: Change PCI device macros 2022-06-21 18:01:11 +03:00
gpio-pci-idio-16.c gpio: pci-idio-16: Convert to immutable irq_chip 2023-03-10 16:17:36 +01:00
gpio-pcie-idio-24.c gpio: pcie-idio-24: Prune superfluous license boilerplate 2023-03-15 13:40:10 +01:00
gpio-pisosr.c treewide: Replace GPLv2 boilerplate/reference with SPDX - gpl-2.0_319.RULE 2022-06-10 14:51:36 +02:00
gpio-pl061.c gpio: pl061: Add missing header(s) 2022-10-24 12:29:26 +03:00
gpio-pmic-eic-sprd.c gpio: pmic-eic-sprd: Make the irqchip immutable 2022-12-30 16:58:58 +01:00
gpio-pxa.c gpio: pxa: remove unused gpio_is_pxa_type function 2023-03-22 17:46:12 +01:00
gpio-raspberrypi-exp.c gpio: raspberrypi-exp: mark OF related data as maybe unused 2023-03-15 10:38:39 +01:00
gpio-rc5t583.c
gpio-rcar.c gpio: rcar: drop of_match_ptr for ID table 2023-03-15 10:38:05 +01:00
gpio-rda.c gpio: rda: Convert to immutable irq_chip 2023-03-23 14:31:18 +01:00
gpio-rdc321x.c
gpio-realtek-otto.c gpio: realtek-otto: switch to 32-bit I/O 2022-08-31 17:46:30 +02:00
gpio-reg.c gpio: reg: Add missing header(s) 2023-03-06 12:33:02 +02:00
gpio-regmap.c gpio: regmap: Add missing header(s) 2023-03-06 12:33:02 +02:00
gpio-rockchip.c gpio: rockchip: Do not mention legacy API in the code 2023-01-30 15:55:30 +01:00
gpio-sa1100.c gpio: sa1100: include <mach/generic.h> 2023-05-17 11:56:24 +02:00
gpio-sama5d2-piobu.c gpio: sama5d2-piobu: drop of_match_ptr for ID table 2023-03-15 10:38:16 +01:00
gpio-sch311x.c gpio: sch311x: Use devm_gpiochip_add_data() to simplify remove path 2023-05-17 11:52:14 +02:00
gpio-sch.c gpio: sch: make irq_chip immutable 2022-06-06 14:09:16 +03:00
gpio-sifive.c gpio: sifive: drop of_match_ptr for ID table 2023-03-15 10:38:13 +01:00
gpio-sim.c gpio: sim: Deactivate device in reversed order 2023-03-10 16:54:01 +01:00
gpio-siox.c gpio: siox: Convert to immutable irq_chip 2023-03-23 14:31:18 +01:00
gpio-sl28cpld.c gpio: sl28cpld: Replace irqchip mask_invert with unmask_base 2022-11-15 15:41:45 +01:00
gpio-sodaville.c gpio: Bulk conversion to generic_handle_domain_irq() 2021-08-12 11:39:38 +01:00
gpio-spear-spics.c treewide: Replace GPLv2 boilerplate/reference with SPDX - gpl-2.0_56.RULE (part 2) 2022-06-10 14:51:35 +02:00
gpio-sprd.c gpio: sprd: Make the irqchip immutable 2022-12-30 16:59:06 +01:00
gpio-stmpe.c gpio: stmpe: Convert to immutable irq_chip 2023-03-23 14:31:18 +01:00
gpio-stp-xway.c gpio: Use of_property_read_bool() for boolean properties 2023-03-15 10:43:08 +01:00
gpio-syscon.c gpio: syscon: Remove usage of syscon_regmap_lookup_by_compatible 2022-05-02 10:41:33 +02:00
gpio-tangier.c gpio: tangier: calculate number of ctx using temporary variable 2023-05-23 10:22:25 +02:00
gpio-tangier.h gpio: elkhartlake: Introduce Intel Elkhart Lake PSE GPIO 2023-03-06 17:10:46 +02:00
gpio-tb10x.c gpio: Use of_property_read_bool() for boolean properties 2023-03-15 10:43:08 +01:00
gpio-tc3589x.c gpio: tc3589x: Make irqchip immutable 2022-10-03 20:56:46 +02:00
gpio-tegra186.c gpio: tegra186: Check GPIO pin permission before access. 2023-05-26 14:29:00 +02:00
gpio-tegra.c gpio: tegra: Convert to immutable irq chip 2022-10-20 13:47:54 +02:00
gpio-thunderx.c gpio: thunderx: Convert to immutable irq_chip 2023-03-23 14:31:18 +01:00
gpio-timberdale.c
gpio-tn48m.c gpio: Add Delta TN48M CPLD GPIO driver 2022-02-25 09:59:35 +01:00
gpio-tpic2810.c gpio: Switch i2c drivers back to use .probe() 2023-05-23 10:09:11 +02:00
gpio-tps6586x.c gpio: Propagate firmware node from a parent device 2021-12-17 17:50:46 +01:00
gpio-tps65086.c gpio: tps65086: Use devm_gpiochip_add_data() to simplify remove path 2023-05-17 11:40:40 +02:00
gpio-tps65218.c gpio: Get rid of duplicate of_node assignment in the drivers 2021-12-17 17:39:35 +01:00
gpio-tps65219.c gpio: tps65219: add GPIO support for TPS65219 PMIC 2023-06-13 14:49:56 +02:00
gpio-tps65910.c gpio: Propagate firmware node from a parent device 2021-12-17 17:50:46 +01:00
gpio-tps65912.c gpio: tps65912: remove platform_set_drvdata() + cleanup probe 2021-05-24 20:58:46 +02:00
gpio-tps68470.c gpio: tps68470: Allow building as module 2022-01-24 17:23:15 +02:00
gpio-tqmx86.c gpio: tqmx86: Convert to immutable irq_chip 2023-03-23 14:31:18 +01:00
gpio-ts4800.c treewide: Replace GPLv2 boilerplate/reference with SPDX - gpl-2.0_56.RULE (part 2) 2022-06-10 14:51:35 +02:00
gpio-ts4900.c gpio: Switch i2c drivers back to use .probe() 2023-05-23 10:09:11 +02:00
gpio-ts5500.c gpio: ts5500: Fix Links to Technologic Systems web resources 2022-03-31 16:44:57 +02:00
gpio-twl4030.c This removes all usage of global GPIO numbers from 2023-05-31 17:01:34 +02:00
gpio-twl6040.c gpio: Propagate firmware node from a parent device 2021-12-17 17:50:46 +01:00
gpio-uniphier.c gpio updates for v5.16 2021-11-08 11:55:21 -08:00
gpio-vf610.c gpio updates for v6.3 2023-02-22 11:01:17 -08:00
gpio-viperboard.c gpio: viperboard: remove platform_set_drvdata() call in probe 2021-08-31 11:29:28 +02:00
gpio-virtio.c virtio: wrap config->reset calls 2022-01-14 18:50:52 -05:00
gpio-visconti.c gpio: visconti: Convert to immutable irq_chip 2023-03-23 14:31:18 +01:00
gpio-vx855.c gpio: vx855: convert comma to semicolon 2021-02-15 11:43:29 +01:00
gpio-wcd934x.c gpio: wcd934x: Remove duplicate assignment of of_gpio_n_cells 2023-01-30 15:55:30 +01:00
gpio-wcove.c gpio: wcove: make irq_chip immutable 2022-06-06 14:09:16 +03:00
gpio-winbond.c gpio: winbond: Fix error code in winbond_gpio_get() 2022-06-23 16:29:55 +02:00
gpio-wm831x.c gpio: Propagate firmware node from a parent device 2021-12-17 17:50:46 +01:00
gpio-wm8350.c gpio: wm8350: Remove unused header(s) 2022-10-24 12:29:41 +03:00
gpio-wm8994.c gpio: wm8994: remove platform_set_drvdata() + cleanup probe 2021-05-25 16:21:14 +02:00
gpio-ws16c48.c gpio updates for v6.1-rc1 2022-10-08 09:46:29 -07:00
gpio-xgene-sb.c
gpio-xgene.c gpio: xgene: simplify probe, return devm_gpiochip_add_data() directly 2021-05-23 20:30:26 +02:00
gpio-xgs-iproc.c gpio: xgs-iproc: Convert to immutable irq_chip 2023-03-23 14:31:18 +01:00
gpio-xilinx.c gpio: xilinx: Convert to immutable irq_chip 2023-03-23 14:31:18 +01:00
gpio-xlp.c gpio: xlp: Convert to immutable irq_chip 2023-03-23 14:31:19 +01:00
gpio-xra1403.c gpio: xra1403: mark OF related data as maybe unused 2023-03-15 10:38:22 +01:00
gpio-xtensa.c
gpio-zevio.c gpio: zevio: Add missing header 2023-01-30 15:55:31 +01:00
gpio-zynq.c gpio: zynq: fix zynqmp_gpio not an immutable chip warning 2023-06-13 11:48:54 +02:00
gpio-zynqmp-modepin.c gpio: modepin: Add driver support for modepin GPIO controller 2021-09-23 10:09:58 +02:00
gpiolib-acpi.c gpio updates for v6.4-rc1 2023-04-25 17:18:18 -07:00
gpiolib-acpi.h gpiolib: Clean up headers 2023-03-06 12:33:02 +02:00
gpiolib-cdev.c gpiolib: Introduce gpio_device_get() and gpio_device_put() 2023-01-30 15:55:29 +01:00
gpiolib-cdev.h gpiolib: fix sysfs when cdev is not selected 2020-11-05 15:35:40 +01:00
gpiolib-devres.c gpiolib: of: remove [devm_]gpiod_get_from_of_node() APIs 2023-01-30 15:55:28 +01:00
gpiolib-legacy.c gpiolib: Kill unused GPIOF_OPEN_* 2023-06-01 09:52:39 +02:00
gpiolib-of.c gpiolib: Clean up headers 2023-03-06 12:33:02 +02:00
gpiolib-of.h gpiolib: Clean up headers 2023-03-06 12:33:02 +02:00
gpiolib-swnode.c gpiolib: Clean up headers 2023-03-06 12:33:02 +02:00
gpiolib-swnode.h gpiolib: add support for software nodes 2022-11-15 11:21:43 +01:00
gpiolib-sysfs.c Driver core changes for 6.4-rc1 2023-04-27 11:53:57 -07:00
gpiolib-sysfs.h gpiolib: Clean up headers 2022-10-24 12:30:26 +03:00
gpiolib.c gpiolib: Do not unexport GPIO on freeing 2023-06-09 11:38:36 +02:00
gpiolib.h gpiolib: Introduce gpio_device_get() and gpio_device_put() 2023-01-30 15:55:29 +01:00
Kconfig gpio: tps65219: add GPIO support for TPS65219 PMIC 2023-06-13 14:49:56 +02:00
Makefile gpio: tps65219: add GPIO support for TPS65219 PMIC 2023-06-13 14:49:56 +02:00
TODO gpiolib: split of_mm_gpio_chip out of linux/of_gpio.h 2023-03-06 12:33:01 +02:00