| # Copyright (c) 2023, deveritec GmbH |
| # SPDX-License-Identifier: Apache-2.0 |
| |
| description: | |
| Texas Instruments Low-Power Linear 3D Hall-Effect Sensor with an I2C interface. |
| |
| See the specification for the default I2C address. |
| |
| The specification of the sensor can be found at: |
| https://www.ti.com/lit/ds/symlink/tmag5273.pdf |
| https://www.ti.com/lit/ds/symlink/tmag3001.pdf |
| |
| When setting the enum properties in a .dts or .dtsi file you may |
| include tmag5273.h and use the macros defined there. |
| |
| Example: |
| #include <zephyr/dt-bindings/sensor/tmag5273.h> |
| |
| tmag5273: tmag5273@0 { |
| ... |
| axis = <TMAG5273_DT_AXIS_XYZ>; |
| range = <TMAG5273_DT_AXIS_RANGE_HIGH>; |
| }; |
| |
| compatible: "ti,tmag5273" |
| |
| include: [sensor-device.yaml, i2c-device.yaml] |
| |
| properties: |
| operation-mode: |
| type: int |
| default: 0 |
| enum: [0, 1] |
| description: | |
| Sensor mode used if set to "active". |
| Defaults to continuous sampling (TMAG5273_DT_OPER_MODE_CONTINUOUS). |
| |
| - 0 # TMAG5273_DT_OPER_MODE_CONTINUOUS (continuous) |
| - 1 # TMAG5273_DT_OPER_MODE_STANDBY (standby) |
| |
| axis: |
| type: int |
| default: 7 |
| enum: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] |
| description: | |
| Magnet axis channel inputs. |
| Defaults to measure all axis (TMAG5273_DT_AXIS_XYZ). |
| |
| - 0 # TMAG5273_DT_AXIS_NONE |
| - 1 # TMAG5273_DT_AXIS_X |
| - 2 # TMAG5273_DT_AXIS_Y |
| - 3 # TMAG5273_DT_AXIS_Z |
| - 4 # TMAG5273_DT_AXIS_XY |
| - 5 # TMAG5273_DT_AXIS_XZ |
| - 6 # TMAG5273_DT_AXIS_YZ |
| - 7 # TMAG5273_DT_AXIS_XYZ |
| - 8 # TMAG5273_DT_AXIS_XYX (pseudo-simultaneous sampling) |
| - 9 # TMAG5273_DT_AXIS_YXY (pseudo-simultaneous sampling) |
| - 10 # TMAG5273_DT_AXIS_YZY (pseudo-simultaneous sampling) |
| - 11 # TMAG5273_DT_AXIS_XZX (pseudo-simultaneous sampling) |
| |
| temperature: |
| type: boolean |
| description: | |
| Select for temperature measurement. |
| |
| range: |
| type: int |
| default: 1 |
| enum: [0, 1, 2] |
| description: | |
| XYZ-measurement range for magnetic-field value. |
| Defaults to lower range (higher resolution; TMAG5273_DT_AXIS_RANGE_LOW). |
| |
| - 0 # TMAG5273_DT_AXIS_RANGE_LOW (+/-40 mT (TMAG5273A1) or +/-133 mT (TMAG5273A2)) |
| - 1 # TMAG5273_DT_AXIS_RANGE_HIGH (+/-80 mT (TMAG5273A1) or +/-266 mT (TMAG5273A2)) |
| - 2 # TMAG5273_DT_AXIS_RANGE_RUNTIME (@runtime (initial value is: "high")) |
| |
| int-gpios: |
| type: phandle-array |
| description: | |
| The INT signal connection. |
| |
| The signal is active-low as produced by the sensor. |
| Either used for interrupt signaling, or triggering a conversion. |
| |
| temperature-coefficient: |
| type: int |
| default: 0 |
| enum: [0, 1, 2] |
| description: | |
| Selects the magnet temperature coefficient. |
| Defaults to none (TMAG5273_DT_TEMP_COEFF_NONE). |
| |
| - 0 # TMAG5273_DT_TEMP_COEFF_NONE (none) |
| - 1 # TMAG5273_DT_TEMP_COEFF_NDBFE (0.12 %/deg C (NdBFe)) |
| - 2 # TMAG5273_DT_TEMP_COEFF_CERAMIC (0.2 %/deg C (Ceramic)) |
| |
| Ignored if temperature is not measured. |
| |
| trigger-conversion-via-int: |
| type: boolean |
| description: | |
| Selects initiation of a single conversion based on a trigger via |
| the INT-pin if enabled, and via I2C-command if disabled. |
| |
| Used in "standby"-, "wakeup-and-sleep"- and "sleep"-mode. |
| Using I2C-conversion trigger may result in (handled) I2C-errors. |
| |
| angle-magnitude-axis: |
| type: int |
| default: 0 |
| enum: [0, 1, 2, 3, 4] |
| description: | |
| Enables angle calculation, magnetic gain, and offset corrections |
| between two selected magnetic channels. |
| Defaults to no additional calculations (TMAG5273_DT_ANGLE_MAG_NONE). |
| |
| - 0 # TMAG5273_DT_ANGLE_MAG_NONE (deactivated) |
| - 1 # TMAG5273_DT_ANGLE_MAG_XY (x/y) |
| - 2 # TMAG5273_DT_ANGLE_MAG_YZ (y/z) |
| - 3 # TMAG5273_DT_ANGLE_MAG_XZ (x/z) |
| - 4 # TMAG5273_DT_ANGLE_MAG_RUNTIME (@runtime (initial value is: "deactivated")) |
| |
| ch-mag-gain-correction: |
| type: int |
| default: 0 |
| enum: [0, 1] |
| description: | |
| Channel for the magnitude gain correction. |
| Defaults to 1st channel. |
| |
| - 0 # TMAG5273_DT_CORRECTION_CH_1 (1st channel) |
| - 1 # TMAG5273_DT_CORRECTION_CH_2 (2nd channel) |
| |
| Only active if angle-magnitude-calculation is active. |
| |
| average-mode: |
| type: int |
| default: 1 |
| enum: [0, 1, 2, 3, 4, 5] |
| description: | |
| Enables additional sampling of the sensor data to reduce the noise effect |
| (or to increase resolution). |
| |
| Note that averaging will influence the output data rate. |
| Defaults to 2x averaging (TMAG5273_DT_AVERAGING_2X). |
| |
| - 0 # TMAG5273_DT_AVERAGING_NONE (10.0-kSPS (3-axes) or 20-kSPS (1 axis)) |
| - 1 # TMAG5273_DT_AVERAGING_2X (5.7-kSPS (3-axes) or 13.3-kSPS (1 axis)) |
| - 2 # TMAG5273_DT_AVERAGING_4X (3.1-kSPS (3-axes) or 8.0-kSPS (1 axis)) |
| - 3 # TMAG5273_DT_AVERAGING_8X (1.6-kSPS (3-axes) or 4.4-kSPS (1 axis)) |
| - 4 # TMAG5273_DT_AVERAGING_16X (0.8-kSPS (3-axes) or 2.4-kSPS (1 axis)) |
| - 5 # TMAG5273_DT_AVERAGING_32X (0.4-kSPS (3-axes) or 1.2-kSPS (1 axis)) |
| |
| crc-enabled: |
| type: boolean |
| description: | |
| Activate I2C CRC byte to be sent. |
| |
| low-noise: |
| type: boolean |
| description: | |
| Select low-noise mode when enabled, and low-power mode when disabled. |
| |
| ignore-diag-fail: |
| type: boolean |
| description: | |
| Ignore detected diagnostic fail. |
| According to the manual, this should be done if VCC < 2.3V. |