# SPDX-License-Identifier: Apache-2.0

zephyr_syscall_header(${ZEPHYR_BASE}/include/zephyr/drivers/gpio.h)

zephyr_library()

zephyr_library_sources_ifdef(CONFIG_GPIO_AXP192     gpio_axp192.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_TELINK_B91 gpio_b91.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_INFINEON_CAT1 gpio_ifx_cat1.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_CC13XX_CC26XX gpio_cc13xx_cc26xx.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_CC32XX     gpio_cc32xx.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_CMSDK_AHB  gpio_cmsdk_ahb.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_DW         gpio_dw.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_ESP32      gpio_esp32.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_SIFIVE     gpio_sifive.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_GECKO      gpio_gecko.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_IMX        gpio_imx.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_ITE_IT8XXX2 gpio_ite_it8xxx2.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_ITE_IT8XXX2_V2 gpio_ite_it8xxx2_v2.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_KSCAN_ITE_IT8XXX2 gpio_kscan_ite_it8xxx2.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_MCP23S17   gpio_mcp23s17.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_MCP23XXX   gpio_mcp23xxx.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_MCP23SXX   gpio_mcp23sxx.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_MCP230XX   gpio_mcp230xx.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_BD8LB600FS gpio_bd8lb600fs.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_MCUX       gpio_mcux.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_MCUX_IGPIO gpio_mcux_igpio.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_MCUX_LPC   gpio_mcux_lpc.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_MMIO32     gpio_mmio32.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_XEC        gpio_mchp_xec.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_NRFX       gpio_nrfx.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_PCA95XX    gpio_pca95xx.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_STM32      gpio_stm32.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_SAM0       gpio_sam0.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_SAM        gpio_sam.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_SAM4L      gpio_sam4l.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_SX1509B    gpio_sx1509b.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_INTEL      gpio_intel.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_STELLARIS  gpio_stellaris.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_RPI_PICO   gpio_rpi_pico.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_RV32M1     gpio_rv32m1.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_LMP90XXX   gpio_lmp90xxx.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_ADS114S0X  gpio_ads114s0x.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_LITEX      gpio_litex.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_LPC11U6X   gpio_lpc11u6x.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_XLNX_AXI   gpio_xlnx_axi.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_NPCX       gpio_npcx.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_EMUL       gpio_emul.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_PSOC6      gpio_psoc6.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_PCAL64XXA  gpio_pcal64xxa.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_EOS_S3     gpio_eos_s3.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_RCAR       gpio_rcar.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_CY8C95XX   gpio_cy8c95xx.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_SNPS_CREG  gpio_creg_gpio.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_STMPE1600  gpio_stmpe1600.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_XEC_V2     gpio_mchp_xec_v2.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_PCA953X    gpio_pca953x.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_PCF8574    gpio_pcf8574.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_FXL6408    gpio_fxl6408.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_ANDES_ATCGPIO100 gpio_andes_atcgpio100.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_NEORV32    gpio_neorv32.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_NCT38XX    gpio_nct38xx.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_NCT38XX    gpio_nct38xx_port.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_NCT38XX_ALERT  gpio_nct38xx_alert.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_TEST       gpio_test.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_GD32       gpio_gd32.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_XLNX_PS    gpio_xlnx_ps.c gpio_xlnx_ps_bank.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_SN74HC595  gpio_sn74hc595.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_MCHP_MSS       gpio_mchp_mss.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_SMARTBOND  gpio_smartbond.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_NXP_S32    gpio_nxp_s32.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_TCA6424A   gpio_tca6424a.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_SHELL      gpio_shell.c)
zephyr_library_sources_ifdef(CONFIG_USERSPACE   gpio_handlers.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_XMC4XXX    gpio_xmc4xxx.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_NPM1300    gpio_npm1300.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_NPM6001    gpio_npm6001.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_RT1718S    gpio_rt1718s.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_RT1718S    gpio_rt1718s_port.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_NUMICRO    gpio_numicro.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_HOGS       gpio_hogs.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_NUMAKER    gpio_numaker.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_EFINIX_SAPPHIRE    gpio_efinix_sapphire.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_DAVINCI    gpio_davinci.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_SEDI    gpio_sedi.c)
zephyr_library_sources_ifdef(CONFIG_GPIO_ALTERA_PIO gpio_altera_pio.c)

if (CONFIG_GPIO_EMUL_SDL)
  zephyr_library_sources(gpio_emul_sdl.c)
  if (CONFIG_NATIVE_APPLICATION)
    zephyr_library_sources(gpio_emul_sdl_bottom.c)
  else()
    target_sources(native_simulator INTERFACE gpio_emul_sdl_bottom.c)
  endif()
endif()

if(CONFIG_GPIO_SC18IM704)
  zephyr_library_include_directories(${ZEPHYR_BASE}/drivers)
  zephyr_library_sources(gpio_sc18im704.c)
endif()
