Exemple #1
0
static int __init h4300_kbd_probe(struct platform_device * pdev)
{
	int i, base_irq = asic3_irq_base(a3);

	if (!(h4300_kbd = input_allocate_device()))
		return -ENOMEM;

	setup_h4300kbd();

	h4300_kbd->name        = "HP iPAQ h4300 keyboard driver";
	h4300_kbd->evbit[0]    = BIT(EV_KEY) | BIT(EV_REP);
	h4300_kbd->keycode     = h4300_keycode;
	h4300_kbd->keycodesize = sizeof(unsigned char);
	h4300_kbd->keycodemax  = ARRAY_SIZE(h4300_keycode);

	for (i = 0; i < h4300_kbd->keycodemax; i++)
		if (h4300_keycode[i])
			set_bit(h4300_keycode[i], h4300_kbd->keybit);
	request_irq(base_irq + H4000_KEYBOARD_IRQ, &h4300_keyboard,
			SA_SAMPLE_RANDOM, "Keyboard", NULL);

	input_register_device(h4300_kbd);

	return 0;
}
Exemple #2
0
static int h4300_kbd_remove(struct platform_device * pdev)
{       
	int irq_base = asic3_irq_base(a3);

	input_unregister_device(h4300_kbd);
	free_irq(irq_base + H4000_KEYBOARD_IRQ, NULL);

	return 0;
}
Exemple #3
0
static void snd_h4000_audio_hp_detection_on(void) {
	unsigned long flags;
	int irq;
	irq = asic3_irq_base(asic3) + H4000_HEADPHONE_IN_IRQ;
	request_irq(irq, snd_h4000_audio_hp_isr,
			SA_SAMPLE_RANDOM, "Earphone jack", NULL);
	local_irq_save(flags);
	snd_uda1380_hp_detected(&uda, snd_h4000_audio_hp_detect());
	local_irq_restore(flags);
}
Exemple #4
0
static inline int snd_h4000_audio_hp_detect(void) {
	int irq, hp_in;
	irq = asic3_irq_base(asic3) + H4000_HEADPHONE_IN_IRQ;
	hp_in = ((asic3_get_gpio_status_d(asic3) & GPIOD_HEADPHONE_IN_N) == 0);
	if (hp_in)
		set_irq_type(irq, IRQT_RISING);
	else
		set_irq_type(irq, IRQT_FALLING);
	return hp_in;
}
static void snd_htcathena_audio_hp_detection_on(void)
{
    unsigned long flags;
    int irq;

#if 0
    irq = asic3_irq_base( &htcathena_asic3.dev ) + ASIC3_GPIOB_IRQ_BASE + GPIOB_EARPHONE_N;
    if (request_irq(irq, snd_htcathena_audio_hp_isr, SA_INTERRUPT | SA_SAMPLE_RANDOM, "HTC Athena Headphone Jack", NULL) != 0)
        return;
    set_irq_type(irq, IRQ_TYPE_EDGE_FALLING);
#endif

    local_irq_save(flags);
    snd_ak4641_hp_detected(&ak, snd_htcathena_audio_hp_detect());
    local_irq_restore(flags);
}
Exemple #6
0
static void snd_h4000_audio_hp_detection_off(void) {
	free_irq(asic3_irq_base(asic3) + H4000_HEADPHONE_IN_IRQ, NULL);
}