ZG2100 Network interface source

Revision:
0:b802fc31f1db
Child:
1:3a7c15057192
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/drv/zg2100/zg_com.h	Fri Jul 09 15:37:23 2010 +0000
@@ -0,0 +1,77 @@
+
+/*
+Copyright (c) 2010 Donatien Garnier (donatiengar [at] gmail [dot] com)
+ 
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+ 
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+ 
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+*/
+
+//ZG2100 Low-level communication functions (SPI, CS, Interrupt)
+//Donatien Garnier 2010
+
+#ifndef ZG_COM_H
+#define ZG_COM_H
+
+#include "mbed.h"
+#include "zg_defs.h"
+
+//Defines
+
+#define ZG_SPI_CS_ON  0 //Active on low
+#define ZG_SPI_CS_OFF 1
+
+#define ZG_SPI_RST_ON  0 //Active on low
+#define ZG_SPI_RST_OFF 1
+
+//Prototypes
+/*
+class SPI;
+class DigitalOut;
+class InterruptIn;
+*/
+void zg_com_init(SPI* pSpi, DigitalOut* pCs, InterruptIn* pInt, DigitalOut* pNrst);
+
+//Registers Access
+
+uint32_t zg_register_read(uint32_t addr);
+
+void zg_register_write(uint32_t addr, uint32_t reg);
+
+//Indexed Registers Access
+
+uint32_t zg_indexed_register_read(uint32_t addr);
+
+void zg_indexed_register_write(uint32_t addr, uint32_t reg);
+
+//Fifos
+
+void zg_fifo_read( byte fifo, byte* pType, byte* pSubtype, byte* buf, int len );
+
+void zg_fifo_write( byte fifo, byte type, byte subtype, byte* buf, int len, bool start = true, bool stop = true ); //Write by chunks
+
+//Spi
+
+void zg_spi_trf(byte* buf, int len, bool resetCs = true);
+
+
+//Callbacks, must be implemented in zg_drv.c
+
+void zg_on_int(); //On data available interrupt
+
+
+#endif