forked from ~ljy/RK356X_SDK_RELEASE

hc
2024-01-31 f70575805708cabdedea7498aaa3f710fde4d920
kernel/drivers/iio/humidity/hts221_core.c
....@@ -1,11 +1,10 @@
1
+// SPDX-License-Identifier: GPL-2.0-only
12 /*
23 * STMicroelectronics hts221 sensor driver
34 *
45 * Copyright 2016 STMicroelectronics Inc.
56 *
67 * Lorenzo Bianconi <lorenzo.bianconi@st.com>
7
- *
8
- * Licensed under the GPL-2.
98 */
109
1110 #include <linux/kernel.h>
....@@ -24,13 +23,6 @@
2423
2524 #define HTS221_REG_CNTRL1_ADDR 0x20
2625 #define HTS221_REG_CNTRL2_ADDR 0x21
27
-
28
-#define HTS221_REG_AVG_ADDR 0x10
29
-#define HTS221_REG_H_OUT_L 0x28
30
-#define HTS221_REG_T_OUT_L 0x2a
31
-
32
-#define HTS221_HUMIDITY_AVG_MASK 0x07
33
-#define HTS221_TEMP_AVG_MASK 0x38
3426
3527 #define HTS221_ODR_MASK 0x03
3628 #define HTS221_BDU_MASK BIT(2)
....@@ -67,8 +59,8 @@
6759
6860 static const struct hts221_avg hts221_avg_list[] = {
6961 {
70
- .addr = HTS221_REG_AVG_ADDR,
71
- .mask = HTS221_HUMIDITY_AVG_MASK,
62
+ .addr = 0x10,
63
+ .mask = 0x07,
7264 .avg_avl = {
7365 4, /* 0.4 %RH */
7466 8, /* 0.3 %RH */
....@@ -81,8 +73,8 @@
8173 },
8274 },
8375 {
84
- .addr = HTS221_REG_AVG_ADDR,
85
- .mask = HTS221_TEMP_AVG_MASK,
76
+ .addr = 0x10,
77
+ .mask = 0x38,
8678 .avg_avl = {
8779 2, /* 0.08 degC */
8880 4, /* 0.05 degC */
....@@ -99,7 +91,7 @@
9991 static const struct iio_chan_spec hts221_channels[] = {
10092 {
10193 .type = IIO_HUMIDITYRELATIVE,
102
- .address = HTS221_REG_H_OUT_L,
94
+ .address = 0x28,
10395 .info_mask_separate = BIT(IIO_CHAN_INFO_RAW) |
10496 BIT(IIO_CHAN_INFO_OFFSET) |
10597 BIT(IIO_CHAN_INFO_SCALE) |
....@@ -115,7 +107,7 @@
115107 },
116108 {
117109 .type = IIO_TEMP,
118
- .address = HTS221_REG_T_OUT_L,
110
+ .address = 0x2a,
119111 .info_mask_separate = BIT(IIO_CHAN_INFO_RAW) |
120112 BIT(IIO_CHAN_INFO_OFFSET) |
121113 BIT(IIO_CHAN_INFO_SCALE) |
....@@ -580,7 +572,6 @@
580572 return err;
581573
582574 iio_dev->modes = INDIO_DIRECT_MODE;
583
- iio_dev->dev.parent = hw->dev;
584575 iio_dev->available_scan_masks = hts221_scan_masks;
585576 iio_dev->channels = hts221_channels;
586577 iio_dev->num_channels = ARRAY_SIZE(hts221_channels);
....@@ -629,11 +620,11 @@
629620 }
630621
631622 if (hw->irq > 0) {
632
- err = hts221_allocate_buffers(hw);
623
+ err = hts221_allocate_buffers(iio_dev);
633624 if (err < 0)
634625 return err;
635626
636
- err = hts221_allocate_trigger(hw);
627
+ err = hts221_allocate_trigger(iio_dev);
637628 if (err)
638629 return err;
639630 }