# Re: Using GPIO

- From: Guillaume Dargaud \<hidden\>
- Date: 2008-05-19 15:23:17 
- List: linuxppc-dev
- Page: https://ratatoskr.run/linuxppc-dev/2008/05/9440205

```text
arch/ppc/syslib/virtex_devices.c:

> // 0 is LEDS_4BIT, 1 is LEDS_POSITIONS, 2 is PUSH_BUTTONS_POSITION
> #define XPAR_GPIO(num) { \
>    .name = "xilinx_gpio", \
>    .id = num, \
>    .num_resources = 2, \
That was a 2.
If anybody wants to make a patch out of those few lines of code, I couldn't figure out how to do this with git... But I will use a more general GPIO approach as soon as I can put my hands on our custom card.

>    .resource = (struct resource[]) { \
>        { \
>            .start = XPAR_GPIO_##num##_BASEADDR, \
>            .end = XPAR_GPIO_##num##_HIGHADDR, \
>            .flags = IORESOURCE_MEM, \
>        }, \
>        { \
>            .start = XPAR_INTC_0_GPIO_##num##_VEC_ID, \
>            .flags = IORESOURCE_IRQ, \
>        }, \
>    }, \
> }
> [...]
>      /* GPIO instances */
> #if defined(XPAR_GPIO_0_BASEADDR)
>      XPAR_GPIO(0),
> #endif
> #if defined(XPAR_GPIO_1_BASEADDR)
>      XPAR_GPIO(1),
> #endif
> #if defined(XPAR_GPIO_2_BASEADDR)
>      XPAR_GPIO(2),
> #endif

-- 
Guillaume Dargaud
http://www.gdargaud.net/
```
