typedef enum {
USCI_REN_NONE = 0,
- USCI_REN_RX = 0x08,
- USCI_REN_RX_PULLUP = USCI_REN_RX + 0x01,
- USCI_REN_RX_PULLDOWN = USCI_REN_RX + 0x02,
+ /* For use in UART mode */
+ USCI_REN_TX = 0x03,
+ USCI_REN_TX_PULLUP = 0x01,
+ USCI_REN_TX_PULLDOWN = 0x02,
+ USCI_REN_RX = 0x0c,
+ USCI_REN_RX_PULLUP = 0x04,
+ USCI_REN_RX_PULLDOWN = 0x08,
- USCI_REN_TX = 0x80,
- USCI_REN_TX_PULLUP = USCI_REN_TX + 0x10,
- USCI_REN_TX_PULLDOWN = USCI_REN_TX + 0x20
+ /* For use in SPI mode */
+ USCI_REN_STE = 0x30,
+ USCI_REN_STE_PULLUP = 0x10,
+ USCI_REN_STE_PULLDOWN = 0x20,
+ USCI_REN_SIMO = USCI_REN_TX,
+ USCI_REN_SIMO_PULLUP = USCI_REN_TX_PULLUP,
+ USCI_REN_SIMO_PULLDOWN = USCI_REN_TX_PULLDOWN,
+ USCI_REN_SOMI = USCI_REN_RX,
+ USCI_REN_SOMI_PULLUP = USCI_REN_RX_PULLUP,
+ USCI_REN_SOMI_PULLDOWN = USCI_REN_RX_PULLDOWN,
+ USCI_REN_CLK = 0xc0,
+ USCI_REN_CLK_PULLUP = 0x40,
+ USCI_REN_CLK_PULLDOWN = 0x80,
+
+ /* For use in I2C mode */
+ USCI_REN_SDA = USCI_REN_TX,
+ USCI_REN_SDA_PULLUP = USCI_REN_TX_PULLUP,
+ USCI_REN_SDA_PULLDOWN = USCI_REN_TX_PULLDOWN,
+ USCI_REN_SCL = USCI_REN_RX,
+ USCI_REN_SCL_PULLUP = USCI_REN_RX_PULLUP,
+ USCI_REN_SCL_PULLDOWN = USCI_REN_RX_PULLDOWN
} msp430_ren_t;
/* Baud rates for UART mode. Only 32KHz modes work right now. */
uint8_t irtctl;
uint8_t irrctl;
uint8_t abctl;
+ bool uclisten;
msp430_ren_t ren;
-} __attribute__ ((packed)) msp430_usci_uart_t;
+} msp430_usci_uart_t;
typedef struct {
uint8_t ctl0;
uint8_t ctl1;
uint16_t brx;
- uint8_t mctl; /* ??? */
+ bool uclisten;
msp430_ren_t ren;
-} __attribute__ ((packed)) msp430_usci_spi_t;
+} msp430_usci_spi_t;
typedef struct {
uint8_t ctl0;
uint8_t i2cie;
uint8_t i2coa;
uint8_t i2csa;
+ bool uclisten;
msp430_ren_t ren;
-} __attribute__ ((packed)) msp430_usci_i2c_t;
+} msp430_usci_i2c_t;
#endif