usb: gadget: udc: lpc32xx: properly setup phy interrupts
authorAlexandre Belloni <alexandre.belloni@bootlin.com>
Tue, 9 Apr 2019 12:09:06 +0000 (14:09 +0200)
committerFelipe Balbi <felipe.balbi@linux.intel.com>
Fri, 3 May 2019 06:13:48 +0000 (09:13 +0300)
Only INT_VBUS_VLD is set to generate ATX interrupts on the phy but
INT_SESS_VLD is checked in vbus_work. This leads to cases where
hot-plugging USB doesn't work after boot.

Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
drivers/usb/gadget/udc/lpc32xx_udc.c

index 777279f..12f2d76 100644 (file)
@@ -604,11 +604,11 @@ static void isp1301_udc_configure(struct lpc32xx_udc *udc)
        i2c_smbus_write_byte_data(udc->isp1301_i2c_client,
                ISP1301_I2C_INTERRUPT_FALLING | ISP1301_I2C_REG_CLEAR_ADDR, ~0);
        i2c_smbus_write_byte_data(udc->isp1301_i2c_client,
-               ISP1301_I2C_INTERRUPT_FALLING, INT_VBUS_VLD);
+               ISP1301_I2C_INTERRUPT_FALLING, INT_SESS_VLD | INT_VBUS_VLD);
        i2c_smbus_write_byte_data(udc->isp1301_i2c_client,
                ISP1301_I2C_INTERRUPT_RISING | ISP1301_I2C_REG_CLEAR_ADDR, ~0);
        i2c_smbus_write_byte_data(udc->isp1301_i2c_client,
-               ISP1301_I2C_INTERRUPT_RISING, INT_VBUS_VLD);
+               ISP1301_I2C_INTERRUPT_RISING, INT_SESS_VLD | INT_VBUS_VLD);
 
        dev_info(udc->dev, "ISP1301 Vendor ID  : 0x%04x\n",
                 i2c_smbus_read_word_data(udc->isp1301_i2c_client, 0x00));