zephyr/drivers/gpio
Martí Bolívar 48a14dc17e gpio: add support for node label based lookup in the shell
Use some new kernel features to make the experience of finding and
dealing with GPIO devices much more ergonomic by allowing the use of
devicetree node labels to identify GPIO devices by default.

Users who wish to avoid the associated footprint penalty can set
CONFIG_DEVICE_DT_METADATA=n by hand, but I think the convenience is
worth the price as a default. If we're running a shell, then we've
already paid a heavy footprint penalty.

Example output for qemu_cortex_m3:

    uart:~$ gpio devices
    Device           Other names
    gpio@40004000    gpio0
    gpio@40005000    gpio1
    gpio@40006000    gpio2
    gpio@40007000    gpio3
    gpio@40024000    gpio4
    gpio@40025000    gpio5
    gpio@40026000    gpio6

Signed-off-by: Martí Bolívar <mbolivar@amperecomputing.com>
2024-06-12 18:49:54 +02:00
..
CMakeLists.txt drivers: Add MAX32690 gpio driver 2024-05-29 07:30:12 +02:00
gpio_ad559x.c drivers: ad559x: add i2c bus support 2024-04-01 12:18:47 -05:00
gpio_adp5585.c drivers: mfd: add new driver "mfd_adp5585" 2024-05-08 16:09:08 -04:00
gpio_ads114s0x.c drivers: gpio: remove '&' when assigning gpio_xxx_init function 2024-05-29 07:32:17 +02:00
gpio_altera_pio.c drivers: gpio: altera_pio add spinlock 2023-09-25 16:41:17 +02:00
gpio_ambiq.c drivers: gpio: remove '&' when assigning gpio_xxx_init function 2024-05-29 07:32:17 +02:00
gpio_andes_atcgpio100.c drivers: gpio: atcgpio100: remove redundant include 2024-01-19 15:13:53 +00:00
gpio_axp192.c drivers: gpio: remove '&' when assigning gpio_xxx_init function 2024-05-29 07:32:17 +02:00
gpio_b91.c drivers: gpio: b91: add missing PLIC header 2024-01-15 09:58:03 +01:00
gpio_bcm2711.c drivers: gpio: Add GPIO driver for BCM2711 2023-10-24 11:03:44 +02:00
gpio_bd8lb600fs.c drivers: gpio: split up driver for BD8LB600FS into a GPIO and MFD 2024-03-15 09:00:26 +01:00
gpio_brcmstb.c drivers: gpio: add brcmstb gpio driver 2024-04-25 18:06:43 -04:00
gpio_cc13xx_cc26xx.c
gpio_cc32xx.c drivers: gpio: remove '&' when assigning gpio_xxx_init function 2024-05-29 07:32:17 +02:00
gpio_cmsdk_ahb.c
gpio_creg_gpio.c drivers: gpio: fix optional operations usage 2023-09-07 20:18:33 +02:00
gpio_cy8c95xx.c drivers: gpio: fix optional operations usage 2023-09-07 20:18:33 +02:00
gpio_davinci.c drivers: gpio: remove '&' when assigning gpio_xxx_init function 2024-05-29 07:32:17 +02:00
gpio_dw_registers.h
gpio_dw.c drivers: gpio: dw: Address warning of unused gpio_dw_isr 2024-03-24 12:49:23 +01:00
gpio_dw.h
gpio_efinix_sapphire.c drivers: gpio: correct spelling 2024-01-13 00:24:04 +00:00
gpio_emul_sdl_bottom.c drivers gpio SDL emul: Split in top and bottom 2023-07-06 16:04:15 +02:00
gpio_emul_sdl_bottom.h drivers gpio SDL emul: Split in top and bottom 2023-07-06 16:04:15 +02:00
gpio_emul_sdl.c drivers gpio SDL emul: Split in top and bottom 2023-07-06 16:04:15 +02:00
gpio_emul.c
gpio_ene_kb1200.c drivers: gpio: initial device driver for ENE KB1200 2024-03-15 09:39:48 +00:00
gpio_eos_s3.c drivers: gpio: Add default for switch statement 2024-02-25 22:26:00 -05:00
gpio_esp32.c soc: xtensa,riscv: esp32xx: refactor folder structure 2023-07-25 18:12:33 +02:00
gpio_fxl6408.c drivers: gpio: fix optional operations usage 2023-09-07 20:18:33 +02:00
gpio_gd32.c drivers: gpio: remove '&' when assigning gpio_xxx_init function 2024-05-29 07:32:17 +02:00
gpio_gecko.c drivers: gpio: gecko: Use SIZEOF_FIELD() macro 2024-06-07 21:43:07 +02:00
gpio_handlers.c build: namespace the generated headers with zephyr/ 2024-05-28 22:03:55 +02:00
gpio_hogs.c
gpio_ifx_cat1.c boards: arm: Introduce Infineon CYW920829M2EVK-02 board 2024-05-24 18:05:11 -04:00
gpio_imx.c gpio: imx: Added IRQ lock for RMW operations 2024-05-23 11:51:51 -04:00
gpio_intel.c drivers: gpio: gpio_intel: add acpi base resource enumeration 2024-04-22 06:50:38 -07:00
gpio_iproc.c drivers: gpio: add Broadcom iProc GPIO controller driver 2024-05-28 09:59:20 +02:00
gpio_ite_it8xxx2_v2.c ITE: drivers/gpio: Fix untrusted loop bound 2024-02-19 19:59:27 +01:00
gpio_ite_it8xxx2.c ITE: drivers/gpio: Correct the wake up control input 2023-12-01 12:41:22 +01:00
gpio_kscan_ite_it8xxx2.c ITE: drivers/gpio: Add critical section to avoid race condition 2023-08-25 13:14:47 +02:00
gpio_litex.c
gpio_lmp90xxx.c drivers: gpio: remove '&' when assigning gpio_xxx_init function 2024-05-29 07:32:17 +02:00
gpio_lpc11u6x.c
gpio_max32.c drivers: Add MAX32690 gpio driver 2024-05-29 07:30:12 +02:00
gpio_mchp_mss.c drivers: gpio: mchp_mss: remove redundant include 2024-01-19 15:13:53 +00:00
gpio_mchp_xec_v2.c drivers: gpio: mec172x: Add message to warn about pins not in GPIO mode 2024-04-05 23:47:32 +03:00
gpio_mchp_xec.c drivers/gpio: Make MCHP XEC pin configure closer to XEC V2 2023-10-26 09:47:30 +02:00
gpio_mcp23s17.c drivers: gpio: fix optional operations usage 2023-09-07 20:18:33 +02:00
gpio_mcp23sxx.c
gpio_mcp23xxx.c drivers: gpio: Add default for switch statement 2024-02-25 22:26:00 -05:00
gpio_mcp23xxx.h
gpio_mcp230xx.c
gpio_mcux_igpio.c hwmv2: Introduce Hardware model version 2 and convert devices 2024-03-02 16:56:33 -05:00
gpio_mcux_lpc.c drivers: gpio: mcux_lpc: Support MCI_IO_MUX 2024-03-13 16:45:13 +00:00
gpio_mcux_rgpio.c driver: add new gpio driver "gpio_mcux_rgpio" 2024-01-16 20:50:11 -05:00
gpio_mcux.c drivers: gpio_mcux: Support shared interrupts 2024-05-22 15:42:48 -04:00
gpio_mmio32.c drivers: gpio: fix optional operations usage 2023-09-07 20:18:33 +02:00
gpio_nct38xx_alert.c gpio: nct38xx: Remove reg access wrappers 2023-09-11 11:00:47 +02:00
gpio_nct38xx_port.c gpio: nct38xx: Remove reg access wrappers 2023-09-11 11:00:47 +02:00
gpio_nct38xx.c gpio: nct38xx: Remove reg access wrappers 2023-09-11 11:00:47 +02:00
gpio_nct38xx.h mfd: Add NCT38xx multi-function driver 2023-09-11 11:00:47 +02:00
gpio_neorv32.c drivers: gpio: remove '&' when assigning gpio_xxx_init function 2024-05-29 07:32:17 +02:00
gpio_npcx.c intc: miwu: npcx: improve interrupt latency of miwu input events 2023-05-17 09:48:54 +02:00
gpio_npm1300.c drivers: gpio: remove '&' when assigning gpio_xxx_init function 2024-05-29 07:32:17 +02:00
gpio_npm6001.c drivers: gpio: remove '&' when assigning gpio_xxx_init function 2024-05-29 07:32:17 +02:00
gpio_nrfx.c modules: hal_nordic: nrfx: update API version to 3.2.0 2024-01-08 11:19:37 +01:00
gpio_numaker.c drivers: gpio: remove '&' when assigning gpio_xxx_init function 2024-05-29 07:32:17 +02:00
gpio_numicro.c drivers: gpio: Add default for switch statement 2024-02-25 22:26:00 -05:00
gpio_nxp_s32.c gpio: nxp_s32: support passing external interrupts to WKPU 2023-10-11 16:38:34 +01:00
gpio_pca95xx.c drivers: gpio: fix optional operations usage 2023-09-07 20:18:33 +02:00
gpio_pca953x.c drivers: gpio: pca953x: check return values from I2C API functions 2024-01-03 10:21:28 +01:00
gpio_pcal64xxa.c drivers: gpio: pcal64xxa: give semaphore in case of error 2024-06-07 19:06:42 -04:00
gpio_pcf857x.c drivers: gpio: PCF857x: Modify PCF8574 driver 2024-01-16 15:19:14 +00:00
gpio_psoc6.c drivers: gpio: Add default for switch statement 2024-02-25 22:26:00 -05:00
gpio_rcar.c drivers: gpio: rcar: Add R-Car Gen4 support 2023-11-25 08:50:47 -05:00
gpio_renesas_ra.c drivers: gpio: Rename renesas ra driver 2024-01-29 11:32:46 +01:00
gpio_rpi_pico.c
gpio_rt1718s_port.c drivers: gpio: Add default for switch statement 2024-02-25 22:26:00 -05:00
gpio_rt1718s.c drivers: gpio: use gpio_is_ready_dt helper function 2023-08-28 08:48:35 -05:00
gpio_rt1718s.h
gpio_rv32m1.c drivers: gpio: Add default for switch statement 2024-02-25 22:26:00 -05:00
gpio_rzt2m.c drivers: gpio: add interrupt support to renesas rzt2m gpio 2024-03-29 10:56:55 +01:00
gpio_sam0.c
gpio_sam4l.c
gpio_sam.c
gpio_sc18im704.c drivers: gpio: fix optional operations usage 2023-09-07 20:18:33 +02:00
gpio_sedi.c drivers: gpio: remove '&' when assigning gpio_xxx_init function 2024-05-29 07:32:17 +02:00
gpio_shell.c gpio: add support for node label based lookup in the shell 2024-06-12 18:49:54 +02:00
gpio_sifive.c drivers: gpio: sifive: remove unnecessary check 2024-01-19 15:13:53 +00:00
gpio_smartbond.c drivers: gpio: smartbond: Add GPIO latching for PM 2024-04-25 16:17:53 +02:00
gpio_sn74hc595.c drivers: gpio: fix optional operations usage 2023-09-07 20:18:33 +02:00
gpio_stellaris.c gpio: stellaris: implement gpio_pin_get_config 2023-07-26 08:16:44 +00:00
gpio_stm32.c drivers: gpio: stm32: clean up unnecessary code 2024-06-11 19:44:19 -04:00
gpio_stm32.h drivers: gpio: stm32 gpio driver supporting the stm32H7RS 2024-06-06 00:41:43 -07:00
gpio_stmpe1600.c drivers: gpio: fix optional operations usage 2023-09-07 20:18:33 +02:00
gpio_sx1509b.c drivers: gpio: fix optional operations usage 2023-09-07 20:18:33 +02:00
gpio_tca6424a.c drivers: gpio: use gpio_is_ready_dt helper function 2023-08-28 08:48:35 -05:00
gpio_test.c drivers: gpio: fix optional operations usage 2023-09-07 20:18:33 +02:00
gpio_tle9104.c drivers: gpio: split up driver for TLE9104 into a MFD 2024-04-09 11:07:27 +02:00
gpio_xlnx_axi.c drivers: gpio: remove '&' when assigning gpio_xxx_init function 2024-05-29 07:32:17 +02:00
gpio_xlnx_ps_bank.c
gpio_xlnx_ps_bank.h
gpio_xlnx_ps.c drivers: gpio: xlnx_ps: fix up initialization priorities 2023-08-28 15:43:06 -04:00
gpio_xlnx_ps.h
gpio_xmc4xxx.c drivers: gpio: fix optional operations usage 2023-09-07 20:18:33 +02:00
Kconfig gpio: add support for node label based lookup in the shell 2024-06-12 18:49:54 +02:00
Kconfig.ad559x drivers: ad559x: add i2c bus support 2024-04-01 12:18:47 -05:00
Kconfig.adp5585 drivers: mfd: add new driver "mfd_adp5585" 2024-05-08 16:09:08 -04:00
Kconfig.ads114s0x
Kconfig.altera drivers: gpio: Add ALTERA PIO 2023-09-25 16:41:17 +02:00
Kconfig.ambiq drivers: gpio: add Ambiq GPIO driver 2023-12-01 16:25:47 +01:00
Kconfig.andes_atcgpio100
Kconfig.axp192 drivers: mfd: gpio: adjust init priority 2023-10-26 09:50:31 +02:00
Kconfig.b91
Kconfig.bcm2711 drivers: gpio: Add GPIO driver for BCM2711 2023-10-24 11:03:44 +02:00
Kconfig.bd8lb600fs drivers: gpio: split up driver for BD8LB600FS into a GPIO and MFD 2024-03-15 09:00:26 +01:00
Kconfig.brcmstb drivers: gpio: add brcmstb gpio driver 2024-04-25 18:06:43 -04:00
Kconfig.cc13xx_cc26xx
Kconfig.cc32xx
Kconfig.cmsdk_ahb
Kconfig.creg_gpio
Kconfig.cy8c95xx
Kconfig.davinci drivers: gpio: Add Davinci gpio controller support 2023-08-31 10:31:37 +02:00
Kconfig.dw
Kconfig.efinix_sapphire drivers: gpio: gpio_efinix_sapphire: initial version 2023-06-27 12:09:57 +00:00
Kconfig.emul drivers/gpio emul: Fix reference to example overlay 2024-03-20 15:43:05 +01:00
Kconfig.emul_sdl
Kconfig.ene drivers: gpio: initial device driver for ENE KB1200 2024-03-15 09:39:48 +00:00
Kconfig.eos_s3
Kconfig.esp32
Kconfig.fxl6408 drivers: gpio: fxl6408: Fix Kconfig dependency for log level config 2023-06-06 06:51:48 -04:00
Kconfig.gd32
Kconfig.gecko
Kconfig.ifx_cat1
Kconfig.imx
Kconfig.intel
Kconfig.iproc drivers: gpio: add Broadcom iProc GPIO controller driver 2024-05-28 09:59:20 +02:00
Kconfig.it8xxx2
Kconfig.litex
Kconfig.lmp90xxx
Kconfig.lpc11u6x
Kconfig.max32 drivers: Add MAX32690 gpio driver 2024-05-29 07:30:12 +02:00
Kconfig.mchp_mss
Kconfig.mcp23s17
Kconfig.mcp23xxx
Kconfig.mcux
Kconfig.mcux_igpio
Kconfig.mcux_lpc
Kconfig.mcux_rgpio driver: add new gpio driver "gpio_mcux_rgpio" 2024-01-16 20:50:11 -05:00
Kconfig.mmio32
Kconfig.nct38xx drivers: mfd: gpio: adjust init priority 2023-10-26 09:50:31 +02:00
Kconfig.neorv32
Kconfig.npcx
Kconfig.npm1300 drivers: mfd: gpio: adjust init priority 2023-10-26 09:50:31 +02:00
Kconfig.npm6001 drivers: mfd: gpio: adjust init priority 2023-10-26 09:50:31 +02:00
Kconfig.nrfx modules: hal_nordic: nrfx: update API version to 3.2.0 2024-01-08 11:19:37 +01:00
Kconfig.numaker drivers: gpio: support for Nuvoton numaker series GPIO 2023-06-21 09:26:00 +00:00
Kconfig.numicro
Kconfig.nxp_s32 drivers: select nocache only when supported 2023-09-26 15:09:51 +02:00
Kconfig.pca95xx
Kconfig.pca953x
Kconfig.pcal64xxa
Kconfig.pcf857x drivers: gpio: PCF857x: Modify PCF8574 driver 2024-01-16 15:19:14 +00:00
Kconfig.psoc6
Kconfig.rcar
Kconfig.renesas_ra drivers: gpio: Rename renesas ra driver 2024-01-29 11:32:46 +01:00
Kconfig.rpi_pico
Kconfig.rt1718s
Kconfig.rv32m1
Kconfig.rzt2m drivers: gpio: add rzt2m gpio driver 2023-11-15 11:41:35 +01:00
Kconfig.sam
Kconfig.sam0
Kconfig.sc18im704
Kconfig.sedi drivers: gpio: Add Intel SEDI gpio driver 2023-09-12 10:56:08 +02:00
Kconfig.sifive
Kconfig.smartbond soc: smartbond: Move PM_DEVICE dependency to soc 2024-05-14 17:05:03 +02:00
Kconfig.sn74hc595
Kconfig.stellaris
Kconfig.stm32
Kconfig.stmpe1600
Kconfig.sx1509b
Kconfig.tca6424a
Kconfig.test
Kconfig.tle9104 drivers: gpio: split up driver for TLE9104 into a MFD 2024-04-09 11:07:27 +02:00
Kconfig.xec
Kconfig.xlnx
Kconfig.xlnx_ps
Kconfig.xmc4xxx