194
193
xfp_set_led(efx, SFE4002_RX_LED,
195
194
QUAKE_LED_RXLINK | QUAKE_LED_LINK_ACTSTAT);
196
195
xfp_set_led(efx, SFE4002_FAULT_LED, QUAKE_LED_OFF);
197
efx->board_info.blinker.led_num = SFE4002_FAULT_LED;
201
static void sfe4002_fault_led(struct efx_nic *efx, bool state)
198
static void sfe4002_set_id_led(struct efx_nic *efx, bool state)
203
200
xfp_set_led(efx, SFE4002_FAULT_LED, state ? QUAKE_LED_ON :
223
220
efx->board_info.monitor = sfe4002_check_hw;
224
221
efx->board_info.init_leds = sfe4002_init_leds;
225
efx->board_info.set_fault_led = sfe4002_fault_led;
222
efx->board_info.set_id_led = sfe4002_set_id_led;
223
efx->board_info.blink = board_blink;
224
efx->board_info.fini = efx_fini_lm87;
228
/*****************************************************************************
229
* Support for the SFN4112F
232
static u8 sfn4112f_lm87_channel = 0x03; /* use AIN not FAN inputs */
234
static const u8 sfn4112f_lm87_regs[] = {
235
LM87_IN_LIMITS(0, 0x83, 0x91), /* 2.5V: 1.8V +/- 5% */
236
LM87_IN_LIMITS(1, 0x51, 0x5a), /* Vccp1: 1.2V +/- 5% */
237
LM87_IN_LIMITS(2, 0xb6, 0xca), /* 3.3V: 3.3V +/- 5% */
238
LM87_IN_LIMITS(4, 0xb0, 0xe0), /* 12V: 11-14V */
239
LM87_IN_LIMITS(5, 0x44, 0x4b), /* Vccp2: 1.0V +/- 5% */
240
LM87_AIN_LIMITS(1, 0x91, 0xa1), /* AIN2: 1.5V +/- 5% */
241
LM87_TEMP_INT_LIMITS(10, 60), /* board */
242
LM87_TEMP_EXT1_LIMITS(10, 70), /* Falcon */
246
static struct i2c_board_info sfn4112f_hwmon_info = {
247
I2C_BOARD_INFO("lm87", 0x2e),
248
.platform_data = &sfn4112f_lm87_channel,
251
#define SFN4112F_ACT_LED 0
252
#define SFN4112F_LINK_LED 1
254
static void sfn4112f_init_leds(struct efx_nic *efx)
256
xfp_set_led(efx, SFN4112F_ACT_LED,
257
QUAKE_LED_RXLINK | QUAKE_LED_LINK_ACT);
258
xfp_set_led(efx, SFN4112F_LINK_LED,
259
QUAKE_LED_RXLINK | QUAKE_LED_LINK_STAT);
262
static void sfn4112f_set_id_led(struct efx_nic *efx, bool state)
264
xfp_set_led(efx, SFN4112F_LINK_LED,
265
state ? QUAKE_LED_ON : QUAKE_LED_OFF);
268
static int sfn4112f_check_hw(struct efx_nic *efx)
270
/* Mask out unused sensors */
271
return efx_check_lm87(efx, ~0x48);
274
static int sfn4112f_init(struct efx_nic *efx)
276
int rc = efx_init_lm87(efx, &sfn4112f_hwmon_info, sfn4112f_lm87_regs);
279
efx->board_info.monitor = sfn4112f_check_hw;
280
efx->board_info.init_leds = sfn4112f_init_leds;
281
efx->board_info.set_id_led = sfn4112f_set_id_led;
226
282
efx->board_info.blink = board_blink;
227
283
efx->board_info.fini = efx_fini_lm87;
243
299
{ EFX_BOARD_SFE4002, "SFE4002", "XFP adapter", sfe4002_init },
244
300
{ EFX_BOARD_SFN4111T, "SFN4111T", "100/1000/10GBASE-T adapter",
302
{ EFX_BOARD_SFN4112F, "SFN4112F", "SFP+ adapter",
248
306
void efx_set_board_info(struct efx_nic *efx, u16 revision_info)