diff bsp/abb+spi/spi_drv.c @ 0:75a11d740a02

initial import of gsm-fw from freecalypso-sw rev 1033:5ab737ac3ad7
author Mychaela Falconia <falcon@freecalypso.org>
date Thu, 09 Jun 2016 00:02:41 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bsp/abb+spi/spi_drv.c	Thu Jun 09 00:02:41 2016 +0000
@@ -0,0 +1,76 @@
+/******************************************************************************/
+/*          TEXAS INSTRUMENTS INCORPORATED PROPRIETARY INFORMATION            */
+/*                                                                            */
+/* Property of Texas Instruments -- For  Unrestricted  Internal  Use  Only    */
+/* Unauthorized reproduction and/or distribution is strictly prohibited.  This*/
+/* product  is  protected  under  copyright  law  and  trade  secret law as an*/
+/* unpublished work.  Created 1987, (C) Copyright 1997 Texas Instruments.  All*/
+/* rights reserved.                                                           */
+/*                                                                            */
+/*                                                                            */
+/* Filename          : spi_drv.c                                              */
+/*                                                                            */
+/* Description       : Functions to drive the SPI module.                     */
+/*                     The Serial Port Interface is a bidirectional 3 lines   */
+/*                     interface dedicated to the transfer of data to and     */
+/*                     from up to 5 external devices offering a 3 lines       */
+/*                     serial interface.				      */
+/*		       In this project, it is only used to connect the TI     */
+/*		       Analog BaseBand (ABB).				      */
+/*		       It is assumed that the ABB is connected as the SPI     */
+/*                     device 0.					      */
+/*									      */
+/*                     This interface is specified to be compatible with      */
+/*                     the UMA1018M Philips, the FUJITSU MB15F02, the 	      */
+/*                     SIEMENS PMB2306T synthesizers and the TI ABB.	      */
+/*									      */
+/*                     This serial port is based on a looped shift-register   */
+/*                     thus allowing both transmit (PISO) and receive (SIPO)  */
+/*                     modes.						      */
+/*									      */
+/*                                                                            */
+/* Author            : Pascal PUEL                                            */
+/*                                                                            */
+/* Version number   : 1.45                                                    */
+/*                                                                            */
+/* Date and time    : 07/01/03                                                */
+/*                                                                            */
+/* Previous delta   : Rework                                                  */
+/*                                                                            */
+/******************************************************************************/
+
+#include "spi_drv.h"
+
+
+
+/*-----------------------------------------------------------------------*/
+/* SPI_InitDev()                                                         */
+/*                                                                       */
+/* This function initializes the SPI registers for an external device    */
+/* connected to the serial port.                                         */
+/*                                                                       */
+/*-----------------------------------------------------------------------*/    
+void SPI_InitDev(T_SPI_DEV *Device)
+{
+  unsigned short Param,Gate,Shiftval;
+  unsigned short Mask = 0x7bde;
+
+  /* Clock enable, mask ITs and pre scale setting */
+  * (volatile SYS_UWORD16 *) SPI_REG_SET1 = (SPI_CLK_ON | Device->PrescVal | SPI_IT_MASK_0 | SPI_IT_MASK_1);
+
+  /* Building the parameter for REG_SET2 initialization */
+  Shiftval = Device->DevId >> 7;
+  Param = (Device->ClkEdge | Device->TspEnLevel | Device->TspEnForm)<<Shiftval ;
+  Gate = Mask<<Shiftval;   
+  
+  * (volatile SYS_UWORD16 *) SPI_REG_SET2 = (* (volatile SYS_UWORD16 *) SPI_REG_SET2 & Gate) | Param;
+
+
+  /* Configuring CTRL_REG : this writting erases the previous one */
+  * (volatile SYS_UWORD16 *) SPI_REG_CTRL = (Device->DataTrLength | Device->DevId);
+
+  /* Stop the SPI clock */
+  #ifdef SPI_CLK_LOW_POWER    
+    SPI_CLK_DISABLE
+  #endif
+}