|
@@ -472,356 +472,6 @@ enum { max1361,
|
|
|
max11647
|
|
|
};
|
|
|
|
|
|
-/* max1363 and max1368 tested - rest from data sheet */
|
|
|
-static const struct max1363_chip_info max1363_chip_info_tbl[] = {
|
|
|
- [max1361] = {
|
|
|
- .bits = 10,
|
|
|
- .int_vref_mv = 2048,
|
|
|
- .monitor_mode = 1,
|
|
|
- .mode_list = max1363_mode_list,
|
|
|
- .num_modes = ARRAY_SIZE(max1363_mode_list),
|
|
|
- .default_mode = s0to3,
|
|
|
- .channels = max1361_channels,
|
|
|
- .num_channels = ARRAY_SIZE(max1361_channels),
|
|
|
- },
|
|
|
- [max1362] = {
|
|
|
- .bits = 10,
|
|
|
- .int_vref_mv = 4096,
|
|
|
- .monitor_mode = 1,
|
|
|
- .mode_list = max1363_mode_list,
|
|
|
- .num_modes = ARRAY_SIZE(max1363_mode_list),
|
|
|
- .default_mode = s0to3,
|
|
|
- .channels = max1361_channels,
|
|
|
- .num_channels = ARRAY_SIZE(max1361_channels),
|
|
|
- },
|
|
|
- [max1363] = {
|
|
|
- .bits = 12,
|
|
|
- .int_vref_mv = 2048,
|
|
|
- .monitor_mode = 1,
|
|
|
- .mode_list = max1363_mode_list,
|
|
|
- .num_modes = ARRAY_SIZE(max1363_mode_list),
|
|
|
- .default_mode = s0to3,
|
|
|
- .channels = max1363_channels,
|
|
|
- .num_channels = ARRAY_SIZE(max1363_channels),
|
|
|
- },
|
|
|
- [max1364] = {
|
|
|
- .bits = 12,
|
|
|
- .int_vref_mv = 4096,
|
|
|
- .monitor_mode = 1,
|
|
|
- .mode_list = max1363_mode_list,
|
|
|
- .num_modes = ARRAY_SIZE(max1363_mode_list),
|
|
|
- .default_mode = s0to3,
|
|
|
- .channels = max1363_channels,
|
|
|
- .num_channels = ARRAY_SIZE(max1363_channels),
|
|
|
- },
|
|
|
- [max1036] = {
|
|
|
- .bits = 8,
|
|
|
- .int_vref_mv = 4096,
|
|
|
- .mode_list = max1236_mode_list,
|
|
|
- .num_modes = ARRAY_SIZE(max1236_mode_list),
|
|
|
- .default_mode = s0to3,
|
|
|
- .channels = max1036_channels,
|
|
|
- .num_channels = ARRAY_SIZE(max1036_channels),
|
|
|
- },
|
|
|
- [max1037] = {
|
|
|
- .bits = 8,
|
|
|
- .int_vref_mv = 2048,
|
|
|
- .mode_list = max1236_mode_list,
|
|
|
- .num_modes = ARRAY_SIZE(max1236_mode_list),
|
|
|
- .default_mode = s0to3,
|
|
|
- .channels = max1036_channels,
|
|
|
- .num_channels = ARRAY_SIZE(max1036_channels),
|
|
|
- },
|
|
|
- [max1038] = {
|
|
|
- .bits = 8,
|
|
|
- .int_vref_mv = 4096,
|
|
|
- .mode_list = max1238_mode_list,
|
|
|
- .num_modes = ARRAY_SIZE(max1238_mode_list),
|
|
|
- .default_mode = s0to11,
|
|
|
- .channels = max1038_channels,
|
|
|
- .num_channels = ARRAY_SIZE(max1038_channels),
|
|
|
- },
|
|
|
- [max1039] = {
|
|
|
- .bits = 8,
|
|
|
- .int_vref_mv = 2048,
|
|
|
- .mode_list = max1238_mode_list,
|
|
|
- .num_modes = ARRAY_SIZE(max1238_mode_list),
|
|
|
- .default_mode = s0to11,
|
|
|
- .channels = max1038_channels,
|
|
|
- .num_channels = ARRAY_SIZE(max1038_channels),
|
|
|
- },
|
|
|
- [max1136] = {
|
|
|
- .bits = 10,
|
|
|
- .int_vref_mv = 4096,
|
|
|
- .mode_list = max1236_mode_list,
|
|
|
- .num_modes = ARRAY_SIZE(max1236_mode_list),
|
|
|
- .default_mode = s0to3,
|
|
|
- .channels = max1136_channels,
|
|
|
- .num_channels = ARRAY_SIZE(max1136_channels),
|
|
|
- },
|
|
|
- [max1137] = {
|
|
|
- .bits = 10,
|
|
|
- .int_vref_mv = 2048,
|
|
|
- .mode_list = max1236_mode_list,
|
|
|
- .num_modes = ARRAY_SIZE(max1236_mode_list),
|
|
|
- .default_mode = s0to3,
|
|
|
- .channels = max1136_channels,
|
|
|
- .num_channels = ARRAY_SIZE(max1136_channels),
|
|
|
- },
|
|
|
- [max1138] = {
|
|
|
- .bits = 10,
|
|
|
- .int_vref_mv = 4096,
|
|
|
- .mode_list = max1238_mode_list,
|
|
|
- .num_modes = ARRAY_SIZE(max1238_mode_list),
|
|
|
- .default_mode = s0to11,
|
|
|
- .channels = max1138_channels,
|
|
|
- .num_channels = ARRAY_SIZE(max1138_channels),
|
|
|
- },
|
|
|
- [max1139] = {
|
|
|
- .bits = 10,
|
|
|
- .int_vref_mv = 2048,
|
|
|
- .mode_list = max1238_mode_list,
|
|
|
- .num_modes = ARRAY_SIZE(max1238_mode_list),
|
|
|
- .default_mode = s0to11,
|
|
|
- .channels = max1138_channels,
|
|
|
- .num_channels = ARRAY_SIZE(max1138_channels),
|
|
|
- },
|
|
|
- [max1236] = {
|
|
|
- .bits = 12,
|
|
|
- .int_vref_mv = 4096,
|
|
|
- .mode_list = max1236_mode_list,
|
|
|
- .num_modes = ARRAY_SIZE(max1236_mode_list),
|
|
|
- .default_mode = s0to3,
|
|
|
- .channels = max1236_channels,
|
|
|
- .num_channels = ARRAY_SIZE(max1236_channels),
|
|
|
- },
|
|
|
- [max1237] = {
|
|
|
- .bits = 12,
|
|
|
- .int_vref_mv = 2048,
|
|
|
- .mode_list = max1236_mode_list,
|
|
|
- .num_modes = ARRAY_SIZE(max1236_mode_list),
|
|
|
- .default_mode = s0to3,
|
|
|
- .channels = max1236_channels,
|
|
|
- .num_channels = ARRAY_SIZE(max1236_channels),
|
|
|
- },
|
|
|
- [max1238] = {
|
|
|
- .bits = 12,
|
|
|
- .int_vref_mv = 4096,
|
|
|
- .mode_list = max1238_mode_list,
|
|
|
- .num_modes = ARRAY_SIZE(max1238_mode_list),
|
|
|
- .default_mode = s0to11,
|
|
|
- .channels = max1238_channels,
|
|
|
- .num_channels = ARRAY_SIZE(max1238_channels),
|
|
|
- },
|
|
|
- [max1239] = {
|
|
|
- .bits = 12,
|
|
|
- .int_vref_mv = 2048,
|
|
|
- .mode_list = max1238_mode_list,
|
|
|
- .num_modes = ARRAY_SIZE(max1238_mode_list),
|
|
|
- .default_mode = s0to11,
|
|
|
- .channels = max1238_channels,
|
|
|
- .num_channels = ARRAY_SIZE(max1238_channels),
|
|
|
- },
|
|
|
- [max11600] = {
|
|
|
- .bits = 8,
|
|
|
- .int_vref_mv = 4096,
|
|
|
- .mode_list = max11607_mode_list,
|
|
|
- .num_modes = ARRAY_SIZE(max11607_mode_list),
|
|
|
- .default_mode = s0to3,
|
|
|
- .channels = max1036_channels,
|
|
|
- .num_channels = ARRAY_SIZE(max1036_channels),
|
|
|
- },
|
|
|
- [max11601] = {
|
|
|
- .bits = 8,
|
|
|
- .int_vref_mv = 2048,
|
|
|
- .mode_list = max11607_mode_list,
|
|
|
- .num_modes = ARRAY_SIZE(max11607_mode_list),
|
|
|
- .default_mode = s0to3,
|
|
|
- .channels = max1036_channels,
|
|
|
- .num_channels = ARRAY_SIZE(max1036_channels),
|
|
|
- },
|
|
|
- [max11602] = {
|
|
|
- .bits = 8,
|
|
|
- .int_vref_mv = 4096,
|
|
|
- .mode_list = max11608_mode_list,
|
|
|
- .num_modes = ARRAY_SIZE(max11608_mode_list),
|
|
|
- .default_mode = s0to7,
|
|
|
- .channels = max11602_channels,
|
|
|
- .num_channels = ARRAY_SIZE(max11602_channels),
|
|
|
- },
|
|
|
- [max11603] = {
|
|
|
- .bits = 8,
|
|
|
- .int_vref_mv = 2048,
|
|
|
- .mode_list = max11608_mode_list,
|
|
|
- .num_modes = ARRAY_SIZE(max11608_mode_list),
|
|
|
- .default_mode = s0to7,
|
|
|
- .channels = max11602_channels,
|
|
|
- .num_channels = ARRAY_SIZE(max11602_channels),
|
|
|
- },
|
|
|
- [max11604] = {
|
|
|
- .bits = 8,
|
|
|
- .int_vref_mv = 4098,
|
|
|
- .mode_list = max1238_mode_list,
|
|
|
- .num_modes = ARRAY_SIZE(max1238_mode_list),
|
|
|
- .default_mode = s0to11,
|
|
|
- .channels = max1238_channels,
|
|
|
- .num_channels = ARRAY_SIZE(max1238_channels),
|
|
|
- },
|
|
|
- [max11605] = {
|
|
|
- .bits = 8,
|
|
|
- .int_vref_mv = 2048,
|
|
|
- .mode_list = max1238_mode_list,
|
|
|
- .num_modes = ARRAY_SIZE(max1238_mode_list),
|
|
|
- .default_mode = s0to11,
|
|
|
- .channels = max1238_channels,
|
|
|
- .num_channels = ARRAY_SIZE(max1238_channels),
|
|
|
- },
|
|
|
- [max11606] = {
|
|
|
- .bits = 10,
|
|
|
- .int_vref_mv = 4096,
|
|
|
- .mode_list = max11607_mode_list,
|
|
|
- .num_modes = ARRAY_SIZE(max11607_mode_list),
|
|
|
- .default_mode = s0to3,
|
|
|
- .channels = max1136_channels,
|
|
|
- .num_channels = ARRAY_SIZE(max1136_channels),
|
|
|
- },
|
|
|
- [max11607] = {
|
|
|
- .bits = 10,
|
|
|
- .int_vref_mv = 2048,
|
|
|
- .mode_list = max11607_mode_list,
|
|
|
- .num_modes = ARRAY_SIZE(max11607_mode_list),
|
|
|
- .default_mode = s0to3,
|
|
|
- .channels = max1136_channels,
|
|
|
- .num_channels = ARRAY_SIZE(max1136_channels),
|
|
|
- },
|
|
|
- [max11608] = {
|
|
|
- .bits = 10,
|
|
|
- .int_vref_mv = 4096,
|
|
|
- .mode_list = max11608_mode_list,
|
|
|
- .num_modes = ARRAY_SIZE(max11608_mode_list),
|
|
|
- .default_mode = s0to7,
|
|
|
- .channels = max11608_channels,
|
|
|
- .num_channels = ARRAY_SIZE(max11608_channels),
|
|
|
- },
|
|
|
- [max11609] = {
|
|
|
- .bits = 10,
|
|
|
- .int_vref_mv = 2048,
|
|
|
- .mode_list = max11608_mode_list,
|
|
|
- .num_modes = ARRAY_SIZE(max11608_mode_list),
|
|
|
- .default_mode = s0to7,
|
|
|
- .channels = max11608_channels,
|
|
|
- .num_channels = ARRAY_SIZE(max11608_channels),
|
|
|
- },
|
|
|
- [max11610] = {
|
|
|
- .bits = 10,
|
|
|
- .int_vref_mv = 4098,
|
|
|
- .mode_list = max1238_mode_list,
|
|
|
- .num_modes = ARRAY_SIZE(max1238_mode_list),
|
|
|
- .default_mode = s0to11,
|
|
|
- .channels = max1238_channels,
|
|
|
- .num_channels = ARRAY_SIZE(max1238_channels),
|
|
|
- },
|
|
|
- [max11611] = {
|
|
|
- .bits = 10,
|
|
|
- .int_vref_mv = 2048,
|
|
|
- .mode_list = max1238_mode_list,
|
|
|
- .num_modes = ARRAY_SIZE(max1238_mode_list),
|
|
|
- .default_mode = s0to11,
|
|
|
- .channels = max1238_channels,
|
|
|
- .num_channels = ARRAY_SIZE(max1238_channels),
|
|
|
- },
|
|
|
- [max11612] = {
|
|
|
- .bits = 12,
|
|
|
- .int_vref_mv = 4096,
|
|
|
- .mode_list = max11607_mode_list,
|
|
|
- .num_modes = ARRAY_SIZE(max11607_mode_list),
|
|
|
- .default_mode = s0to3,
|
|
|
- .channels = max1363_channels,
|
|
|
- .num_channels = ARRAY_SIZE(max1363_channels),
|
|
|
- },
|
|
|
- [max11613] = {
|
|
|
- .bits = 12,
|
|
|
- .int_vref_mv = 2048,
|
|
|
- .mode_list = max11607_mode_list,
|
|
|
- .num_modes = ARRAY_SIZE(max11607_mode_list),
|
|
|
- .default_mode = s0to3,
|
|
|
- .channels = max1363_channels,
|
|
|
- .num_channels = ARRAY_SIZE(max1363_channels),
|
|
|
- },
|
|
|
- [max11614] = {
|
|
|
- .bits = 12,
|
|
|
- .int_vref_mv = 4096,
|
|
|
- .mode_list = max11608_mode_list,
|
|
|
- .num_modes = ARRAY_SIZE(max11608_mode_list),
|
|
|
- .default_mode = s0to7,
|
|
|
- .channels = max11614_channels,
|
|
|
- .num_channels = ARRAY_SIZE(max11614_channels),
|
|
|
- },
|
|
|
- [max11615] = {
|
|
|
- .bits = 12,
|
|
|
- .int_vref_mv = 2048,
|
|
|
- .mode_list = max11608_mode_list,
|
|
|
- .num_modes = ARRAY_SIZE(max11608_mode_list),
|
|
|
- .default_mode = s0to7,
|
|
|
- .channels = max11614_channels,
|
|
|
- .num_channels = ARRAY_SIZE(max11614_channels),
|
|
|
- },
|
|
|
- [max11616] = {
|
|
|
- .bits = 12,
|
|
|
- .int_vref_mv = 4098,
|
|
|
- .mode_list = max1238_mode_list,
|
|
|
- .num_modes = ARRAY_SIZE(max1238_mode_list),
|
|
|
- .default_mode = s0to11,
|
|
|
- .channels = max1238_channels,
|
|
|
- .num_channels = ARRAY_SIZE(max1238_channels),
|
|
|
- },
|
|
|
- [max11617] = {
|
|
|
- .bits = 12,
|
|
|
- .int_vref_mv = 2048,
|
|
|
- .mode_list = max1238_mode_list,
|
|
|
- .num_modes = ARRAY_SIZE(max1238_mode_list),
|
|
|
- .default_mode = s0to11,
|
|
|
- .channels = max1238_channels,
|
|
|
- .num_channels = ARRAY_SIZE(max1238_channels),
|
|
|
- },
|
|
|
- [max11644] = {
|
|
|
- .bits = 12,
|
|
|
- .int_vref_mv = 2048,
|
|
|
- .mode_list = max11644_mode_list,
|
|
|
- .num_modes = ARRAY_SIZE(max11644_mode_list),
|
|
|
- .default_mode = s0to1,
|
|
|
- .channels = max11644_channels,
|
|
|
- .num_channels = ARRAY_SIZE(max11644_channels),
|
|
|
- },
|
|
|
- [max11645] = {
|
|
|
- .bits = 12,
|
|
|
- .int_vref_mv = 4096,
|
|
|
- .mode_list = max11644_mode_list,
|
|
|
- .num_modes = ARRAY_SIZE(max11644_mode_list),
|
|
|
- .default_mode = s0to1,
|
|
|
- .channels = max11644_channels,
|
|
|
- .num_channels = ARRAY_SIZE(max11644_channels),
|
|
|
- },
|
|
|
- [max11646] = {
|
|
|
- .bits = 10,
|
|
|
- .int_vref_mv = 2048,
|
|
|
- .mode_list = max11644_mode_list,
|
|
|
- .num_modes = ARRAY_SIZE(max11644_mode_list),
|
|
|
- .default_mode = s0to1,
|
|
|
- .channels = max11644_channels,
|
|
|
- .num_channels = ARRAY_SIZE(max11646_channels),
|
|
|
- },
|
|
|
- [max11647] = {
|
|
|
- .bits = 10,
|
|
|
- .int_vref_mv = 4096,
|
|
|
- .mode_list = max11644_mode_list,
|
|
|
- .num_modes = ARRAY_SIZE(max11644_mode_list),
|
|
|
- .default_mode = s0to1,
|
|
|
- .channels = max11644_channels,
|
|
|
- .num_channels = ARRAY_SIZE(max11646_channels),
|
|
|
- },
|
|
|
-};
|
|
|
-
|
|
|
static const int max1363_monitor_speeds[] = { 133000, 665000, 33300, 16600,
|
|
|
8300, 4200, 2000, 1000 };
|
|
|
|
|
@@ -1161,9 +811,414 @@ static struct attribute *max1363_event_attributes[] = {
|
|
|
NULL,
|
|
|
};
|
|
|
|
|
|
-static struct attribute_group max1363_event_attribute_group = {
|
|
|
- .attrs = max1363_event_attributes,
|
|
|
-};
|
|
|
+static struct attribute_group max1363_event_attribute_group = {
|
|
|
+ .attrs = max1363_event_attributes,
|
|
|
+};
|
|
|
+
|
|
|
+#define MAX1363_EVENT_FUNCS \
|
|
|
+
|
|
|
+
|
|
|
+static const struct iio_info max1238_info = {
|
|
|
+ .read_raw = &max1363_read_raw,
|
|
|
+ .driver_module = THIS_MODULE,
|
|
|
+};
|
|
|
+
|
|
|
+static const struct iio_info max1363_info = {
|
|
|
+ .read_event_value = &max1363_read_thresh,
|
|
|
+ .write_event_value = &max1363_write_thresh,
|
|
|
+ .read_event_config = &max1363_read_event_config,
|
|
|
+ .write_event_config = &max1363_write_event_config,
|
|
|
+ .read_raw = &max1363_read_raw,
|
|
|
+ .driver_module = THIS_MODULE,
|
|
|
+ .num_interrupt_lines = 1,
|
|
|
+ .event_attrs = &max1363_event_attribute_group,
|
|
|
+};
|
|
|
+
|
|
|
+/* max1363 and max1368 tested - rest from data sheet */
|
|
|
+static const struct max1363_chip_info max1363_chip_info_tbl[] = {
|
|
|
+ [max1361] = {
|
|
|
+ .bits = 10,
|
|
|
+ .int_vref_mv = 2048,
|
|
|
+ .mode_list = max1363_mode_list,
|
|
|
+ .num_modes = ARRAY_SIZE(max1363_mode_list),
|
|
|
+ .default_mode = s0to3,
|
|
|
+ .channels = max1361_channels,
|
|
|
+ .num_channels = ARRAY_SIZE(max1361_channels),
|
|
|
+ .info = &max1363_info,
|
|
|
+ },
|
|
|
+ [max1362] = {
|
|
|
+ .bits = 10,
|
|
|
+ .int_vref_mv = 4096,
|
|
|
+ .mode_list = max1363_mode_list,
|
|
|
+ .num_modes = ARRAY_SIZE(max1363_mode_list),
|
|
|
+ .default_mode = s0to3,
|
|
|
+ .channels = max1361_channels,
|
|
|
+ .num_channels = ARRAY_SIZE(max1361_channels),
|
|
|
+ .info = &max1363_info,
|
|
|
+ },
|
|
|
+ [max1363] = {
|
|
|
+ .bits = 12,
|
|
|
+ .int_vref_mv = 2048,
|
|
|
+ .mode_list = max1363_mode_list,
|
|
|
+ .num_modes = ARRAY_SIZE(max1363_mode_list),
|
|
|
+ .default_mode = s0to3,
|
|
|
+ .channels = max1363_channels,
|
|
|
+ .num_channels = ARRAY_SIZE(max1363_channels),
|
|
|
+ .info = &max1363_info,
|
|
|
+ },
|
|
|
+ [max1364] = {
|
|
|
+ .bits = 12,
|
|
|
+ .int_vref_mv = 4096,
|
|
|
+ .mode_list = max1363_mode_list,
|
|
|
+ .num_modes = ARRAY_SIZE(max1363_mode_list),
|
|
|
+ .default_mode = s0to3,
|
|
|
+ .channels = max1363_channels,
|
|
|
+ .num_channels = ARRAY_SIZE(max1363_channels),
|
|
|
+ .info = &max1363_info,
|
|
|
+ },
|
|
|
+ [max1036] = {
|
|
|
+ .bits = 8,
|
|
|
+ .int_vref_mv = 4096,
|
|
|
+ .mode_list = max1236_mode_list,
|
|
|
+ .num_modes = ARRAY_SIZE(max1236_mode_list),
|
|
|
+ .default_mode = s0to3,
|
|
|
+ .info = &max1238_info,
|
|
|
+ .channels = max1036_channels,
|
|
|
+ .num_channels = ARRAY_SIZE(max1036_channels),
|
|
|
+ },
|
|
|
+ [max1037] = {
|
|
|
+ .bits = 8,
|
|
|
+ .int_vref_mv = 2048,
|
|
|
+ .mode_list = max1236_mode_list,
|
|
|
+ .num_modes = ARRAY_SIZE(max1236_mode_list),
|
|
|
+ .default_mode = s0to3,
|
|
|
+ .info = &max1238_info,
|
|
|
+ .channels = max1036_channels,
|
|
|
+ .num_channels = ARRAY_SIZE(max1036_channels),
|
|
|
+ },
|
|
|
+ [max1038] = {
|
|
|
+ .bits = 8,
|
|
|
+ .int_vref_mv = 4096,
|
|
|
+ .mode_list = max1238_mode_list,
|
|
|
+ .num_modes = ARRAY_SIZE(max1238_mode_list),
|
|
|
+ .default_mode = s0to11,
|
|
|
+ .info = &max1238_info,
|
|
|
+ .channels = max1038_channels,
|
|
|
+ .num_channels = ARRAY_SIZE(max1038_channels),
|
|
|
+ },
|
|
|
+ [max1039] = {
|
|
|
+ .bits = 8,
|
|
|
+ .int_vref_mv = 2048,
|
|
|
+ .mode_list = max1238_mode_list,
|
|
|
+ .num_modes = ARRAY_SIZE(max1238_mode_list),
|
|
|
+ .default_mode = s0to11,
|
|
|
+ .info = &max1238_info,
|
|
|
+ .channels = max1038_channels,
|
|
|
+ .num_channels = ARRAY_SIZE(max1038_channels),
|
|
|
+ },
|
|
|
+ [max1136] = {
|
|
|
+ .bits = 10,
|
|
|
+ .int_vref_mv = 4096,
|
|
|
+ .mode_list = max1236_mode_list,
|
|
|
+ .num_modes = ARRAY_SIZE(max1236_mode_list),
|
|
|
+ .default_mode = s0to3,
|
|
|
+ .info = &max1238_info,
|
|
|
+ .channels = max1136_channels,
|
|
|
+ .num_channels = ARRAY_SIZE(max1136_channels),
|
|
|
+ },
|
|
|
+ [max1137] = {
|
|
|
+ .bits = 10,
|
|
|
+ .int_vref_mv = 2048,
|
|
|
+ .mode_list = max1236_mode_list,
|
|
|
+ .num_modes = ARRAY_SIZE(max1236_mode_list),
|
|
|
+ .default_mode = s0to3,
|
|
|
+ .info = &max1238_info,
|
|
|
+ .channels = max1136_channels,
|
|
|
+ .num_channels = ARRAY_SIZE(max1136_channels),
|
|
|
+ },
|
|
|
+ [max1138] = {
|
|
|
+ .bits = 10,
|
|
|
+ .int_vref_mv = 4096,
|
|
|
+ .mode_list = max1238_mode_list,
|
|
|
+ .num_modes = ARRAY_SIZE(max1238_mode_list),
|
|
|
+ .default_mode = s0to11,
|
|
|
+ .info = &max1238_info,
|
|
|
+ .channels = max1138_channels,
|
|
|
+ .num_channels = ARRAY_SIZE(max1138_channels),
|
|
|
+ },
|
|
|
+ [max1139] = {
|
|
|
+ .bits = 10,
|
|
|
+ .int_vref_mv = 2048,
|
|
|
+ .mode_list = max1238_mode_list,
|
|
|
+ .num_modes = ARRAY_SIZE(max1238_mode_list),
|
|
|
+ .default_mode = s0to11,
|
|
|
+ .info = &max1238_info,
|
|
|
+ .channels = max1138_channels,
|
|
|
+ .num_channels = ARRAY_SIZE(max1138_channels),
|
|
|
+ },
|
|
|
+ [max1236] = {
|
|
|
+ .bits = 12,
|
|
|
+ .int_vref_mv = 4096,
|
|
|
+ .mode_list = max1236_mode_list,
|
|
|
+ .num_modes = ARRAY_SIZE(max1236_mode_list),
|
|
|
+ .default_mode = s0to3,
|
|
|
+ .info = &max1238_info,
|
|
|
+ .channels = max1236_channels,
|
|
|
+ .num_channels = ARRAY_SIZE(max1236_channels),
|
|
|
+ },
|
|
|
+ [max1237] = {
|
|
|
+ .bits = 12,
|
|
|
+ .int_vref_mv = 2048,
|
|
|
+ .mode_list = max1236_mode_list,
|
|
|
+ .num_modes = ARRAY_SIZE(max1236_mode_list),
|
|
|
+ .default_mode = s0to3,
|
|
|
+ .info = &max1238_info,
|
|
|
+ .channels = max1236_channels,
|
|
|
+ .num_channels = ARRAY_SIZE(max1236_channels),
|
|
|
+ },
|
|
|
+ [max1238] = {
|
|
|
+ .bits = 12,
|
|
|
+ .int_vref_mv = 4096,
|
|
|
+ .mode_list = max1238_mode_list,
|
|
|
+ .num_modes = ARRAY_SIZE(max1238_mode_list),
|
|
|
+ .default_mode = s0to11,
|
|
|
+ .info = &max1238_info,
|
|
|
+ .channels = max1238_channels,
|
|
|
+ .num_channels = ARRAY_SIZE(max1238_channels),
|
|
|
+ },
|
|
|
+ [max1239] = {
|
|
|
+ .bits = 12,
|
|
|
+ .int_vref_mv = 2048,
|
|
|
+ .mode_list = max1238_mode_list,
|
|
|
+ .num_modes = ARRAY_SIZE(max1238_mode_list),
|
|
|
+ .default_mode = s0to11,
|
|
|
+ .info = &max1238_info,
|
|
|
+ .channels = max1238_channels,
|
|
|
+ .num_channels = ARRAY_SIZE(max1238_channels),
|
|
|
+ },
|
|
|
+ [max11600] = {
|
|
|
+ .bits = 8,
|
|
|
+ .int_vref_mv = 4096,
|
|
|
+ .mode_list = max11607_mode_list,
|
|
|
+ .num_modes = ARRAY_SIZE(max11607_mode_list),
|
|
|
+ .default_mode = s0to3,
|
|
|
+ .info = &max1238_info,
|
|
|
+ .channels = max1036_channels,
|
|
|
+ .num_channels = ARRAY_SIZE(max1036_channels),
|
|
|
+ },
|
|
|
+ [max11601] = {
|
|
|
+ .bits = 8,
|
|
|
+ .int_vref_mv = 2048,
|
|
|
+ .mode_list = max11607_mode_list,
|
|
|
+ .num_modes = ARRAY_SIZE(max11607_mode_list),
|
|
|
+ .default_mode = s0to3,
|
|
|
+ .info = &max1238_info,
|
|
|
+ .channels = max1036_channels,
|
|
|
+ .num_channels = ARRAY_SIZE(max1036_channels),
|
|
|
+ },
|
|
|
+ [max11602] = {
|
|
|
+ .bits = 8,
|
|
|
+ .int_vref_mv = 4096,
|
|
|
+ .mode_list = max11608_mode_list,
|
|
|
+ .num_modes = ARRAY_SIZE(max11608_mode_list),
|
|
|
+ .default_mode = s0to7,
|
|
|
+ .info = &max1238_info,
|
|
|
+ .channels = max11602_channels,
|
|
|
+ .num_channels = ARRAY_SIZE(max11602_channels),
|
|
|
+ },
|
|
|
+ [max11603] = {
|
|
|
+ .bits = 8,
|
|
|
+ .int_vref_mv = 2048,
|
|
|
+ .mode_list = max11608_mode_list,
|
|
|
+ .num_modes = ARRAY_SIZE(max11608_mode_list),
|
|
|
+ .default_mode = s0to7,
|
|
|
+ .info = &max1238_info,
|
|
|
+ .channels = max11602_channels,
|
|
|
+ .num_channels = ARRAY_SIZE(max11602_channels),
|
|
|
+ },
|
|
|
+ [max11604] = {
|
|
|
+ .bits = 8,
|
|
|
+ .int_vref_mv = 4098,
|
|
|
+ .mode_list = max1238_mode_list,
|
|
|
+ .num_modes = ARRAY_SIZE(max1238_mode_list),
|
|
|
+ .default_mode = s0to11,
|
|
|
+ .info = &max1238_info,
|
|
|
+ .channels = max1238_channels,
|
|
|
+ .num_channels = ARRAY_SIZE(max1238_channels),
|
|
|
+ },
|
|
|
+ [max11605] = {
|
|
|
+ .bits = 8,
|
|
|
+ .int_vref_mv = 2048,
|
|
|
+ .mode_list = max1238_mode_list,
|
|
|
+ .num_modes = ARRAY_SIZE(max1238_mode_list),
|
|
|
+ .default_mode = s0to11,
|
|
|
+ .info = &max1238_info,
|
|
|
+ .channels = max1238_channels,
|
|
|
+ .num_channels = ARRAY_SIZE(max1238_channels),
|
|
|
+ },
|
|
|
+ [max11606] = {
|
|
|
+ .bits = 10,
|
|
|
+ .int_vref_mv = 4096,
|
|
|
+ .mode_list = max11607_mode_list,
|
|
|
+ .num_modes = ARRAY_SIZE(max11607_mode_list),
|
|
|
+ .default_mode = s0to3,
|
|
|
+ .info = &max1238_info,
|
|
|
+ .channels = max1136_channels,
|
|
|
+ .num_channels = ARRAY_SIZE(max1136_channels),
|
|
|
+ },
|
|
|
+ [max11607] = {
|
|
|
+ .bits = 10,
|
|
|
+ .int_vref_mv = 2048,
|
|
|
+ .mode_list = max11607_mode_list,
|
|
|
+ .num_modes = ARRAY_SIZE(max11607_mode_list),
|
|
|
+ .default_mode = s0to3,
|
|
|
+ .info = &max1238_info,
|
|
|
+ .channels = max1136_channels,
|
|
|
+ .num_channels = ARRAY_SIZE(max1136_channels),
|
|
|
+ },
|
|
|
+ [max11608] = {
|
|
|
+ .bits = 10,
|
|
|
+ .int_vref_mv = 4096,
|
|
|
+ .mode_list = max11608_mode_list,
|
|
|
+ .num_modes = ARRAY_SIZE(max11608_mode_list),
|
|
|
+ .default_mode = s0to7,
|
|
|
+ .info = &max1238_info,
|
|
|
+ .channels = max11608_channels,
|
|
|
+ .num_channels = ARRAY_SIZE(max11608_channels),
|
|
|
+ },
|
|
|
+ [max11609] = {
|
|
|
+ .bits = 10,
|
|
|
+ .int_vref_mv = 2048,
|
|
|
+ .mode_list = max11608_mode_list,
|
|
|
+ .num_modes = ARRAY_SIZE(max11608_mode_list),
|
|
|
+ .default_mode = s0to7,
|
|
|
+ .info = &max1238_info,
|
|
|
+ .channels = max11608_channels,
|
|
|
+ .num_channels = ARRAY_SIZE(max11608_channels),
|
|
|
+ },
|
|
|
+ [max11610] = {
|
|
|
+ .bits = 10,
|
|
|
+ .int_vref_mv = 4098,
|
|
|
+ .mode_list = max1238_mode_list,
|
|
|
+ .num_modes = ARRAY_SIZE(max1238_mode_list),
|
|
|
+ .default_mode = s0to11,
|
|
|
+ .info = &max1238_info,
|
|
|
+ .channels = max1238_channels,
|
|
|
+ .num_channels = ARRAY_SIZE(max1238_channels),
|
|
|
+ },
|
|
|
+ [max11611] = {
|
|
|
+ .bits = 10,
|
|
|
+ .int_vref_mv = 2048,
|
|
|
+ .mode_list = max1238_mode_list,
|
|
|
+ .num_modes = ARRAY_SIZE(max1238_mode_list),
|
|
|
+ .default_mode = s0to11,
|
|
|
+ .info = &max1238_info,
|
|
|
+ .channels = max1238_channels,
|
|
|
+ .num_channels = ARRAY_SIZE(max1238_channels),
|
|
|
+ },
|
|
|
+ [max11612] = {
|
|
|
+ .bits = 12,
|
|
|
+ .int_vref_mv = 4096,
|
|
|
+ .mode_list = max11607_mode_list,
|
|
|
+ .num_modes = ARRAY_SIZE(max11607_mode_list),
|
|
|
+ .default_mode = s0to3,
|
|
|
+ .info = &max1238_info,
|
|
|
+ .channels = max1363_channels,
|
|
|
+ .num_channels = ARRAY_SIZE(max1363_channels),
|
|
|
+ },
|
|
|
+ [max11613] = {
|
|
|
+ .bits = 12,
|
|
|
+ .int_vref_mv = 2048,
|
|
|
+ .mode_list = max11607_mode_list,
|
|
|
+ .num_modes = ARRAY_SIZE(max11607_mode_list),
|
|
|
+ .default_mode = s0to3,
|
|
|
+ .info = &max1238_info,
|
|
|
+ .channels = max1363_channels,
|
|
|
+ .num_channels = ARRAY_SIZE(max1363_channels),
|
|
|
+ },
|
|
|
+ [max11614] = {
|
|
|
+ .bits = 12,
|
|
|
+ .int_vref_mv = 4096,
|
|
|
+ .mode_list = max11608_mode_list,
|
|
|
+ .num_modes = ARRAY_SIZE(max11608_mode_list),
|
|
|
+ .default_mode = s0to7,
|
|
|
+ .info = &max1238_info,
|
|
|
+ .channels = max11614_channels,
|
|
|
+ .num_channels = ARRAY_SIZE(max11614_channels),
|
|
|
+ },
|
|
|
+ [max11615] = {
|
|
|
+ .bits = 12,
|
|
|
+ .int_vref_mv = 2048,
|
|
|
+ .mode_list = max11608_mode_list,
|
|
|
+ .num_modes = ARRAY_SIZE(max11608_mode_list),
|
|
|
+ .default_mode = s0to7,
|
|
|
+ .info = &max1238_info,
|
|
|
+ .channels = max11614_channels,
|
|
|
+ .num_channels = ARRAY_SIZE(max11614_channels),
|
|
|
+ },
|
|
|
+ [max11616] = {
|
|
|
+ .bits = 12,
|
|
|
+ .int_vref_mv = 4098,
|
|
|
+ .mode_list = max1238_mode_list,
|
|
|
+ .num_modes = ARRAY_SIZE(max1238_mode_list),
|
|
|
+ .default_mode = s0to11,
|
|
|
+ .info = &max1238_info,
|
|
|
+ .channels = max1238_channels,
|
|
|
+ .num_channels = ARRAY_SIZE(max1238_channels),
|
|
|
+ },
|
|
|
+ [max11617] = {
|
|
|
+ .bits = 12,
|
|
|
+ .int_vref_mv = 2048,
|
|
|
+ .mode_list = max1238_mode_list,
|
|
|
+ .num_modes = ARRAY_SIZE(max1238_mode_list),
|
|
|
+ .default_mode = s0to11,
|
|
|
+ .info = &max1238_info,
|
|
|
+ .channels = max1238_channels,
|
|
|
+ .num_channels = ARRAY_SIZE(max1238_channels),
|
|
|
+ },
|
|
|
+ [max11644] = {
|
|
|
+ .bits = 12,
|
|
|
+ .int_vref_mv = 2048,
|
|
|
+ .mode_list = max11644_mode_list,
|
|
|
+ .num_modes = ARRAY_SIZE(max11644_mode_list),
|
|
|
+ .default_mode = s0to1,
|
|
|
+ .info = &max1238_info,
|
|
|
+ .channels = max11644_channels,
|
|
|
+ .num_channels = ARRAY_SIZE(max11644_channels),
|
|
|
+ },
|
|
|
+ [max11645] = {
|
|
|
+ .bits = 12,
|
|
|
+ .int_vref_mv = 4096,
|
|
|
+ .mode_list = max11644_mode_list,
|
|
|
+ .num_modes = ARRAY_SIZE(max11644_mode_list),
|
|
|
+ .default_mode = s0to1,
|
|
|
+ .info = &max1238_info,
|
|
|
+ .channels = max11644_channels,
|
|
|
+ .num_channels = ARRAY_SIZE(max11644_channels),
|
|
|
+ },
|
|
|
+ [max11646] = {
|
|
|
+ .bits = 10,
|
|
|
+ .int_vref_mv = 2048,
|
|
|
+ .mode_list = max11644_mode_list,
|
|
|
+ .num_modes = ARRAY_SIZE(max11644_mode_list),
|
|
|
+ .default_mode = s0to1,
|
|
|
+ .info = &max1238_info,
|
|
|
+ .channels = max11646_channels,
|
|
|
+ .num_channels = ARRAY_SIZE(max11646_channels),
|
|
|
+ },
|
|
|
+ [max11647] = {
|
|
|
+ .bits = 10,
|
|
|
+ .int_vref_mv = 4096,
|
|
|
+ .mode_list = max11644_mode_list,
|
|
|
+ .num_modes = ARRAY_SIZE(max11644_mode_list),
|
|
|
+ .default_mode = s0to1,
|
|
|
+ .info = &max1238_info,
|
|
|
+ .channels = max11646_channels,
|
|
|
+ .num_channels = ARRAY_SIZE(max11646_channels),
|
|
|
+ },
|
|
|
+};
|
|
|
+
|
|
|
+
|
|
|
|
|
|
static int max1363_initial_setup(struct max1363_state *st)
|
|
|
{
|
|
@@ -1224,22 +1279,9 @@ static int __devinit max1363_probe(struct i2c_client *client,
|
|
|
/* Estabilish that the iio_dev is a child of the i2c device */
|
|
|
indio_dev->dev.parent = &client->dev;
|
|
|
indio_dev->name = id->name;
|
|
|
- indio_dev->read_event_value = &max1363_read_thresh;
|
|
|
- indio_dev->write_event_value = &max1363_write_thresh;
|
|
|
- indio_dev->read_event_config = &max1363_read_event_config;
|
|
|
- indio_dev->write_event_config = &max1363_write_event_config;
|
|
|
- indio_dev->channels = st->chip_info->channels;
|
|
|
- indio_dev->num_channels = st->chip_info->num_channels;
|
|
|
- indio_dev->read_raw = &max1363_read_raw;
|
|
|
- /* Todo: this shouldn't be here. */
|
|
|
- indio_dev->driver_module = THIS_MODULE;
|
|
|
- indio_dev->modes = INDIO_DIRECT_MODE;
|
|
|
- if (st->chip_info->monitor_mode && client->irq) {
|
|
|
- indio_dev->num_interrupt_lines = 1;
|
|
|
- indio_dev->event_attrs
|
|
|
- = &max1363_event_attribute_group;
|
|
|
- }
|
|
|
|
|
|
+ indio_dev->info = st->chip_info->info;
|
|
|
+ indio_dev->modes = INDIO_DIRECT_MODE;
|
|
|
ret = max1363_initial_setup(st);
|
|
|
if (ret)
|
|
|
goto error_free_available_scan_masks;
|
|
@@ -1258,7 +1300,7 @@ static int __devinit max1363_probe(struct i2c_client *client,
|
|
|
if (ret)
|
|
|
goto error_cleanup_ring;
|
|
|
|
|
|
- if (st->chip_info->monitor_mode && client->irq) {
|
|
|
+ if (client->irq) {
|
|
|
ret = request_threaded_irq(st->client->irq,
|
|
|
NULL,
|
|
|
&max1363_event_handler,
|
|
@@ -1298,7 +1340,7 @@ static int max1363_remove(struct i2c_client *client)
|
|
|
struct max1363_state *st = iio_priv(indio_dev);
|
|
|
struct regulator *reg = st->reg;
|
|
|
|
|
|
- if (st->chip_info->monitor_mode && client->irq)
|
|
|
+ if (client->irq)
|
|
|
free_irq(st->client->irq, indio_dev);
|
|
|
iio_ring_buffer_unregister(indio_dev->ring);
|
|
|
max1363_ring_cleanup(indio_dev);
|