On 09/09/2019 11.45, Sean Nyekjaer wrote:
+int st_lsm6dsx_event_setup(struct st_lsm6dsx_hw *hw, int state)
+{
+ int err;
+ u8 enable = 0;
+
+ if (!hw->settings->int1_func_addr)
+ return -ENOTSUPP;
+
+ enable = state ? hw->settings->event_settings.enable_reg.mask : 0;
+
+ err = regmap_update_bits(hw->regmap,
+ hw->settings->event_settings.enable_reg.addr,
+ hw->settings->event_settings.enable_reg.mask,
+ enable);
+ if (err < 0)
+ return err;
+
+ enable = state ? hw->irq_routing.mask : 0;
+
+ /* Enable wakeup interrupt */
+ return regmap_update_bits(hw->regmap, hw->irq_routing.addr,
+ hw->irq_routing.mask,
+ enable);
+}
+
+static int st_lsm6dsx_read_event(struct iio_dev *iio_dev,
+ 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 st_lsm6dsx_sensor *sensor = iio_priv(iio_dev);
+ struct st_lsm6dsx_hw *hw = sensor->hw;
+
+ if (type != IIO_EV_TYPE_THRESH)
+ return -EINVAL;
+
+ *val2 = 0;
+ *val = hw->event_threshold;
+
+ return IIO_VAL_INT;
+}
For a device that not support wake events the user will get a:
root@board:/sys/bus/iio/devices/iio:device2# echo 1 >
events/in_accel_x_thresh_either_en
-sh: echo: write error: Unknown error 524
/Sean