Still struggling with Xilinx GPIO...
    Guillaume Dargaud 
    dargaud at lpsc.in2p3.fr
       
    Wed May 28 19:51:09 EST 2008
    
    
  
Hi John,
> Try using channel 1. It may be set up where the first channel is 1 and not 
> 0.
Not sure what you mean...
I'm actually not clear how many devices I should have:
$ grep "GPIO.*BASEADDR" 
arch/ppc/platforms/4xx/xparameters/xparameters_ml405.h
#define XPAR_GPIO_0_BASEADDR XPAR_LEDS_4BIT_BASEADDR
#define XPAR_GPIO_1_BASEADDR XPAR_LEDS_POSITIONS_BASEADDR
#define XPAR_GPIO_2_BASEADDR XPAR_PUSH_BUTTONS_POSITION_BASEADDR
But depending on the examples I look at, they define either:
crw-rw-rw-    1 root     root      10, 185 May 26 13:49 xgpio
or:
crw-rw-rw-    1 root     root      10, 185 May 26 13:18 xgpio0
crw-rw-rw-    1 root     root      10, 186 May 26 13:18 xgpio1
crw-rw-rw-    1 root     root      10, 187 May 26 13:18 xgpio2
If that is the former, I see the code uses:
 gpio_ioctl.chan=0;
And I guess that's what you are refering to, right ?
Putting 1 gives me a working program, but no LED lights up and the buttons 
are always shown at 0.
Putting 0 gives a nice core dump as in my previous msg.
Putting 2 locks up the system.
And... I don't see how the code manages to read/wite all 3 GPIOs with only 
two IOCTL calls. Shouldn't they be 3 different calls using different 
addresses ?!? Argh, this complete lack of documentation in maddening. Not 
everything can be understood from reading the source.
Thanks.
-- 
Guillaume Dargaud
http://www.gdargaud.net/
    
    
More information about the Linuxppc-dev
mailing list