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

XGpio_Config *sw_config, *led_config;
XGpio sw,led;

void gpio_init(){

	sw_config = XGpio_LookupConfig(XPAR_SWITCH_DEVICE_ID);
	int statuss = XGpio_CfgInitialize(&sw,sw_config, sw_config->BaseAddress);

	led_config = XGpio_LookupConfig(XPAR_LED_DEVICE_ID);
	int statusl = XGpio_CfgInitialize(&led,led_config, led_config->BaseAddress);




    if((statuss && statusl) == XST_SUCCESS)
    	xil_printf("GPIO INIT SUCCESSFUL\n");
    else
    	xil_printf("GPIO INIT FAILED\n");

}

int main()
{   u32 swRead = 0;
    init_platform();
    gpio_init();

    XGpio_SetDataDirection(&sw, 1, 0xffff);
    XGpio_SetDataDirection(&led, 1, 0x0000);

    while(1)
    {
    	swRead = XGpio_DiscreteRead(&sw, 1);
    	xil_printf("Value Read : %0d\n",swRead);
    	XGpio_DiscreteWrite(&led, 1, swRead);
    	sleep(2);

    }



    cleanup_platform();
    return 0;
}