commit-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Commit-gnuradio] r5528 - gnuradio/branches/developers/eb/u2f/firmware


From: eb
Subject: [Commit-gnuradio] r5528 - gnuradio/branches/developers/eb/u2f/firmware
Date: Wed, 23 May 2007 00:52:05 -0600 (MDT)

Author: eb
Date: 2007-05-23 00:52:05 -0600 (Wed, 23 May 2007)
New Revision: 5528

Modified:
   gnuradio/branches/developers/eb/u2f/firmware/memory_map.h
   gnuradio/branches/developers/eb/u2f/firmware/u2_init.c
Log:
work-in-progress on u2 firmware

Modified: gnuradio/branches/developers/eb/u2f/firmware/memory_map.h
===================================================================
--- gnuradio/branches/developers/eb/u2f/firmware/memory_map.h   2007-05-23 
06:21:00 UTC (rev 5527)
+++ gnuradio/branches/developers/eb/u2f/firmware/memory_map.h   2007-05-23 
06:52:05 UTC (rev 5528)
@@ -49,9 +49,45 @@
 
 ////////////////////////////////////////////////
 // I2C, Slave 3
+// See Wishbone I2C-Master Core Specification.
+
 #define I2C_BASE 0x9000
 
+typedef struct {
+  volatile unsigned char  prescaler_lo;        // r/w
+  volatile unsigned char  prescaler_hi;        // r/w
+  volatile unsigned char  ctrl;                // r/w
+  volatile unsigned char  data;                // wr = transmit reg; rd = 
receive reg
+  volatile unsigned char  cmd_status;  // wr = command reg;  rd = status reg
+} i2c_regs_t;
 
+#define i2c_regs ((i2c_regs_regs_t *) I2C_BASE)
+
+#define        I2C_CTRL_EN     (1 << 7)        // core enable
+#define        I2C_CTRL_IE     (1 << 6)        // interrupt enable
+
+//
+// STA, STO, RD, WR, and IACK bits are cleared automatically
+//
+#define        I2C_CMD_STA     (1 << 7)        // generate (repeated) start 
condition
+#define I2C_CMD_STO    (1 << 6)        // generate stop condition
+#define        I2C_CMD_RD      (1 << 5)        // read from slave
+#define I2C_CMD_WR     (1 << 4)        // write to slave
+#define        I2C_CMD_ACK     (1 << 3)        // when a rcvr, send ACK 
(ACK=0) or NACK (ACK=1)
+#define I2C_CMD_RSVD_2 (1 << 2)        // reserved
+#define        I2C_CMD_RSVD_1  (1 << 1)        // reserved
+#define I2C_CMD_IACK   (1 << 0)        // set to clear pending interrupt
+
+#define I2C_ST_RXACK   (1 << 7)        // Received acknowledgement from slave 
(1 = NAK, 0 = ACK)
+#define        I2C_ST_BUSY     (1 << 6)        // 1 after START signal 
detected; 0 after STOP signal detected
+#define        I2C_ST_AL       (1 << 5)        // Arbitration lost.  1 when 
core lost arbitration
+#define        I2C_ST_RSVD_4   (1 << 4)        // reserved
+#define        I2C_ST_RSVD_3   (1 << 3)        // reserved
+#define        I2C_ST_RSVD_2   (1 << 2)        // reserved
+#define I2C_ST_TIP     (1 << 1)        // Transfer-in-progress
+#define        I2C_ST_IP       (1 << 0)        // Interrupt pending
+
+
 ////////////////////////////////////////////////
 // GPIO, Slave 4
 #define GPIO_BASE 0xA000

Modified: gnuradio/branches/developers/eb/u2f/firmware/u2_init.c
===================================================================
--- gnuradio/branches/developers/eb/u2f/firmware/u2_init.c      2007-05-23 
06:21:00 UTC (rev 5527)
+++ gnuradio/branches/developers/eb/u2f/firmware/u2_init.c      2007-05-23 
06:52:05 UTC (rev 5528)
@@ -5,8 +5,8 @@
 #include "sim_io.h"
 
 /*
- * We ought to arrange that this is called before main, but for now,
- * require that the user's main call u2_init as the first thing...
+ * We ought to arrange for this to be called before main, but for now,
+ * we require that the user's main call u2_init as the first thing...
  */
 int 
 u2_init(void)





reply via email to

[Prev in Thread] Current Thread [Next in Thread]