blob: c68e704c90054a8af63f5e63b9abdd941e3d3606 [file] [log] [blame]
# Copyright (c) 2023 Michal Morsisko
# SPDX-License-Identifier: Apache-2.0
description: Texas Instruments TMAG5170 high-precision, linear 3D Hall-effect sensor.
compatible: "ti,tmag5170"
include: [sensor-device.yaml, spi-device.yaml]
properties:
int-gpios:
type: phandle-array
description: |
This property specifies the connection to ALERT sensor pin.
It will be used by the driver to notify the application about
data ready event. For this property to take effect, the
TMAG5170_TRIGGER must be set in project configuration
operating-mode:
type: int
required: true
description: |
Operating mode of the device.
1 - stand-by mode - in this mode the device waits for application to trigger
the measurement.
2 - active measure mode - continuous sampling on all enabled channels
as fast as possible. Recommended for devices that haven't got
strict power requirements and need frequent sampling.
3 - active trigger mode - in this mode, similar to stand-by mode, the device
wait for application to trigger the measurement, but the time needed to finish
the conversion is shorter than in stand-by mode, on the cost of increased power
consumption.
4 - duty-cycled - after each sample the device goes to sleep and then
automatically wakes up to take another sample. The sleep time is determined
by `sleep-time` property. Recommended for low-power devices that don't need
high frequency sampling.
enum:
- 1
- 2
- 3
- 4
magnetic-channels:
type: string
default: "XYZ"
description: |
Enables data acquisition of the magnetic axis channel(s)
If axis is enabled more than once, sensor will do pseudo-simultaneous
sampling. Refer to datasheet for more information, By default all axes
are enabled (XYZ) to allow the user to check if the sensor work as expected.
Following options are allowed:
None (chip reset value)
X
Y
XY
Z
ZX
YZ
XYZ (default)
XYX
YXY
YZY
ZYZ
ZXZ
XZX
XYZYX
XYZZYX
enum:
- "None"
- "X"
- "Y"
- "XY"
- "Z"
- "ZX"
- "YZ"
- "XYZ"
- "XYX"
- "YXY"
- "YZY"
- "ZYZ"
- "ZXZ"
- "XZX"
- "XYZYX"
- "XYZZYX"
x-range:
type: int
default: 0
description: |
The maximum and minimum values that can be measured on X axis.
The wider the range, the worse the resolution.
0 = ±50mT (TMAG5170A1)/ ±150mT(TMAG5170A2) - (default; chip reset value)
1 = ±25mT (TMAG5170A1)/ ±75mT(TMAG5170A2)
2 = ±100mT (TMAG5170A1)/ ±300mT(TMAG5170A2)
enum:
- 0
- 1
- 2
y-range:
type: int
default: 0
description: |
The maximum and minimum values that can be measured on Y axis.
The wider the range, the worse the resolution.
0 = ±50mT (TMAG5170A1)/ ±150mT(TMAG5170A2) - (default; chip reset value)
1 = ±25mT (TMAG5170A1)/ ±75mT(TMAG5170A2)
2 = ±100mT (TMAG5170A1)/ ±300mT(TMAG5170A2)
enum:
- 0
- 1
- 2
z-range:
type: int
default: 0
description: |
The maximum and minimum values that can be measured on Z axis.
The wider the range, the worse the resolution.
0 = ±50mT (TMAG5170A1)/ ±150mT(TMAG5170A2) - (default; chip reset value)
1 = ±25mT (TMAG5170A1)/ ±75mT(TMAG5170A2)
2 = ±100mT (TMAG5170A1)/ ±300mT(TMAG5170A2)
enum:
- 0
- 1
- 2
oversampling:
type: int
default: 1
description: |
Enables additional sampling of the sensor data to reduce the noise
effect. If temperature channel is enabled, temperature will be oversampled
too, unless `disable-temperature-oversampling` property is present.
Following options are allowed:
1 (default; chip reset value)
2
4
8
16
32
enum:
- 1
- 2
- 4
- 8
- 16
- 32
enable-temperature-channel:
type: boolean
description: |
Enables temperature measurement
magnet-type:
type: string
default: "None"
description: |
Enables temperature compensation basing on the type of magnet.
Following options are allowed:
None (default; chip reset value)
NdBFe = 0.12%/deg C
SmCo = 0.03%/deg C
Ceramic = 0.2%/deg C
enum:
- "None"
- "NdBFe"
- "SmCo"
- "Ceramic"
angle-measurement:
type: string
default: "None"
description: |
Enable angle calculation using two axis data:
None (default; chip reset value)
XY
YZ
XZ
enum:
- "None"
- "XY"
- "YZ"
- "XZ"
disable-temperature-oversampling:
type: boolean
description: |
If true, temperature is always sampled once per conversion set
If false, temperature is oversampled according to `oversampling`
property.
sleep-time:
type: int
default: 1
description: |
The time in miliseconds the sensor will be in sleep during conversions.
For this property to take effect sensor must be in `duty-cycled` mode.
Note that to calculate total time between conversions, the conversion time
itself must be taken into account. The conversion time is dependent
on the values of `oversampling`, `magnetic-channels`, `temperature-channel-enabled`
and `disable-temperature-oversampling` properties.
Following value are allowed:
1 (default; chip reset value)
5
10
15
20
30
50
100
500
1000
enum:
- 1
- 5
- 10
- 15
- 20
- 30
- 50
- 100
- 500
- 1000