diff options
author | David Daney <david.daney@cavium.com> | 2011-11-22 09:47:00 -0500 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2011-12-07 17:03:28 -0500 |
commit | af866496c7752d2c0bd97fcbb4627cac72aa9a64 (patch) | |
tree | 21611d769d7b84933e1d606cd26fccd3b5659f35 /arch/mips/include/asm/octeon/cvmx-helper-sgmii.h | |
parent | 751c9f684963d2a066a79d8022c0e79e1159291b (diff) |
MIPS: Octeon: Move some Ethernet support files out of staging.
Signed-off-by: David Daney <david.daney@cavium.com>
Cc: linux-mips@linux-mips.org
Cc: netdev@vger.kernel.org
Cc: devel@driverdev.osuosl.org
Acked-by: Greg Kroah-Hartman <gregkh@suse.de>
Patchwork: https://patchwork.linux-mips.org/patch/2942/
Patchwork: https://patchwork.linux-mips.org/patch/3012/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'arch/mips/include/asm/octeon/cvmx-helper-sgmii.h')
-rw-r--r-- | arch/mips/include/asm/octeon/cvmx-helper-sgmii.h | 104 |
1 files changed, 104 insertions, 0 deletions
diff --git a/arch/mips/include/asm/octeon/cvmx-helper-sgmii.h b/arch/mips/include/asm/octeon/cvmx-helper-sgmii.h new file mode 100644 index 000000000000..19b48d60857f --- /dev/null +++ b/arch/mips/include/asm/octeon/cvmx-helper-sgmii.h | |||
@@ -0,0 +1,104 @@ | |||
1 | /***********************license start*************** | ||
2 | * Author: Cavium Networks | ||
3 | * | ||
4 | * Contact: support@caviumnetworks.com | ||
5 | * This file is part of the OCTEON SDK | ||
6 | * | ||
7 | * Copyright (c) 2003-2008 Cavium Networks | ||
8 | * | ||
9 | * This file is free software; you can redistribute it and/or modify | ||
10 | * it under the terms of the GNU General Public License, Version 2, as | ||
11 | * published by the Free Software Foundation. | ||
12 | * | ||
13 | * This file is distributed in the hope that it will be useful, but | ||
14 | * AS-IS and WITHOUT ANY WARRANTY; without even the implied warranty | ||
15 | * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE, TITLE, or | ||
16 | * NONINFRINGEMENT. See the GNU General Public License for more | ||
17 | * details. | ||
18 | * | ||
19 | * You should have received a copy of the GNU General Public License | ||
20 | * along with this file; if not, write to the Free Software | ||
21 | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA | ||
22 | * or visit http://www.gnu.org/licenses/. | ||
23 | * | ||
24 | * This file may also be available under a different license from Cavium. | ||
25 | * Contact Cavium Networks for more information | ||
26 | ***********************license end**************************************/ | ||
27 | |||
28 | /** | ||
29 | * @file | ||
30 | * | ||
31 | * Functions for SGMII initialization, configuration, | ||
32 | * and monitoring. | ||
33 | * | ||
34 | */ | ||
35 | #ifndef __CVMX_HELPER_SGMII_H__ | ||
36 | #define __CVMX_HELPER_SGMII_H__ | ||
37 | |||
38 | /** | ||
39 | * Probe a SGMII interface and determine the number of ports | ||
40 | * connected to it. The SGMII interface should still be down after | ||
41 | * this call. | ||
42 | * | ||
43 | * @interface: Interface to probe | ||
44 | * | ||
45 | * Returns Number of ports on the interface. Zero to disable. | ||
46 | */ | ||
47 | extern int __cvmx_helper_sgmii_probe(int interface); | ||
48 | |||
49 | /** | ||
50 | * Bringup and enable a SGMII interface. After this call packet | ||
51 | * I/O should be fully functional. This is called with IPD | ||
52 | * enabled but PKO disabled. | ||
53 | * | ||
54 | * @interface: Interface to bring up | ||
55 | * | ||
56 | * Returns Zero on success, negative on failure | ||
57 | */ | ||
58 | extern int __cvmx_helper_sgmii_enable(int interface); | ||
59 | |||
60 | /** | ||
61 | * Return the link state of an IPD/PKO port as returned by | ||
62 | * auto negotiation. The result of this function may not match | ||
63 | * Octeon's link config if auto negotiation has changed since | ||
64 | * the last call to cvmx_helper_link_set(). | ||
65 | * | ||
66 | * @ipd_port: IPD/PKO port to query | ||
67 | * | ||
68 | * Returns Link state | ||
69 | */ | ||
70 | extern cvmx_helper_link_info_t __cvmx_helper_sgmii_link_get(int ipd_port); | ||
71 | |||
72 | /** | ||
73 | * Configure an IPD/PKO port for the specified link state. This | ||
74 | * function does not influence auto negotiation at the PHY level. | ||
75 | * The passed link state must always match the link state returned | ||
76 | * by cvmx_helper_link_get(). It is normally best to use | ||
77 | * cvmx_helper_link_autoconf() instead. | ||
78 | * | ||
79 | * @ipd_port: IPD/PKO port to configure | ||
80 | * @link_info: The new link state | ||
81 | * | ||
82 | * Returns Zero on success, negative on failure | ||
83 | */ | ||
84 | extern int __cvmx_helper_sgmii_link_set(int ipd_port, | ||
85 | cvmx_helper_link_info_t link_info); | ||
86 | |||
87 | /** | ||
88 | * Configure a port for internal and/or external loopback. Internal loopback | ||
89 | * causes packets sent by the port to be received by Octeon. External loopback | ||
90 | * causes packets received from the wire to sent out again. | ||
91 | * | ||
92 | * @ipd_port: IPD/PKO port to loopback. | ||
93 | * @enable_internal: | ||
94 | * Non zero if you want internal loopback | ||
95 | * @enable_external: | ||
96 | * Non zero if you want external loopback | ||
97 | * | ||
98 | * Returns Zero on success, negative on failure. | ||
99 | */ | ||
100 | extern int __cvmx_helper_sgmii_configure_loopback(int ipd_port, | ||
101 | int enable_internal, | ||
102 | int enable_external); | ||
103 | |||
104 | #endif | ||