#include <stdio.h>
#include "platform.h"
#include "xil_printf.h"
#include "xgpio.h"
#include "xparameters.h"

XGpio_Config *gpio_config;
XGpio gpio;

void init(){
	int status;
	gpio_config = XGpio_LookupConfig(XPAR_AXI_GPIO_0_DEVICE_ID);
	status = XGpio_CfgInitialize(&gpio, gpio_config, gpio_config->BaseAddress);
	if(status == XST_SUCCESS)
		xil_printf("Device Init Successful\n");
	else
		xil_printf("Device Init Failed");

}


int main()
{
	u32 swData = 0;
    init_platform();
    init();

    XGpio_SetDataDirection(&gpio, 1, 0xf);//switch
    XGpio_SetDataDirection(&gpio, 2, 0x0);//led

    while(1)
    {
    	swData = XGpio_DiscreteRead(&gpio, 1);
    	XGpio_DiscreteWrite(&gpio, 2, swData);
    	xil_printf("Switch Value : %0d\n", swData);
    	sleep(1);
    }

    cleanup_platform();
    return 0;
}