13#ifndef INCLUDE_ZEPHYR_DRIVERS_INTERRUPT_CONTROLLER_INTC_MCHP_EIC_G1_H_
14#define INCLUDE_ZEPHYR_DRIVERS_INTERRUPT_CONTROLLER_INTC_MCHP_EIC_G1_H_
Main header file for GPIO driver API.
mchp_eic_trigger
EIC interrupt trigger selection.
Definition intc_mchp_eic_g1.h:35
@ MCHP_EIC_HIGH
Interrupt when input is high (level).
Definition intc_mchp_eic_g1.h:43
@ MCHP_EIC_BOTH
Interrupt on both rising and falling edges.
Definition intc_mchp_eic_g1.h:41
@ MCHP_EIC_LOW
Interrupt when input is low (level).
Definition intc_mchp_eic_g1.h:45
@ MCHP_EIC_RISING
Interrupt on rising edge.
Definition intc_mchp_eic_g1.h:37
@ MCHP_EIC_FALLING
Interrupt on falling edge.
Definition intc_mchp_eic_g1.h:39
mchp_eic_line
Microchip EIC (External Interrupt Controller) line identifiers.
Definition intc_mchp_eic_g1.h:69
@ EIC_LINE_2
EIC line 2.
Definition intc_mchp_eic_g1.h:75
@ EIC_LINE_14
EIC line 14.
Definition intc_mchp_eic_g1.h:99
@ EIC_LINE_3
EIC line 3.
Definition intc_mchp_eic_g1.h:77
@ EIC_LINE_1
EIC line 1.
Definition intc_mchp_eic_g1.h:73
@ EIC_LINE_5
EIC line 5.
Definition intc_mchp_eic_g1.h:81
@ EIC_LINE_10
EIC line 10.
Definition intc_mchp_eic_g1.h:91
@ EIC_LINE_6
EIC line 6.
Definition intc_mchp_eic_g1.h:83
@ EIC_LINE_11
EIC line 11.
Definition intc_mchp_eic_g1.h:93
@ EIC_LINE_15
EIC line 15.
Definition intc_mchp_eic_g1.h:101
@ EIC_LINE_MAX
Number of EIC lines (sentinel).
Definition intc_mchp_eic_g1.h:103
@ EIC_LINE_12
EIC line 12.
Definition intc_mchp_eic_g1.h:95
@ EIC_LINE_0
EIC line 0.
Definition intc_mchp_eic_g1.h:71
@ EIC_LINE_8
EIC line 8.
Definition intc_mchp_eic_g1.h:87
@ EIC_LINE_7
EIC line 7.
Definition intc_mchp_eic_g1.h:85
@ EIC_LINE_9
EIC line 9.
Definition intc_mchp_eic_g1.h:89
@ EIC_LINE_4
EIC line 4.
Definition intc_mchp_eic_g1.h:79
@ EIC_LINE_13
EIC line 13.
Definition intc_mchp_eic_g1.h:97
void(* mchp_eic_callback_t)(uint32_t pins, void *data)
EIC ISR callback used to notify the GPIO layer of an interrupt.
Definition intc_mchp_eic_g1.h:29
int eic_mchp_disable_interrupt(struct eic_config_params *eic_pin_config)
Disables an EIC interrupt for a given pin configuration.
mchp_gpio_port_id
Microchip GPIO port identifiers.
Definition intc_mchp_eic_g1.h:52
@ MCHP_PORT_ID_MAX
Number of ports (sentinel).
Definition intc_mchp_eic_g1.h:62
@ MCHP_PORT_ID2
GPIO Port 2.
Definition intc_mchp_eic_g1.h:58
@ MCHP_PORT_ID0
GPIO Port 0.
Definition intc_mchp_eic_g1.h:54
@ MCHP_PORT_ID3
GPIO Port 3.
Definition intc_mchp_eic_g1.h:60
@ MCHP_PORT_ID1
GPIO Port 1.
Definition intc_mchp_eic_g1.h:56
int eic_mchp_config_interrupt(struct eic_config_params *eic_pin_config)
Configure and enable an EIC interrupt for a given pin.
uint32_t eic_mchp_interrupt_pending(uint8_t port_id)
Get the pending EIC interrupts for a given port.
__UINT32_TYPE__ uint32_t
Definition stdint.h:90
__UINT8_TYPE__ uint8_t
Definition stdint.h:88
Parameters used to configure a Microchip EIC line for a GPIO pin.
Definition intc_mchp_eic_g1.h:110
uint8_t port_id
GPIO port identifier.
Definition intc_mchp_eic_g1.h:118
uint8_t pin_num
GPIO pin number within the port.
Definition intc_mchp_eic_g1.h:115
mchp_eic_callback_t eic_line_callback
Callback invoked from EIC ISR to notify the GPIO layer.
Definition intc_mchp_eic_g1.h:130
bool debounce
Enable/disable input debouncing for this line.
Definition intc_mchp_eic_g1.h:121
port_group_registers_t * port_addr
Base address of the GPIO port registers.
Definition intc_mchp_eic_g1.h:127
void * gpio_data
Pointer to GPIO driver/user context passed back in the callback.
Definition intc_mchp_eic_g1.h:124
enum mchp_eic_trigger trig_type
Trigger type (edge/level) for the EIC line.
Definition intc_mchp_eic_g1.h:112