ZG2100 Network interface source
Diff: drv/zg2100/zg_com.h
- Revision:
- 0:b802fc31f1db
- Child:
- 1:3a7c15057192
diff -r 000000000000 -r b802fc31f1db drv/zg2100/zg_com.h --- /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