|
@@ -23,13 +23,17 @@
|
|
|
/**
|
|
|
* iio_simple_dummy_read_event_config() - is event enabled?
|
|
|
* @indio_dev: the device instance data
|
|
|
- * @event_code: event code of the event being queried
|
|
|
+ * @chan: channel for the event whose state is being queried
|
|
|
+ * @type: type of the event whose state is being queried
|
|
|
+ * @dir: direction of the vent whose state is being queried
|
|
|
*
|
|
|
* This function would normally query the relevant registers or a cache to
|
|
|
* discover if the event generation is enabled on the device.
|
|
|
*/
|
|
|
int iio_simple_dummy_read_event_config(struct iio_dev *indio_dev,
|
|
|
- u64 event_code)
|
|
|
+ const struct iio_chan_spec *chan,
|
|
|
+ enum iio_event_type type,
|
|
|
+ enum iio_event_direction dir)
|
|
|
{
|
|
|
struct iio_dummy_state *st = iio_priv(indio_dev);
|
|
|
|
|
@@ -39,7 +43,9 @@ int iio_simple_dummy_read_event_config(struct iio_dev *indio_dev,
|
|
|
/**
|
|
|
* iio_simple_dummy_write_event_config() - set whether event is enabled
|
|
|
* @indio_dev: the device instance data
|
|
|
- * @event_code: event code of event being enabled/disabled
|
|
|
+ * @chan: channel for the event whose state is being set
|
|
|
+ * @type: type of the event whose state is being set
|
|
|
+ * @dir: direction of the vent whose state is being set
|
|
|
* @state: whether to enable or disable the device.
|
|
|
*
|
|
|
* This function would normally set the relevant registers on the devices
|
|
@@ -47,7 +53,9 @@ int iio_simple_dummy_read_event_config(struct iio_dev *indio_dev,
|
|
|
* value.
|
|
|
*/
|
|
|
int iio_simple_dummy_write_event_config(struct iio_dev *indio_dev,
|
|
|
- u64 event_code,
|
|
|
+ const struct iio_chan_spec *chan,
|
|
|
+ enum iio_event_type type,
|
|
|
+ enum iio_event_direction dir,
|
|
|
int state)
|
|
|
{
|
|
|
struct iio_dummy_state *st = iio_priv(indio_dev);
|
|
@@ -56,12 +64,11 @@ int iio_simple_dummy_write_event_config(struct iio_dev *indio_dev,
|
|
|
* Deliberately over the top code splitting to illustrate
|
|
|
* how this is done when multiple events exist.
|
|
|
*/
|
|
|
- switch (IIO_EVENT_CODE_EXTRACT_CHAN_TYPE(event_code)) {
|
|
|
+ switch (chan->type) {
|
|
|
case IIO_VOLTAGE:
|
|
|
- switch (IIO_EVENT_CODE_EXTRACT_TYPE(event_code)) {
|
|
|
+ switch (type) {
|
|
|
case IIO_EV_TYPE_THRESH:
|
|
|
- if (IIO_EVENT_CODE_EXTRACT_DIR(event_code) ==
|
|
|
- IIO_EV_DIR_RISING)
|
|
|
+ if (dir == IIO_EV_DIR_RISING)
|
|
|
st->event_en = state;
|
|
|
else
|
|
|
return -EINVAL;
|
|
@@ -79,7 +86,10 @@ int iio_simple_dummy_write_event_config(struct iio_dev *indio_dev,
|
|
|
/**
|
|
|
* iio_simple_dummy_read_event_value() - get value associated with event
|
|
|
* @indio_dev: device instance specific data
|
|
|
- * @event_code: event code for the event whose value is being queried
|
|
|
+ * @chan: channel for the event whose value is being read
|
|
|
+ * @type: type of the event whose value is being read
|
|
|
+ * @dir: direction of the vent whose value is being read
|
|
|
+ * @info: info type of the event whose value is being read
|
|
|
* @val: value for the event code.
|
|
|
*
|
|
|
* Many devices provide a large set of events of which only a subset may
|
|
@@ -89,25 +99,34 @@ int iio_simple_dummy_write_event_config(struct iio_dev *indio_dev,
|
|
|
* the enabled event is changed.
|
|
|
*/
|
|
|
int iio_simple_dummy_read_event_value(struct iio_dev *indio_dev,
|
|
|
- u64 event_code,
|
|
|
- int *val)
|
|
|
+ const struct iio_chan_spec *chan,
|
|
|
+ enum iio_event_type type,
|
|
|
+ enum iio_event_direction dir,
|
|
|
+ enum iio_event_info info,
|
|
|
+ int *val, int *val2)
|
|
|
{
|
|
|
struct iio_dummy_state *st = iio_priv(indio_dev);
|
|
|
|
|
|
*val = st->event_val;
|
|
|
|
|
|
- return 0;
|
|
|
+ return IIO_VAL_INT;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* iio_simple_dummy_write_event_value() - set value associate with event
|
|
|
* @indio_dev: device instance specific data
|
|
|
- * @event_code: event code for the event whose value is being set
|
|
|
+ * @chan: channel for the event whose value is being set
|
|
|
+ * @type: type of the event whose value is being set
|
|
|
+ * @dir: direction of the vent whose value is being set
|
|
|
+ * @info: info type of the event whose value is being set
|
|
|
* @val: the value to be set.
|
|
|
*/
|
|
|
int iio_simple_dummy_write_event_value(struct iio_dev *indio_dev,
|
|
|
- u64 event_code,
|
|
|
- int val)
|
|
|
+ const struct iio_chan_spec *chan,
|
|
|
+ enum iio_event_type type,
|
|
|
+ enum iio_event_direction dir,
|
|
|
+ enum iio_event_info info,
|
|
|
+ int val, int val2)
|
|
|
{
|
|
|
struct iio_dummy_state *st = iio_priv(indio_dev);
|
|
|
|