Lines Matching +full:data +full:- +full:shift
3 * SPDX-License-Identifier: Apache-2.0
13 int32_t ret = -ENOTSUP; in mmc56x3_decoder_get_frame_count()
22 *frame_count = edata->has_temp ? 1 : 0; in mmc56x3_decoder_get_frame_count()
25 *frame_count = edata->has_magn_x ? 1 : 0; in mmc56x3_decoder_get_frame_count()
28 *frame_count = edata->has_magn_y ? 1 : 0; in mmc56x3_decoder_get_frame_count()
31 *frame_count = edata->has_magn_z ? 1 : 0; in mmc56x3_decoder_get_frame_count()
35 ((edata->has_magn_x && edata->has_magn_y && edata->has_magn_z) ? 1 : 0); in mmc56x3_decoder_get_frame_count()
63 return -ENOTSUP; in mmc56x3_decoder_get_size_info()
71 const struct mmc56x3_data *data = &edata->data; in mmc56x3_decoder_decode() local
79 if (edata->has_temp) { in mmc56x3_decoder_decode()
82 out->header.base_timestamp_ns = edata->header.timestamp; in mmc56x3_decoder_decode()
83 out->header.reading_count = 1; in mmc56x3_decoder_decode()
84 out->readings[0].temperature = MMC56X3_TEMP_CONV_Q7_24_BASE + in mmc56x3_decoder_decode()
85 data->temp * MMC56X3_TEMP_CONV_Q7_24_RES; in mmc56x3_decoder_decode()
86 out->shift = MMC56X3_TEMP_SHIFT; in mmc56x3_decoder_decode()
88 return -ENODATA; in mmc56x3_decoder_decode()
92 if (edata->has_magn_x) { in mmc56x3_decoder_decode()
95 out->header.base_timestamp_ns = edata->header.timestamp; in mmc56x3_decoder_decode()
96 out->header.reading_count = 1; in mmc56x3_decoder_decode()
97 out->readings[0].value = data->magn_x * MMC56X3_MAGN_CONV_Q5_26_20B; in mmc56x3_decoder_decode()
98 out->shift = MMC56X3_MAGN_SHIFT; in mmc56x3_decoder_decode()
100 return -ENODATA; in mmc56x3_decoder_decode()
104 if (edata->has_magn_y) { in mmc56x3_decoder_decode()
107 out->header.base_timestamp_ns = edata->header.timestamp; in mmc56x3_decoder_decode()
108 out->header.reading_count = 1; in mmc56x3_decoder_decode()
109 out->readings[0].value = data->magn_y * MMC56X3_MAGN_CONV_Q5_26_20B; in mmc56x3_decoder_decode()
110 out->shift = MMC56X3_MAGN_SHIFT; in mmc56x3_decoder_decode()
112 return -ENODATA; in mmc56x3_decoder_decode()
116 if (edata->has_magn_z) { in mmc56x3_decoder_decode()
119 out->header.base_timestamp_ns = edata->header.timestamp; in mmc56x3_decoder_decode()
120 out->header.reading_count = 1; in mmc56x3_decoder_decode()
121 out->readings[0].value = data->magn_z * MMC56X3_MAGN_CONV_Q5_26_20B; in mmc56x3_decoder_decode()
122 out->shift = MMC56X3_MAGN_SHIFT; in mmc56x3_decoder_decode()
124 return -ENODATA; in mmc56x3_decoder_decode()
128 if (edata->has_magn_x && edata->has_magn_y && edata->has_magn_z) { in mmc56x3_decoder_decode()
131 out_3->header.base_timestamp_ns = edata->header.timestamp; in mmc56x3_decoder_decode()
132 out_3->header.reading_count = 1; in mmc56x3_decoder_decode()
133 out_3->shift = MMC56X3_MAGN_SHIFT; in mmc56x3_decoder_decode()
135 out_3->readings[0].v[0] = data->magn_x * MMC56X3_MAGN_CONV_Q5_26_20B; in mmc56x3_decoder_decode()
136 out_3->readings[0].v[1] = data->magn_y * MMC56X3_MAGN_CONV_Q5_26_20B; in mmc56x3_decoder_decode()
137 out_3->readings[0].v[2] = data->magn_z * MMC56X3_MAGN_CONV_Q5_26_20B; in mmc56x3_decoder_decode()
139 return -ENODATA; in mmc56x3_decoder_decode()
144 return -EINVAL; in mmc56x3_decoder_decode()