mirror of
				https://review.coreboot.org/flashrom.git
				synced 2025-11-04 07:00:39 +01:00 
			
		
		
		
	Revert "ft2232_spi.c: Generalize GPIOL pin control"
This reverts commit 3207844ec0.
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:
		
							
								
								
									
										44
									
								
								ft2232_spi.c
									
									
									
									
									
								
							
							
						
						
									
										44
									
								
								ft2232_spi.c
									
									
									
									
									
								
							@@ -459,7 +459,7 @@ static int ft2232_spi_init(void)
 | 
			
		||||
	}
 | 
			
		||||
	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");
 | 
			
		||||
	if (arg) {
 | 
			
		||||
		unsigned int ngpios = strlen(arg);
 | 
			
		||||
@@ -480,48 +480,6 @@ static int ft2232_spi_init(void)
 | 
			
		||||
	}
 | 
			
		||||
	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 ",
 | 
			
		||||
		 get_ft2232_vendorname(ft2232_vid, ft2232_type),
 | 
			
		||||
		 get_ft2232_devicename(ft2232_vid, ft2232_type));
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user