1 2#include "../sysfs.h" 3 4/* Accelerometer types of attribute */ 5#define IIO_DEV_ATTR_ACCEL_OFFSET(_mode, _show, _store, _addr) \ 6 IIO_DEVICE_ATTR(accel_offset, _mode, _show, _store, _addr) 7 8#define IIO_DEV_ATTR_ACCEL_X_OFFSET(_mode, _show, _store, _addr) \ 9 IIO_DEVICE_ATTR(accel_x_offset, _mode, _show, _store, _addr) 10 11#define IIO_DEV_ATTR_ACCEL_Y_OFFSET(_mode, _show, _store, _addr) \ 12 IIO_DEVICE_ATTR(accel_y_offset, _mode, _show, _store, _addr) 13 14#define IIO_DEV_ATTR_ACCEL_Z_OFFSET(_mode, _show, _store, _addr) \ 15 IIO_DEVICE_ATTR(accel_z_offset, _mode, _show, _store, _addr) 16 17#define IIO_DEV_ATTR_ACCEL_X_GAIN(_mode, _show, _store, _addr) \ 18 IIO_DEVICE_ATTR(accel_x_gain, _mode, _show, _store, _addr) 19 20#define IIO_DEV_ATTR_ACCEL_Y_GAIN(_mode, _show, _store, _addr) \ 21 IIO_DEVICE_ATTR(accel_y_gain, _mode, _show, _store, _addr) 22 23#define IIO_DEV_ATTR_ACCEL_Z_GAIN(_mode, _show, _store, _addr) \ 24 IIO_DEVICE_ATTR(accel_z_gain, _mode, _show, _store, _addr) 25 26#define IIO_DEV_ATTR_ACCEL(_show, _addr) \ 27 IIO_DEVICE_ATTR(accel_raw, S_IRUGO, _show, NULL, _addr) 28 29#define IIO_DEV_ATTR_ACCEL_X(_show, _addr) \ 30 IIO_DEVICE_ATTR(accel_x_raw, S_IRUGO, _show, NULL, _addr) 31 32#define IIO_DEV_ATTR_ACCEL_Y(_show, _addr) \ 33 IIO_DEVICE_ATTR(accel_y_raw, S_IRUGO, _show, NULL, _addr) 34 35#define IIO_DEV_ATTR_ACCEL_Z(_show, _addr) \ 36 IIO_DEVICE_ATTR(accel_z_raw, S_IRUGO, _show, NULL, _addr) 37 38/* Thresholds are somewhat chip dependent - may need quite a few defs here */ 39/* For unified thresholds (shared across all directions */ 40 41/** 42 * IIO_DEV_ATTR_ACCEL_THRESH: unified threshold 43 * @_mode: read/write 44 * @_show: read detector threshold value 45 * @_store: write detector threshold value 46 * @_addr: driver specific data, typically a register address 47 * 48 * This one is for cases where as single threshold covers all directions 49 **/ 50#define IIO_DEV_ATTR_ACCEL_THRESH(_mode, _show, _store, _addr) \ 51 IIO_DEVICE_ATTR(thresh, _mode, _show, _store, _addr) 52 53/** 54 * IIO_DEV_ATTR_ACCEL_THRESH_X: independant direction threshold, x axis 55 * @_mode: readable / writable 56 * @_show: read x axis detector threshold value 57 * @_store: write x axis detector threshold value 58 * @_addr: device driver dependant, typically a register address 59 **/ 60#define IIO_DEV_ATTR_ACCEL_THRESH_X(_mode, _show, _store, _addr) \ 61 IIO_DEVICE_ATTR(thresh_accel_x, _mode, _show, _store, _addr) 62 63#define IIO_DEV_ATTR_ACCEL_THRESH_Y(_mode, _show, _store, _addr) \ 64 IIO_DEVICE_ATTR(thresh_accel_y, _mode, _show, _store, _addr) 65 66#define IIO_DEV_ATTR_ACCEL_THRESH_Z(_mode, _show, _store, _addr) \ 67 IIO_DEVICE_ATTR(thresh_accel_z, _mode, _show, _store, _addr) 68 69/** 70 * IIO_EVENT_ATTR_ACCEL_X_HIGH: threshold event, x acceleration 71 * @_show: read x acceleration high threshold 72 * @_store: write x acceleration high threshold 73 * @_mask: device dependant, typically a bit mask 74 * @_handler: the iio_handler associated with this attribute 75 **/ 76#define IIO_EVENT_ATTR_ACCEL_X_HIGH(_show, _store, _mask, _handler) \ 77 IIO_EVENT_ATTR(accel_x_high, _show, _store, _mask, _handler) 78 79/** 80 * IIO_EVENT_ATTR_ACCEL_X_HIGH_SH: threshold event, x accel high, shared handler 81 * @_evlist: event list used to share the handler 82 * @_show: attribute read 83 * @_store: attribute write 84 * @_mask: driver specific data, typically a bit mask 85 **/ 86#define IIO_EVENT_ATTR_ACCEL_X_HIGH_SH(_evlist, _show, _store, _mask) \ 87 IIO_EVENT_ATTR_SH(accel_x_high, _evlist, _show, _store, _mask) 88 89/** 90 * IIO_EVENT_CODE_ACCEL_X_HIGH - event code for x axis high accel threshold 91 **/ 92#define IIO_EVENT_CODE_ACCEL_X_HIGH IIO_EVENT_CODE_ACCEL_BASE 93 94#define IIO_EVENT_ATTR_ACCEL_Y_HIGH(_show, _store, _mask, _handler) \ 95 IIO_EVENT_ATTR(accel_y_high, _show, _store, _mask, _handler) 96 97#define IIO_EVENT_ATTR_ACCEL_Y_HIGH_SH(_evlist, _show, _store, _mask) \ 98 IIO_EVENT_ATTR_SH(accel_y_high, _evlist, _show, _store, _mask) 99 100#define IIO_EVENT_CODE_ACCEL_Y_HIGH (IIO_EVENT_CODE_ACCEL_BASE + 1) 101 102#define IIO_EVENT_ATTR_ACCEL_Z_HIGH(_show, _store, _mask, _handler) \ 103 IIO_EVENT_ATTR(accel_z_high, _show, _store, _mask, _handler) 104 105#define IIO_EVENT_ATTR_ACCEL_Z_HIGH_SH(_evlist, _show, _store, _mask) \ 106 IIO_EVENT_ATTR_SH(accel_z_high, _evlist, _show, _store, _mask) 107 108#define IIO_EVENT_CODE_ACCEL_Z_HIGH (IIO_EVENT_CODE_ACCEL_BASE + 2) 109 110#define IIO_EVENT_ATTR_ACCEL_X_LOW(_show, _store, _mask, _handler) \ 111 IIO_EVENT_ATTR(accel_x_low, _show, _store, _mask, _handler) 112 113#define IIO_EVENT_ATTR_ACCEL_X_LOW_SH(_evlist, _show, _store, _mask) \ 114 IIO_EVENT_ATTR_SH(accel_x_low, _evlist, _show, _store, _mask) 115 116#define IIO_EVENT_CODE_ACCEL_X_LOW (IIO_EVENT_CODE_ACCEL_BASE + 3) 117 118#define IIO_EVENT_ATTR_ACCEL_Y_LOW(_show, _store, _mask, _handler) \ 119 IIO_EVENT_ATTR(accel_y_low, _show, _store, _mask, _handler) 120 121#define IIO_EVENT_ATTR_ACCEL_Y_LOW_SH(_evlist, _show, _store, _mask)\ 122 IIO_EVENT_ATTR_SH(accel_y_low, _evlist, _show, _store, _mask) 123 124#define IIO_EVENT_CODE_ACCEL_Y_LOW (IIO_EVENT_CODE_ACCEL_BASE + 4) 125 126#define IIO_EVENT_ATTR_ACCEL_Z_LOW(_show, _store, _mask, _handler) \ 127 IIO_EVENT_ATTR(accel_z_low, _show, _store, _mask, _handler) 128 129#define IIO_EVENT_ATTR_ACCEL_Z_LOW_SH(_evlist, _show, _store, _mask) \ 130 IIO_EVENT_ATTR_SH(accel_z_low, _evlist, _show, _store, _mask) 131 132#define IIO_EVENT_CODE_ACCEL_Z_LOW (IIO_EVENT_CODE_ACCEL_BASE + 5) 133 134#define IIO_EVENT_ATTR_FREE_FALL_DETECT(_show, _store, _mask, _handler) \ 135 IIO_EVENT_ATTR(free_fall, _show, _store, _mask, _handler) 136 137#define IIO_EVENT_ATTR_FREE_FALL_DETECT_SH(_evlist, _show, _store, _mask) \ 138 IIO_EVENT_ATTR_SH(free_fall, _evlist, _show, _store, _mask) 139 140#define IIO_EVENT_CODE_FREE_FALL (IIO_EVENT_CODE_ACCEL_BASE + 6) 141 142 143#define IIO_EVENT_ATTR_ACCEL_X_ROC_HIGH_SH(_evlist, _show, _store, _mask) \ 144 IIO_EVENT_ATTR_SH(accel_x_roc_high, _evlist, _show, _store, _mask) 145 146#define IIO_EVENT_CODE_ACCEL_X_ROC_HIGH (IIO_EVENT_CODE_ACCEL_BASE + 10) 147 148#define IIO_EVENT_ATTR_ACCEL_X_ROC_LOW_SH(_evlist, _show, _store, _mask) \ 149 IIO_EVENT_ATTR_SH(accel_x_roc_low, _evlist, _show, _store, _mask) 150 151#define IIO_EVENT_CODE_ACCEL_X_ROC_LOW (IIO_EVENT_CODE_ACCEL_BASE + 11) 152 153#define IIO_EVENT_ATTR_ACCEL_Y_ROC_HIGH_SH(_evlist, _show, _store, _mask) \ 154 IIO_EVENT_ATTR_SH(accel_y_roc_high, _evlist, _show, _store, _mask) 155 156#define IIO_EVENT_CODE_ACCEL_Y_ROC_HIGH (IIO_EVENT_CODE_ACCEL_BASE + 12) 157 158#define IIO_EVENT_ATTR_ACCEL_Y_ROC_LOW_SH(_evlist, _show, _store, _mask) \ 159 IIO_EVENT_ATTR_SH(accel_y_roc_low, _evlist, _show, _store, _mask) 160 161#define IIO_EVENT_CODE_ACCEL_Y_ROC_LOW (IIO_EVENT_CODE_ACCEL_BASE + 13) 162 163#define IIO_EVENT_ATTR_ACCEL_Z_ROC_HIGH_SH(_evlist, _show, _store, _mask) \ 164 IIO_EVENT_ATTR_SH(accel_z_roc_high, _evlist, _show, _store, _mask) 165 166#define IIO_EVENT_CODE_ACCEL_Z_ROC_HIGH (IIO_EVENT_CODE_ACCEL_BASE + 14) 167 168#define IIO_EVENT_ATTR_ACCEL_Z_ROC_LOW_SH(_evlist, _show, _store, _mask) \ 169 IIO_EVENT_ATTR_SH(accel_z_roc_low, _evlist, _show, _store, _mask) 170 171#define IIO_EVENT_CODE_ACCEL_Z_ROC_LOW (IIO_EVENT_CODE_ACCEL_BASE + 15) 172