blob: 69bb548eae598b2fc208a05d86cd9b407af26fca [file] [log] [blame]
Thomas Gleixnerd2912cb2019-06-04 10:11:33 +02001/* SPDX-License-Identifier: GPL-2.0-only */
Ben Hutchings8ceee662008-04-27 12:55:59 +01002/****************************************************************************
Ben Hutchingsf7a6d2c2013-08-29 23:32:48 +01003 * Driver for Solarflare network controllers and boards
Ben Hutchings0a6f40c2011-02-25 00:01:34 +00004 * Copyright 2007-2010 Solarflare Communications Inc.
Ben Hutchings8ceee662008-04-27 12:55:59 +01005 */
6
Edward Cree5a6681e2016-11-28 18:55:34 +00007#ifndef EF4_PHY_H
8#define EF4_PHY_H
Ben Hutchings8ceee662008-04-27 12:55:59 +01009
10/****************************************************************************
Ben Hutchings8fbca792010-09-22 10:00:11 +000011 * 10Xpress (SFX7101) PHY
Ben Hutchings8ceee662008-04-27 12:55:59 +010012 */
Edward Cree5a6681e2016-11-28 18:55:34 +000013extern const struct ef4_phy_operations falcon_sfx7101_phy_ops;
Ben Hutchings8ceee662008-04-27 12:55:59 +010014
Edward Cree5a6681e2016-11-28 18:55:34 +000015void tenxpress_set_id_led(struct ef4_nic *efx, enum ef4_led_mode mode);
Ben Hutchings8ceee662008-04-27 12:55:59 +010016
Ben Hutchings8ceee662008-04-27 12:55:59 +010017/****************************************************************************
Ben Hutchingsb37b62f2009-10-23 08:33:42 +000018 * AMCC/Quake QT202x PHYs
Ben Hutchings8ceee662008-04-27 12:55:59 +010019 */
Edward Cree5a6681e2016-11-28 18:55:34 +000020extern const struct ef4_phy_operations falcon_qt202x_phy_ops;
Ben Hutchings8ceee662008-04-27 12:55:59 +010021
Ben Hutchingsd2d2c372009-02-27 13:07:33 +000022/* These PHYs provide various H/W control states for LEDs */
Ben Hutchings8ceee662008-04-27 12:55:59 +010023#define QUAKE_LED_LINK_INVAL (0)
24#define QUAKE_LED_LINK_STAT (1)
25#define QUAKE_LED_LINK_ACT (2)
26#define QUAKE_LED_LINK_ACTSTAT (3)
27#define QUAKE_LED_OFF (4)
28#define QUAKE_LED_ON (5)
29#define QUAKE_LED_LINK_INPUT (6) /* Pin is an input. */
30/* What link the LED tracks */
31#define QUAKE_LED_TXLINK (0)
32#define QUAKE_LED_RXLINK (8)
33
Edward Cree5a6681e2016-11-28 18:55:34 +000034void falcon_qt202x_set_led(struct ef4_nic *p, int led, int state);
Ben Hutchings8ceee662008-04-27 12:55:59 +010035
Ben Hutchings8880f4e2009-11-29 15:15:41 +000036/****************************************************************************
Ben Hutchings7e51b432010-09-22 10:00:47 +000037* Transwitch CX4 retimer
38*/
Edward Cree5a6681e2016-11-28 18:55:34 +000039extern const struct ef4_phy_operations falcon_txc_phy_ops;
Ben Hutchings7e51b432010-09-22 10:00:47 +000040
41#define TXC_GPIO_DIR_INPUT 0
42#define TXC_GPIO_DIR_OUTPUT 1
43
Edward Cree5a6681e2016-11-28 18:55:34 +000044void falcon_txc_set_gpio_dir(struct ef4_nic *efx, int pin, int dir);
45void falcon_txc_set_gpio_val(struct ef4_nic *efx, int pin, int val);
Ben Hutchings7e51b432010-09-22 10:00:47 +000046
Ben Hutchings8ceee662008-04-27 12:55:59 +010047#endif