|
@@ -34,6 +34,11 @@
|
|
#define MAX30102_DRV_NAME "max30102"
|
|
#define MAX30102_DRV_NAME "max30102"
|
|
#define MAX30102_PART_NUMBER 0x15
|
|
#define MAX30102_PART_NUMBER 0x15
|
|
|
|
|
|
|
|
+enum max3012_led_idx {
|
|
|
|
+ MAX30102_LED_RED,
|
|
|
|
+ MAX30102_LED_IR,
|
|
|
|
+};
|
|
|
|
+
|
|
#define MAX30102_REG_INT_STATUS 0x00
|
|
#define MAX30102_REG_INT_STATUS 0x00
|
|
#define MAX30102_REG_INT_STATUS_PWR_RDY BIT(0)
|
|
#define MAX30102_REG_INT_STATUS_PWR_RDY BIT(0)
|
|
#define MAX30102_REG_INT_STATUS_PROX_INT BIT(4)
|
|
#define MAX30102_REG_INT_STATUS_PROX_INT BIT(4)
|
|
@@ -104,7 +109,10 @@ static const struct regmap_config max30102_regmap_config = {
|
|
.val_bits = 8,
|
|
.val_bits = 8,
|
|
};
|
|
};
|
|
|
|
|
|
-static const unsigned long max30102_scan_masks[] = {0x3, 0};
|
|
|
|
|
|
+static const unsigned long max30102_scan_masks[] = {
|
|
|
|
+ BIT(MAX30102_LED_RED) | BIT(MAX30102_LED_IR),
|
|
|
|
+ 0
|
|
|
|
+};
|
|
|
|
|
|
#define MAX30102_INTENSITY_CHANNEL(_si, _mod) { \
|
|
#define MAX30102_INTENSITY_CHANNEL(_si, _mod) { \
|
|
.type = IIO_INTENSITY, \
|
|
.type = IIO_INTENSITY, \
|
|
@@ -121,8 +129,8 @@ static const unsigned long max30102_scan_masks[] = {0x3, 0};
|
|
}
|
|
}
|
|
|
|
|
|
static const struct iio_chan_spec max30102_channels[] = {
|
|
static const struct iio_chan_spec max30102_channels[] = {
|
|
- MAX30102_INTENSITY_CHANNEL(0, IIO_MOD_LIGHT_RED),
|
|
|
|
- MAX30102_INTENSITY_CHANNEL(1, IIO_MOD_LIGHT_IR),
|
|
|
|
|
|
+ MAX30102_INTENSITY_CHANNEL(MAX30102_LED_RED, IIO_MOD_LIGHT_RED),
|
|
|
|
+ MAX30102_INTENSITY_CHANNEL(MAX30102_LED_IR, IIO_MOD_LIGHT_IR),
|
|
{
|
|
{
|
|
.type = IIO_TEMP,
|
|
.type = IIO_TEMP,
|
|
.info_mask_separate =
|
|
.info_mask_separate =
|