FreeCalypso > hg > fc-tourmaline
comparison src/cs/drivers/drv_core/spi/spi_drv.c @ 0:4e78acac3d88
src/{condat,cs,gpf,nucleus}: import from Selenite
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Fri, 16 Oct 2020 06:23:26 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:4e78acac3d88 |
---|---|
1 /**********************************************************************************/ | |
2 /* TEXAS INSTRUMENTS INCORPORATED PROPRIETARY INFORMATION */ | |
3 /* */ | |
4 /* Property of Texas Instruments -- For Unrestricted Internal Use Only */ | |
5 /* Unauthorized reproduction and/or distribution is strictly prohibited. This */ | |
6 /* product is protected under copyright law and trade secret law as an */ | |
7 /* unpublished work. Created 1987, (C) Copyright 1997 Texas Instruments. All */ | |
8 /* rights reserved. */ | |
9 /* */ | |
10 /* */ | |
11 /* Filename : spi_drv.c */ | |
12 /* */ | |
13 /* Description : Functions to drive the SPI module. */ | |
14 /* The Serial Port Interface is a bidirectional 3 lines */ | |
15 /* interface dedicated to the transfer of data to and */ | |
16 /* from up to 5 external devices offering a 3 lines */ | |
17 /* serial interface. */ | |
18 /* In this project, it is only used to connect the TI */ | |
19 /* Analog BaseBand (ABB). */ | |
20 /* It is assumed that the ABB is connected as the SPI */ | |
21 /* device 0. */ | |
22 /* */ | |
23 /* This interface is specified to be compatible with */ | |
24 /* the UMA1018M Philips, the FUJITSU MB15F02, the */ | |
25 /* SIEMENS PMB2306T synthesizers and the TI ABB. */ | |
26 /* */ | |
27 /* This serial port is based on a looped shift-register */ | |
28 /* thus allowing both transmit (PISO) and receive (SIPO) */ | |
29 /* modes. */ | |
30 /* */ | |
31 /* */ | |
32 /* Author : Pascal PUEL */ | |
33 /* */ | |
34 /* Version number : 1.45 */ | |
35 /* */ | |
36 /* Date and time : 07/01/03 */ | |
37 /* */ | |
38 /* Previous delta : Rework */ | |
39 /* */ | |
40 /**********************************************************************************/ | |
41 | |
42 #include "spi/spi_drv.h" | |
43 | |
44 | |
45 | |
46 /*-----------------------------------------------------------------------*/ | |
47 /* SPI_InitDev() */ | |
48 /* */ | |
49 /* This function initializes the SPI registers for an external device */ | |
50 /* connected to the serial port. */ | |
51 /* */ | |
52 /*-----------------------------------------------------------------------*/ | |
53 void SPI_InitDev(T_SPI_DEV *Device) | |
54 { | |
55 unsigned short Param,Gate,Shiftval; | |
56 unsigned short Mask = 0x7bde; | |
57 | |
58 /* Clock enable, mask ITs and pre scale setting */ | |
59 * (volatile SYS_UWORD16 *) SPI_REG_SET1 = (SPI_CLK_ON | Device->PrescVal | SPI_IT_MASK_0 | SPI_IT_MASK_1); | |
60 | |
61 /* Building the parameter for REG_SET2 initialization */ | |
62 Shiftval = Device->DevId >> 7; | |
63 Param = (Device->ClkEdge | Device->TspEnLevel | Device->TspEnForm)<<Shiftval ; | |
64 Gate = Mask<<Shiftval; | |
65 | |
66 * (volatile SYS_UWORD16 *) SPI_REG_SET2 = (* (volatile SYS_UWORD16 *) SPI_REG_SET2 & Gate) | Param; | |
67 | |
68 | |
69 /* Configuring CTRL_REG : this writting erases the previous one */ | |
70 * (volatile SYS_UWORD16 *) SPI_REG_CTRL = (Device->DataTrLength | Device->DevId); | |
71 | |
72 /* Stop the SPI clock */ | |
73 #ifdef SPI_CLK_LOW_POWER | |
74 SPI_CLK_DISABLE | |
75 #endif | |
76 } | |
77 | |
78 | |
79 |