xref: /haiku/src/add-ons/kernel/drivers/network/ether/usb_asix/ASIXVendorRequests.h (revision 268f99dd7dc4bd7474a8bd2742d3f1ec1de6752a)
1 /*
2  *	ASIX AX88172/AX88772/AX88178 USB 2.0 Ethernet Driver.
3  *	Copyright (c) 2011 S.Zharski <imker@gmx.li>
4  *	Distributed under the terms of the MIT license.
5  *
6  */
7 #ifndef _ASIX_VENDOR_REQUESTS_H_
8 #define _ASIX_VENDOR_REQUESTS_H_
9 
10 
11 // USB Vendor Requests used by all chip types
12 // For chip-spercific information look into
13 // corresponding AX88***Device.cpp files.
14 enum ASIXVendorRequests {
15 	READ_RXTX_SRAM		= 0x02,
16 	WRITE_RXTX_SRAM		= 0x03, // AX88178-772
17 	WRITE_RX_SRAM		= 0x03, // AX88172
18 	WRITE_TX_SRAM		= 0x04, // AX88172
19 	SW_MII_OP			= 0x06,
20 	READ_MII			= 0x07,
21 	WRITE_MII			= 0x08,
22 	READ_MII_OP_MODE	= 0x09, // AX88172-772
23 	READ_MII_STATUS		= 0x09, // AX88178
24 	HW_MII_OP			= 0x0A,
25 	READ_SROM			= 0x0B,
26 	WRITE_SROM			= 0x0C,
27 	WRITE_SROM_ENABLE	= 0x0D,
28 	WRITE_SROM_DISABLE	= 0x0E,
29 	READ_RX_CONTROL		= 0x0F,
30 	WRITE_RX_CONTROL	= 0x10,
31 	READ_IPGS			= 0x11,
32 	WRITE_IPGS			= 0x12, // AX88178-772
33 	WRITE_IPG0			= 0x12, // AX88172
34 	WRITE_IPG1			= 0x13, // AX88172
35 	WRITE_IPG2			= 0x14, // AX88172
36 	READ_NODEID			= 0x13, // AX88178-772
37 	WRITE_NODEID		= 0x14, // AX88178-772
38 	READ_MF_ARRAY		= 0x15,
39 	WRITE_MF_ARRAY		= 0x16,
40 	READ_TEST			= 0x17, // AX88178-772
41 	READ_NODEID_AX88172		= 0x17, // AX88172
42 	WRITE_NODEID_AX88172	= 0x18, // AX88172
43 	READ_PHYID			= 0x19,
44 	READ_MEDIUM_STATUS	= 0x1A,
45 	WRITE_MEDIUM_MODE	= 0x1B,
46 	GET_MONITOR_MODE	= 0x1C,
47 	SET_MONITOR_MODE	= 0x1D,
48 	READ_GPIOS			= 0x1E,
49 	WRITE_GPIOS			= 0x1F,
50 	WRITE_SOFT_RESET	= 0x20, // AX88178-772
51 	READ_PHY_SEL_STATE	= 0x21, // AX88772
52 	WRITE_PHY_SEL		= 0x22, // AX88772
53 	READ_MIIS_IF_STATE	= 0x21, // AX88178
54 	WRITE_MIIS_IF_STATE	= 0x22, // AX88178
55 	WRITE_RXCONTROL_CFG = 0x2A  // AX88772B
56 };
57 
58 
59 // RX Control Register bits
60 enum ASIXRXControl {
61 	RXCTL_PROMISCUOUS	= 0x0001,
62 	RXCTL_ALL_MULTICAT	= 0x0002,
63 	RXCTL_UNICAST		= 0x0004, // AX88172
64 	RXCTL_SEP			= 0x0004, // AX88772-178
65 	RXCTL_BROADCAST		= 0x0008,
66 	RXCTL_MULTICAST		= 0x0010,
67 	RXCTL_AP			= 0x0020, // AX88772-178
68 	RXCTL_START			= 0x0080,
69 	RXCTL_USB_MFB_2048	= 0x0000, // AX88772-178
70 	RXCTL_USB_MFB_4096	= 0x0100, // AX88772-178
71 	RXCTL_USB_MFB_8192  = 0x0200, // AX88772-178
72 	RXCTL_USB_MFB_MAX   = 0x0300, // aka 16384 + mask AX88772-178
73 	RXCTL_LOOPBACK		= 0x1000, // AX88772A / AX88772B
74 };
75 
76 
77 #endif // _ASIX_VENDOR_REQUESTS_H_
78 
79