HAL_WORD_REG_WRITE(0x50040, (0x200|0|(1>>1)<<12));
A_UART_HWINIT((22*1000*1000), 19200);
}
-
-extern SetupPacket ControlCmd;
-
-extern uint16_t *u8UsbDeviceDescriptor;
-extern uint16_t *u8ConfigDescriptorEX;
-extern uint16_t *pu8DescriptorEX;
-extern uint16_t u16TxRxCounter;
-extern BOOLEAN bGet_descriptor(void);
-
-uint16_t DeviceDescriptorPatch[9];
-uint16_t ConfigDescriptorPatch[30];
-
-
-#define BCD_DEVICE 6
-#define BCD_DEVICE_FW_SIGNATURE 0xffff
-#define EP3_TRANSFER_TYPE_OFFSET 17
-#define EP3_INT_INTERVAL 19
-#define EP4_TRANSFER_TYPE_OFFSET 21
-#define EP4_INT_INTERVAL 22
-
-BOOLEAN bGet_descriptor_patch(void)
-{
- int i;
- switch (mDEV_REQ_VALUE_HIGH()) {
- case 1:
- ath_hal_memcpy(DeviceDescriptorPatch,
- u8UsbDeviceDescriptor, sizeof(DeviceDescriptorPatch));
-
- DeviceDescriptorPatch[BCD_DEVICE] = BCD_DEVICE_FW_SIGNATURE;
-
- pu8DescriptorEX = DeviceDescriptorPatch;
- u16TxRxCounter = mTABLE_LEN(DeviceDescriptorPatch[0]);
- break;
- case 2:
- /* Copy ConfigDescriptor */
- ath_hal_memcpy(ConfigDescriptorPatch,
- u8ConfigDescriptorEX, sizeof(ConfigDescriptorPatch));
-
- /* place holder for EPx patches */
-
- switch (mDEV_REQ_VALUE_LOW())
- {
- case 0x00: // configuration no: 0
- pu8DescriptorEX = ConfigDescriptorPatch;
- u16TxRxCounter = ConfigDescriptorPatch[1];
- //u16TxRxCounter = 46;
- break;
- default:
- return FALSE;
- }
- break;
- default:
- return bGet_descriptor();
- }
-
- if (u16TxRxCounter > mDEV_REQ_LENGTH())
- u16TxRxCounter = mDEV_REQ_LENGTH();
-
- A_USB_EP0_TX_DATA();
- return TRUE;
-}
-
#endif
-
-