mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 02:30:34 +02:00 
			
		
		
		
	usb: ohci-omap: Fix descriptor conversion
There were a bunch of issues with the patch converting the
OMAP1 OSK board to use descriptors for controlling the USB
host:
- The chip label was incorrect
- The GPIO offset was off-by-one
- The code should use sleeping accessors
This patch tries to fix all issues at the same time.
Cc: Aaro Koskinen <aaro.koskinen@iki.fi>
Reported-by: Aaro Koskinen <aaro.koskinen@iki.fi>
Fixes: 15d157e874 ("usb: ohci-omap: Convert to use GPIO descriptors")
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Link: https://lore.kernel.org/r/20201130083033.29435-1-linus.walleij@linaro.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
			
			
This commit is contained in:
		
							parent
							
								
									97ad4a77f2
								
							
						
					
					
						commit
						45c5775460
					
				
					 2 changed files with 3 additions and 3 deletions
				
			
		| 
						 | 
				
			
			@ -288,7 +288,7 @@ static struct gpiod_lookup_table osk_usb_gpio_table = {
 | 
			
		|||
	.dev_id = "ohci",
 | 
			
		||||
	.table = {
 | 
			
		||||
		/* Power GPIO on the I2C-attached TPS65010 */
 | 
			
		||||
		GPIO_LOOKUP("i2c-tps65010", 1, "power", GPIO_ACTIVE_HIGH),
 | 
			
		||||
		GPIO_LOOKUP("tps65010", 0, "power", GPIO_ACTIVE_HIGH),
 | 
			
		||||
		GPIO_LOOKUP(OMAP_GPIO_LABEL, 9, "overcurrent",
 | 
			
		||||
			    GPIO_ACTIVE_HIGH),
 | 
			
		||||
	},
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -91,14 +91,14 @@ static int omap_ohci_transceiver_power(struct ohci_omap_priv *priv, int on)
 | 
			
		|||
				| ((1 << 5/*usb1*/) | (1 << 3/*usb2*/)),
 | 
			
		||||
			       INNOVATOR_FPGA_CAM_USB_CONTROL);
 | 
			
		||||
		else if (priv->power)
 | 
			
		||||
			gpiod_set_value(priv->power, 0);
 | 
			
		||||
			gpiod_set_value_cansleep(priv->power, 0);
 | 
			
		||||
	} else {
 | 
			
		||||
		if (machine_is_omap_innovator() && cpu_is_omap1510())
 | 
			
		||||
			__raw_writeb(__raw_readb(INNOVATOR_FPGA_CAM_USB_CONTROL)
 | 
			
		||||
				& ~((1 << 5/*usb1*/) | (1 << 3/*usb2*/)),
 | 
			
		||||
			       INNOVATOR_FPGA_CAM_USB_CONTROL);
 | 
			
		||||
		else if (priv->power)
 | 
			
		||||
			gpiod_set_value(priv->power, 1);
 | 
			
		||||
			gpiod_set_value_cansleep(priv->power, 1);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return 0;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue