1
0
mirror of https://review.coreboot.org/flashrom.git synced 2025-04-27 23:22:37 +02:00

Revert "ft2232_spi.c: Generalize GPIOL pin control"

This reverts commit 3207844ec0b5dc16f9ae9ee45294213dbf6d060b.

It used the `cs_bits` variable for its own purpose (not CS) which
was only possible because the `cs_bits` semantics were broken earlier.
It also lacks an update to the manpage.

Change-Id: I4a95317b1cf1fc6df9471d0cfb8a6a8f40964fe3
Signed-off-by: Nico Huber <nico.h@gmx.de>
Reviewed-on: https://review.coreboot.org/c/flashrom/+/55692
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
This commit is contained in:
Nico Huber 2021-06-20 14:35:34 +02:00
parent 98bcd6d103
commit 6518cf352d

View File

@ -459,7 +459,7 @@ static int ft2232_spi_init(void)
} }
free(arg); free(arg);
/* Allows setting multiple GPIOL pins to high, for example: csgpiol=012 */ /* Allows setting multiple GPIOL states, for example: csgpiol=012 */
arg = extract_programmer_param("csgpiol"); arg = extract_programmer_param("csgpiol");
if (arg) { if (arg) {
unsigned int ngpios = strlen(arg); unsigned int ngpios = strlen(arg);
@ -480,48 +480,6 @@ static int ft2232_spi_init(void)
} }
free(arg); free(arg);
/* Allows setting GPIOL pins high, low or input (high-z) */
arg = extract_programmer_param("gpiol");
if (arg) {
int ok = 0;
if (strlen(arg) == 4) {
ok = 1;
for (int i = 0; i < 4; i++) {
unsigned int pin = i + 4;
switch (toupper(arg[i])) {
case 'H':
cs_bits |= 1 << pin;
pindir |= 1 << pin;
break;
case 'L':
cs_bits &= ~(1 << pin);
pindir |= 1 << pin;
break;
case 'Z':
pindir &= ~(1 << pin);
break;
case 'X':
break;
default:
ok = 0;
}
}
}
if (!ok) {
msg_perr("Error: Invalid GPIOLs specified: \"%s\".\n"
"Valid values are 4 character strings of H, L, Z and X.\n"
" H - Set GPIOL output high\n"
" L - Set GPIOL output low\n"
" Z - Set GPIOL as input (high impedance)\n"
" X - Leave as programmer default\n"
"Example: gpiol=LZXH drives GPIOL 0 low, and GPIOL 3 high, sets GPIOL 1\n"
"to an input and leaves GPIOL 2 set according to the programmer type.\n", arg);
free(arg);
return -2;
}
}
free(arg);
msg_pdbg("Using device type %s %s ", msg_pdbg("Using device type %s %s ",
get_ft2232_vendorname(ft2232_vid, ft2232_type), get_ft2232_vendorname(ft2232_vid, ft2232_type),
get_ft2232_devicename(ft2232_vid, ft2232_type)); get_ft2232_devicename(ft2232_vid, ft2232_type));