max30102.c (cbecf716ca618fd44feda6bd9a64a8179d031fc5) | max30102.c (17395ce299211a8148ee45d1d71eb740a3fec48d) |
---|---|
1// SPDX-License-Identifier: GPL-2.0-or-later 2/* 3 * max30102.c - Support for MAX30102 heart rate and pulse oximeter sensor 4 * 5 * Copyright (C) 2017 Matt Ranostay <matt.ranostay@konsulko.com> 6 * 7 * Support for MAX30105 optical particle sensor 8 * Copyright (C) 2017 Peter Meerwald-Stadler <pmeerw@pmeerw.net> --- 492 unchanged lines hidden (view full) --- 501static const struct iio_info max30102_info = { 502 .read_raw = max30102_read_raw, 503}; 504 505static int max30102_probe(struct i2c_client *client, 506 const struct i2c_device_id *id) 507{ 508 struct max30102_data *data; | 1// SPDX-License-Identifier: GPL-2.0-or-later 2/* 3 * max30102.c - Support for MAX30102 heart rate and pulse oximeter sensor 4 * 5 * Copyright (C) 2017 Matt Ranostay <matt.ranostay@konsulko.com> 6 * 7 * Support for MAX30105 optical particle sensor 8 * Copyright (C) 2017 Peter Meerwald-Stadler <pmeerw@pmeerw.net> --- 492 unchanged lines hidden (view full) --- 501static const struct iio_info max30102_info = { 502 .read_raw = max30102_read_raw, 503}; 504 505static int max30102_probe(struct i2c_client *client, 506 const struct i2c_device_id *id) 507{ 508 struct max30102_data *data; |
509 struct iio_buffer *buffer; | |
510 struct iio_dev *indio_dev; 511 int ret; 512 unsigned int reg; 513 514 indio_dev = devm_iio_device_alloc(&client->dev, sizeof(*data)); 515 if (!indio_dev) 516 return -ENOMEM; 517 | 509 struct iio_dev *indio_dev; 510 int ret; 511 unsigned int reg; 512 513 indio_dev = devm_iio_device_alloc(&client->dev, sizeof(*data)); 514 if (!indio_dev) 515 return -ENOMEM; 516 |
518 buffer = devm_iio_kfifo_allocate(&client->dev); 519 if (!buffer) 520 return -ENOMEM; 521 522 iio_device_attach_buffer(indio_dev, buffer); 523 | |
524 indio_dev->name = MAX30102_DRV_NAME; 525 indio_dev->info = &max30102_info; | 517 indio_dev->name = MAX30102_DRV_NAME; 518 indio_dev->info = &max30102_info; |
526 indio_dev->modes = (INDIO_BUFFER_SOFTWARE | INDIO_DIRECT_MODE); 527 indio_dev->setup_ops = &max30102_buffer_setup_ops; | 519 indio_dev->modes = INDIO_DIRECT_MODE; |
528 529 data = iio_priv(indio_dev); 530 data->indio_dev = indio_dev; 531 data->client = client; 532 data->chip_id = id->driver_data; 533 534 mutex_init(&data->lock); 535 i2c_set_clientdata(client, indio_dev); --- 8 unchanged lines hidden (view full) --- 544 indio_dev->channels = max30102_channels; 545 indio_dev->num_channels = ARRAY_SIZE(max30102_channels); 546 indio_dev->available_scan_masks = max30102_scan_masks; 547 break; 548 default: 549 return -ENODEV; 550 } 551 | 520 521 data = iio_priv(indio_dev); 522 data->indio_dev = indio_dev; 523 data->client = client; 524 data->chip_id = id->driver_data; 525 526 mutex_init(&data->lock); 527 i2c_set_clientdata(client, indio_dev); --- 8 unchanged lines hidden (view full) --- 536 indio_dev->channels = max30102_channels; 537 indio_dev->num_channels = ARRAY_SIZE(max30102_channels); 538 indio_dev->available_scan_masks = max30102_scan_masks; 539 break; 540 default: 541 return -ENODEV; 542 } 543 |
544 ret = devm_iio_kfifo_buffer_setup(&client->dev, indio_dev, 545 INDIO_BUFFER_SOFTWARE, 546 &max30102_buffer_setup_ops); 547 if (ret) 548 return ret; 549 |
|
552 data->regmap = devm_regmap_init_i2c(client, &max30102_regmap_config); 553 if (IS_ERR(data->regmap)) { 554 dev_err(&client->dev, "regmap initialization failed\n"); 555 return PTR_ERR(data->regmap); 556 } 557 558 /* check part ID */ 559 ret = regmap_read(data->regmap, MAX30102_REG_PART_ID, ®); --- 77 unchanged lines hidden --- | 550 data->regmap = devm_regmap_init_i2c(client, &max30102_regmap_config); 551 if (IS_ERR(data->regmap)) { 552 dev_err(&client->dev, "regmap initialization failed\n"); 553 return PTR_ERR(data->regmap); 554 } 555 556 /* check part ID */ 557 ret = regmap_read(data->regmap, MAX30102_REG_PART_ID, ®); --- 77 unchanged lines hidden --- |