Hi Daniel, > + > +static int __init pcap_keys_probe(struct platform_device *pdev) > +{ > + int err = -ENOMEM; > + struct pcap_keys *pcap_keys; > + > + pcap_keys = kmalloc(sizeof(struct pcap_keys), GFP_KERNEL); > + if (!pcap_keys) > + return err; > + > + pcap_keys->pcap = platform_get_drvdata(pdev); > + > + pcap_keys->input = input_allocate_device(); > + if (!pcap_keys->input) > + goto fail; > + > + platform_set_drvdata(pdev, pcap_keys); > + pcap_keys->input->name = pdev->name; > + pcap_keys->input->phys = "pcap-keys/input0"; > + pcap_keys->input->dev.parent = &pdev->dev; > + > + pcap_keys->input->evbit[0] = BIT_MASK(EV_KEY) | BIT_MASK(EV_SW); > + set_bit(KEY_POWER, pcap_keys->input->keybit); > + set_bit(SW_HEADPHONE_INSERT, pcap_keys->input->swbit); > + set_bit(KEY_HP, pcap_keys->input->keybit); __set_bit please. > + > + err = request_irq(pcap_to_irq(pcap_keys->pcap, PCAP_IRQ_ONOFF), > + pcap_keys_handler, 0, "Power key", pcap_keys); > + if (err) > + goto fail_dev; > + > + err = request_irq(pcap_to_irq(pcap_keys->pcap, PCAP_IRQ_HS), > + pcap_keys_handler, 0, "Headphone jack", pcap_keys); > + if (err) > + goto fail_pwrkey; > + > + err = request_irq(pcap_to_irq(pcap_keys->pcap, PCAP_IRQ_MIC), > + pcap_keys_handler, 0, "MIC jack/button", pcap_keys); > + if (err) > + goto fail_jack; > + > + err = input_register_device(pcap_keys->input); > + if (err) > + goto fail_mic; Same comment as given in PCAP touchscreen driver. > + > +static int pcap_keys_remove(struct platform_device *pdev) > +{ > + struct pcap_keys *pcap_keys = platform_get_drvdata(pdev); > + > + free_irq(pcap_to_irq(pcap_keys->pcap, PCAP_IRQ_ONOFF), pcap_keys); > + free_irq(pcap_to_irq(pcap_keys->pcap, PCAP_IRQ_HS), pcap_keys); > + free_irq(pcap_to_irq(pcap_keys->pcap, PCAP_IRQ_MIC), pcap_keys); > + > + input_unregister_device(pcap_keys->input); > + kfree(pcap_keys); > + > + return 0; > +} > + > +static struct platform_driver pcap_keys_device_driver = { > + .probe = pcap_keys_probe, > + .remove = pcap_keys_remove, __devexit_p ? -- ---Trilok Soni http://triloksoni.wordpress.com http://www.linkedin.com/in/triloksoni -- To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html