18
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2 * This module is a small extract from TI's l1_init.c,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
3 * containing the function that initializes access to the ABB.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
4 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
5
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
6 #include <string.h>
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
7 #include "l1_types.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
8 #include "sys_types.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
9 #include "spi_drv.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
10 #include "abb.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
11
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
12 #include "mem.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
13 #include "inth.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
14 #include "dma.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
15 #include "iq.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
16
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
17 #include "clkm.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
18 #include "rhea_arm.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
19 #include "ulpd.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
20
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
21 /*-------------------------------------------------------*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
22 /* l1_abb_power_on() */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
23 /*-------------------------------------------------------*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
24 /* Parameters : */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
25 /* Return : */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
26 /* Functionality : */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
27 /* Initialize the global structure for spi communication */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
28 /* with ABB. */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
29 /* Set up ABB connection (CLK 13M free) */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
30 /* Aknowledge the ABB status register */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
31 /* Configure ABB modules */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
32 /* Program the ramp parameters into the NDB */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
33 /* Load in the NDB registers' value to be programmed in */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
34 /* ABB at first communication it */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
35 /*-------------------------------------------------------*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
36
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
37 void l1_abb_power_on(void)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
38 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
39 T_SPI_DEV *Abb;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
40 T_SPI_DEV init_spi_device;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
41 UWORD16 Abb_Status;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
42
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
43 Abb = &init_spi_device; /* Pointer initialization to device communication structure */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
44 Abb->PrescVal = SPI_CLOCK_DIV_1; /* ABB transmission parameters initialization */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
45 Abb->DataTrLength = SPI_WNB_15;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
46 Abb->DevAddLength = 5;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
47 Abb->DevId = ABB;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
48 Abb->ClkEdge = SPI_CLK_EDG_RISE;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
49 Abb->TspEnLevel = SPI_NTSPEN_NEG_LEV;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
50 Abb->TspEnForm = SPI_NTSPEN_LEV_TRIG;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
51
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
52 SPI_InitDev(Abb); /* Initialize the spi to work with ABB */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
53
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
54 ABB_free_13M(); /* Set up Abb connection (CLK 13M free).*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
55 Abb_Status = ABB_Read_Status(); /* Aknowledge the Abb status register. */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
56
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
57 /*------------------------------------------------------------------*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
58 /* Add here SW to manage Abb VRPCSTS status register informations */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
59 /*------------------------------------------------------------------*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
60
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
61 ABB_Read_Register_on_page(PAGE0,ITSTATREG); /* Aknowledge the interrupt status register */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
62 /* to clear any pending interrupt */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
63
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
64 /* FC FFS editor: different arguments from full L1 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
65 ABB_on(0, 0);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
66 }
|