From 06f4be62e7c8b47a01c1bc2d124f01fa13453e0b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Ma=C5=A1karinec?= Date: Thu, 10 Jul 2025 09:53:42 +0200 Subject: [PATCH] drivers: tmag5273: Add mag gain property MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adds mag-gain-correction DT property, which sets the magnetic gain correction value. Signed-off-by: Marek Maškarinec --- drivers/sensor/ti/tmag5273/tmag5273.c | 9 +++++++++ dts/bindings/sensor/ti,tmag5273.yaml | 10 ++++++++++ 2 files changed, 19 insertions(+) diff --git a/drivers/sensor/ti/tmag5273/tmag5273.c b/drivers/sensor/ti/tmag5273/tmag5273.c index d3711da694420..1330901d4eae4 100644 --- a/drivers/sensor/ti/tmag5273/tmag5273.c +++ b/drivers/sensor/ti/tmag5273/tmag5273.c @@ -58,6 +58,7 @@ struct tmag5273_config { uint8_t temperature_coefficient; uint8_t angle_magnitude_axis; uint8_t ch_mag_gain_correction; + uint8_t mag_gain_correction; uint8_t operation_mode; uint8_t averaging; @@ -1075,6 +1076,13 @@ static inline int tmag5273_init_sensor_settings(const struct tmag5273_config *dr return -EIO; } + retval = i2c_reg_write_byte_dt(&drv_cfg->i2c, TMAG5273_REG_MAG_GAIN_CONFIG, + drv_cfg->mag_gain_correction); + if (retval < 0) { + LOG_ERR("error setting MAG_GAIN_CONFIG %d", retval); + return -EIO; + } + return 0; } @@ -1258,6 +1266,7 @@ static DEVICE_API(sensor, tmag5273_driver_api) = { DT_PROP(DT_INST(inst, compat), temperature_coefficient), \ .angle_magnitude_axis = DT_PROP(DT_INST(inst, compat), angle_magnitude_axis), \ .ch_mag_gain_correction = DT_PROP(DT_INST(inst, compat), ch_mag_gain_correction), \ + .mag_gain_correction = DT_PROP(DT_INST(inst, compat), mag_gain_correction), \ .operation_mode = DT_PROP(DT_INST(inst, compat), operation_mode), \ .averaging = DT_PROP(DT_INST(inst, compat), average_mode), \ .trigger_conv_via_int = \ diff --git a/dts/bindings/sensor/ti,tmag5273.yaml b/dts/bindings/sensor/ti,tmag5273.yaml index 76f5eefe8d0b8..e1fadd1863f19 100644 --- a/dts/bindings/sensor/ti,tmag5273.yaml +++ b/dts/bindings/sensor/ti,tmag5273.yaml @@ -134,6 +134,16 @@ properties: Only active if angle-magnitude-calculation is active. + mag-gain-correction: + type: int + default: 0 + description: | + Gain value for axis determined by ch-mag-gain-correction. + + The value is between 0 and 255, interpreted as a fractional + value between 0 and 1 (mag-gain-correction/256). Gain value of 0 + is interpreted as 1. + average-mode: type: int default: 1