Merge PCB updates
[SCSI2SD.git] / software / SCSI2SD / v4 / SCSI2SD.cydsn / Generated_Source / PSoC5 / cypins.h
1 /*******************************************************************************
2 * File Name: cypins.h
3 * Version 4.0
4 *
5 *  Description:
6 *   This file contains the function prototypes and constants used for port/pin
7 *   in access and control.
8 *
9 *  Note:
10 *   Documentation of the API's in this file is located in the
11 *   System Reference Guide provided with PSoC Creator.
12 *
13 ********************************************************************************
14 * Copyright 2008-2013, Cypress Semiconductor Corporation.  All rights reserved.
15 * You may use this file only in accordance with the license, terms, conditions,
16 * disclaimers, and limitations in the end user license agreement accompanying
17 * the software package with which this file was provided.
18 *******************************************************************************/
19
20 #if !defined(CY_BOOT_CYPINS_H)
21 #define CY_BOOT_CYPINS_H
22
23 #include "cyfitter.h"
24 #include "cytypes.h"
25
26
27 /**************************************
28 *        API Parameter Constants
29 **************************************/
30
31 #define CY_PINS_PC_DRIVE_MODE_SHIFT (0x01u)
32 #define CY_PINS_PC_DRIVE_MODE_MASK  ((uint8)(0x07u << CY_PINS_PC_DRIVE_MODE_SHIFT))
33 #define CY_PINS_PC_DRIVE_MODE_0     ((uint8)(0x00u << CY_PINS_PC_DRIVE_MODE_SHIFT))
34 #define CY_PINS_PC_DRIVE_MODE_1     ((uint8)(0x01u << CY_PINS_PC_DRIVE_MODE_SHIFT))
35 #define CY_PINS_PC_DRIVE_MODE_2     ((uint8)(0x02u << CY_PINS_PC_DRIVE_MODE_SHIFT))
36 #define CY_PINS_PC_DRIVE_MODE_3     ((uint8)(0x03u << CY_PINS_PC_DRIVE_MODE_SHIFT))
37 #define CY_PINS_PC_DRIVE_MODE_4     ((uint8)(0x04u << CY_PINS_PC_DRIVE_MODE_SHIFT))
38 #define CY_PINS_PC_DRIVE_MODE_5     ((uint8)(0x05u << CY_PINS_PC_DRIVE_MODE_SHIFT))
39 #define CY_PINS_PC_DRIVE_MODE_6     ((uint8)(0x06u << CY_PINS_PC_DRIVE_MODE_SHIFT))
40 #define CY_PINS_PC_DRIVE_MODE_7     ((uint8)(0x07u << CY_PINS_PC_DRIVE_MODE_SHIFT))
41
42
43 /*  SetPinDriveMode */
44 #define CY_PINS_DM_ALG_HIZ          (CY_PINS_PC_DRIVE_MODE_0)
45 #define CY_PINS_DM_DIG_HIZ          (CY_PINS_PC_DRIVE_MODE_1)
46 #define CY_PINS_DM_RES_UP           (CY_PINS_PC_DRIVE_MODE_2)
47 #define CY_PINS_DM_RES_DWN          (CY_PINS_PC_DRIVE_MODE_3)
48 #define CY_PINS_DM_OD_LO            (CY_PINS_PC_DRIVE_MODE_4)
49 #define CY_PINS_DM_OD_HI            (CY_PINS_PC_DRIVE_MODE_5)
50 #define CY_PINS_DM_STRONG           (CY_PINS_PC_DRIVE_MODE_6)
51 #define CY_PINS_DM_RES_UPDWN        (CY_PINS_PC_DRIVE_MODE_7)
52
53
54 /**************************************
55 *       Register Constants
56 **************************************/
57
58 /* Port Pin Configuration Register */
59 #define CY_PINS_PC_DATAOUT          (0x01u)
60 #define CY_PINS_PC_PIN_FASTSLEW     (0xBFu)
61 #define CY_PINS_PC_PIN_SLOWSLEW     (0x40u)
62 #define CY_PINS_PC_PIN_STATE        (0x10u)
63 #define CY_PINS_PC_BIDIR_EN         (0x20u)
64 #define CY_PINS_PC_SLEW             (0x40u)
65 #define CY_PINS_PC_BYPASS           (0x80u)
66
67
68 /**************************************
69 *       Pin API Macros
70 **************************************/
71
72 /*******************************************************************************
73 * Macro Name: CyPins_ReadPin
74 ********************************************************************************
75 *
76 * Summary:
77 *  Reads the current value on the pin (pin state, PS).
78 *
79 * Parameters:
80 *   pinPC: Port pin configuration register (uint16).
81 *   #defines for each pin on a chip are provided in the cydevice_trm.h file
82 *   in the form:
83 *       CYREG_PRTx_PCy
84 *
85 *   where x is a port number 0 - 15 and y is a pin number 0 - 7
86 *
87 * Return:
88 *   Pin state
89 *    0: Logic low value
90 *    Non-0: Logic high value
91 *
92 *******************************************************************************/
93 #define CyPins_ReadPin(pinPC)    ( *(reg8 *)(pinPC) & CY_PINS_PC_PIN_STATE )
94
95
96 /*******************************************************************************
97 * Macro Name: CyPins_SetPin
98 ********************************************************************************
99 *
100 * Summary:
101 *  Set the output value for the pin (data register, DR) to a logic high.
102 *
103 *  Note that this only has an effect for pins configured as software pins that
104 *  are not driven by hardware.
105 *
106 * Parameters:
107 *   pinPC: Port pin configuration register (uint16).
108 *   #defines for each pin on a chip are provided in the cydevice_trm.h file
109 *   in the form:
110 *       CYREG_PRTx_PCy
111 *
112 *   where x is a port number 0 - 15 and y is a pin number 0 - 7
113 *
114 * Return:
115 *   None
116 *
117 *******************************************************************************/
118 #define CyPins_SetPin(pinPC)     ( *(reg8 *)(pinPC) |= CY_PINS_PC_DATAOUT)
119
120
121 /*******************************************************************************
122 * Macro Name: CyPins_ClearPin
123 ********************************************************************************
124 *
125 * Summary:
126 *  This macro sets the state of the specified pin to 0
127 *
128 * Parameters:
129 *   pinPC: address of a Pin Configuration register.
130 *   #defines for each pin on a chip are provided in the cydevice_trm.h file
131 *   in the form:
132 *       CYREG_PRTx_PCy
133 *
134 *   where x is a port number 0 - 15 and y is a pin number 0 - 7
135 *
136 * Return:
137 *   None
138 *
139 *******************************************************************************/
140 #define CyPins_ClearPin(pinPC)   ( *(reg8 *)(pinPC) &= ((uint8)(~CY_PINS_PC_DATAOUT)))
141
142
143 /*******************************************************************************
144 * Macro Name: CyPins_SetPinDriveMode
145 ********************************************************************************
146 *
147 * Summary:
148 *  Sets the drive mode for the pin (DM).
149 *
150 * Parameters:
151 *   pinPC: Port pin configuration register (uint16)
152 *   #defines for each pin on a chip are provided in the cydevice_trm.h file
153 *   in the form:
154 *       CYREG_PRTx_PCy
155 *
156 *   where x is a port number 0 - 15 and y is a pin number 0 - 7
157 *
158 *   mode: Desired drive mode
159 *
160 *   Define                Source
161 *   PIN_DM_ALG_HIZ        Analog HiZ
162 *   PIN_DM_DIG_HIZ        Digital HiZ
163 *   PIN_DM_RES_UP        Resistive pull up
164 *   PIN_DM_RES_DWN        Resistive pull down
165 *   PIN_DM_OD_LO        Open drain - drive low
166 *   PIN_DM_OD_HI        Open drain - drive high
167 *   PIN_DM_STRONG        Strong CMOS Output
168 *   PIN_DM_RES_UPDWN    Resistive pull up/down
169 *
170 * Return:
171 *   None
172 *
173 *******************************************************************************/
174 #define CyPins_SetPinDriveMode(pinPC, mode) \
175             ( *(reg8 *)(pinPC) = (*(reg8 *)(pinPC) & ((uint8)(~CY_PINS_PC_DRIVE_MODE_MASK))) | \
176             ((mode) & CY_PINS_PC_DRIVE_MODE_MASK))
177
178
179 /*******************************************************************************
180 * Macro Name: CyPins_ReadPinDriveMode
181 ********************************************************************************
182 *
183 * Summary:
184 *  Reads the drive mode for the pin (DM).
185 *
186 * Parameters:
187 *   pinPC: Port pin configuration register (uint16)
188 *   #defines for each pin on a chip are provided in the cydevice_trm.h file
189 *   in the form:
190 *       CYREG_PRTx_PCy
191 *
192 *   where x is a port number 0 - 15 and y is a pin number 0 - 7
193 *
194 *
195 * Return:
196 *   mode:  Current drive mode for the pin
197 *
198 *   Define                Source
199 *   PIN_DM_ALG_HIZ        Analog HiZ
200 *   PIN_DM_DIG_HIZ        Digital HiZ
201 *   PIN_DM_RES_UP        Resistive pull up
202 *   PIN_DM_RES_DWN        Resistive pull down
203 *   PIN_DM_OD_LO        Open drain - drive low
204 *   PIN_DM_OD_HI        Open drain - drive high
205 *   PIN_DM_STRONG        Strong CMOS Output
206 *   PIN_DM_RES_UPDWN    Resistive pull up/down
207 *
208 *******************************************************************************/
209 #define CyPins_ReadPinDriveMode(pinPC)      (*(reg8 *)(pinPC) & CY_PINS_PC_DRIVE_MODE_MASK)
210
211
212 /*******************************************************************************
213 * Macro Name: CyPins_FastSlew
214 ********************************************************************************
215 *
216 * Summary:
217 *  Set the slew rate for the pin to fast edge rate.
218 *  Note that this only applies for pins in strong output drive modes,
219 *  not to resistive drive modes.
220 *
221 * Parameters:
222 *   pinPC: address of a Pin Configuration register.
223 *   #defines for each pin on a chip are provided in the cydevice_trm.h file
224 *   in the form:
225 *       CYREG_PRTx_PCy
226 *
227 *   where x is a port number 0 - 15 and y is a pin number 0 - 7
228 *
229 *
230 * Return:
231 *   None
232 *
233 *******************************************************************************/
234 #define CyPins_FastSlew(pinPC)      (*(reg8 *)(pinPC) = (*(reg8 *)(pinPC) & CY_PINS_PC_PIN_FASTSLEW))
235
236
237 /*******************************************************************************
238 * Macro Name: CyPins_SlowSlew
239 ********************************************************************************
240 *
241 * Summary:
242 *  Set the slew rate for the pin to slow edge rate.
243 *  Note that this only applies for pins in strong output drive modes,
244 *  not to resistive drive modes.
245 *
246 * Parameters:
247 *   pinPC: address of a Pin Configuration register.
248 *   #defines for each pin on a chip are provided in the cydevice_trm.h file
249 *   in the form:
250 *       CYREG_PRTx_PCy
251 *
252 *   where x is a port number 0 - 15 and y is a pin number 0 - 7
253 *
254 * Return:
255 *   None
256 *
257 *******************************************************************************/
258 #define CyPins_SlowSlew(pinPC)      (*(reg8 *)(pinPC) = (*(reg8 *)(pinPC) | CY_PINS_PC_PIN_SLOWSLEW))
259
260
261 /*******************************************************************************
262 * Following code are OBSOLETE and must not be used starting from cy_boot 3.30
263 *******************************************************************************/
264 #define PC_DRIVE_MODE_SHIFT (CY_PINS_PC_DRIVE_MODE_SHIFT)
265 #define PC_DRIVE_MODE_MASK  (CY_PINS_PC_DRIVE_MODE_MASK)
266 #define PC_DRIVE_MODE_0     (CY_PINS_PC_DRIVE_MODE_0)
267 #define PC_DRIVE_MODE_1     (CY_PINS_PC_DRIVE_MODE_1)
268 #define PC_DRIVE_MODE_2     (CY_PINS_PC_DRIVE_MODE_2)
269 #define PC_DRIVE_MODE_3     (CY_PINS_PC_DRIVE_MODE_3)
270 #define PC_DRIVE_MODE_4     (CY_PINS_PC_DRIVE_MODE_4)
271 #define PC_DRIVE_MODE_5     (CY_PINS_PC_DRIVE_MODE_5)
272 #define PC_DRIVE_MODE_6     (CY_PINS_PC_DRIVE_MODE_6)
273 #define PC_DRIVE_MODE_7     (CY_PINS_PC_DRIVE_MODE_7)
274
275 #define PIN_DM_ALG_HIZ      (CY_PINS_DM_ALG_HIZ)
276 #define PIN_DM_DIG_HIZ      (CY_PINS_DM_DIG_HIZ)
277 #define PIN_DM_RES_UP       (CY_PINS_DM_RES_UP)
278 #define PIN_DM_RES_DWN      (CY_PINS_DM_RES_DWN)
279 #define PIN_DM_OD_LO        (CY_PINS_DM_OD_LO)
280 #define PIN_DM_OD_HI        (CY_PINS_DM_OD_HI)
281 #define PIN_DM_STRONG       (CY_PINS_DM_STRONG)
282 #define PIN_DM_RES_UPDWN    (CY_PINS_DM_RES_UPDWN)
283
284 #define PC_DATAOUT          (CY_PINS_PC_DATAOUT)
285 #define PC_PIN_FASTSLEW     (CY_PINS_PC_PIN_FASTSLEW)
286 #define PC_PIN_SLOWSLEW     (CY_PINS_PC_PIN_SLOWSLEW)
287 #define PC_PIN_STATE        (CY_PINS_PC_PIN_STATE)
288 #define PC_BIDIR_EN         (CY_PINS_PC_BIDIR_EN)
289 #define PC_SLEW             (CY_PINS_PC_SLEW)
290 #define PC_BYPASS           (CY_PINS_PC_BYPASS)
291
292 #endif /* (CY_BOOT_CYPINS_H) */
293
294
295 /* [] END OF FILE */