/* * write a sja1000 register */ static void pcan_write_canreg(const struct sja1000_priv *priv, int port, u8 v) { struct pcan_pccard *card = priv->priv; int c = (priv->reg_base - card->ioport_addr) / PCC_CHAN_SIZE; /* sja1000 register changes control the leds state */ if (port == REG_MOD) switch (v) { case MOD_RM: /* Reset Mode: set led on */ pcan_set_leds(card, PCC_LED(c), PCC_LED_ON); break; case 0x00: /* Normal Mode: led slow blinking and start led timer */ pcan_set_leds(card, PCC_LED(c), PCC_LED_SLOW); pcan_start_led_timer(card); break; default: break; } iowrite8(v, priv->reg_base + port); }
static void pcan_write_canreg(const struct sja1000_priv *priv, int port, u8 v) { struct pcan_pccard *card = priv->priv; int c = (priv->reg_base - card->ioport_addr) / PCC_CHAN_SIZE; if (port == REG_MOD) switch (v) { case MOD_RM: pcan_set_leds(card, PCC_LED(c), PCC_LED_ON); break; case 0x00: pcan_set_leds(card, PCC_LED(c), PCC_LED_SLOW); pcan_start_led_timer(card); break; default: break; } iowrite8(v, priv->reg_base + port); }