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

4.115
Last change on this file since 7b35a36 was 7b35a36, checked in by Martin Galvan <martin.galvan@…>, on 03/11/15 at 19:57:23

Add CAN, PWM, ADC and UART1/2/3 support to the LPC176x BSP.

This patch adds support for the following devices to the LPC176x BSP:

  • CAN
  • PWM
  • ADC

It also adds the probe routines for UART1/2/3 to the console_device_table in console-config.c, and enables UART1 in configure.ac.

  • Property mode set to 100644
File size: 2.6 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_ACCF,
50  LPC176X_MODULE_DAC,
51  LPC176X_MODULE_GPDMA,
52  LPC176X_MODULE_GPIO,
53  LPC176X_MODULE_I2S,
54  LPC176X_MODULE_MCI,
55  LPC176X_MODULE_MCPWM,
56  LPC176X_MODULE_PCB,
57  LPC176X_MODULE_PWM_0,
58  LPC176X_MODULE_PWM_1,
59  LPC176X_MODULE_QEI,
60  LPC176X_MODULE_RTC,
61  LPC176X_MODULE_SYSCON,
62  LPC176X_MODULE_TIMER_0,
63  LPC176X_MODULE_TIMER_1,
64  LPC176X_MODULE_TIMER_2,
65  LPC176X_MODULE_TIMER_3,
66  LPC176X_MODULE_UART_0,
67  LPC176X_MODULE_UART_1,
68  LPC176X_MODULE_UART_2,
69  LPC176X_MODULE_UART_3,
70  LPC176X_MODULE_USB
71} lpc176x_module;
72
73/**
74 * @brief Defines all the clock modules.
75 *
76 * Enumerated type to define the set of clock modules for a lpc176x board.
77 */
78typedef enum {
79  LPC176X_MODULE_PCLK_DEFAULT = 0x4U,
80  LPC176X_MODULE_CCLK = 0x1U,
81  LPC176X_MODULE_CCLK_2 = 0x2U,
82  LPC176X_MODULE_CCLK_4 = 0x0U,
83  LPC176X_MODULE_CCLK_6 = 0x3U,
84  LPC176X_MODULE_CCLK_8 = 0x3U
85} lpc176x_module_clock;
86
87/**
88 * @brief Fast Input/Output registers representation.
89 */
90typedef struct {
91  /**
92   * @brief Direction control register.
93   */
94  uint32_t dir;
95  uint32_t reserved[ 3U ];
96  /**
97   * @brief Mask register for port.
98   */
99  uint32_t mask;
100  /**
101   * @brief Pinvalue register using 'mask'.
102   */
103  uint32_t pin;
104  /**
105   * @brief Output Set register using 'mask'.
106   */
107  uint32_t set;
108  /**
109   * @brief Output Clear register using 'maks'.
110   */
111  uint32_t clr;
112} lpc176x_fio;
113
114#ifdef __cplusplus
115}
116#endif /* __cplusplus */
117
118#endif /* LIBBSP_ARM_LPC176X_COMMON_TYPES_H */
Note: See TracBrowser for help on using the repository browser.