configuring GPIO interrupts

When debugging this code provoke  a hard fault. Could you define the problem?

pADI_GPIO2->IEN |= 1<<2;
pADI_GPIO2->POL |= 1<<2; //latched passing from falling edge
pADI_GPIO2->IENA |= 1<<2; 

/* Hard fault need to be debugged */
adi_gpio_RegisterCallback (ADI_GPIO_INTA_IRQ, pinIntCallback,(void*)ADI_GPIO_INTA_IRQ);

and  the callback function is:

* GPIO events Callback function
*/
static void pinIntCallback(void* pCBParam, uint32_t Port, void* PinIntData)
{
/* PPG interrupt */
if((Port == (uint32_t)ADI_GPIO_PORT2) && (*(uint32_t*)PinIntData & ADI_GPIO_PIN_2))
{
/* set PPG flag */
ADPD188_SetMCUIntFlag();
pADI_GPIO2->INT|=1<<2;
}
}