Commit 758fc986 authored by Alexander Shishkin's avatar Alexander Shishkin Committed by Greg Kroah-Hartman
Browse files

usb: chipidea: use common definition for USBMODE bits



Some of the bits of USBMODE register are defined in <usb/ehci_def.h>,
use them instead of having our own definitions.

Signed-off-by: default avatarAlexander Shishkin <alexander.shishkin@linux.intel.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent f7daaa2d
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -13,6 +13,8 @@
#ifndef __DRIVERS_USB_CHIPIDEA_BITS_H
#define __DRIVERS_USB_CHIPIDEA_BITS_H

#include <linux/usb/ehci_def.h>

/* HCCPARAMS */
#define HCCPARAMS_LEN         BIT(17)

@@ -70,11 +72,9 @@

/* USBMODE */
#define USBMODE_CM            (0x03UL <<  0)
#define    USBMODE_CM_IDLE    (0x00UL <<  0)
#define    USBMODE_CM_DEVICE  (0x02UL <<  0)
#define    USBMODE_CM_HOST    (0x03UL <<  0)
#define USBMODE_CM_DC         (0x02UL <<  0)
#define USBMODE_SLOM          BIT(3)
#define USBMODE_SDIS          BIT(4)
#define USBMODE_CI_SDIS       BIT(4)

/* ENDPTCTRL */
#define ENDPTCTRL_RXS         BIT(0)
+3 −3
Original line number Diff line number Diff line
@@ -231,15 +231,15 @@ int hw_device_reset(struct ci13xxx *ci)
			CI13XXX_CONTROLLER_RESET_EVENT);

	if (ci->udc_driver->flags & CI13XXX_DISABLE_STREAMING)
		hw_write(ci, OP_USBMODE, USBMODE_SDIS, USBMODE_SDIS);
		hw_write(ci, OP_USBMODE, USBMODE_CI_SDIS, USBMODE_CI_SDIS);

	/* USBMODE should be configured step by step */
	hw_write(ci, OP_USBMODE, USBMODE_CM, USBMODE_CM_IDLE);
	hw_write(ci, OP_USBMODE, USBMODE_CM, USBMODE_CM_DEVICE);
	hw_write(ci, OP_USBMODE, USBMODE_CM, USBMODE_CM_DC);
	/* HW >= 2.3 */
	hw_write(ci, OP_USBMODE, USBMODE_SLOM, USBMODE_SLOM);

	if (hw_read(ci, OP_USBMODE, USBMODE_CM) != USBMODE_CM_DEVICE) {
	if (hw_read(ci, OP_USBMODE, USBMODE_CM) != USBMODE_CM_DC) {
		pr_err("cannot enter in device mode");
		pr_err("lpm = %i", ci->hw_bank.lpm);
		return -ENODEV;
+1 −1
Original line number Diff line number Diff line
@@ -1606,7 +1606,7 @@ static irqreturn_t udc_irq(struct ci13xxx *udc)

	if (udc->udc_driver->flags & CI13XXX_REGS_SHARED) {
		if (hw_read(udc, OP_USBMODE, USBMODE_CM) !=
				USBMODE_CM_DEVICE) {
				USBMODE_CM_DC) {
			spin_unlock(&udc->lock);
			return IRQ_NONE;
		}