/linux-6.14.4/drivers/iio/imu/inv_icm42600/ |
D | inv_icm42600_core.c | 116 .odr = INV_ICM42600_ODR_50HZ, 122 .odr = INV_ICM42600_ODR_50HZ, 132 .odr = INV_ICM42600_ODR_50HZ, 138 .odr = INV_ICM42600_ODR_50HZ, 191 uint32_t inv_icm42600_odr_to_period(enum inv_icm42600_odr odr) in inv_icm42600_odr_to_period() argument 224 return odr_periods[odr]; in inv_icm42600_odr_to_period() 305 if (conf->odr < 0) in inv_icm42600_set_accel_conf() 306 conf->odr = oldconf->odr; in inv_icm42600_set_accel_conf() 310 /* force power mode against ODR when sensor is on */ in inv_icm42600_set_accel_conf() 314 if (conf->odr <= INV_ICM42600_ODR_1KHZ_LN) { in inv_icm42600_set_accel_conf() [all …]
|
D | inv_icm42600_buffer.c | 46 const void **timestamp, unsigned int *odr) in inv_icm42600_fifo_decode_packet() argument 58 *odr = 0; in inv_icm42600_fifo_decode_packet() 62 /* handle odr flags */ in inv_icm42600_fifo_decode_packet() 63 *odr = 0; in inv_icm42600_fifo_decode_packet() 65 *odr |= INV_ICM42600_SENSOR_GYRO; in inv_icm42600_fifo_decode_packet() 67 *odr |= INV_ICM42600_SENSOR_ACCEL; in inv_icm42600_fifo_decode_packet() 106 period_gyro = inv_icm42600_odr_to_period(st->conf.gyro.odr); in inv_icm42600_buffer_update_fifo_period() 111 period_accel = inv_icm42600_odr_to_period(st->conf.accel.odr); in inv_icm42600_buffer_update_fifo_period() 191 * value. Latency depends on watermark and ODR. It requires several steps: 215 /* compute sensors latency, depending on sensor watermark and odr */ in inv_icm42600_buffer_update_watermark() [all …]
|
D | inv_icm42600_accel.c | 93 /* prevent change if power mode is not supported by the ODR */ in inv_icm42600_accel_power_mode_set() 96 if (st->conf.accel.odr >= INV_ICM42600_ODR_6_25HZ_LP && in inv_icm42600_accel_power_mode_set() 97 st->conf.accel.odr <= INV_ICM42600_ODR_1_5625HZ_LP) in inv_icm42600_accel_power_mode_set() 102 if (st->conf.accel.odr <= INV_ICM42600_ODR_1KHZ_LN) in inv_icm42600_accel_power_mode_set() 419 unsigned int odr; in inv_icm42600_accel_read_odr() local 422 odr = st->conf.accel.odr; in inv_icm42600_accel_read_odr() 425 if (inv_icm42600_accel_odr_conv[i] == odr) in inv_icm42600_accel_read_odr() 456 conf.odr = inv_icm42600_accel_odr_conv[idx / 2]; in inv_icm42600_accel_write_odr() 461 ret = inv_sensors_timestamp_update_odr(ts, inv_icm42600_odr_to_period(conf.odr), in inv_icm42600_accel_write_odr() 874 ts_chip.init_period = inv_icm42600_odr_to_period(st->conf.accel.odr); in inv_icm42600_accel_init() [all …]
|
D | inv_icm42600_gyro.c | 326 unsigned int odr; in inv_icm42600_gyro_read_odr() local 329 odr = st->conf.gyro.odr; in inv_icm42600_gyro_read_odr() 332 if (inv_icm42600_gyro_odr_conv[i] == odr) in inv_icm42600_gyro_read_odr() 363 conf.odr = inv_icm42600_gyro_odr_conv[idx / 2]; in inv_icm42600_gyro_write_odr() 368 ret = inv_sensors_timestamp_update_odr(ts, inv_icm42600_odr_to_period(conf.odr), in inv_icm42600_gyro_write_odr() 777 ts_chip.init_period = inv_icm42600_odr_to_period(st->conf.accel.odr); in inv_icm42600_gyro_init() 810 unsigned int odr; in inv_icm42600_gyro_parse_fifo() local 817 &accel, &gyro, &temp, ×tamp, &odr); in inv_icm42600_gyro_parse_fifo() 826 /* update odr */ in inv_icm42600_gyro_parse_fifo() 827 if (odr & INV_ICM42600_SENSOR_GYRO) in inv_icm42600_gyro_parse_fifo()
|
/linux-6.14.4/drivers/iio/accel/ |
D | msa311.c | 16 * - ODR (Output Data Rate) selection 93 /* ODR */ 155 /* ODR */ 402 * msa311_get_odr() - Read Output Data Rate (ODR) value from MSA311 accel 404 * @odr: output ODR value 410 static int msa311_get_odr(struct msa311_priv *msa311, unsigned int *odr) in msa311_get_odr() argument 414 err = regmap_field_read(msa311->fields[F_ODR], odr); in msa311_get_odr() 419 * Filter the same 1000Hz ODR register values based on datasheet info. in msa311_get_odr() 420 * ODR can be equal to 1010-1111 for 1000Hz, but function returns 1010 in msa311_get_odr() 423 if (*odr > MSA311_ODR_1000_HZ) in msa311_get_odr() [all …]
|
D | adxl355_core.c | 225 enum adxl355_odr odr; member 278 u64 odr; in adxl355_fill_3db_frequency_table() local 281 odr = mul_u64_u32_shr(adxl355_odr_table[data->odr][0], MEGA, 0) + in adxl355_fill_3db_frequency_table() 282 adxl355_odr_table[data->odr][1]; in adxl355_fill_3db_frequency_table() 286 div = div64_u64_rem(mul_u64_u32_shr(odr, multiplier, 0), in adxl355_fill_3db_frequency_table() 374 enum adxl355_odr odr) in adxl355_set_odr() argument 380 if (data->odr == odr) { in adxl355_set_odr() 391 FIELD_PREP(ADXL355_FILTER_ODR_MSK, odr)); in adxl355_set_odr() 395 data->odr = odr; in adxl355_set_odr() 539 *val = adxl355_odr_table[data->odr][0]; in adxl355_read_raw() [all …]
|
D | adxl367.c | 169 enum adxl367_odr odr; member 523 int freq_hz = adxl367_samp_freq_tbl[st->odr][0]; in adxl367_time_ms_to_samples() 524 int freq_microhz = adxl367_samp_freq_tbl[st->odr][1]; in adxl367_time_ms_to_samples() 596 static int _adxl367_set_odr(struct adxl367_state *st, enum adxl367_odr odr) in _adxl367_set_odr() argument 603 odr)); in _adxl367_set_odr() 607 /* Activity timers depend on ODR */ in _adxl367_set_odr() 616 st->odr = odr; in _adxl367_set_odr() 621 static int adxl367_set_odr(struct iio_dev *indio_dev, enum adxl367_odr odr) in adxl367_set_odr() argument 633 ret = _adxl367_set_odr(st, odr); in adxl367_set_odr() 687 enum adxl367_odr *odr) in adxl367_find_odr() argument [all …]
|
D | adxl372.c | 292 enum adxl372_odr odr; member 383 enum adxl372_odr odr) in adxl372_set_odr() argument 389 ADXL372_TIMING_ODR_MODE(odr)); in adxl372_set_odr() 393 st->odr = odr; in adxl372_set_odr() 476 * ODR = 6400 Hz. It is 6.6 ms per code for ODR = 3200 Hz and below. in adxl372_set_activity_time_ms() 478 if (st->odr == ADXL372_ODR_6400HZ) in adxl372_set_activity_time_ms() 506 * ODR = 6400 Hz. It is 26 ms per code for ODR = 3200 Hz and below. in adxl372_set_inactivity_time_ms() 508 if (st->odr == ADXL372_ODR_6400HZ) in adxl372_set_inactivity_time_ms() 783 *val = adxl372_samp_freq_tbl[st->odr]; in adxl372_read_raw() 809 * The timer period depends on the ODR selected. in adxl372_write_raw() [all …]
|
D | st_accel_core.c | 126 .odr = { 208 .odr = { 287 .odr = { 377 .odr = { 450 .odr = { 523 .odr = { 593 .odr = { 651 .odr = { 726 .odr = { 807 .odr = { [all …]
|
/linux-6.14.4/drivers/iio/common/st_sensors/ |
D | st_sensors_core.c | 52 unsigned int odr, struct st_sensor_odr_avl *odr_out) in st_sensors_match_odr() argument 57 if (sensor_settings->odr.odr_avl[i].hz == 0) in st_sensors_match_odr() 60 if (sensor_settings->odr.odr_avl[i].hz == odr) { in st_sensors_match_odr() 61 odr_out->hz = sensor_settings->odr.odr_avl[i].hz; in st_sensors_match_odr() 62 odr_out->value = sensor_settings->odr.odr_avl[i].value; in st_sensors_match_odr() 72 int st_sensors_set_odr(struct iio_dev *indio_dev, unsigned int odr) in st_sensors_set_odr() argument 80 if (!sdata->sensor_settings->odr.mask) in st_sensors_set_odr() 83 err = st_sensors_match_odr(sdata->sensor_settings, odr, &odr_out); in st_sensors_set_odr() 87 if ((sdata->sensor_settings->odr.addr == in st_sensors_set_odr() 89 (sdata->sensor_settings->odr.mask == in st_sensors_set_odr() [all …]
|
/linux-6.14.4/Documentation/ABI/testing/ |
D | sysfs-bus-iio-inv_icm42600 | 6 requested power mode to use if the ODR support it. If ODR 11 be different for ODR supporting only 1 mode.
|
/linux-6.14.4/drivers/iio/gyro/ |
D | fxas21002c_core.c | 117 * ODR * 0.lpf_values. So, for ODR = 800Hz with a lpf value = 0.32 126 * ODR * 0.0hpf_values. So, for ODR = 800Hz with a hpf value = 0.018750 447 static int fxas21002c_odr_get(struct fxas21002c_data *data, int *odr) in fxas21002c_odr_get() argument 457 *odr = fxas21002c_odr_hz_from_value(data, odr_bits); in fxas21002c_odr_get() 467 static int fxas21002c_odr_set(struct fxas21002c_data *data, int odr) in fxas21002c_odr_set() argument 471 odr_bits = fxas21002c_odr_value_from_hz(data, odr); in fxas21002c_odr_set() 501 int odr; in fxas21002c_lpf_set() local 509 * From table 33 of the device spec, for ODR = 25Hz and 12.5 value 0.08 in fxas21002c_lpf_set() 510 * is not allowed and for ODR = 12.5 value 0.16 is also not allowed in fxas21002c_lpf_set() 512 ret = fxas21002c_odr_get(data, &odr); in fxas21002c_lpf_set() [all …]
|
D | st_gyro_core.c | 77 .odr = { 155 .odr = { 229 .odr = { 303 .odr = { 396 *val = gdata->odr; in st_gyro_read_raw() 493 gdata->odr = gdata->sensor_settings->odr.odr_avl[0].hz; in st_gyro_common_probe()
|
/linux-6.14.4/include/linux/iio/common/ |
D | st_sensors.h | 193 * @odr: Output data rate register and ODR list available. 210 struct st_sensor_odr odr; member 230 * @odr: Output data rate of the sensor [Hz]. 239 * @odr_lock: Local lock for preventing concurrent ODR accesses/changes 250 unsigned int odr; member 298 int st_sensors_set_odr(struct iio_dev *indio_dev, unsigned int odr);
|
/linux-6.14.4/drivers/iio/imu/st_lsm6dsx/ |
D | st_lsm6dsx_shub.c | 159 u32 odr, timeout; in st_lsm6dsx_shub_wait_complete() local 162 odr = (hw->enable_mask & BIT(ST_LSM6DSX_ID_ACC)) ? sensor->odr : 12500; in st_lsm6dsx_shub_wait_complete() 164 timeout = max_t(u32, 2000000U / odr + 1, 10); in st_lsm6dsx_shub_wait_complete() 403 u32 odr, u16 *val) in st_lsm6dsx_shub_get_odr_val() argument 410 if (settings->odr_table.odr_avl[i].milli_hz == odr) in st_lsm6dsx_shub_get_odr_val() 422 st_lsm6dsx_shub_set_odr(struct st_lsm6dsx_sensor *sensor, u32 odr) in st_lsm6dsx_shub_set_odr() argument 428 err = st_lsm6dsx_shub_get_odr_val(sensor, odr, &val); in st_lsm6dsx_shub_set_odr() 638 int odr; in st_lsm6dsx_shub_write_raw() local 641 odr = st_lsm6dsx_check_odr(ref_sensor, val, &odr_val); in st_lsm6dsx_shub_write_raw() 642 if (odr < 0) { in st_lsm6dsx_shub_write_raw() [all …]
|
D | st_lsm6dsx_buffer.c | 15 * value of the decimation factor and ODR set for each FIFO data set. 108 u32 decimator = max_odr / sensor->odr; in st_lsm6dsx_get_decimator_val() 139 *max_odr = max_t(u32, *max_odr, sensor->odr); in st_lsm6dsx_get_max_min_odr() 140 *min_odr = min_t(u32, *min_odr, sensor->odr); in st_lsm6dsx_get_max_min_odr() 146 u8 sip = sensor->odr / min_odr; in st_lsm6dsx_get_sip() 234 err = st_lsm6dsx_check_odr(sensor, sensor->odr, in st_lsm6dsx_set_fifo_odr() 425 * - gyroscope ODR = 208Hz, accelerometer ODR = 104Hz in st_lsm6dsx_read_fifo() 426 * Since the gyroscope ODR is twice the accelerometer one, the in st_lsm6dsx_read_fifo() 710 if (data->val[i].milli_hz == sensor->odr) { in st_lsm6dsx_update_samples_to_discard()
|
D | st_lsm6dsx_core.c | 19 * - Accelerometer/Gyroscope supported ODR [Hz]: 12.5, 26, 52, 104, 208, 416 29 * - Accelerometer/Gyroscope supported ODR [Hz]: 12.5, 26, 52, 104, 208, 416 46 * - Accelerometer/Gyroscope supported ODR [Hz]: 12.5, 26, 52, 104, 208, 416, 54 * - Accelerometer/Gyroscope supported ODR [Hz]: 7.5, 15, 30, 60, 120, 240, 62 * - Accelerometer supported ODR [Hz]: 10, 50, 119, 238, 476, 952 64 * - Gyroscope supported ODR [Hz]: 15, 60, 119, 238, 476, 952 1634 int st_lsm6dsx_check_odr(struct st_lsm6dsx_sensor *sensor, u32 odr, u8 *val) in st_lsm6dsx_check_odr() argument 1642 * ext devices can run at different odr respect to in st_lsm6dsx_check_odr() 1645 if (odr_table->odr_avl[i].milli_hz >= odr) in st_lsm6dsx_check_odr() 1657 st_lsm6dsx_check_odr_dependency(struct st_lsm6dsx_hw *hw, u32 odr, in st_lsm6dsx_check_odr_dependency() argument [all …]
|
/linux-6.14.4/drivers/iio/imu/ |
D | fxos8700_core.c | 281 int odr; member 292 * Accellerometer and magnetometer have the same ODR options, set in the 293 * CTRL_REG1 register. ODR is halved when using both sensors at once in 480 int odr, int uodr) in fxos8700_set_odr() argument 504 if (fxos8700_odr[i].odr == odr && fxos8700_odr[i].uodr == uodr) in fxos8700_set_odr() 516 int *odr, int *uodr) in fxos8700_get_odr() argument 534 *odr = fxos8700_odr[i].odr; in fxos8700_get_odr() 664 /* Max ODR (800Hz individual or 400Hz hybrid), active mode */ in fxos8700_chip_init()
|
/linux-6.14.4/drivers/iio/magnetometer/ |
D | st_magn_core.c | 152 .odr = { 231 .odr = { 311 .odr = { 384 .odr = { 433 .odr = { 532 *val = mdata->odr; in st_magn_read_raw() 629 mdata->odr = mdata->sensor_settings->odr.odr_avl[0].hz; in st_magn_common_probe()
|
D | bmc150_magn.c | 173 u8 odr; member 325 int rep_z, int odr) in bmc150_magn_set_max_odr() argument 343 if (odr <= 0) { in bmc150_magn_set_max_odr() 344 ret = bmc150_magn_get_odr(data, &odr); in bmc150_magn_set_max_odr() 350 if (odr > max_odr) { in bmc150_magn_set_max_odr() 353 odr); in bmc150_magn_set_max_odr() 729 ret = bmc150_magn_set_odr(data, preset.odr); in bmc150_magn_init() 731 dev_err(data->dev, "Failed to set ODR to %d\n", in bmc150_magn_init() 732 preset.odr); in bmc150_magn_init() 753 preset.odr); in bmc150_magn_init()
|
/linux-6.14.4/drivers/char/ipmi/ |
D | kcs_bmc.h | 20 * @odr: Output Data Register 25 u32 odr; member
|
/linux-6.14.4/drivers/iio/pressure/ |
D | st_pressure_core.c | 238 .odr = { 311 .odr = { 363 .odr = { 432 .odr = { 499 .odr = { 568 .odr = { 687 *val = press_data->odr; in st_press_read_raw() 769 press_data->odr = press_data->sensor_settings->odr.odr_avl[0].hz; in st_press_common_probe()
|
/linux-6.14.4/drivers/iio/adc/ |
D | ad4130.c | 843 * the relation between filter mode, ODR and FS. 845 * Notice that the max ODR of each filter mode is not necessarily the 846 * absolute max ODR supported by the chip. 848 * The ODR divider is not explicitly specified, but it can be deduced based 849 * on the ODR range of each filter mode. 851 * For example, for Sinc4+Sinc1, max ODR is 218.18. That means that the 852 * absolute max ODR is divided by 11 to achieve the max ODR of this filter 855 * The formulas for converting between ODR and FS for a specific filter 858 * Notice that FS = 1 actually means max ODR, and that ODR decreases by 859 * (maximum ODR / maximum FS) for each increment of FS. [all …]
|
/linux-6.14.4/drivers/iio/imu/bmi270/ |
D | bmi270_core.c | 120 int odr; member 294 static int bmi270_set_odr(struct bmi270_data *data, int chan_type, int odr, in bmi270_set_odr() argument 317 if (bmi270_odr_item.tbl[i].odr != odr || in bmi270_set_odr() 328 static int bmi270_get_odr(struct bmi270_data *data, int chan_type, int *odr, in bmi270_get_odr() argument 359 *odr = bmi270_odr_item.tbl[i].odr; in bmi270_get_odr()
|
/linux-6.14.4/drivers/scsi/aacraid/ |
D | rx.c | 50 rx_writel(dev, MUnit.ODR,DoorBellPrintfReady); in aac_rx_intr_producer() 54 rx_writel(dev, MUnit.ODR, DoorBellAdapterNormCmdReady); in aac_rx_intr_producer() 58 rx_writel(dev, MUnit.ODR,DoorBellAdapterNormRespReady); in aac_rx_intr_producer() 62 rx_writel(dev, MUnit.ODR, DoorBellAdapterNormCmdNotFull); in aac_rx_intr_producer() 65 rx_writel(dev, MUnit.ODR, DoorBellAdapterNormCmdNotFull); in aac_rx_intr_producer() 66 rx_writel(dev, MUnit.ODR, DoorBellAdapterNormRespNotFull); in aac_rx_intr_producer() 101 MUnit.ODR, in aac_rx_intr_message() 640 rx_writel(dev, MUnit.ODR, 0xffffffff); in _aac_rx_init()
|