Thread (3 messages) flat view 3 messages, 3 authors, 2016-11-28

Re: [PATCH RFC] HID: cp2112: add IRQ chip handling

From: Antonio Borneo <hidden>
Date: 2016-11-26 21:57:21
Also in: lkml

On Mon, Nov 21, 2016 at 12:07 PM, Benjamin Tissoires
[off-list ref] wrote:
The GPIO part doesn't provide interrupts when GPIO are toggled.
So use a polling mechanism if someone requests a GPIO as an IRQ.

Signed-off-by: Benjamin Tissoires <redacted>
---

I am currently running this patch in my local tree.
It allows to attach a SMBus device completely on the CP2112, with a simple
definition at the end of probe:

        {
                struct i2c_client *client;
                struct i2c_hid_platform_data pdata = {
                        .hid_descriptor_address = 0x20,
                };
                struct i2c_board_info synaptics_info = {
                        I2C_BOARD_INFO("hid", 0x2c),
                        .platform_data = &pdata,
                };
                int irq = cp2112_allocate_irq(dev, 2);

                if (irq <= 0) {
                        dev_err(dev->gc.parent, "Failed to translate GPIO to IRQ\n");
                        goto err_sysfs_remove;
                }

                synaptics_info.irq = irq;
                irq_set_irq_type(irq, IRQ_TYPE_LEVEL_LOW);

                hid_device_io_start(hdev);

                /* give time for the device to initialize */
                msleep(500);

                client = i2c_new_device(&dev->adap, &synaptics_info);
                if (!client)
                        hid_err(hdev, "failed allocating Synaptics device\n");

        }

I wonder if we want to consider this upstream, given that the driver is only
used for development.
Ciao Benjamin,

for me it makes sense to push it upstream.
I also coded something similar 2+ years ago, but then my cp2112 got
broken before I could clean-up and submit the patches.
As far as I remember, Ellen was using cp2112 in a system in production.
For sure this driver is not widely used, but definitively it's not for
development use only.

Best Regards
Antonio
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help