1 /* 2 * Xilinx Processor System MIO / EMIO GPIO controller driver 3 * 4 * Driver private data declarations, parent (IRQ handler) module 5 * 6 * Copyright (c) 2022, Weidmueller Interface GmbH & Co. KG 7 * SPDX-License-Identifier: Apache-2.0 8 */ 9 10 #ifndef _ZEPHYR_DRIVERS_GPIO_GPIO_XLNX_PS_H_ 11 #define _ZEPHYR_DRIVERS_GPIO_GPIO_XLNX_PS_H_ 12 13 /* Type definitions */ 14 15 /* IRQ handler function type */ 16 typedef void (*gpio_xlnx_ps_config_irq_t)(const struct device *dev); 17 18 /** 19 * @brief Run-time modifiable device data structure. 20 * 21 * This struct contains all data of the PS GPIO controller parent 22 * (IRQ handler) which is modifiable at run-time. 23 */ 24 struct gpio_xlnx_ps_dev_data { 25 struct gpio_driver_data common; 26 }; 27 28 /** 29 * @brief Constant device configuration data structure. 30 * 31 * This struct contains all data of the PS GPIO controller parent 32 * which is required for proper operation (such as base memory 33 * addresses, references to all associated banks etc.) which don't 34 * have to and therefore cannot be modified at run-time. 35 */ 36 struct gpio_xlnx_ps_dev_cfg { 37 struct gpio_driver_config common; 38 39 uint32_t base_addr; 40 const struct device *const *bank_devices; 41 uint32_t num_banks; 42 gpio_xlnx_ps_config_irq_t config_func; 43 }; 44 45 #endif /* _ZEPHYR_DRIVERS_GPIO_GPIO_XLNX_PS_H_ */ 46