All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Gilad Rom" <gilad@romat.com>
To: <linux-mips@linux-mips.org>
Subject: Re: GPIO on the Au1500
Date: Sun, 14 Nov 2004 17:53:49 +0200	[thread overview]
Message-ID: <0a2201c4ca62$25d37f80$a701a8c0@lan> (raw)
In-Reply-To: 09ac01c4ca24$e68a6740$a701a8c0@lan

Replying to myself - 

I've composed a small program which mmap()'s
SYS_BASE and then tries to read at the appropriate
GPIO offset, as defined in the Au1500 databook.

For some reason, I keep getting that magical value, 
0x10000001 for EVERY address I try to read, be it 
SYS_BASE (0xB1900000) or every other address. (for example,
I've tried reading the MAC address from the MAC0 base address
of 0xB1500000, offset 0x0008, and I always get 0x10000001).

Any reason I shouldn't succeed in reading the au1500 
hardware addresses through /dev/mem?

Attached is the code I'm using:

#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <sys/mman.h>

#define SYS_BASE     0xB1900000

int
main () 
{
 volatile unsigned long *base;
 unsigned char val;
 int f, i;

 f = open ("/dev/mem", O_RDWR | O_SYNC);
 if (f < 0) {
  perror ("fopen");
  exit (-1);
 }
 
 base = (unsigned long *) mmap (NULL, 
   getpagesize (), 
   PROT_READ | PROT_WRITE, 
   MAP_SHARED, 
   f,
   SYS_BASE);

 if (base == (unsigned long *) (-1)) {
  perror ("mmap");
  exit (-1);
 }

 printf ("data at %p: 0x%x\n", base, (unsigned long) *base);
 *base = 0xffffffff;
        printf ("data at %p: 0x%x\n", base, (unsigned long) *base);
 close (f);
 return (0);
}

Thanks!
Gilad.

----- Original Message ----- 
From: "Gilad Rom" <gilad@romat.com>
To: <ppopov@embeddedalley.com>; <linux-mips@linux-mips.org>
Sent: Sunday, November 14, 2004 10:35 AM
Subject: Re: GPIO on the Au1500


> Thanks. 
> Can't I just mmap /dev/mem and use the
> GPIO offset from SYS_BASE?
> 
> Gilad.
> 
> ----- Original Message ----- 
> From: "Pete Popov" <ppopov@embeddedalley.com>
> To: "Gilad Rom" <gilad@romat.com>; <linux-mips@linux-mips.org>
> Sent: Friday, November 12, 2004 8:13 PM
> Subject: Re: GPIO on the Au1500
> 
> 
>> 
>> --- Gilad Rom <gilad@romat.com> wrote:
>> 
>>> Hello,
>>> 
>>> I am trying to use the au1000_gpio driver, but I'm a
>>> little clueless as to how it is meant to be used. 
>>> Can I use the GPIO ioctl's from a userland 
>>> program, or must I write a kernel module?
>> 
>> I'll see if I can dig up some docs and the example
>> userland program this weekend. That driver hasn't been
>> tested in a while though.
>> 
>> Pete
>> 
>>> Thank you,
>>> Gilad Rom
>>> Romat Telecom
>>> 
>>> 
>>> 
>>
>

WARNING: multiple messages have this Message-ID (diff)
From: "Gilad Rom" <gilad@romat.com>
To: linux-mips@linux-mips.org
Subject: Re: GPIO on the Au1500
Date: Sun, 14 Nov 2004 17:53:49 +0200	[thread overview]
Message-ID: <0a2201c4ca62$25d37f80$a701a8c0@lan> (raw)
Message-ID: <20041114155349.17lZBK8Z7cKUjPjsxEp7d-a2le7pmYI64TPosvmhiRo@z> (raw)
In-Reply-To: 09ac01c4ca24$e68a6740$a701a8c0@lan

Replying to myself - 

I've composed a small program which mmap()'s
SYS_BASE and then tries to read at the appropriate
GPIO offset, as defined in the Au1500 databook.

For some reason, I keep getting that magical value, 
0x10000001 for EVERY address I try to read, be it 
SYS_BASE (0xB1900000) or every other address. (for example,
I've tried reading the MAC address from the MAC0 base address
of 0xB1500000, offset 0x0008, and I always get 0x10000001).

Any reason I shouldn't succeed in reading the au1500 
hardware addresses through /dev/mem?

Attached is the code I'm using:

#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <sys/mman.h>

#define SYS_BASE     0xB1900000

int
main () 
{
 volatile unsigned long *base;
 unsigned char val;
 int f, i;

 f = open ("/dev/mem", O_RDWR | O_SYNC);
 if (f < 0) {
  perror ("fopen");
  exit (-1);
 }
 
 base = (unsigned long *) mmap (NULL, 
   getpagesize (), 
   PROT_READ | PROT_WRITE, 
   MAP_SHARED, 
   f,
   SYS_BASE);

 if (base == (unsigned long *) (-1)) {
  perror ("mmap");
  exit (-1);
 }

 printf ("data at %p: 0x%x\n", base, (unsigned long) *base);
 *base = 0xffffffff;
        printf ("data at %p: 0x%x\n", base, (unsigned long) *base);
 close (f);
 return (0);
}

Thanks!
Gilad.

----- Original Message ----- 
From: "Gilad Rom" <gilad@romat.com>
To: <ppopov@embeddedalley.com>; <linux-mips@linux-mips.org>
Sent: Sunday, November 14, 2004 10:35 AM
Subject: Re: GPIO on the Au1500


> Thanks. 
> Can't I just mmap /dev/mem and use the
> GPIO offset from SYS_BASE?
> 
> Gilad.
> 
> ----- Original Message ----- 
> From: "Pete Popov" <ppopov@embeddedalley.com>
> To: "Gilad Rom" <gilad@romat.com>; <linux-mips@linux-mips.org>
> Sent: Friday, November 12, 2004 8:13 PM
> Subject: Re: GPIO on the Au1500
> 
> 
>> 
>> --- Gilad Rom <gilad@romat.com> wrote:
>> 
>>> Hello,
>>> 
>>> I am trying to use the au1000_gpio driver, but I'm a
>>> little clueless as to how it is meant to be used. 
>>> Can I use the GPIO ioctl's from a userland 
>>> program, or must I write a kernel module?
>> 
>> I'll see if I can dig up some docs and the example
>> userland program this weekend. That driver hasn't been
>> tested in a while though.
>> 
>> Pete
>> 
>>> Thank you,
>>> Gilad Rom
>>> Romat Telecom
>>> 
>>> 
>>> 
>>
>

  reply	other threads:[~2004-11-14 15:53 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-11-12 10:38 GPIO on the Au1500 Gilad Rom
2004-11-12 10:38 ` Gilad Rom
2004-11-12 18:13 ` Pete Popov
2004-11-14  8:35   ` Gilad Rom
2004-11-14  8:35     ` Gilad Rom
2004-11-14 15:53     ` Gilad Rom [this message]
2004-11-14 15:53       ` Gilad Rom
2004-11-16  0:25       ` Dan Malek
2004-11-16  0:25         ` Dan Malek
2004-11-14 17:08     ` Charles Eidsness
2004-11-14 18:45       ` Pete Popov
2004-11-15  7:44         ` Gilad Rom
2004-11-15  7:44           ` Gilad Rom
2004-11-15 16:17           ` Charles Eidsness
2004-11-15 16:38             ` Gilad Rom
2004-11-15 16:38               ` Gilad Rom

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='0a2201c4ca62$25d37f80$a701a8c0@lan' \
    --to=gilad@romat.com \
    --cc=linux-mips@linux-mips.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.