

// /* include path: ..../A2F/root/usr/include */

// #include <stdio.h>
// #include <fcntl.h>
// #include <linux/types.h>
// //#include <linux/jiffies.h>
// #include <unistd.h>

// typedef unsigned char uint8_t;
// typedef unsigned long uint32_t;

// typedef struct {
// 	uint32_t address;
// 	uint8_t	 data;
// } cpld_t;

// typedef struct {
// 	uint32_t	clockspeed;
// 	uint32_t	ownAddr;
// 	uint8_t DevAddr;
// 	uint8_t buf[100];
// 	uint8_t Size;	
// } i2c_arg_t;


// #define  GENERATE_CMD(__MAGIC__, __MAJOR__, __CMD__) \
// 	((0x3<<30) | (__MAJOR__<<16) | (__MAGIC__<<8) | __CMD__)

// #define SET_ADDR GENERATE_CMD('x', 101, 2)
// #define TRANSFER GENERATE_CMD('x', 101, 4)
// #define MASTER_RCV GENERATE_CMD('x', 101, 5)
// #define SLAVE_RCV GENERATE_CMD('x', 101, 6)
// int main()
// {
// /*	//FMC test app
// 	cpld_t cpld_arg;
// 	printf("This is test app!\n");
// 	int fd;
// 	fd = open("/dev/fmc_cpld", O_RDWR);
// 	if(fd == NULL)
// 		printf("Open failed\n");

// 	cpld_arg.address = 0x64000000;
// 	cpld_arg.data = 0x55;
// 	ioctl(fd, 0, &cpld_arg);
// 	cpld_arg.data = 0;
// 	ioctl(fd, 1, &cpld_arg);
// 	printf("Read from cpld: %#x\n", cpld_arg.data);

// 	close(fd);
// */
	
// /*	//gpio interrup test app
// 	int fd;
// 	uint8_t buf;
// 	int ret = 0;
// 	fd = open("/dev/test_module", O_RDWR);
// 	if(fd == NULL)
// 		printf("open failed\n");
// 	while(1)
// 	{
// 		ret = read(fd, &buf, 1);
// 		printf("test app read %#x\n", buf);
// 	}

// 	close(fd);*/

// 	int fd;
// 	int i;
// 	i2c_arg_t i2c_arg;
// 	fd = open("/dev/i2c1", O_RDWR);
// 	if(fd == NULL)
// 		printf("open failed\n");

// 	i2c_arg.ownAddr = 0;
// 	i2c_arg.DevAddr = 0x92;
// 	i2c_arg.buf[0] = 1;
// 	i2c_arg.buf[1] = 2;
// 	i2c_arg.buf[2] = 3;
// 	i2c_arg.Size	= 0;
// 	while(1)
// 	{
// 	//	ioctl(fd, 1, &i2c_arg);	//get speed
// 	//	printf("speed: %d\n", i2c_arg.clockspeed);
// 	//	sleep(1);
// 	//	
// 	//	i2c_arg.clockspeed = 400000;
// 	//	ioctl(fd, 0, &i2c_arg);	//set speed
// 	//	sleep(1);
// 	//	
// //		ioctl(fd, 3, &i2c_arg);	//get addr
// //		printf("addr: %#x\n", i2c_arg.ownAddr);
// //		sleep(1);
		
// //		i2c_arg.ownAddr = 0x42;
// //		ioctl(fd, SET_ADDR, &i2c_arg);	//set addr
// //		sleep(1);

// //		ioctl(fd, MASTER_RCV, &i2c_arg);
// //		printf("Read: %#x, %#x\n", i2c_arg.buf[0], i2c_arg.buf[1]);
// 		//	sleep(1);
		
// 		ioctl(fd, SLAVE_RCV, &i2c_arg);
// 		printf("\ni2c1 rec: ");
// 		for(i=0;i<i2c_arg.Size;i++)
// 			printf("%#x ", i2c_arg.buf[i]);
// 		printf("\n");

// 	}
	
// 	close(fd);
	
	
	
// 	return 0;
// }
