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; }
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; }