/* * $Id: gpioled.c,v 1.2 2007/11/24 17:40:21 nbrk Exp $ */ #include #include #include /* * GPIO LED found on my SAM7-P64 development board. */ int gpioled_attach(struct device *, uint32_t, uint8_t); struct driver gpioled_dr = { 1, gpioled_attach, NULL, NULL }; int gpioled_attach(struct device *self, uint32_t loc, uint8_t flags) { /* grab parent's gpio_controller */ struct gpio_controller *gcp = self->dv_parent->dv_aux; struct gpio_pin pin; pin.gp_pinno = loc; /* PA17 or PA18 please */ pin.gp_pio = 1; /* PIO mode */ pin.gp_flags = GPIO_PIN_OUTPUT; pin.gp_value = 1; /* LED on */ printf("P64 onboard LED (PA17)\n"); /* talk to gpio controller */ gcp->gc_pinset(gcp->gc_selfdd, pin); return(0); }