Added support for v4.2 boards
[SCSI2SD.git] / software / SCSI2SD / v4 / SCSI2SD.cydsn / Generated_Source / PSoC5 / SDCard_PM.c
1 /*******************************************************************************
2 * File Name: SDCard_PM.c
3 * Version 2.40
4 *
5 * Description:
6 *  This file contains the setup, control and status commands to support
7 *  component operations in low power mode.
8 *
9 * Note:
10 *
11 ********************************************************************************
12 * Copyright 2008-2012, Cypress Semiconductor Corporation.  All rights reserved.
13 * You may use this file only in accordance with the license, terms, conditions,
14 * disclaimers, and limitations in the end user license agreement accompanying
15 * the software package with which this file was provided.
16 *******************************************************************************/
17
18 #include "SDCard_PVT.h"
19
20 static SDCard_BACKUP_STRUCT SDCard_backup =
21 {
22     SDCard_DISABLED,
23     SDCard_BITCTR_INIT,
24     #if(CY_UDB_V0)
25         SDCard_TX_INIT_INTERRUPTS_MASK,
26         SDCard_RX_INIT_INTERRUPTS_MASK
27     #endif /* CY_UDB_V0 */
28 };
29
30
31 /*******************************************************************************
32 * Function Name: SDCard_SaveConfig
33 ********************************************************************************
34 *
35 * Summary:
36 *  Saves SPIM configuration.
37 *
38 * Parameters:
39 *  None.
40 *
41 * Return:
42 *  None.
43 *
44 * Global Variables:
45 *  SDCard_backup - modified when non-retention registers are saved.
46 *
47 * Reentrant:
48 *  No.
49 *
50 *******************************************************************************/
51 void SDCard_SaveConfig(void) 
52 {
53     /* Store Status Mask registers */
54     #if(CY_UDB_V0)
55        SDCard_backup.cntrPeriod      = SDCard_COUNTER_PERIOD_REG;
56        SDCard_backup.saveSrTxIntMask = SDCard_TX_STATUS_MASK_REG;
57        SDCard_backup.saveSrRxIntMask = SDCard_RX_STATUS_MASK_REG;
58     #endif /* (CY_UDB_V0) */
59 }
60
61
62 /*******************************************************************************
63 * Function Name: SDCard_RestoreConfig
64 ********************************************************************************
65 *
66 * Summary:
67 *  Restores SPIM configuration.
68 *
69 * Parameters:
70 *  None.
71 *
72 * Return:
73 *  None.
74 *
75 * Global Variables:
76 *  SDCard_backup - used when non-retention registers are restored.
77 *
78 * Side Effects:
79 *  If this API is called without first calling SaveConfig then in the following
80 *  registers will be default values from Customizer:
81 *  SDCard_STATUS_MASK_REG and SDCard_COUNTER_PERIOD_REG.
82 *
83 *******************************************************************************/
84 void SDCard_RestoreConfig(void) 
85 {
86     /* Restore the data, saved by SaveConfig() function */
87     #if(CY_UDB_V0)
88         SDCard_COUNTER_PERIOD_REG = SDCard_backup.cntrPeriod;
89         SDCard_TX_STATUS_MASK_REG = ((uint8) SDCard_backup.saveSrTxIntMask);
90         SDCard_RX_STATUS_MASK_REG = ((uint8) SDCard_backup.saveSrRxIntMask);
91     #endif /* (CY_UDB_V0) */
92 }
93
94
95 /*******************************************************************************
96 * Function Name: SDCard_Sleep
97 ********************************************************************************
98 *
99 * Summary:
100 *  Prepare SPIM Component goes to sleep.
101 *
102 * Parameters:
103 *  None.
104 *
105 * Return:
106 *  None.
107 *
108 * Global Variables:
109 *  SDCard_backup - modified when non-retention registers are saved.
110 *
111 * Reentrant:
112 *  No.
113 *
114 *******************************************************************************/
115 void SDCard_Sleep(void) 
116 {
117     /* Save components enable state */
118     SDCard_backup.enableState = ((uint8) SDCard_IS_ENABLED);
119
120     SDCard_Stop();
121     SDCard_SaveConfig();
122 }
123
124
125 /*******************************************************************************
126 * Function Name: SDCard_Wakeup
127 ********************************************************************************
128 *
129 * Summary:
130 *  Prepare SPIM Component to wake up.
131 *
132 * Parameters:
133 *  None.
134 *
135 * Return:
136 *  None.
137 *
138 * Global Variables:
139 *  SDCard_backup - used when non-retention registers are restored.
140 *  SDCard_txBufferWrite - modified every function call - resets to
141 *  zero.
142 *  SDCard_txBufferRead - modified every function call - resets to
143 *  zero.
144 *  SDCard_rxBufferWrite - modified every function call - resets to
145 *  zero.
146 *  SDCard_rxBufferRead - modified every function call - resets to
147 *  zero.
148 *
149 * Reentrant:
150 *  No.
151 *
152 *******************************************************************************/
153 void SDCard_Wakeup(void) 
154 {
155     SDCard_RestoreConfig();
156
157     #if(SDCard_RX_SOFTWARE_BUF_ENABLED)
158         SDCard_rxBufferFull  = 0u;
159         SDCard_rxBufferRead  = 0u;
160         SDCard_rxBufferWrite = 0u;
161     #endif /* (SDCard_RX_SOFTWARE_BUF_ENABLED) */
162
163     #if(SDCard_TX_SOFTWARE_BUF_ENABLED)
164         SDCard_txBufferFull  = 0u;
165         SDCard_txBufferRead  = 0u;
166         SDCard_txBufferWrite = 0u;
167     #endif /* (SDCard_TX_SOFTWARE_BUF_ENABLED) */
168
169     /* Clear any data from the RX and TX FIFO */
170     SDCard_ClearFIFO();
171
172     /* Restore components block enable state */
173     if(0u != SDCard_backup.enableState)
174     {
175         SDCard_Enable();
176     }
177 }
178
179
180 /* [] END OF FILE */