openwrt: avrdude does not like GPIO0 in its pin definitions, this patch spreads the GPIO0 love
This commit is contained in:
parent
54e38ad77e
commit
66e2cebf10
|
@ -0,0 +1,95 @@
|
|||
--- avrdude-5.10/config_gram.y.orig 2010-11-05 11:01:14.895247246 +0100
|
||||
+++ avrdude-5.10/config_gram.y 2010-11-05 11:02:15.219259178 +0100
|
||||
@@ -1212,10 +1212,10 @@
|
||||
|
||||
value = v->value.number;
|
||||
|
||||
- if ((value <= 0) || (value >= 18)) {
|
||||
+ if ((value < 0) || (value >= 18)) {
|
||||
fprintf(stderr,
|
||||
"%s: error at line %d of %s: pin must be in the "
|
||||
- "range 1-17\n",
|
||||
+ "range 0-17\n",
|
||||
progname, lineno, infile);
|
||||
exit(1);
|
||||
}
|
||||
--- avrdude-5.10/gpio.c.orig 2010-11-05 20:46:03.363248072 +0100
|
||||
+++ avrdude-5.10/gpio.c 2010-11-05 20:46:10.051256461 +0100
|
||||
@@ -101,6 +101,26 @@
|
||||
|
||||
|
||||
|
||||
+static int gpio_rdy_led(PROGRAMMER * pgm, int value)
|
||||
+{
|
||||
+ /* nothing */
|
||||
+}
|
||||
+
|
||||
+static int gpio_err_led(PROGRAMMER * pgm, int value)
|
||||
+{
|
||||
+ /* nothing */
|
||||
+}
|
||||
+
|
||||
+static int gpio_pgm_led(PROGRAMMER * pgm, int value)
|
||||
+{
|
||||
+ /* nothing */
|
||||
+}
|
||||
+
|
||||
+static int gpio_vfy_led(PROGRAMMER * pgm, int value)
|
||||
+{
|
||||
+ /* nothing */
|
||||
+}
|
||||
+
|
||||
static void gpio_display(PROGRAMMER *pgm, const char *p)
|
||||
{
|
||||
/* nothing */
|
||||
@@ -128,40 +148,34 @@
|
||||
|
||||
static int gpio_open(PROGRAMMER *pgm, char *port)
|
||||
{
|
||||
- int i;
|
||||
-
|
||||
- bitbang_check_prerequisites(pgm);
|
||||
-
|
||||
if ((gpio_fd = open("/dev/gpio", O_RDWR)) < 0) {
|
||||
perror("cannot open /dev/gpio");
|
||||
return -1;
|
||||
}
|
||||
|
||||
- for (i = 0; i < N_PINS; i++) {
|
||||
- if (i == PIN_AVR_MISO)
|
||||
- _gpio_dir(pgm->pinno[i], AVRDUDE_GPIO_DIR_IN);
|
||||
- else
|
||||
- _gpio_dir(pgm->pinno[i], AVRDUDE_GPIO_DIR_OUT);
|
||||
- }
|
||||
+ _gpio_dir(pgm->pinno[PIN_AVR_RESET], AVRDUDE_GPIO_DIR_OUT);
|
||||
+ _gpio_dir(pgm->pinno[PIN_AVR_SCK], AVRDUDE_GPIO_DIR_OUT);
|
||||
+ _gpio_dir(pgm->pinno[PIN_AVR_MOSI], AVRDUDE_GPIO_DIR_OUT);
|
||||
+ _gpio_dir(pgm->pinno[PIN_AVR_MISO], AVRDUDE_GPIO_DIR_IN);
|
||||
|
||||
- return(0);
|
||||
+ return 0;
|
||||
}
|
||||
|
||||
static void gpio_close(PROGRAMMER *pgm)
|
||||
{
|
||||
gpio_setpin(pgm, pgm->pinno[PIN_AVR_RESET], 1);
|
||||
close(gpio_fd);
|
||||
- return;
|
||||
+ return 0;
|
||||
}
|
||||
|
||||
void gpio_initpgm(PROGRAMMER *pgm)
|
||||
{
|
||||
strcpy(pgm->type, "GPIO");
|
||||
|
||||
- pgm->rdy_led = bitbang_rdy_led;
|
||||
- pgm->err_led = bitbang_err_led;
|
||||
- pgm->pgm_led = bitbang_pgm_led;
|
||||
- pgm->vfy_led = bitbang_vfy_led;
|
||||
+ pgm->rdy_led = gpio_rdy_led;
|
||||
+ pgm->err_led = gpio_err_led;
|
||||
+ pgm->pgm_led = gpio_pgm_led;
|
||||
+ pgm->vfy_led = gpio_vfy_led;
|
||||
pgm->initialize = bitbang_initialize;
|
||||
pgm->display = gpio_display;
|
||||
pgm->enable = gpio_enable;
|
Loading…
Reference in New Issue