History log of /fuchsia/zircon/system/dev/input/i2c-hid/i2c-hid.c
Revision Date Author Comments
# f6c280b9 26-Sep-2018 Andres Oportus <andresoportus@google.com>

[i2c] Remove I2C IOCTLs

Removed add/rm slave and set frequency IOCTL functionality as we
expect to manage devices via board definitions and removed the calls
from the 'i2c' uapp. Also removed the slave irq IOCTLs which is now
unsued. Kept the transfer IOCTL for future app access to I2C
transactions.

ZX-2621 #comment Remove I2C IOCTLs.

Test: Boots on Pixelbook.

Change-Id: I6f0d201ecaf05a47bb88daa958affdf8b5c65c4d


# 5a9d8c6d 25-Sep-2018 Andres Oportus <andresoportus@google.com>

[dev][i2c][intel-i2c] Use I2C protocol instead of I2C get IRQ IOCTL

The Intel I2C driver supports IOCTLs that are used by other drivers,
this change replaces drivers calls to IOCTL_I2C_SLAVE_IRQ with
a new I2C protocol call i2c_get_interrupt(). This is a step
towards removing IOCTL based communication between drivers.

ZX-2621 #comment Use I2C protocol instead of I2C get IRQ IOCTL

Test: 'hidtouch' in Acer12 (touch panel HID support gets an I2C IRQ)

Change-Id: I742201ce81ed20b84622e736df4ca29804a37e65


# 5ccdc2c1 24-Sep-2018 Andres Oportus <andresoportus@google.com>

[dev][i2c][intel-i2c] Use I2C protocol instead of I2C transfer IOCTL

The Intel I2C driver supports IOCTLs that are used by other drivers,
this change replaces drivers calls to IOCTL_I2C_SLAVE_TRANSFER with
the I2C protocol's calls i2c_transact() and friends. This is a step
towards removing IOCTL based communication between drivers.

ZX-2621 #comment Use I2C protocol instead of I2C transfer IOCTL

Test: 'hidtouch' and 'audio' uapps in Pixelbook (touch panel and audio use
I2C) and 'hidtouch' in Acer12 (touch panel uses I2C)

Change-Id: Ic10ed2acc2ac69ed1ec2172f48392180aa0c37e6


# 47cff597 26-Jun-2018 George Kulakowski <kulakowski@google.com>

[clock] zx_clock_get(ZX_CLOCK_MONOTONIC) -> zx_clock_get_monotonic()

Test: no functional change

Change-Id: Iaa513c521d96b178458acc707be3646067971701


# 937a9826 30-Apr-2018 Brijen Raval <braval@google.com>

[interrupts][syscall] Rename syscalls zx_irq_* to zx_interrupt_*

Change-Id: Ie01f65f29c1fd6171463340e2a5c103ff8e704b6


# cca25b86 26-Apr-2018 Brijen Raval <braval@google.com>

[syscall][irq] Remove (disabled) old irq syscall implementations

Change-Id: I2f4a4f42e174dbab5ac4eb84255955fa805cd75d


# 46b12f5f 04-Apr-2018 Brijen Raval <braval@google.com>

[interrupt][syscalls] Adapt to new interrupt syscalls

ZX-2024
Change-Id: I534d4087d0dcf199ea38ced0fd2f0af98548b719


# 7ec17b2c 09-Apr-2018 Yvonne Yip <yky@google.com>

[dev][i2c-hid] bind using protocol id

Change-Id: I909d1697d89cee6ca85164879040572825ce0318


# ec9928ea 22-Jan-2018 Adam Barth <abarth@google.com>

[syscalls] Rename zx_time_get to zx_clock_get

This change frees up the get() method in for a zx_time_t accessor in the
zx::time class.

Change-Id: Ia4cdc7e3e558df5ba0cfeedb27a442abf4d6f305


# 038c9dc5 27-Dec-2017 Mike Voydanoff <voydanoff@google.com>

[syscalls][ddk] Interrupt syscall improvements:

It is now possible to wait for multiple interrupts on a single interrupt handle.
The zx_interrupt_bind() syscall is used to bind an interrupt vector to
an interrupt handle, allowing up to 62 interrupt vectors per handle.

The zx_interrupt_get_timestamp() syscall can now be used to retrieve a
timestamp for an interrupt.

Virtual interrupts are now supported. zx_interrupt_bind() can be used to
designate an interrupt slot as a virtual interrupt, and the virtual interrupt
can be signaled using the zx_interrupt_signal() syscall.

The zx_interrupt_complete() syscall has been removed.
Instead, zx_interrupt_wait() now handles unmasking the interrupt
at the right time depending on whether the interrupt is edge or level triggered.

Slot ZX_INTERRUPT_SLOT_USER is reserved as a virtual interrupt, and is typically
used with zx_interrupt_signal() to unblock interrupt threads so they can exit
at driver shutdown or to perform periodic work.

Currently PCI interrupt handles can only be bound to a single interrupt vector,
but it is possible to bind virtual interrupts to PCI interrupt handles.

ZX-1469 #done
ZX-1471 #done

Change-Id: I48c14183c1b9ecd437c8b1ce0d25326b7532e973


# 2e0fc961 05-Nov-2017 Mike Voydanoff <voydanoff@google.com>

[ddk] Remove driver bind() cookie and unbind() callback

Also removed "owner" and "owner_cookie" from internal zx_device_t struct

Adjusted intel-hda audio drivers to create devices to hold driver context
rather than using the driver bind cookie.

Change-Id: I0eca7f6fa3b155be71843291812e7aa9fea5bf55


# 0614330b 03-Nov-2017 Todd Eisenberger <teisenbe@google.com>

[i2c-hid] For noirq devices, retry on read failure

On Acer12, which runs in noirq mode, the touchpanel driver instance
fails from a missing ACK of the address byte during this device_read.

The noirq mode doesn't follow the I2C-HID spec, and may be triggering
some undefined conditions by reading too early. If it encounters a read
failure, just try again.

ZX-1143 #comment Maybe fix?

Change-Id: Ic965aa68ff8de2defcb800079edd3c08de1d79fa


# f4b2ff04 23-Oct-2017 Brian Swetland <swetland@google.com>

[ddk] rename dprintf() to zxlogf() to avoid conflicts

dprintf is still defined by ddk/debug.h but with a deprecation warning

Change-Id: I00b34803571c468007e069c1da6a292feba2bc3c


# a2b02203 29-Sep-2017 Todd Eisenberger <teisenbe@google.com>

[i2c-hid] Implement support for interrupts

We still don't discover the interrupts properly, but this implements
interrupt handling as described in the specification.

ZX-1182

Change-Id: Id84fae4196b32153943be56397b7b4d5f430f117


# e32b9d3f 26-Sep-2017 Tim Kilbourn <tkilbourn@google.com>

[hid] Separate zx_status_t from out_len on get_report

Change-Id: I732b657a4ef574c1671773c22ffc0350ecbc38c1


# 691c0735 25-Sep-2017 Todd Eisenberger <teisenbe@google.com>

[i2c-hid] Add workaround for lack of interrupts

It seems to be implementation-defined what reading from the
input register returns if you haven't received an interrupt yet.
Some devices we've seen return a 0 length report, and some return
the last seen report. This handles the last seen report case.

ZX-1103 #comment Workaround for duplicate events

Change-Id: Ic05dedb2bfbc10c1010eb680d4532e0519b87b45


# f3e2126c 12-Sep-2017 Roland McGrath <mcgrathr@google.com>

[zx] Magenta -> Zircon

The Great Renaming is here!

Change-Id: I3229bdeb2a3d0e40fb4db6fec8ca7d971fbffb94


# d576558b 05-Sep-2017 Tim Kilbourn <tkilbourn@google.com>

[i2c-hid] Use dprintf for logging

Change-Id: I434eec6e551c2a698324d0676752606871e0eac0


# 4de2decb 05-Jun-2017 Mike Voydanoff <voydanoff@google.com>

[i2c][hid] Hack in some more I2C-HID devices

Change-Id: If57a704829dd7b4cc93f80af07f96883dfc5177e


# 78b9a7b6 27-Jul-2017 Todd Eisenberger <teisenbe@google.com>

[i2c-hid] Make timeout failures non-fatal

US-309 #done

Change-Id: Idde23be73dd918832a2c780c269d5aafe361d240


# dc6ccb34 16-Jun-2017 Mike Voydanoff <voydanoff@google.com>

[udev] Remove unneeded mx_device_t references from various drivers

Change-Id: I0e99337e07ba169875c08ca6a9955c8ec749fb0a


# 5a43e3e0 15-Jun-2017 Brian Swetland <swetland@google.com>

[ddk] device_op_xyz() -> device_xyz()

Makes the device API a little nicer.

deprecated wrappers provided for the old versions

Change-Id: I84e17282e91364c882085a05fe7bba12101c5f3c


# cd707bf9 14-Jun-2017 Brian Swetland <swetland@google.com>

[ddk][hid] new protocol support (7 of n)

Migrate MX_PROTOCOL_HIDBUS to the new style.

Change-Id: I13c85ce8a30203b3e75e2f8241ceb62046cd0d4d


# 317173fd 08-Jun-2017 Tim Kilbourn <tkilbourn@google.com>

[dev][input] Use new magenta error codes

Change-Id: I2cd1567ecff7ad60aeffad23d2313029a7c01a6b


# a477e2cb 07-Jun-2017 Brian Swetland <swetland@google.com>

[udev][i2c-hid] rename

Change-Id: Idf302540df92337139f9afcff397f510ea1a7826