source: rtems/c/src/lib/libbsp/arm/lpc176x/include/common-types.h @ 19260fb

4.115
Last change on this file since 19260fb was 19260fb, checked in by Martin Boretto <martin.boretto@…>, on 06/09/14 at 14:27:18

bsp/lpc176x: New BSP

  • Property mode set to 100644
File size: 2.5 KB
Line 
1/**
2 * @file common-types.h
3 *
4 * @ingroup lpc176x
5 *
6 * @brief Definitions types used by some devices in common.
7 */
8
9/*
10 * Copyright (c) 2014 Taller Technologies.
11 *
12 * @author  Boretto Martin    (martin.boretto@tallertechnologies.com)
13 * @author  Diaz Marcos (marcos.diaz@tallertechnologies.com)
14 * @author  Lenarduzzi Federico  (federico.lenarduzzi@tallertechnologies.com)
15 * @author  Daniel Chicco  (daniel.chicco@tallertechnologies.com)
16 *
17 * The license and distribution terms for this file may be
18 * found in the file LICENSE in this distribution or at
19 * http://www.rtems.com/license/LICENSE.
20 */
21
22#ifndef LIBBSP_ARM_LPC176X_COMMON_TYPES_H
23#define LIBBSP_ARM_LPC176X_COMMON_TYPES_H
24
25#ifdef __cplusplus
26extern "C" {
27#endif /* __cplusplus */
28
29/**
30 * @brief A pin of the board.
31 */
32typedef uint32_t lpc176x_pin_number;
33
34/**
35 * @brief Microseconds representation.
36 */
37typedef uint32_t lpc176x_microseconds;
38
39/**
40 * @brief lpc176x module representation.
41 *
42 * Enumerated type to define the set of modules for a lpc176x board.
43 */
44typedef enum {
45  LPC176X_MODULE_WD,
46  LPC176X_MODULE_ADC,
47  LPC176X_MODULE_CAN_0,
48  LPC176X_MODULE_CAN_1,
49  LPC176X_MODULE_DAC,
50  LPC176X_MODULE_GPDMA,
51  LPC176X_MODULE_GPIO,
52  LPC176X_MODULE_I2S,
53  LPC176X_MODULE_MCI,
54  LPC176X_MODULE_MCPWM,
55  LPC176X_MODULE_PCB,
56  LPC176X_MODULE_PWM_0,
57  LPC176X_MODULE_PWM_1,
58  LPC176X_MODULE_QEI,
59  LPC176X_MODULE_RTC,
60  LPC176X_MODULE_SYSCON,
61  LPC176X_MODULE_TIMER_0,
62  LPC176X_MODULE_TIMER_1,
63  LPC176X_MODULE_TIMER_2,
64  LPC176X_MODULE_TIMER_3,
65  LPC176X_MODULE_UART_0,
66  LPC176X_MODULE_UART_1,
67  LPC176X_MODULE_UART_2,
68  LPC176X_MODULE_UART_3,
69  LPC176X_MODULE_USB
70} lpc176x_module;
71
72/**
73 * @brief Defines all the clock modules.
74 *
75 * Enumerated type to define the set of clock modules for a lpc176x board.
76 */
77typedef enum {
78  LPC176X_MODULE_PCLK_DEFAULT = 0x4U,
79  LPC176X_MODULE_CCLK = 0x1U,
80  LPC176X_MODULE_CCLK_2 = 0x2U,
81  LPC176X_MODULE_CCLK_4 = 0x0U,
82  LPC176X_MODULE_CCLK_6 = 0x3U,
83  LPC176X_MODULE_CCLK_8 = 0x3U
84} lpc176x_module_clock;
85
86/**
87 * @brief Fast Input/Output registers representation.
88 */
89typedef struct {
90  /**
91   * @brief Direction control register.
92   */
93  uint32_t dir;
94  uint32_t reserved[ 3U ];
95  /**
96   * @brief Mask register for port.
97   */
98  uint32_t mask;
99  /**
100   * @brief Pinvalue register using 'mask'.
101   */
102  uint32_t pin;
103  /**
104   * @brief Output Set register using 'mask'.
105   */
106  uint32_t set;
107  /**
108   * @brief Output Clear register using 'maks'.
109   */
110  uint32_t clr;
111} lpc176x_fio;
112
113#ifdef __cplusplus
114}
115#endif /* __cplusplus */
116
117#endif /* LIBBSP_ARM_LPC176X_COMMON_TYPES_H */
Note: See TracBrowser for help on using the repository browser.