static int imx_keypad_open(struct input_dev *dev) { struct imx_keypad *keypad = input_get_drvdata(dev); dev_dbg(&dev->dev, ">%s\n", __func__); /* We became active from now */ keypad->enabled = true; /* Enable the kpp clock */ clk_enable(keypad->clk); imx_keypad_config(keypad); /* Sanity control, not all the rows must be actived now. */ if ((readw(keypad->mmio_base + KPDR) & keypad->rows_en_mask) == 0) { dev_err(&dev->dev, "too many keys pressed, control pins initialisation\n"); goto open_err; } return 0; open_err: imx_keypad_close(dev); return -EIO; }
static int imx_keypad_open(struct input_dev *dev) { struct imx_keypad *keypad = input_get_drvdata(dev); dev_dbg(&dev->dev, ">%s\n", __func__); keypad->enabled = true; clk_enable(keypad->clk); imx_keypad_config(keypad); if ((readw(keypad->mmio_base + KPDR) & keypad->rows_en_mask) == 0) { dev_err(&dev->dev, "too many keys pressed, control pins initialisation\n"); goto open_err; } return 0; open_err: imx_keypad_close(dev); return -EIO; }