summaryrefslogtreecommitdiffstats
path: root/firmware/fx2/lib/i2c-compiler-bug.c
diff options
context:
space:
mode:
authorNick Foster <nick@nerdnetworks.org>2010-11-10 12:15:35 -0800
committerNick Foster <nick@nerdnetworks.org>2010-11-10 12:15:35 -0800
commitfb0cdbc553d288402ee7939dc72f4368eb9e8e1b (patch)
treee20003155af08428448a7834a82d259f3b68717d /firmware/fx2/lib/i2c-compiler-bug.c
parent8fe1e7b29aacce7f75ae36e81706bbde02749b97 (diff)
parent8c434f7d63aca25b55d6d13dffcc1d7037261d4f (diff)
downloaduhd-fb0cdbc553d288402ee7939dc72f4368eb9e8e1b.tar.gz
uhd-fb0cdbc553d288402ee7939dc72f4368eb9e8e1b.tar.bz2
uhd-fb0cdbc553d288402ee7939dc72f4368eb9e8e1b.zip
Merge branch 'master' of ettus.sourcerepo.com:ettus/uhdpriv into usrp2p-next
Conflicts: firmware/microblaze/lib/u2_init.c host/lib/usrp/usrp2/clock_ctrl.cpp host/lib/usrp/usrp2/fw_common.h host/lib/usrp/usrp2/mboard_impl.cpp host/lib/usrp/usrp2/usrp2_iface.cpp host/lib/usrp/usrp2/usrp2_iface.hpp
Diffstat (limited to 'firmware/fx2/lib/i2c-compiler-bug.c')
-rw-r--r--firmware/fx2/lib/i2c-compiler-bug.c129
1 files changed, 0 insertions, 129 deletions
diff --git a/firmware/fx2/lib/i2c-compiler-bug.c b/firmware/fx2/lib/i2c-compiler-bug.c
deleted file mode 100644
index 360b779bc..000000000
--- a/firmware/fx2/lib/i2c-compiler-bug.c
+++ /dev/null
@@ -1,129 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright 2003 Free Software Foundation, Inc.
- *
- * This file is part of GNU Radio
- *
- * GNU Radio is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3, or (at your option)
- * any later version.
- *
- * GNU Radio is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with GNU Radio; see the file COPYING. If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street,
- * Boston, MA 02110-1301, USA.
- */
-
-#include "i2c.h"
-#include "fx2regs.h"
-#include <string.h>
-
-
-// issue a stop bus cycle and wait for completion
-
-
-// returns non-zero if successful, else 0
-unsigned char
-i2c_read (unsigned char addr, xdata unsigned char *buf, unsigned char len)
-{
- volatile unsigned char junk;
-
- if (len == 0) // reading zero bytes always works
- return 1;
-
- // memset (buf, 0, len); // FIXME, remove
-
- while (I2CS & bmSTOP) // wait for stop to clear
- ;
-
-
- I2CS = bmSTART;
- I2DAT = (addr << 1) | 1; // write address and direction (1's the read bit)
-
- while ((I2CS & bmDONE) == 0)
- ;
-
- if ((I2CS & bmBERR) || (I2CS & bmACK) == 0) // no device answered...
- goto fail;
-
- if (len == 1)
- I2CS |= bmLASTRD;
-
- junk = I2DAT; // trigger the first read cycle
-
-#if 1
- while (len != 1){
- while ((I2CS & bmDONE) == 0)
- ;
-
- if (I2CS & bmBERR)
- goto fail;
-
- len--;
- if (len == 1)
- I2CS |= bmLASTRD;
-
- *buf++ = I2DAT; // get data, trigger another read
- }
-#endif
-
- // wait for final byte
-
- while ((I2CS & bmDONE) == 0)
- ;
-
- if (I2CS & bmBERR)
- goto fail;
-
- I2CS |= bmSTOP;
- *buf = I2DAT;
-
- return 1;
-
- fail:
- I2CS |= bmSTOP;
- return 0;
-}
-
-
-
-// returns non-zero if successful, else 0
-unsigned char
-i2c_write (unsigned char addr, xdata const unsigned char *buf, unsigned char len)
-{
- while (I2CS & bmSTOP) // wait for stop to clear
- ;
-
- I2CS = bmSTART;
- I2DAT = (addr << 1) | 0; // write address and direction (0's the write bit)
-
- while ((I2CS & bmDONE) == 0)
- ;
-
- if ((I2CS & bmBERR) || (I2CS & bmACK) == 0) // no device answered...
- goto fail;
-
- while (len > 0){
- I2DAT = *buf++;
- len--;
-
- while ((I2CS & bmDONE) == 0)
- ;
-
- if ((I2CS & bmBERR) || (I2CS & bmACK) == 0) // no device answered...
- goto fail;
- }
-
- I2CS |= bmSTOP;
- return 1;
-
- fail:
- I2CS |= bmSTOP;
- return 0;
-}