##// END OF EJS Templates
added 25Q128 eeprom driver...
added 25Q128 eeprom driver fixed bug on spi driver

File last commit:

r53:8299696715f8 dev_alexis
r53:8299696715f8 dev_alexis
Show More
VS10XX.c
56 lines | 1.8 KiB | text/x-c | CLexer
/*------------------------------------------------------------------------------
#-- This file is a part of the libuc, microcontroler library
#-- Copyright (C) 2011, Alexis Jeandet
#--
#-- This program 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 of the License, or
#-- (at your option) any later version.
#--
#-- This program 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 this program; if not, write to the Free Software
#-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#-------------------------------------------------------------------------------
#-- Author : Alexis Jeandet
#-- Mail : alexis.jeandet@gmail.com
#-------------------------------------------------------------------------------*/
#include "spi.h"
#include "VS10XX.h"
//#include <bsp.h>
void vs10XXopen(vs10XXDev* codec,spi_t dev){
codec->SPIdev = dev;
}
void vs10XXsoftreset(vs10XXDev* dev)
{
vs10XXcmdwrite(dev,VSMODE,(1<<2));
}
int vs10XXcmdread(vs10XXDev* dev,char address)
{
int result;
while(!vs10XXDREQ());
vs10XXclearXCS();
spiputw(dev->SPIdev,(3<<8)+address);
result = spigetw(dev->SPIdev);
vs10XXsetXCS();
return result;
}
void vs10XXcmdwrite(vs10XXDev* dev,char address,int value)
{
while(!vs10XXDREQ());
vs10XXclearXCS();
spiputw(dev->SPIdev,(2<<8)+address);
spiputw(dev->SPIdev,value);
vs10XXsetXCS();
}