#include "exo_io_al_gpio_common.h"
#include "exo_gpio.h"

#ifndef __weak
    #define __weak   __attribute__((weak))
#endif

#ifndef EXO_UNUSED
#define EXO_UNUSED(X) (void)X
#endif

__weak void core_current_sense_int(void* args)
{
	EXO_UNUSED(args);
}

__weak void core_io2_expd_int(void* args)
{
	EXO_UNUSED(args);
}

__weak void edge_io_int(void* args)
{
	EXO_UNUSED(args);
}

__weak void core_io1_expd_int(void* args)
{
	EXO_UNUSED(args);
}

__weak void core_tem_sen_int(void* args)
{
	EXO_UNUSED(args);
}

__weak void gps_io_expd_int(void* args)
{
	EXO_UNUSED(args);
}



void exo_gpio_init()
{
	  ioal_gpio_config ioal_hgpio_input;

	  ioal_hgpio_input.pin_number = IOAL_GPIO_PIN_7;
	  ioal_hgpio_input.mode = IOAL_GPIO_MODE_IT_FALLING;
	  ioal_hgpio_input.pull_sts = IOAL_GPIO_PULLUP;
	  ioal_hgpio_input.external_int.isr_handler =NULL;
	  ioal_hgpio_input.external_int.isr_args = NULL;
	  // invoke hal gpio init function
	  io_hal_gpio_init(&ioal_hgpio_input);



	  ioal_gpio_config ioal_gpio_cfg;

	  	  ioal_gpio_cfg.pin_number = CORE_CURRENT_SENSE_INT;
	  	  ioal_gpio_cfg.mode = IOAL_GPIO_MODE_IT_FALLING;
	  	  ioal_gpio_cfg.pull_sts = IOAL_GPIO_NOPULL;
	  	  ioal_gpio_cfg.external_int.isr_handler =core_current_sense_int;
	  	  ioal_gpio_cfg.external_int.isr_args = NULL;
	  	  // invoke hal gpio init function
	  	  io_hal_gpio_init(&ioal_gpio_cfg);


	  	  ioal_gpio_cfg.pin_number = CORE_IO2_EXPD_INT;
	  	  ioal_gpio_cfg.mode = IOAL_GPIO_MODE_IT_FALLING;
	  	  ioal_gpio_cfg.pull_sts = IOAL_GPIO_NOPULL;
	  	  ioal_gpio_cfg.external_int.isr_handler =core_io2_expd_int;
	  	  ioal_gpio_cfg.external_int.isr_args = NULL;
	  	  // invoke hal gpio init function
	  	  io_hal_gpio_init(&ioal_gpio_cfg);


	  	  ioal_gpio_cfg.pin_number = EDGE_IO_INT;
	  	  ioal_gpio_cfg.mode = IOAL_GPIO_MODE_IT_FALLING;
	  	  ioal_gpio_cfg.pull_sts = IOAL_GPIO_NOPULL;
	  	  ioal_gpio_cfg.external_int.isr_handler =edge_io_int;
	  	  ioal_gpio_cfg.external_int.isr_args = NULL;
	  	  // invoke hal gpio init function
	  	  io_hal_gpio_init(&ioal_gpio_cfg);



	  	  ioal_gpio_cfg.pin_number = CORE_IO1_EXPD_INT;
	  	  ioal_gpio_cfg.mode = IOAL_GPIO_MODE_IT_FALLING;
	  	  ioal_gpio_cfg.pull_sts = IOAL_GPIO_NOPULL;
	  	  ioal_gpio_cfg.external_int.isr_handler =core_io1_expd_int;
	  	  ioal_gpio_cfg.external_int.isr_args = NULL;
	  	  // invoke hal gpio init function
	  	  io_hal_gpio_init(&ioal_gpio_cfg);



	  	  ioal_gpio_cfg.pin_number = CORE_TEM_SEN_INT;
	  	  ioal_gpio_cfg.mode = IOAL_GPIO_MODE_IT_FALLING;
	  	  ioal_gpio_cfg.pull_sts = IOAL_GPIO_NOPULL;
	  	  ioal_gpio_cfg.external_int.isr_handler =core_tem_sen_int;
	  	  ioal_gpio_cfg.external_int.isr_args = NULL;
	  	  // invoke hal gpio init function
	  	  io_hal_gpio_init(&ioal_gpio_cfg);



	  	  ioal_gpio_cfg.pin_number = GPS_IO_EXPD_INT;
	  	  ioal_gpio_cfg.mode = IOAL_GPIO_MODE_IT_FALLING;
	  	  ioal_gpio_cfg.pull_sts = IOAL_GPIO_NOPULL;
	  	  ioal_gpio_cfg.external_int.isr_handler =gps_io_expd_int;
	  	  ioal_gpio_cfg.external_int.isr_args = NULL;
	  	  // invoke hal gpio init function
	  	  io_hal_gpio_init(&ioal_gpio_cfg);


	  	  ioal_gpio_cfg.pin_number = SHUTDOWN_REQ;
	  	  ioal_gpio_cfg.mode = IOAL_GPIO_MODE_INPUT;
	  	  ioal_gpio_cfg.pull_sts = IOAL_GPIO_NOPULL;
	  	  ioal_gpio_cfg.external_int.isr_handler =NULL;
	  	  ioal_gpio_cfg.external_int.isr_args = NULL;
	  	  // invoke hal gpio init function
	  	  io_hal_gpio_init(&ioal_gpio_cfg);


	  	  ioal_gpio_cfg.pin_number = POWER_EN;
	  	  ioal_gpio_cfg.mode = IOAL_GPIO_MODE_INPUT;
	  	  ioal_gpio_cfg.pull_sts = IOAL_GPIO_NOPULL;
	  	  ioal_gpio_cfg.external_int.isr_handler =NULL;
	  	  ioal_gpio_cfg.external_int.isr_args = NULL;
	  	  // invoke hal gpio init function
	  	  io_hal_gpio_init(&ioal_gpio_cfg);


	  	  ioal_gpio_cfg.pin_number = SUS_S3_CORE;
	  	  ioal_gpio_cfg.mode = IOAL_GPIO_MODE_INPUT;
	  	  ioal_gpio_cfg.pull_sts = IOAL_GPIO_NOPULL;
	  	  ioal_gpio_cfg.external_int.isr_handler =NULL;
	  	  ioal_gpio_cfg.external_int.isr_args = NULL;
	  	  // invoke hal gpio init function
	  	  io_hal_gpio_init(&ioal_gpio_cfg);

	  	  ioal_gpio_cfg.pin_number = UART_SW_EN_1;
	        ioal_gpio_cfg.mode = IOAL_GPIO_MODE_OUTPUT_PP;
	        ioal_gpio_cfg.pull_sts = IOAL_GPIO_NOPULL;
	  	  ioal_gpio_cfg.external_int.isr_handler =NULL;
	        ioal_gpio_cfg.external_int.isr_args = NULL;
	  	  // invoke hal gpio init function
	  	  io_hal_gpio_init(&ioal_gpio_cfg);

	  	  ioal_gpio_cfg.pin_number = UART_SW_SEL_1;
	  	  ioal_gpio_cfg.mode = IOAL_GPIO_MODE_OUTPUT_PP;
	  	  ioal_gpio_cfg.pull_sts = IOAL_GPIO_NOPULL;
	  	  ioal_gpio_cfg.external_int.isr_handler =NULL;
	  	  ioal_gpio_cfg.external_int.isr_args = NULL;
	  	  // invoke hal gpio init function
	  	  io_hal_gpio_init(&ioal_gpio_cfg);

	  	  ioal_gpio_cfg.pin_number = UART_SW_EN_2;
	  	  ioal_gpio_cfg.mode = IOAL_GPIO_MODE_OUTPUT_PP;
	  	  ioal_gpio_cfg.pull_sts = IOAL_GPIO_NOPULL;
	  	  ioal_gpio_cfg.external_int.isr_handler =NULL;
	  	  ioal_gpio_cfg.external_int.isr_args = NULL;
	  	  // invoke hal gpio init function
	  	  io_hal_gpio_init(&ioal_gpio_cfg);

	  	  ioal_gpio_cfg.pin_number = UART_SW_SEL_2;
	  	  ioal_gpio_cfg.mode = IOAL_GPIO_MODE_OUTPUT_PP;
	  	  ioal_gpio_cfg.pull_sts = IOAL_GPIO_NOPULL;
	  	  ioal_gpio_cfg.external_int.isr_handler =NULL;
	  	  ioal_gpio_cfg.external_int.isr_args = NULL;
	  	  // invoke hal gpio init function
	  	  io_hal_gpio_init(&ioal_gpio_cfg);

	  	  ioal_gpio_cfg.pin_number = ETH_RESET;
	  	  ioal_gpio_cfg.mode = IOAL_GPIO_MODE_OUTPUT_PP;
	  	  ioal_gpio_cfg.pull_sts = IOAL_GPIO_NOPULL;
	  	  ioal_gpio_cfg.external_int.isr_handler =NULL;
	  	  ioal_gpio_cfg.external_int.isr_args = NULL;
	  	  // invoke hal gpio init function
	  	  io_hal_gpio_init(&ioal_gpio_cfg);

	  	  ioal_gpio_cfg.pin_number = GPS_CORE_PGOOD;
	  	  ioal_gpio_cfg.mode = IOAL_GPIO_MODE_OUTPUT_PP;
	  	  ioal_gpio_cfg.pull_sts = IOAL_GPIO_NOPULL;
	  	  ioal_gpio_cfg.external_int.isr_handler =NULL;
	  	  ioal_gpio_cfg.external_int.isr_args = NULL;
	  	  // invoke hal gpio init function
	  	  io_hal_gpio_init(&ioal_gpio_cfg);

	  	  ioal_gpio_cfg.pin_number = GPS_ON_CORE;
	  	  ioal_gpio_cfg.mode = IOAL_GPIO_MODE_OUTPUT_PP;
	  	  ioal_gpio_cfg.pull_sts = IOAL_GPIO_NOPULL;
	  	  ioal_gpio_cfg.external_int.isr_handler =NULL;
	  	  ioal_gpio_cfg.external_int.isr_args = NULL;
	  	  // invoke hal gpio init function
	  	  io_hal_gpio_init(&ioal_gpio_cfg);

	  	  ioal_gpio_cfg.pin_number = MRESET_IN;
	  	  ioal_gpio_cfg.mode = IOAL_GPIO_MODE_OUTPUT_PP;
	  	  ioal_gpio_cfg.pull_sts = IOAL_GPIO_NOPULL;
	  	  ioal_gpio_cfg.external_int.isr_handler =NULL;
	  	  ioal_gpio_cfg.external_int.isr_args = NULL;
	  	  // invoke hal gpio init function
	  	  io_hal_gpio_init(&ioal_gpio_cfg);

	  	  ioal_gpio_cfg.pin_number = ETH_DCDC1_ON;
	  	  ioal_gpio_cfg.mode = IOAL_GPIO_MODE_OUTPUT_PP;
	  	  ioal_gpio_cfg.pull_sts = IOAL_GPIO_NOPULL;
	  	  ioal_gpio_cfg.external_int.isr_handler =NULL;
	  	  ioal_gpio_cfg.external_int.isr_args = NULL;
	  	  // invoke hal gpio init function
	  	  io_hal_gpio_init(&ioal_gpio_cfg);

	  	  ioal_gpio_cfg.pin_number = ETH_DCDC2_ON;
	  	  ioal_gpio_cfg.mode = IOAL_GPIO_MODE_OUTPUT_PP;
	  	  ioal_gpio_cfg.pull_sts = IOAL_GPIO_NOPULL;
	  	  ioal_gpio_cfg.external_int.isr_handler =NULL;
	  	  ioal_gpio_cfg.external_int.isr_args = NULL;
	  	  // invoke hal gpio init function
	  	  io_hal_gpio_init(&ioal_gpio_cfg);

	  	  ioal_gpio_cfg.pin_number = DVDDL_PG;
	  	  ioal_gpio_cfg.mode = IOAL_GPIO_MODE_OUTPUT_PP;
	  	  ioal_gpio_cfg.pull_sts = IOAL_GPIO_NOPULL;
	  	  ioal_gpio_cfg.external_int.isr_handler =NULL;
	  	  ioal_gpio_cfg.external_int.isr_args = NULL;
	  	  // invoke hal gpio init function
	  	  io_hal_gpio_init(&ioal_gpio_cfg);

	  	  ioal_gpio_cfg.pin_number = DVDDIO_PG;
	  	  ioal_gpio_cfg.mode = IOAL_GPIO_MODE_OUTPUT_PP;
	  	  ioal_gpio_cfg.pull_sts = IOAL_GPIO_NOPULL;
	  	  ioal_gpio_cfg.external_int.isr_handler =NULL;
	  	  ioal_gpio_cfg.external_int.isr_args = NULL;
	  	  // invoke hal gpio init function
	  	  io_hal_gpio_init(&ioal_gpio_cfg);

	  	  ioal_gpio_cfg.pin_number = PAYLOAD_VCC_ENABLE;
	  	  ioal_gpio_cfg.mode = IOAL_GPIO_MODE_OUTPUT_PP;
	  	  ioal_gpio_cfg.pull_sts = IOAL_GPIO_NOPULL;
	  	  ioal_gpio_cfg.external_int.isr_handler =NULL;
	  	  ioal_gpio_cfg.external_int.isr_args = NULL;
	  	  // invoke hal gpio init function
	  	  io_hal_gpio_init(&ioal_gpio_cfg);

	  	  ioal_gpio_cfg.pin_number = PAYLOAD_SB_ENABLE;
	  	  ioal_gpio_cfg.mode = IOAL_GPIO_MODE_OUTPUT_PP;
	  	  ioal_gpio_cfg.pull_sts = IOAL_GPIO_NOPULL;
	  	  ioal_gpio_cfg.external_int.isr_handler =NULL;
	  	  ioal_gpio_cfg.external_int.isr_args = NULL;
	  	  // invoke hal gpio init function
	  	  io_hal_gpio_init(&ioal_gpio_cfg);

	  	  ioal_gpio_cfg.pin_number = PAYLOAD_SSD_CORE_ENABLE;
	  	  ioal_gpio_cfg.mode = IOAL_GPIO_MODE_OUTPUT_PP;
	  	  ioal_gpio_cfg.pull_sts = IOAL_GPIO_NOPULL;
	  	  ioal_gpio_cfg.external_int.isr_handler =NULL;
	  	  ioal_gpio_cfg.external_int.isr_args = NULL;
	  	  // invoke hal gpio init function
	  	  io_hal_gpio_init(&ioal_gpio_cfg);

	  	  ioal_gpio_cfg.pin_number = SBAND_BB_EN;
	  	  ioal_gpio_cfg.mode = IOAL_GPIO_MODE_OUTPUT_PP;
	  	  ioal_gpio_cfg.pull_sts = IOAL_GPIO_NOPULL;
	  	  ioal_gpio_cfg.external_int.isr_handler =NULL;
	  	  ioal_gpio_cfg.external_int.isr_args = NULL;
	  	  // invoke hal gpio init function
	  	  io_hal_gpio_init(&ioal_gpio_cfg);

	  	  ioal_gpio_cfg.pin_number = PS_DVDDL_PG;
	  	  ioal_gpio_cfg.mode = IOAL_GPIO_MODE_OUTPUT_PP;
	  	  ioal_gpio_cfg.pull_sts = IOAL_GPIO_NOPULL;
	  	  ioal_gpio_cfg.external_int.isr_handler =NULL;
	  	  ioal_gpio_cfg.external_int.isr_args = NULL;
	  	  // invoke hal gpio init function
	  	  io_hal_gpio_init(&ioal_gpio_cfg);


	  	  ioal_gpio_cfg.pin_number = PS_PCIE_EW3;
	  	  ioal_gpio_cfg.mode = IOAL_GPIO_MODE_OUTPUT_PP;
	  	  ioal_gpio_cfg.pull_sts = IOAL_GPIO_NOPULL;
	  	  ioal_gpio_cfg.external_int.isr_handler =NULL;
	  	  ioal_gpio_cfg.external_int.isr_args = NULL;
	  	  // invoke hal gpio init function
	  	  io_hal_gpio_init(&ioal_gpio_cfg);


	  	  ioal_gpio_cfg.pin_number = PS_SSD_EN1;
	  	  ioal_gpio_cfg.mode = IOAL_GPIO_MODE_OUTPUT_PP;
	  	  ioal_gpio_cfg.pull_sts = IOAL_GPIO_NOPULL;
	  	  ioal_gpio_cfg.external_int.isr_handler =NULL;
	  	  ioal_gpio_cfg.external_int.isr_args = NULL;
	  	  // invoke hal gpio init function
	  	  io_hal_gpio_init(&ioal_gpio_cfg);


	  	  ioal_gpio_cfg.pin_number = PS_SSD_EN2;
	  	  ioal_gpio_cfg.mode = IOAL_GPIO_MODE_OUTPUT_PP;
	  	  ioal_gpio_cfg.pull_sts = IOAL_GPIO_NOPULL;
	  	  ioal_gpio_cfg.external_int.isr_handler =NULL;
	  	  ioal_gpio_cfg.external_int.isr_args = NULL;
	  	  // invoke hal gpio init function
	  	  io_hal_gpio_init(&ioal_gpio_cfg);


	  	  ioal_gpio_cfg.pin_number = PS_DVDDIO_PG;
	  	  ioal_gpio_cfg.mode = IOAL_GPIO_MODE_OUTPUT_PP;
	  	  ioal_gpio_cfg.pull_sts = IOAL_GPIO_NOPULL;
	  	  ioal_gpio_cfg.external_int.isr_handler =NULL;
	  	  ioal_gpio_cfg.external_int.isr_args = NULL;
	  	  // invoke hal gpio init function
	  	  io_hal_gpio_init(&ioal_gpio_cfg);


	  	  ioal_gpio_cfg.pin_number = PS_ETH_DCDC2_ON;
	  	  ioal_gpio_cfg.mode = IOAL_GPIO_MODE_OUTPUT_PP;
	  	  ioal_gpio_cfg.pull_sts = IOAL_GPIO_NOPULL;
	  	  ioal_gpio_cfg.external_int.isr_handler =NULL;
	  	  ioal_gpio_cfg.external_int.isr_args = NULL;
	  	  // invoke hal gpio init function
	  	  io_hal_gpio_init(&ioal_gpio_cfg);


	  	  ioal_gpio_cfg.pin_number = PS_ETH_RESET;
	  	  ioal_gpio_cfg.mode = IOAL_GPIO_MODE_OUTPUT_PP;
	  	  ioal_gpio_cfg.pull_sts = IOAL_GPIO_NOPULL;
	  	  ioal_gpio_cfg.external_int.isr_handler =NULL;
	  	  ioal_gpio_cfg.external_int.isr_args = NULL;
	  	  // invoke hal gpio init function
	  	  io_hal_gpio_init(&ioal_gpio_cfg);

	  	  ioal_gpio_cfg.pin_number = PS_ETH_DCDC1_ON;
	  	  ioal_gpio_cfg.mode = IOAL_GPIO_MODE_OUTPUT_PP;
	  	  ioal_gpio_cfg.pull_sts = IOAL_GPIO_NOPULL;
	  	  ioal_gpio_cfg.external_int.isr_handler =NULL;
	  	  ioal_gpio_cfg.external_int.isr_args = NULL;
	  	  // invoke hal gpio init function
	  	  io_hal_gpio_init(&ioal_gpio_cfg);

	  	  ioal_gpio_cfg.pin_number = EDGE_SSD_EN1;
	  	  ioal_gpio_cfg.mode = IOAL_GPIO_MODE_OUTPUT_PP;
	  	  ioal_gpio_cfg.pull_sts = IOAL_GPIO_NOPULL;
	  	  ioal_gpio_cfg.external_int.isr_handler =NULL;
	  	  ioal_gpio_cfg.external_int.isr_args = NULL;
	  	  // invoke hal gpio init function
	  	  io_hal_gpio_init(&ioal_gpio_cfg);

	  	  ioal_gpio_cfg.pin_number = EDGE_SSD_EN2;
	  	  ioal_gpio_cfg.mode = IOAL_GPIO_MODE_OUTPUT_PP;
	  	  ioal_gpio_cfg.pull_sts = IOAL_GPIO_NOPULL;
	  	  ioal_gpio_cfg.external_int.isr_handler =NULL;
	  	  ioal_gpio_cfg.external_int.isr_args = NULL;
	  	  // invoke hal gpio init function
	  	  io_hal_gpio_init(&ioal_gpio_cfg);

	  	  ioal_gpio_cfg.pin_number = EDGE_UART_SW_EN_1;
	  	  ioal_gpio_cfg.mode = IOAL_GPIO_MODE_OUTPUT_PP;
	  	  ioal_gpio_cfg.pull_sts = IOAL_GPIO_NOPULL;
	  	  ioal_gpio_cfg.external_int.isr_handler =NULL;
	  	  ioal_gpio_cfg.external_int.isr_args = NULL;
	  	  // invoke hal gpio init function
	  	  io_hal_gpio_init(&ioal_gpio_cfg);

	  	  ioal_gpio_cfg.pin_number = EDGE_UART_SW_SEL_1;
	  	  ioal_gpio_cfg.mode = IOAL_GPIO_MODE_OUTPUT_PP;
	  	  ioal_gpio_cfg.pull_sts = IOAL_GPIO_NOPULL;
	  	  ioal_gpio_cfg.external_int.isr_handler =NULL;
	  	  ioal_gpio_cfg.external_int.isr_args = NULL;
	  	  // invoke hal gpio init function
	  	  io_hal_gpio_init(&ioal_gpio_cfg);

	  	  ioal_gpio_cfg.pin_number = EDGE_SSD_HEAT_ENABLE;
	  	  ioal_gpio_cfg.mode = IOAL_GPIO_MODE_OUTPUT_PP;
	  	  ioal_gpio_cfg.pull_sts = IOAL_GPIO_NOPULL;
	  	  ioal_gpio_cfg.external_int.isr_handler =NULL;
	  	  ioal_gpio_cfg.external_int.isr_args = NULL;
	  	  // invoke hal gpio init function
	  	  io_hal_gpio_init(&ioal_gpio_cfg);

	  	  ioal_gpio_cfg.pin_number = EDGE_TEM_SEN_INT;
	  	  ioal_gpio_cfg.mode = IOAL_GPIO_MODE_OUTPUT_PP;
	  	  ioal_gpio_cfg.pull_sts = IOAL_GPIO_NOPULL;
	  	  ioal_gpio_cfg.external_int.isr_handler =NULL;
	  	  ioal_gpio_cfg.external_int.isr_args = NULL;
	  	  // invoke hal gpio init function
	  	  io_hal_gpio_init(&ioal_gpio_cfg);

	  	  ioal_gpio_cfg.pin_number = EDGE_UART_SW_EN_2;
	  	  ioal_gpio_cfg.mode = IOAL_GPIO_MODE_OUTPUT_PP;
	  	  ioal_gpio_cfg.pull_sts = IOAL_GPIO_NOPULL;
	  	  ioal_gpio_cfg.external_int.isr_handler =NULL;
	  	  ioal_gpio_cfg.external_int.isr_args = NULL;
	  	  // invoke hal gpio init function
	  	  io_hal_gpio_init(&ioal_gpio_cfg);

	  	  ioal_gpio_cfg.pin_number = EDGE_UART_SW_SEL_2;
	  	  ioal_gpio_cfg.mode = IOAL_GPIO_MODE_OUTPUT_PP;
	  	  ioal_gpio_cfg.pull_sts = IOAL_GPIO_NOPULL;
	  	  ioal_gpio_cfg.external_int.isr_handler =NULL;
	  	  ioal_gpio_cfg.external_int.isr_args = NULL;
	  	  // invoke hal gpio init function
	  	  io_hal_gpio_init(&ioal_gpio_cfg);

	  	  ioal_gpio_cfg.pin_number = EDGE_EN_5V_EDGE;
	  	  ioal_gpio_cfg.mode = IOAL_GPIO_MODE_OUTPUT_PP;
	  	  ioal_gpio_cfg.pull_sts = IOAL_GPIO_NOPULL;
	  	  ioal_gpio_cfg.external_int.isr_handler =NULL;
	  	  ioal_gpio_cfg.external_int.isr_args = NULL;
	  	  // invoke hal gpio init function
	  	  io_hal_gpio_init(&ioal_gpio_cfg);

	  	  ioal_gpio_cfg.pin_number = EDGE_IO2_EXPD_INT;
	  	  ioal_gpio_cfg.mode = IOAL_GPIO_MODE_OUTPUT_PP;
	  	  ioal_gpio_cfg.pull_sts = IOAL_GPIO_NOPULL;
	  	  ioal_gpio_cfg.external_int.isr_handler =NULL;
	  	  ioal_gpio_cfg.external_int.isr_args = NULL;
	  	  // invoke hal gpio init function
	  	  io_hal_gpio_init(&ioal_gpio_cfg);

	  	  ioal_gpio_cfg.pin_number = EDGE_EN_1PSV_EDGE;
	  	  ioal_gpio_cfg.mode = IOAL_GPIO_MODE_OUTPUT_PP;
	  	  ioal_gpio_cfg.pull_sts = IOAL_GPIO_NOPULL;
	  	  ioal_gpio_cfg.external_int.isr_handler =NULL;
	  	  ioal_gpio_cfg.external_int.isr_args = NULL;
	  	  // invoke hal gpio init function
	  	  io_hal_gpio_init(&ioal_gpio_cfg);

	  	  ioal_gpio_cfg.pin_number = EDGE_EN_3P3V_EDGE_EN;
	  	  ioal_gpio_cfg.mode = IOAL_GPIO_MODE_OUTPUT_PP;
	  	  ioal_gpio_cfg.pull_sts = IOAL_GPIO_NOPULL;
	  	  ioal_gpio_cfg.external_int.isr_handler =NULL;
	  	  ioal_gpio_cfg.external_int.isr_args = NULL;
	  	  // invoke hal gpio init function
	  	  io_hal_gpio_init(&ioal_gpio_cfg);

	  	  ioal_gpio_cfg.pin_number = EDGE_PGOOD_1PSV_EDGE;
	  	  ioal_gpio_cfg.mode = IOAL_GPIO_MODE_OUTPUT_PP;
	  	  ioal_gpio_cfg.pull_sts = IOAL_GPIO_NOPULL;
	  	  ioal_gpio_cfg.external_int.isr_handler =NULL;
	  	  ioal_gpio_cfg.external_int.isr_args = NULL;
	  	  // invoke hal gpio init function
	  	  io_hal_gpio_init(&ioal_gpio_cfg);

	  	  ioal_gpio_cfg.pin_number =EDGE_PGOOD_3P3V_EDGE;
	  	  ioal_gpio_cfg.mode = IOAL_GPIO_MODE_OUTPUT_PP;
	  	  ioal_gpio_cfg.pull_sts = IOAL_GPIO_NOPULL;
	  	  ioal_gpio_cfg.external_int.isr_handler =NULL;
	  	  ioal_gpio_cfg.external_int.isr_args = NULL;
	  	  // invoke hal gpio init function
	  	  io_hal_gpio_init(&ioal_gpio_cfg);

	  	  ioal_gpio_cfg.pin_number = GPS_TEM_SEN_INT;
	  	  ioal_gpio_cfg.mode = IOAL_GPIO_MODE_OUTPUT_PP;
	  	  ioal_gpio_cfg.pull_sts = IOAL_GPIO_NOPULL;
	  	  ioal_gpio_cfg.external_int.isr_handler =NULL;
	  	  ioal_gpio_cfg.external_int.isr_args = NULL;
	  	  // invoke hal gpio init function
	  	  io_hal_gpio_init(&ioal_gpio_cfg);

	  	  ioal_gpio_cfg.pin_number = GPS_HUB_ON;
	  	  ioal_gpio_cfg.mode = IOAL_GPIO_MODE_OUTPUT_PP;
	  	  ioal_gpio_cfg.pull_sts = IOAL_GPIO_NOPULL;
	  	  ioal_gpio_cfg.external_int.isr_handler =NULL;
	  	  ioal_gpio_cfg.external_int.isr_args = NULL;
	  	  // invoke hal gpio init function
	  	  io_hal_gpio_init(&ioal_gpio_cfg);

	  	  ioal_gpio_cfg.pin_number = GPS_HUB_PGOOD;
	  	  ioal_gpio_cfg.mode = IOAL_GPIO_MODE_OUTPUT_PP;
	  	  ioal_gpio_cfg.pull_sts = IOAL_GPIO_NOPULL;
	  	  ioal_gpio_cfg.external_int.isr_handler =NULL;
	  	  ioal_gpio_cfg.external_int.isr_args = NULL;
	  	  // invoke hal gpio init function
	  	  io_hal_gpio_init(&ioal_gpio_cfg);

	  	  ioal_gpio_cfg.pin_number = GPS_PGOOD;
	  	  ioal_gpio_cfg.mode = IOAL_GPIO_MODE_OUTPUT_PP;
	  	  ioal_gpio_cfg.pull_sts = IOAL_GPIO_NOPULL;
	  	  ioal_gpio_cfg.external_int.isr_handler =NULL;
	  	  ioal_gpio_cfg.external_int.isr_args = NULL;
	  	  // invoke hal gpio init function
	  	  io_hal_gpio_init(&ioal_gpio_cfg);

	  	  ioal_gpio_cfg.pin_number = GPS2_IO_EXPD_INT;
	  	  ioal_gpio_cfg.mode = IOAL_GPIO_MODE_OUTPUT_PP;
	  	  ioal_gpio_cfg.pull_sts = IOAL_GPIO_NOPULL;
	  	  ioal_gpio_cfg.external_int.isr_handler =NULL;
	  	  ioal_gpio_cfg.external_int.isr_args = NULL;
	  	  // invoke hal gpio init function
	  	  io_hal_gpio_init(&ioal_gpio_cfg);

	  	  ioal_gpio_cfg.pin_number = GPS_TRANS_WFDOUT;
	  	  ioal_gpio_cfg.mode = IOAL_GPIO_MODE_OUTPUT_PP;
	  	  ioal_gpio_cfg.pull_sts = IOAL_GPIO_NOPULL;
	  	  ioal_gpio_cfg.external_int.isr_handler =NULL;
	  	  ioal_gpio_cfg.external_int.isr_args = NULL;
	  	  // invoke hal gpio init function
	  	  io_hal_gpio_init(&ioal_gpio_cfg);

	  	  ioal_gpio_cfg.pin_number = GPS_FDTI_RESETN;
	  	  ioal_gpio_cfg.mode = IOAL_GPIO_MODE_OUTPUT_PP;
	  	  ioal_gpio_cfg.pull_sts = IOAL_GPIO_NOPULL;
	  	  ioal_gpio_cfg.external_int.isr_handler =NULL;
	  	  ioal_gpio_cfg.external_int.isr_args = NULL;
	  	  // invoke hal gpio init function
	  	  io_hal_gpio_init(&ioal_gpio_cfg);

	  	  ioal_gpio_cfg.pin_number = GPS_ON;
	  	  ioal_gpio_cfg.mode = IOAL_GPIO_MODE_OUTPUT_PP;
	  	  ioal_gpio_cfg.pull_sts = IOAL_GPIO_NOPULL;
	  	  ioal_gpio_cfg.external_int.isr_handler =NULL;
	  	  ioal_gpio_cfg.external_int.isr_args = NULL;
	  	  // invoke hal gpio init function
	  	  io_hal_gpio_init(&ioal_gpio_cfg);


}
