// SFR and XDATA definitions for Cypress EZ-USB family
-// TODO: remove "u" from bitfields enums -> bad assembler generated by sdcc
+// NOTE: do not add "u" to bitfields enums -> bad assembler generated by sdcc
#ifndef FX2_SFR_H
#define FX2_SFR_H
// I2CS I2C Bus Control and Status Register
I2C_START = 1<<7,
- I2C_STOP = 1u<<6,
+ I2C_STOP = 1<<6,
I2C_LASTRD = 1<<5,
- I2C_ID1 = 1u<<4,
+ I2C_ID1 = 1<<4,
I2C_ID0 = 1<<3,
I2C_BERR = 1<<2,
- I2C_ACK = 1u<<1,
- I2C_DONE = 1u<<0,
- I2C_ID_MASK = 3u<<3, // ID1,ID0 mask
+ I2C_ACK = 1<<1,
+ I2C_DONE = 1<<0,
+ I2C_ID_MASK = 3<<3, // ID1,ID0 mask
I2C_ID_NONE = 0<<3, // No EEPROM detected
I2C_ID_A8 = 1<<3, // One byte address load EEPROM detected
I2C_ID_A16 = 2<<3, // Two byte address load EEPROM detected
WAKEUPCS_WU2 = 1<<7,
// EPxCFG
- EP_CFG_VALID = 1u<<7,
- EP_CFG_IN = 1u<<6, // Dir: IN
- EP_CFG_OUT = 0u<<6, // Dir: OUT
- EP_CFG_ISO = 1u<<4, // Type: Iso
- EP_CFG_BULK = 2u<<4, // Type: Bulk
- EP_CFG_INT = 3u<<4, // Type: Int
- EP_CFG_512 = 0u<<3, // Size: 512
- EP_CFG_1024 = 1u<<3, // Size: 1024
- EP_CFG_2BUF = 2u<<0, // double buffering
- EP_CFG_3BUF = 3u<<0, // triple buffering
- EP_CFG_4BUF = 0u<<0, // quad buffering
+ EP_CFG_VALID = 1<<7,
+ EP_CFG_IN = 1<<6, // Dir: IN
+ EP_CFG_OUT = 0<<6, // Dir: OUT
+ EP_CFG_ISO = 1<<4, // Type: Iso
+ EP_CFG_BULK = 2<<4, // Type: Bulk
+ EP_CFG_INT = 3<<4, // Type: Int
+ EP_CFG_512 = 0<<3, // Size: 512
+ EP_CFG_1024 = 1<<3, // Size: 1024
+ EP_CFG_2BUF = 2<<0, // double buffering
+ EP_CFG_3BUF = 3<<0, // triple buffering
+ EP_CFG_4BUF = 0<<0, // quad buffering
// EPxGPIFFLGSEL
FS_PRGM = 0<<0, // FIFO Programmable flag
FS_EMPTY = 1<<0, // FIFO Empty
CKCON_MD_1 = 1<<0, // 1 wait cycle for MOVX
// EXIF External Interrupt Flags
- EXIF_GPIF = 1u<<6, // GPIF/FIFO INT
- EXIF_I2CINT = 1u<<5, // I2C INT
- EXIF_USBINT = 1u<<4, // USB INT
+ EXIF_GPIF = 1<<6, // GPIF/FIFO INT
+ EXIF_I2CINT = 1<<5, // I2C INT
+ EXIF_USBINT = 1<<4, // USB INT
// FIFORESET FIFO Reset Register
FR_NAK_ALL = 1<<7, // NAK all transfers from the host
xdata at 0xE659 volatile BYTE IBNIRQ; //! IN-BULK-NAK interrupt Request
//xdata at 0xE65A volatile BYTE NAKIE; //! Endpoint Ping NAK interrupt Enable
//xdata at 0xE65B volatile BYTE NAKIRQ; //! Endpoint Ping NAK interrupt Request
-xdata at 0xE65C volatile BYTE USBIE; //! USB Int Enables
-xdata at 0xE65D volatile BYTE USBIRQ; //! USB Interrupt Requests
+//xdata at 0xE65C volatile BYTE USBIE; //! USB Int Enables
+//xdata at 0xE65D volatile BYTE USBIRQ; //! USB Interrupt Requests
xdata at 0xE65E volatile BYTE EPIE; //! Endpoint Interrupt Enables
xdata at 0xE65F volatile BYTE EPIRQ; //! Endpoint Interrupt Requests
//xdata at 0xE660 volatile BYTE GPIFIE; //! GPIF Interrupt Enable