mirror of
https://github.com/Stichting-MINIX-Research-Foundation/u-boot.git
synced 2025-09-09 20:18:54 -04:00
usb: fix: Fixing Port status and feature number constants
Fix the Port status bit constants and Port feature number constants as a part of USB 2.0 and USB 3.0 Hub class. Signed-off-by: Vivek Gautam <gautam.vivek@samsung.com>
This commit is contained in:
parent
0bf796f7ae
commit
55f4b57542
@ -170,14 +170,24 @@ static struct usb_hub_device *usb_hub_allocate(void)
|
|||||||
|
|
||||||
static inline char *portspeed(int portstatus)
|
static inline char *portspeed(int portstatus)
|
||||||
{
|
{
|
||||||
if (portstatus & (1 << USB_PORT_FEAT_SUPERSPEED))
|
char *speed_str;
|
||||||
return "5 Gb/s";
|
|
||||||
else if (portstatus & (1 << USB_PORT_FEAT_HIGHSPEED))
|
switch (portstatus & USB_PORT_STAT_SPEED_MASK) {
|
||||||
return "480 Mb/s";
|
case USB_PORT_STAT_SUPER_SPEED:
|
||||||
else if (portstatus & (1 << USB_PORT_FEAT_LOWSPEED))
|
speed_str = "5 Gb/s";
|
||||||
return "1.5 Mb/s";
|
break;
|
||||||
else
|
case USB_PORT_STAT_HIGH_SPEED:
|
||||||
return "12 Mb/s";
|
speed_str = "480 Mb/s";
|
||||||
|
break;
|
||||||
|
case USB_PORT_STAT_LOW_SPEED:
|
||||||
|
speed_str = "1.5 Mb/s";
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
speed_str = "12 Mb/s";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return speed_str;
|
||||||
}
|
}
|
||||||
|
|
||||||
int hub_port_reset(struct usb_device *dev, int port,
|
int hub_port_reset(struct usb_device *dev, int port,
|
||||||
@ -275,14 +285,20 @@ void usb_hub_port_connect_change(struct usb_device *dev, int port)
|
|||||||
/* Allocate a new device struct for it */
|
/* Allocate a new device struct for it */
|
||||||
usb = usb_alloc_new_device(dev->controller);
|
usb = usb_alloc_new_device(dev->controller);
|
||||||
|
|
||||||
if (portstatus & USB_PORT_STAT_SUPER_SPEED)
|
switch (portstatus & USB_PORT_STAT_SPEED_MASK) {
|
||||||
|
case USB_PORT_STAT_SUPER_SPEED:
|
||||||
usb->speed = USB_SPEED_SUPER;
|
usb->speed = USB_SPEED_SUPER;
|
||||||
else if (portstatus & USB_PORT_STAT_HIGH_SPEED)
|
break;
|
||||||
|
case USB_PORT_STAT_HIGH_SPEED:
|
||||||
usb->speed = USB_SPEED_HIGH;
|
usb->speed = USB_SPEED_HIGH;
|
||||||
else if (portstatus & USB_PORT_STAT_LOW_SPEED)
|
break;
|
||||||
|
case USB_PORT_STAT_LOW_SPEED:
|
||||||
usb->speed = USB_SPEED_LOW;
|
usb->speed = USB_SPEED_LOW;
|
||||||
else
|
break;
|
||||||
|
default:
|
||||||
usb->speed = USB_SPEED_FULL;
|
usb->speed = USB_SPEED_FULL;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
dev->children[port] = usb;
|
dev->children[port] = usb;
|
||||||
usb->parent = dev;
|
usb->parent = dev;
|
||||||
|
@ -215,8 +215,6 @@
|
|||||||
#define USB_PORT_FEAT_POWER 8
|
#define USB_PORT_FEAT_POWER 8
|
||||||
#define USB_PORT_FEAT_LOWSPEED 9
|
#define USB_PORT_FEAT_LOWSPEED 9
|
||||||
#define USB_PORT_FEAT_HIGHSPEED 10
|
#define USB_PORT_FEAT_HIGHSPEED 10
|
||||||
#define USB_PORT_FEAT_FULLSPEED 11
|
|
||||||
#define USB_PORT_FEAT_SUPERSPEED 12
|
|
||||||
#define USB_PORT_FEAT_C_CONNECTION 16
|
#define USB_PORT_FEAT_C_CONNECTION 16
|
||||||
#define USB_PORT_FEAT_C_ENABLE 17
|
#define USB_PORT_FEAT_C_ENABLE 17
|
||||||
#define USB_PORT_FEAT_C_SUSPEND 18
|
#define USB_PORT_FEAT_C_SUSPEND 18
|
||||||
@ -224,6 +222,17 @@
|
|||||||
#define USB_PORT_FEAT_C_RESET 20
|
#define USB_PORT_FEAT_C_RESET 20
|
||||||
#define USB_PORT_FEAT_TEST 21
|
#define USB_PORT_FEAT_TEST 21
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Changes to Port feature numbers for Super speed,
|
||||||
|
* from USB 3.0 spec Table 10-8
|
||||||
|
*/
|
||||||
|
#define USB_SS_PORT_FEAT_U1_TIMEOUT 23
|
||||||
|
#define USB_SS_PORT_FEAT_U2_TIMEOUT 24
|
||||||
|
#define USB_SS_PORT_FEAT_C_LINK_STATE 25
|
||||||
|
#define USB_SS_PORT_FEAT_C_CONFIG_ERROR 26
|
||||||
|
#define USB_SS_PORT_FEAT_BH_RESET 28
|
||||||
|
#define USB_SS_PORT_FEAT_C_BH_RESET 29
|
||||||
|
|
||||||
/* wPortStatus bits */
|
/* wPortStatus bits */
|
||||||
#define USB_PORT_STAT_CONNECTION 0x0001
|
#define USB_PORT_STAT_CONNECTION 0x0001
|
||||||
#define USB_PORT_STAT_ENABLE 0x0002
|
#define USB_PORT_STAT_ENABLE 0x0002
|
||||||
@ -233,20 +242,18 @@
|
|||||||
#define USB_PORT_STAT_POWER 0x0100
|
#define USB_PORT_STAT_POWER 0x0100
|
||||||
#define USB_PORT_STAT_LOW_SPEED 0x0200
|
#define USB_PORT_STAT_LOW_SPEED 0x0200
|
||||||
#define USB_PORT_STAT_HIGH_SPEED 0x0400 /* support for EHCI */
|
#define USB_PORT_STAT_HIGH_SPEED 0x0400 /* support for EHCI */
|
||||||
#define USB_PORT_STAT_FULL_SPEED 0x0800
|
#define USB_PORT_STAT_SUPER_SPEED 0x0600 /* faking support to XHCI */
|
||||||
#define USB_PORT_STAT_SUPER_SPEED 0x1000 /* support for XHCI */
|
#define USB_PORT_STAT_SPEED_MASK \
|
||||||
#define USB_PORT_STAT_SPEED \
|
(USB_PORT_STAT_LOW_SPEED | USB_PORT_STAT_HIGH_SPEED)
|
||||||
(USB_PORT_STAT_LOW_SPEED | USB_PORT_STAT_HIGH_SPEED | \
|
|
||||||
USB_PORT_STAT_FULL_SPEED | USB_PORT_STAT_SUPER_SPEED)
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Additions to wPortStatus bit field from USB 3.0
|
* Changes to wPortStatus bit field in USB 3.0
|
||||||
* See USB 3.0 spec Table 10-10
|
* See USB 3.0 spec Table 10-11
|
||||||
*/
|
*/
|
||||||
#define USB_PORT_STAT_LINK_STATE 0x01e0
|
#define USB_SS_PORT_STAT_LINK_STATE 0x01e0
|
||||||
#define USB_SS_PORT_STAT_POWER 0x0200
|
#define USB_SS_PORT_STAT_POWER 0x0200
|
||||||
#define USB_SS_PORT_STAT_SPEED 0x1c00
|
#define USB_SS_PORT_STAT_SPEED 0x1c00
|
||||||
#define USB_PORT_STAT_SPEED_5GBPS 0x0000
|
#define USB_SS_PORT_STAT_SPEED_5GBPS 0x0000
|
||||||
|
|
||||||
/* wPortChange bits */
|
/* wPortChange bits */
|
||||||
#define USB_PORT_STAT_C_CONNECTION 0x0001
|
#define USB_PORT_STAT_C_CONNECTION 0x0001
|
||||||
@ -256,12 +263,12 @@
|
|||||||
#define USB_PORT_STAT_C_RESET 0x0010
|
#define USB_PORT_STAT_C_RESET 0x0010
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Addition to wPortChange bit fields form USB 3.0
|
* Changes to wPortChange bit fields in USB 3.0
|
||||||
* See USB 3.0 spec Table 10-11
|
* See USB 3.0 spec Table 10-12
|
||||||
*/
|
*/
|
||||||
#define USB_PORT_STAT_C_BH_RESET 0x0020
|
#define USB_SS_PORT_STAT_C_BH_RESET 0x0020
|
||||||
#define USB_PORT_STAT_C_LINK_STATE 0x0040
|
#define USB_SS_PORT_STAT_C_LINK_STATE 0x0040
|
||||||
#define USB_PORT_STAT_C_CONFIG_ERROR 0x0080
|
#define USB_SS_PORT_STAT_C_CONFIG_ERROR 0x0080
|
||||||
|
|
||||||
/* wHubCharacteristics (masks) */
|
/* wHubCharacteristics (masks) */
|
||||||
#define HUB_CHAR_LPSM 0x0003
|
#define HUB_CHAR_LPSM 0x0003
|
||||||
|
Loading…
x
Reference in New Issue
Block a user