blob: 9ec9faa038872cb29cae9ffdd1ebac3123c48ca0 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
|
/* Copyright 2020 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
#include <dt-bindings/motionsense/utils.h>
/ {
aliases {
/*
* motion sense's <>_INT_EVENT is handled
* by alias. Using the alias, each driver creates
* its own <>_INT_EVENT.
*/
icm42607-int = &lid_accel;
};
/*
* Declare mutexes used by sensor drivers.
* A mutex node is used to create an instance of mutex_t.
* A mutex node is referenced by a sensor node if the
* corresponding sensor driver needs to use the
* instance of the mutex.
*/
motionsense-mutex {
compatible = "cros-ec,motionsense-mutex";
lid_mutex: lid-mutex {
};
};
/* Rotation matrix used by drivers. */
motionsense-rotation-ref {
compatible = "cros-ec,motionsense-rotation-ref";
lid_rot_ref: lid-rotation-ref {
mat33 = <1 0 0
0 1 0
0 0 1>;
};
};
/*
* Driver specific data. A driver-specific data can be shared with
* different motion sensors while they are using the same driver.
*
* If a node's compatible starts with "cros-ec,accelgyro-", it is for
* a common structure defined in accelgyro.h.
* e.g) compatible = "cros-ec,accelgyro-als-drv-data" is for
* "struct als_drv_data_t" in accelgyro.h
*/
motionsense-sensor-data {
icm42607_data: icm42607-drv-data {
compatible = "cros-ec,drvdata-icm42607";
status = "okay";
};
};
/*
* List of motion sensors that creates motion_sensors array.
* The nodelabel "lid_accel" and "base_accel" are used to indicate
* motion sensor IDs for lid angle calculation.
*/
motionsense-sensor {
lid_accel: lid-accel {
compatible = "cros-ec,icm42607-accel";
status = "okay";
active-mask = "SENSOR_ACTIVE_S0_S3";
location = "MOTIONSENSE_LOC_LID";
mutex = <&lid_mutex>;
port = <&i2c_sensor>;
rot-standard-ref = <&lid_rot_ref>;
default-range = <2>;
drv-data = <&icm42607_data>;
configs {
compatible =
"cros-ec,motionsense-sensor-config";
ec-s0 {
odr = <(10000 | ROUND_UP_FLAG)>;
};
ec-s3 {
odr = <(10000 | ROUND_UP_FLAG)>;
};
};
};
lid_gyro: lid-gyro {
compatible = "cros-ec,icm42607-gyro";
status = "okay";
active-mask = "SENSOR_ACTIVE_S0_S3";
location = "MOTIONSENSE_LOC_LID";
mutex = <&lid_mutex>;
port = <&i2c_sensor>;
rot-standard-ref = <&lid_rot_ref>;
drv-data = <&icm42607_data>;
};
};
motionsense-sensor-info {
compatible = "cros-ec,motionsense-sensor-info";
/*
* list of GPIO interrupts that have to
* be enabled at initial stage
*/
sensor-irqs = <&int_lid_imu>;
};
};
|