Hello!
I'm trying to add UIO device to my system to handle interrupt. But i'm
facing following problem. Docs says, on reading device /dev/uio0 it will
block until interrupt occurs. I've made simple program for test. It
tries to write 1 to enable interrupts.
#include <unistd.h>
#include <errno.h>
#include <fcntl.h>
#include <stdio.h>
int main()
{
int fd;
char c = 1;
fd = open("/dev/uio0", O_RDONLY);
if (fd<0) {
printf("open error: %d\n", errno);
return 0;
}
printf("fd == %d\n", fd);
int res = write(fd, &c, 1);
if(res<0) {
printf("write error: %d\n", errno);
}
return 0;
}
And as the output i get
fd ==
3
write error: 9
error 9 means "bad file descriptor". File /dev/uio0 is here.
/sys/class/uio/uio0 folder i also. Reading are fails the same way.
Here is how i add device to the system in board specific code
static struct uio_info cross_uio_info = {
.name = "uio_mcross",
.version = "0.1",
.irq = IRQ_EINT14,
.irq_flags = 0,
};
static struct platform_device minipos_cross_device = {
.name = "uio_pdrv_genirq",
.id = -1,
.dev = {
.platform_data = &cross_uio_info,
}
};
and then add platform device.
Please, help.
--
To unsubscribe from this list: send the line "unsubscribe linux-embedded" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html