/* * Irda */ static void tosa_irda_transceiver_mode(struct device *dev, int mode) { if (mode & IR_OFF) { gpio_set_value(TOSA_GPIO_IR_POWERDWN, 0); pxa2xx_transceiver_mode(dev, mode); gpio_direction_output(TOSA_GPIO_IRDA_TX, 0); } else { pxa2xx_transceiver_mode(dev, mode); gpio_set_value(TOSA_GPIO_IR_POWERDWN, 1); } }
/* * Irda */ static void poodle_irda_transceiver_mode(struct device *dev, int mode) { if (mode & IR_OFF) { GPSR(POODLE_GPIO_IR_ON) = GPIO_bit(POODLE_GPIO_IR_ON); } else { GPCR(POODLE_GPIO_IR_ON) = GPIO_bit(POODLE_GPIO_IR_ON); } pxa2xx_transceiver_mode(dev, mode); }
/* * Set the IrDA communications mode. */ static void pxa_irda_set_mode(struct pxa_irda *si, int mode) { if (si->pdata->transceiver_mode) si->pdata->transceiver_mode(si->dev, mode); else { if (gpio_is_valid(si->pdata->gpio_pwdown)) gpio_set_value(si->pdata->gpio_pwdown, !(mode & IR_OFF) ^ !si->pdata->gpio_pwdown_inverted); pxa2xx_transceiver_mode(si->dev, mode); } }
static void lubbock_irda_transceiver_mode(struct device *dev, int mode) { unsigned long flags; local_irq_save(flags); if (mode & IR_SIRMODE) { LUB_MISC_WR &= ~(1 << 4); } else if (mode & IR_FIRMODE) { LUB_MISC_WR |= 1 << 4; } pxa2xx_transceiver_mode(dev, mode); local_irq_restore(flags); }
static void mainstone_irda_transceiver_mode(struct device *dev, int mode) { unsigned long flags; local_irq_save(flags); if (mode & IR_SIRMODE) { MST_MSCWR1 &= ~MST_MSCWR1_IRDA_FIR; } else if (mode & IR_FIRMODE) { MST_MSCWR1 |= MST_MSCWR1_IRDA_FIR; } pxa2xx_transceiver_mode(dev, mode); if (mode & IR_OFF) { MST_MSCWR1 = (MST_MSCWR1 & ~MST_MSCWR1_IRDA_MASK) | MST_MSCWR1_IRDA_OFF; } else { MST_MSCWR1 = (MST_MSCWR1 & ~MST_MSCWR1_IRDA_MASK) | MST_MSCWR1_IRDA_FULL; } local_irq_restore(flags); }
static void trizeps4_irda_transceiver_mode(struct device *dev, int mode) { unsigned long flags; local_irq_save(flags); /* Switch mode */ if (mode & IR_SIRMODE) trizeps_conxs_ircr &= ~ConXS_IRCR_MODE; /* Slow mode */ else if (mode & IR_FIRMODE) trizeps_conxs_ircr |= ConXS_IRCR_MODE; /* Fast mode */ /* Switch power */ if (mode & IR_OFF) trizeps_conxs_ircr |= ConXS_IRCR_SD; else trizeps_conxs_ircr &= ~ConXS_IRCR_SD; IRCR_writew(trizeps_conxs_ircr); local_irq_restore(flags); pxa2xx_transceiver_mode(dev, mode); }
static void magician_irda_transceiver_mode(struct device *dev, int mode) { gpio_set_value(GPIO83_MAGICIAN_nIR_EN, mode & IR_OFF); pxa2xx_transceiver_mode(dev, mode); }
static void akita_irda_transceiver_mode(struct device *dev, int mode) { gpio_set_value(AKITA_GPIO_IR_ON, mode & IR_OFF); pxa2xx_transceiver_mode(dev, mode); }
static void spitz_irda_transceiver_mode(struct device *dev, int mode) { gpio_set_value(SPITZ_GPIO_IR_ON, mode & IR_OFF); pxa2xx_transceiver_mode(dev, mode); }
/****************************************************************************** * IrDA ******************************************************************************/ static void treo680_transceiver_mode(struct device *dev, int mode) { gpio_set_value(GPIO_NR_TREO680_IR_EN, mode & IR_OFF); pxa2xx_transceiver_mode(dev, mode); }
static void palmte2_irda_transceiver_mode(struct device *dev, int mode) { gpio_set_value(GPIO_NR_PALMTE2_IR_DISABLE, mode & IR_OFF); pxa2xx_transceiver_mode(dev, mode); }