summaryrefslogtreecommitdiff
path: root/bsp/mini4020/drivers/dm9161.h
blob: 620f8653bc7977300ede2a6abf90a3a11c71d0af (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
/*
 * File      : dm9161.h
 * This file is part of RT-Thread RTOS
 * COPYRIGHT (C) 2009 - 2012, RT-Thread Development Team
 *
 * The license and distribution terms for this file may be
 * found in the file LICENSE in this distribution or at
 * http://www.rt-thread.org/license/LICENSE
 *
 * Change Logs:
 * Date           Author       Notes
 */

#ifndef __DM9000_H__
#define __DM9000_H__

/*MACRO DEFINATIONS*/


 #define SEP4020_ID_EMAC   ((unsigned int) 28) // Ethernet Mac
 /* Davicom 9161 PHY */
 #define MII_DM9161_ID   0x0181b880
 #define MII_DM9161A_ID  0x0181b8a0
  
 /* Davicom specific registers */
 #define MII_DSCR_REG    16
 #define MII_DSCSR_REG   17
 #define MII_DSINTR_REG  21
  
  /* Intel LXT971A PHY */
 #define MII_LXT971A_ID  0x001378E0
  
  /* Intel specific registers */
 #define MII_ISINTE_REG  18
 #define MII_ISINTS_REG  19
 #define MII_LEDCTRL_REG 20

 /* Realtek RTL8201 PHY */
 #define MII_RTL8201_ID  0x00008200
  
 /* Broadcom BCM5221 PHY */
 #define MII_BCM5221_ID  0x004061e0
  
 /* Broadcom specific registers */
 #define MII_BCMINTR_REG 26
  
  /* National Semiconductor DP83847 */
 #define MII_DP83847_ID  0x20005c30
 
  /* Altima AC101L PHY */
 #define MII_AC101L_ID   0x00225520
  
 /* Micrel KS8721 PHY */
 #define MII_KS8721_ID   0x00221610
 
 /* ........................................................................ */
  
 #define MAX_RBUFF_SZ    0x600           /* 1518 rounded up */
 #define MAX_RX_DESCR    20           /* max number of receive buffers */
  
 #define MAX_TBUFF_SZ    0x600           /* 1518 rounded up */
 #define MAX_TX_DESCR    20               /* max number of receive buffers */
  
 #define EMAC_DESC_DONE  0x00000001      /* bit for if DMA is done */
 #define EMAC_DESC_WRAP  0x00000002      /* bit for wrap */
  
 #define EMAC_BROADCAST  0x80000000      /* broadcast address */
 #define EMAC_MULTICAST  0x40000000      /* multicast address */
 #define EMAC_UNICAST    0x20000000      /* unicast address */
 
#define DM9161_inb(r) 		(*(volatile rt_uint8_t  *)r)
#define DM9161_outb(r, d) 	(*(volatile rt_uint8_t  *)r = d)
#define DM9161_inw(r) 		(*(volatile rt_uint16_t *)r)
#define DM9161_outw(r, d) 	(*(volatile rt_uint16_t *)r = d)

void rt_hw_dm9616_init(void);

#endif