source: rtems/c/src/lib/libbsp/arm/lpc32xx/include/lpc-ethernet-config.h @ c499856

4.115
Last change on this file since c499856 was c499856, checked in by Chris Johns <chrisj@…>, on 03/20/14 at 21:10:47

Change all references of rtems.com to rtems.org.

  • Property mode set to 100644
File size: 1.8 KB
Line 
1/**
2 * @file
3 *
4 * @ingroup lpc_eth
5 *
6 * @brief Ethernet driver configuration.
7 */
8
9/*
10 * Copyright (c) 2009
11 * embedded brains GmbH
12 * Obere Lagerstr. 30
13 * D-82178 Puchheim
14 * Germany
15 * <rtems@embedded-brains.de>
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.org/license/LICENSE.
20 */
21
22#ifndef LIBBSP_ARM_LPC32XX_LPC_ETHERNET_CONFIG_H
23#define LIBBSP_ARM_LPC32XX_LPC_ETHERNET_CONFIG_H
24
25#include <stdlib.h>
26#include <limits.h>
27
28#include <rtems.h>
29#include <rtems/malloc.h>
30
31#include <bsp.h>
32#include <bsp/lpc32xx.h>
33
34#ifdef __cplusplus
35extern "C" {
36#endif /* __cplusplus */
37
38/**
39 * @defgroup lpc_eth Ethernet Support
40 *
41 * @ingroup lpc
42 *
43 * @brief Ethernet support.
44 *
45 * @{
46 */
47
48#define LPC_ETH_CONFIG_INTERRUPT LPC32XX_IRQ_ETHERNET
49
50#define LPC_ETH_CONFIG_REG_BASE LPC32XX_BASE_ETHERNET
51
52#define LPC_ETH_CONFIG_RX_UNIT_COUNT_DEFAULT 16
53#define LPC_ETH_CONFIG_RX_UNIT_COUNT_MAX INT_MAX
54
55#define LPC_ETH_CONFIG_TX_UNIT_COUNT_DEFAULT 32
56#define LPC_ETH_CONFIG_TX_UNIT_COUNT_MAX INT_MAX
57
58#define LPC_ETH_CONFIG_UNIT_MULTIPLE 8U
59
60#ifdef LPC32XX_ETHERNET_RMII
61  #define LPC_ETH_CONFIG_RMII
62
63  static void lpc_eth_config_module_enable(void)
64  {
65    LPC32XX_MAC_CLK_CTRL = 0x1f;
66  }
67#else
68  static void lpc_eth_config_module_enable(void)
69  {
70    LPC32XX_MAC_CLK_CTRL = 0x0f;
71  }
72#endif
73
74static void lpc_eth_config_module_disable(void)
75{
76  LPC32XX_MAC_CLK_CTRL = 0;
77}
78
79#define LPC_ETH_CONFIG_USE_TRANSMIT_DMA
80
81static char *lpc_eth_config_alloc_table_area(size_t size)
82{
83  return rtems_heap_allocate_aligned_with_boundary(size, 32, 0);
84}
85
86static void lpc_eth_config_free_table_area(char *table_area)
87{
88  /* FIXME: Type */
89  free(table_area, (int) 0xdeadbeef);
90}
91
92/** @} */
93
94#ifdef __cplusplus
95}
96#endif /* __cplusplus */
97
98#endif /* LIBBSP_ARM_LPC32XX_LPC_ETHERNET_CONFIG_H */
Note: See TracBrowser for help on using the repository browser.