/* This file is a temporary workaround for mapping of the generated information
 * to the current driver definitions.  This will be removed when the drivers
 * are modified to handle the generated information, or the mapping of
 * generated data matches the driver definitions.
 */

#define CONFIG_BT_SPI_IRQ_DEV_NAME		BT_IRQ_GPIOS_CONTROLLER
#define CONFIG_BT_SPI_IRQ_PIN			BT_IRQ_GPIOS_PIN
#define CONFIG_BT_SPI_RESET_DEV_NAME		BT_RESET_GPIOS_CONTROLLER
#define CONFIG_BT_SPI_RESET_PIN			BT_RESET_GPIOS_PIN
#define CONFIG_BT_SPI_DEV_NAME			ST_STM32_SPI_40013000_ZEPHYR_BT_HCI_SPI_0_BUS_NAME
#define CONFIG_BT_SPI_MAX_CLK_FREQ		ST_STM32_SPI_40013000_ZEPHYR_BT_HCI_SPI_0_SPI_MAX_FREQUENCY
