Hi Sean --
--- In sean machin <> wrote:
>
> Hi All,
>
> I'm writing a driver which needs to interface to the digital I/O ports
> on my TS-7260. The particular physical addresses
> I need access to are 0x80840014 for a data direction register and
> 0x80840004 for the data register.
>
> It looks like my call to mmap the address 0x80840014 is failing with
> errno 22 (invalid argument). Anyone on the
> list got an idea why the call is failing? Thanks.
Are you sure that your fd is OK, (opened properly, with O_RDWR|O_SYNC)?
ISTR there are some limits on the granularity of mmap locations. Can
you do something like:
gpio_reg = mmap( .... fd, 0x80840000);
gpio_data = gpio_reg + 0x04;
gpio_ddr = gpio_reg + 0x14;
Also, there should be some example code in the files area that does
DIO, I think from Jim Jackson. (... checking ...)
OK, it's here too:
http://www.comp.leeds.ac.uk/jj/linux/adio.tgz
regards, ....... Charlie
>
--------------------------------------------------------------------------------------------------------------
> uint8_t* ddr_reg = mmap(0, getpagesize(), PROT_READ|PROT_WRITE,
> MAP_SHARED, fd, 0x80840014);
> if (ddr_reg == MAP_FAILED) {
> syslog(LOG_ERR, "mmap failed with errno %d", errno);
> }
>
------------------------------------
Yahoo! Groups Links
<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/ts-7000/
<*> Your email settings:
Individual Email | Traditional
<*> To change settings online go to:
http://groups.yahoo.com/group/ts-7000/join
(Yahoo! ID required)
<*> To change settings via email:
<*> To unsubscribe from this group, send an email to:
<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
|