hc
2023-03-13 2ec15ae1cb4be1b4fcb56c6d621123d7ebdaad6c
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
/*
 * arch/arm/mach-ks8695/include/mach/regs-switch.h
 *
 * Copyright (C) 2006 Andrew Victor
 *
 * KS8695 - Switch Registers and bit definitions.
 *
 * This file is licensed under  the terms of the GNU General Public
 * License version 2. This program is licensed "as is" without any
 * warranty of any kind, whether express or implied.
 */
 
#ifndef KS8695_SWITCH_H
#define KS8695_SWITCH_H
 
#define KS8695_SWITCH_OFFSET    (0xF0000 + 0xe800)
#define KS8695_SWITCH_VA    (KS8695_IO_VA + KS8695_SWITCH_OFFSET)
#define KS8695_SWITCH_PA    (KS8695_IO_PA + KS8695_SWITCH_OFFSET)
 
 
/*
 * Switch registers
 */
#define KS8695_SEC0        (0x00)        /* Switch Engine Control 0 */
#define KS8695_SEC1        (0x04)        /* Switch Engine Control 1 */
#define KS8695_SEC2        (0x08)        /* Switch Engine Control 2 */
 
#define KS8695_SEPXCZ(x,z)    (0x0c + (((x)-1)*3 + ((z)-1))*4)    /* Port Configuration Registers */
 
#define KS8695_SEP12AN        (0x48)        /* Port 1 & 2 Auto-Negotiation */
#define KS8695_SEP34AN        (0x4c)        /* Port 3 & 4 Auto-Negotiation */
#define KS8695_SEIAC        (0x50)        /* Indirect Access Control */
#define KS8695_SEIADH2        (0x54)        /* Indirect Access Data High 2 */
#define KS8695_SEIADH1        (0x58)        /* Indirect Access Data High 1 */
#define KS8695_SEIADL        (0x5c)        /* Indirect Access Data Low */
#define KS8695_SEAFC        (0x60)        /* Advance Feature Control */
#define KS8695_SEDSCPH        (0x64)        /* TOS Priority High */
#define KS8695_SEDSCPL        (0x68)        /* TOS Priority Low */
#define KS8695_SEMAH        (0x6c)        /* Switch Engine MAC Address High */
#define KS8695_SEMAL        (0x70)        /* Switch Engine MAC Address Low */
#define KS8695_LPPM12        (0x74)        /* Port 1 & 2 PHY Power Management */
#define KS8695_LPPM34        (0x78)        /* Port 3 & 4 PHY Power Management */
 
 
/* Switch Engine Control 0 */
#define SEC0_LLED1S        (7 << 25)    /* LED1 Select */
#define        LLED1S_SPEED        (0 << 25)
#define        LLED1S_LINK        (1 << 25)
#define        LLED1S_DUPLEX        (2 << 25)
#define        LLED1S_COLLISION    (3 << 25)
#define        LLED1S_ACTIVITY        (4 << 25)
#define        LLED1S_FDX_COLLISION    (5 << 25)
#define        LLED1S_LINK_ACTIVITY    (6 << 25)
#define SEC0_LLED0S        (7 << 22)    /* LED0 Select */
#define        LLED0S_SPEED        (0 << 22)
#define        LLED0S_LINK        (1 << 22)
#define        LLED0S_DUPLEX        (2 << 22)
#define        LLED0S_COLLISION    (3 << 22)
#define        LLED0S_ACTIVITY        (4 << 22)
#define        LLED0S_FDX_COLLISION    (5 << 22)
#define        LLED0S_LINK_ACTIVITY    (6 << 22)
#define SEC0_ENABLE        (1 << 0)    /* Enable Switch */
 
 
 
#endif