package embox.driver.gpio

@BuildDepends(third_party.bsp.st_bsp_api)
module stm32cube_gpio extends api {
	option string log_level="LOG_NONE"

	option number gpio_chip_id = 0

	option number exti0_irq = 6
	option number exti1_irq = 7
	option number exti2_irq = 8
	option number exti3_irq = 9
	option number exti4_irq = 10
	option number exti9_5_irq = 23
	option number exti15_10_irq = 40

	source "stm32_gpio_cube.c"

	depends embox.driver.gpio.core
	depends third_party.bsp.st_bsp_api
	@NoRuntime depends embox.lib.libds
}

@BuildDepends(third_party.bsp.st_bsp_api)
module stm32_gpio_f1 extends api {
	option string log_level="LOG_NONE"

	option number gpio_chip_id = 0

	option number exti0_irq = 6
	option number exti1_irq = 7
	option number exti2_irq = 8
	option number exti3_irq = 9
	option number exti4_irq = 10
	option number exti9_5_irq = 23
	option number exti15_10_irq = 40

	source "stm32_gpio_cube.c"

	depends embox.driver.gpio.core
	depends third_party.bsp.st_bsp_api
	@NoRuntime depends embox.lib.libds
}

@BuildDepends(third_party.bsp.st_bsp_api)
module stm32_gpio_f2 extends api {
	option string log_level="LOG_NONE"

	option number gpio_chip_id = 0

	option number exti0_irq = 6
	option number exti1_irq = 7
	option number exti2_irq = 8
	option number exti3_irq = 9
	option number exti4_irq = 10
	option number exti9_5_irq = 23
	option number exti15_10_irq = 40

	source "stm32_gpio_cube.c"

	depends embox.driver.gpio.core
	depends third_party.bsp.st_bsp_api
	@NoRuntime depends embox.lib.libds
}

@BuildDepends(third_party.bsp.st_bsp_api)
module stm32_gpio_f3 extends api {
	option string log_level="LOG_NONE"

	option number gpio_chip_id = 0

	option number exti0_irq = 6
	option number exti1_irq = 7
	option number exti2_irq = 8
	option number exti3_irq = 9
	option number exti4_irq = 10
	option number exti9_5_irq = 23
	option number exti15_10_irq = 40

	source "stm32_gpio_cube.c"

	depends third_party.bsp.st_bsp_api

	depends embox.driver.gpio.core
}

@BuildDepends(third_party.bsp.st_bsp_api)
module stm32_gpio_f4 extends api {
	option string log_level="LOG_NONE"

	option number gpio_chip_id = 0

	option number exti0_irq = 6
	option number exti1_irq = 7
	option number exti2_irq = 8
	option number exti3_irq = 9
	option number exti4_irq = 10
	option number exti9_5_irq = 23
	option number exti15_10_irq = 40

	source "stm32_gpio_cube.c"

	depends embox.driver.gpio.core
	depends third_party.bsp.st_bsp_api
}

@BuildDepends(third_party.bsp.st_bsp_api)
module stm32_gpio_f7 extends api {
	option string log_level="LOG_NONE"

	option number gpio_chip_id = 0

	option number exti0_irq = 6
	option number exti1_irq = 7
	option number exti2_irq = 8
	option number exti3_irq = 9
	option number exti4_irq = 10
	option number exti9_5_irq = 23
	option number exti15_10_irq = 40

	source "stm32_gpio_cube.c"

	depends third_party.bsp.st_bsp_api

	depends embox.driver.gpio.core
}

@BuildDepends(third_party.bsp.st_bsp_api)
module stm32_gpio_l1 extends api {
	option string log_level="LOG_NONE"

	option number gpio_chip_id = 0

	option number exti0_irq = 6
	option number exti1_irq = 7
	option number exti2_irq = 8
	option number exti3_irq = 9
	option number exti4_irq = 10
	option number exti9_5_irq = 23
	option number exti15_10_irq = 40

	source "stm32_gpio_cube.c"

	depends embox.driver.gpio.core
	depends third_party.bsp.st_bsp_api
}

@BuildDepends(third_party.bsp.st_bsp_api)
module stm32_gpio_l4 extends api {
	option string log_level="LOG_NONE"

	option number gpio_chip_id = 0

	option number exti0_irq = 6
	option number exti1_irq = 7
	option number exti2_irq = 8
	option number exti3_irq = 9
	option number exti4_irq = 10
	option number exti9_5_irq = 23
	option number exti15_10_irq = 40

	source "stm32_gpio_cube.c"

	depends embox.driver.gpio.core
	depends third_party.bsp.st_bsp_api
}

@BuildDepends(third_party.bsp.st_bsp_api)
module stm32_gpio_h7 extends api {
	option string log_level="LOG_NONE"

	option number gpio_chip_id = 0

	option number exti0_irq = 6
	option number exti1_irq = 7
	option number exti2_irq = 0 /* 8 this number can be used in touchscreen */
	option number exti3_irq = 9
	option number exti4_irq = 10
	option number exti9_5_irq = 23
	option number exti15_10_irq = 40

	source "stm32_gpio_cube.c"

	depends third_party.bsp.st_bsp_api

	depends embox.driver.gpio.core
}
