linux/include/linux/iio/events.h
<<
>>
Prefs
   1/* The industrial I/O - event passing to userspace
   2 *
   3 * Copyright (c) 2008-2011 Jonathan Cameron
   4 *
   5 * This program is free software; you can redistribute it and/or modify it
   6 * under the terms of the GNU General Public License version 2 as published by
   7 * the Free Software Foundation.
   8 */
   9#ifndef _IIO_EVENTS_H_
  10#define _IIO_EVENTS_H_
  11
  12#include <linux/iio/types.h>
  13#include <uapi/linux/iio/events.h>
  14
  15/**
  16 * IIO_EVENT_CODE() - create event identifier
  17 * @chan_type:  Type of the channel. Should be one of enum iio_chan_type.
  18 * @diff:       Whether the event is for an differential channel or not.
  19 * @modifier:   Modifier for the channel. Should be one of enum iio_modifier.
  20 * @direction:  Direction of the event. One of enum iio_event_direction.
  21 * @type:       Type of the event. Should be one of enum iio_event_type.
  22 * @chan:       Channel number for non-differential channels.
  23 * @chan1:      First channel number for differential channels.
  24 * @chan2:      Second channel number for differential channels.
  25 */
  26
  27#define IIO_EVENT_CODE(chan_type, diff, modifier, direction,            \
  28                       type, chan, chan1, chan2)                        \
  29        (((u64)type << 56) | ((u64)diff << 55) |                        \
  30         ((u64)direction << 48) | ((u64)modifier << 40) |               \
  31         ((u64)chan_type << 32) | (((u16)chan2) << 16) | ((u16)chan1) | \
  32         ((u16)chan))
  33
  34
  35/**
  36 * IIO_MOD_EVENT_CODE() - create event identifier for modified channels
  37 * @chan_type:  Type of the channel. Should be one of enum iio_chan_type.
  38 * @number:     Channel number.
  39 * @modifier:   Modifier for the channel. Should be one of enum iio_modifier.
  40 * @type:       Type of the event. Should be one of enum iio_event_type.
  41 * @direction:  Direction of the event. One of enum iio_event_direction.
  42 */
  43
  44#define IIO_MOD_EVENT_CODE(chan_type, number, modifier,         \
  45                           type, direction)                             \
  46        IIO_EVENT_CODE(chan_type, 0, modifier, direction, type, number, 0, 0)
  47
  48/**
  49 * IIO_UNMOD_EVENT_CODE() - create event identifier for unmodified channels
  50 * @chan_type:  Type of the channel. Should be one of enum iio_chan_type.
  51 * @number:     Channel number.
  52 * @type:       Type of the event. Should be one of enum iio_event_type.
  53 * @direction:  Direction of the event. One of enum iio_event_direction.
  54 */
  55
  56#define IIO_UNMOD_EVENT_CODE(chan_type, number, type, direction)        \
  57        IIO_EVENT_CODE(chan_type, 0, 0, direction, type, number, 0, 0)
  58
  59#endif
  60