-#define BIT(a) (1 << (a))\r
-\r
-enum {\r
- UHCI_FRAME_NUM = 1024,\r
-\r
- //\r
- // Register offset and PCI related staff\r
- //\r
- CLASSC_OFFSET = 0x09,\r
- USBBASE_OFFSET = 0x20,\r
- USB_BAR_INDEX = 4,\r
- PCI_CLASSC_PI_UHCI = 0x00,\r
-\r
- USBCMD_OFFSET = 0,\r
- USBSTS_OFFSET = 2,\r
- USBINTR_OFFSET = 4,\r
- USBPORTSC_OFFSET = 0x10,\r
- USB_FRAME_NO_OFFSET = 6,\r
- USB_FRAME_BASE_OFFSET = 8,\r
- USB_EMULATION_OFFSET = 0xC0,\r
-\r
- //\r
- // Packet IDs\r
- //\r
- SETUP_PACKET_ID = 0x2D,\r
- INPUT_PACKET_ID = 0x69,\r
- OUTPUT_PACKET_ID = 0xE1,\r
- ERROR_PACKET_ID = 0x55,\r
-\r
- //\r
- // USB port status and control bit definition.\r
- //\r
- USBPORTSC_CCS = BIT(0), // Current Connect Status\r
- USBPORTSC_CSC = BIT(1), // Connect Status Change\r
- USBPORTSC_PED = BIT(2), // Port Enable / Disable\r
- USBPORTSC_PEDC = BIT(3), // Port Enable / Disable Change\r
- USBPORTSC_LSL = BIT(4), // Line Status Low BIT\r
- USBPORTSC_LSH = BIT(5), // Line Status High BIT\r
- USBPORTSC_RD = BIT(6), // Resume Detect\r
- USBPORTSC_LSDA = BIT(8), // Low Speed Device Attached\r
- USBPORTSC_PR = BIT(9), // Port Reset\r
- USBPORTSC_SUSP = BIT(12), // Suspend\r
-\r
- USB_MAX_ROOTHUB_PORT = 0x0F, // Max number of root hub port\r
-\r
- //\r
- // Command register bit definitions\r
- //\r
- USBCMD_RS = BIT(0), // Run/Stop\r
- USBCMD_HCRESET = BIT(1), // Host reset\r
- USBCMD_GRESET = BIT(2), // Global reset\r
- USBCMD_EGSM = BIT(3), // Global Suspend Mode\r
- USBCMD_FGR = BIT(4), // Force Global Resume\r
- USBCMD_SWDBG = BIT(5), // SW Debug mode\r
- USBCMD_CF = BIT(6), // Config Flag (sw only)\r
- USBCMD_MAXP = BIT(7), // Max Packet (0 = 32, 1 = 64)\r
-\r
- //\r
- // USB Status register bit definitions\r
- //\r
- USBSTS_USBINT = BIT(0), // Interrupt due to IOC\r
- USBSTS_ERROR = BIT(1), // Interrupt due to error\r
- USBSTS_RD = BIT(2), // Resume Detect\r
- USBSTS_HSE = BIT(3), // Host System Error\r
- USBSTS_HCPE = BIT(4), // Host Controller Process Error\r
- USBSTS_HCH = BIT(5), // HC Halted\r
-\r
- USBTD_ACTIVE = BIT(7), // TD is still active\r
- USBTD_STALLED = BIT(6), // TD is stalled\r
- USBTD_BUFFERR = BIT(5), // Buffer underflow or overflow\r
- USBTD_BABBLE = BIT(4), // Babble condition\r
- USBTD_NAK = BIT(3), // NAK is received\r
- USBTD_CRC = BIT(2), // CRC/Time out error\r
- USBTD_BITSTUFF = BIT(1), // Bit stuff error\r
-};\r
+//\r
+// UHCI register offset\r
+//\r
+\r
+#define UHCI_FRAME_NUM 1024\r
+\r
+//\r
+// Register offset and PCI related staff\r
+//\r
+#define USB_BAR_INDEX 4\r
+\r
+#define USBCMD_OFFSET 0\r
+#define USBSTS_OFFSET 2\r
+#define USBINTR_OFFSET 4\r
+#define USBPORTSC_OFFSET 0x10\r
+#define USB_FRAME_NO_OFFSET 6\r
+#define USB_FRAME_BASE_OFFSET 8\r
+#define USB_EMULATION_OFFSET 0xC0\r
+\r
+//\r
+// Packet IDs\r
+//\r
+#define SETUP_PACKET_ID 0x2D\r
+#define INPUT_PACKET_ID 0x69\r
+#define OUTPUT_PACKET_ID 0xE1\r
+#define ERROR_PACKET_ID 0x55\r
+\r
+//\r
+// USB port status and control bit definition.\r
+//\r
+#define USBPORTSC_CCS BIT0 // Current Connect Status\r
+#define USBPORTSC_CSC BIT1 // Connect Status Change\r
+#define USBPORTSC_PED BIT2 // Port Enable / Disable\r
+#define USBPORTSC_PEDC BIT3 // Port Enable / Disable Change\r
+#define USBPORTSC_LSL BIT4 // Line Status Low BIT\r
+#define USBPORTSC_LSH BIT5 // Line Status High BIT\r
+#define USBPORTSC_RD BIT6 // Resume Detect\r
+#define USBPORTSC_LSDA BIT8 // Low Speed Device Attached\r
+#define USBPORTSC_PR BIT9 // Port Reset\r
+#define USBPORTSC_SUSP BIT12 // Suspend\r
+\r
+//\r
+// UHCI Spec said it must implement 2 ports each host at least,\r
+// and if more, check whether the bit7 of PORTSC is always 1.\r
+// So here assume the max of port number each host is 16.\r
+//\r
+#define USB_MAX_ROOTHUB_PORT 0x0F\r
+\r
+//\r
+// Command register bit definitions\r
+//\r
+#define USBCMD_RS BIT0 // Run/Stop\r
+#define USBCMD_HCRESET BIT1 // Host reset\r
+#define USBCMD_GRESET BIT2 // Global reset\r
+#define USBCMD_EGSM BIT3 // Global Suspend Mode\r
+#define USBCMD_FGR BIT4 // Force Global Resume\r
+#define USBCMD_SWDBG BIT5 // SW Debug mode\r
+#define USBCMD_CF BIT6 // Config Flag (sw only)\r
+#define USBCMD_MAXP BIT7 // Max Packet (0 = 32, 1 = 64)\r
+\r
+//\r
+// USB Status register bit definitions\r
+//\r
+#define USBSTS_USBINT BIT0 // Interrupt due to IOC\r
+#define USBSTS_ERROR BIT1 // Interrupt due to error\r
+#define USBSTS_RD BIT2 // Resume Detect\r
+#define USBSTS_HSE BIT3 // Host System Error\r
+#define USBSTS_HCPE BIT4 // Host Controller Process Error\r
+#define USBSTS_HCH BIT5 // HC Halted\r
+\r
+#define USBTD_ACTIVE BIT7 // TD is still active\r
+#define USBTD_STALLED BIT6 // TD is stalled\r
+#define USBTD_BUFFERR BIT5 // Buffer underflow or overflow\r
+#define USBTD_BABBLE BIT4 // Babble condition\r
+#define USBTD_NAK BIT3 // NAK is received\r
+#define USBTD_CRC BIT2 // CRC/Time out error\r
+#define USBTD_BITSTUFF BIT1 // Bit stuff error\r