static void simpad_uart_pm(struct uart_port *port, u_int state, u_int oldstate) { if (port->mapbase == (u_int)&Ser1UTCR0) { if (state) { clear_cs3_bit(RS232_ON); clear_cs3_bit(DECT_POWER_ON); }else { set_cs3_bit(RS232_ON); set_cs3_bit(DECT_POWER_ON); } } }
static void simpad_pcmcia_hw_shutdown(struct soc_pcmcia_socket *skt) { soc_pcmcia_free_irqs(skt, irqs, ARRAY_SIZE(irqs)); /* Disable CF bus: */ //set_cs3_bit(PCMCIA_BUFF_DIS); clear_cs3_bit(PCMCIA_RESET); }
static int simpad_pcmcia_hw_init(struct soc_pcmcia_socket *skt) { clear_cs3_bit(VCC_3V_EN|VCC_5V_EN|EN0|EN1); skt->socket.pci_irq = IRQ_GPIO_CF_IRQ; return soc_pcmcia_request_irqs(skt, irqs, ARRAY_SIZE(irqs)); }
static void simpad_uart_pm(struct uart_port *port, u_int state, u_int oldstate) { if (port->mapbase == (u_int)&Ser1UTCR0) { if (state) clear_cs3_bit(RS232_ON); else set_cs3_bit(RS232_ON); } }
static int simpad_pcmcia_configure_socket(struct soc_pcmcia_socket *skt, const socket_state_t *state) { unsigned long flags; local_irq_save(flags); /* Murphy: see table of MIC2562a-1 */ switch (state->Vcc) { case 0: clear_cs3_bit(VCC_3V_EN|VCC_5V_EN|EN0|EN1); break; case 33: clear_cs3_bit(VCC_3V_EN|EN1); set_cs3_bit(VCC_5V_EN|EN0); break; case 50: clear_cs3_bit(VCC_5V_EN|EN1); set_cs3_bit(VCC_3V_EN|EN0); break; default: printk(KERN_ERR "%s(): unrecognized Vcc %u\n", __func__, state->Vcc); clear_cs3_bit(VCC_3V_EN|VCC_5V_EN|EN0|EN1); local_irq_restore(flags); return -1; } local_irq_restore(flags); return 0; }
void simpad_leds_event(led_event_t evt) { switch (evt) { case led_start: hw_led_state = LED_GREEN; led_state = LED_STATE_ENABLED; break; case led_stop: led_state &= ~LED_STATE_ENABLED; break; case led_claim: led_state |= LED_STATE_CLAIMED; hw_led_state = LED_GREEN; break; case led_release: led_state &= ~LED_STATE_CLAIMED; hw_led_state = LED_GREEN; break; #ifdef CONFIG_LEDS_TIMER case led_timer: if (!(led_state & LED_STATE_CLAIMED)) hw_led_state ^= LED_GREEN; break; #endif #ifdef CONFIG_LEDS_CPU case led_idle_start: break; case led_idle_end: break; #endif case led_halted: break; case led_green_on: if (led_state & LED_STATE_CLAIMED) hw_led_state |= LED_GREEN; break; case led_green_off: if (led_state & LED_STATE_CLAIMED) hw_led_state &= ~LED_GREEN; break; case led_amber_on: break; case led_amber_off: break; case led_red_on: break; case led_red_off: break; default: break; } if (led_state & LED_STATE_ENABLED) set_cs3_bit(LED2_ON); else clear_cs3_bit(LED2_ON); }