# 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 tmag5273: tmag5273@0 { ... axis = ; range = ; }; 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.