Ejemplo n.º 1
0
static int wmt_kpad_probe(struct platform_device *pdev)
{
	int ret = 0;
	DPRINTK("Start\n");
	kpad_dev = input_allocate_device();
	if (kpad_dev == NULL) {
		DPRINTK("End 1\n");
		return -1;
	}
	/*
	 * Simply check resources parameters.
	 */
	if (pdev->num_resources != 1) {
		ret = -ENODEV;
		goto kpad_probe_out;
	}

	kpad.irq = pdev->resource[0].start;
	kpad_dev->open = kpad_open,
	kpad_dev->close = kpad_close,

	kpad_open(kpad_dev);
	DPRINTK("End2\n");
kpad_probe_out:

#ifndef CONFIG_SKIP_DRIVER_MSG
	printk(KERN_INFO "WMT keypad driver initialized: %s\n",
		  (ret == 0) ? "ok" : "failed");
#endif
	DPRINTK("End3\n");
	return ret;
}
Ejemplo n.º 2
0
static int wmt_kpad_probe(struct platform_device *pdev)
{
	unsigned long base;
	int ret = 0;
	DPRINTK("Start\n");
	kpad_dev = input_allocate_device();
	if (kpad_dev == NULL) {
		DPRINTK("End 1\n");
		return -1;
	}
	/*
	 * Simply check resources parameters.
	 */
	if (pdev->num_resources < 2 || pdev->num_resources > 3) {
		ret = -ENODEV;
		goto kpad_probe_out;
	}

	base = pdev->resource[0].start;

	kpad.irq = pdev->resource[1].start;
#if 0    
	kpad.res = request_mem_region(base, KPAD_IO_SIZE, "keypad");
    
	if (!kpad.res || !kpad.irq) {
		ret = -ENODEV;
		goto kpad_probe_out;
	}
#endif    
	//kpad.regs = ioremap(base, KPAD_IO_SIZE);
	kpad.regs = (struct kpad_regs_s *)KPAD_BASE_ADDR;
    
	if (!kpad.regs) {
		ret = -ENOMEM;
		goto kpad_probe_out;
	}

	kpad_dev->open = kpad_open,
	kpad_dev->close = kpad_close,

	kpad_open(kpad_dev);
	DPRINTK("End2\n");
kpad_probe_out:

#ifndef CONFIG_SKIP_DRIVER_MSG
	printk(KERN_INFO "WMT keypad driver initialized: %s\n",
		  (ret == 0) ? "ok" : "failed");
#endif
	DPRINTK("End3\n");
	return ret;
}