1 # This file is part of systemd.
3 # The lookup keys are composed in:
6 # Note: The format of the "sensor:" prefix match key is a
7 # contract between the rules file and the hardware data, it might
8 # change in later revisions to support more or better matches, it
9 # is not necessarily expected to be a stable ABI.
11 # Match string formats:
12 # sensor:modalias:<parent device modalias>:dmi:<dmi string>
14 # The device modalias can be seen in the `modalias` file
15 # of the sensor parent, for example:
16 # cat /sys/`udevadm info -q path -n /dev/iio:device0`/../modalias
18 # The full DMI string of the running machine can be read from
19 # /sys/class/dmi/id/modalias
20 # That requires a kernel built with CONFIG_DMIID set, which is common.
21 # The full DMI string is not needed here and the meaning of individual parts
22 # can be seen in the source of the DMIID kernel module
23 # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/firmware/dmi-id.c
25 # To add local entries, create a new file
26 # /etc/udev/hwdb.d/61-sensor-local.hwdb
27 # and add your rules there. To load the new rules execute (as root):
29 # udevadm trigger -v -p DEVNAME=/dev/iio:deviceXXX
30 # where /dev/iio:deviceXXX is the device in question.
32 # If your changes are generally applicable, preferably send them as a pull
34 # https://github.com/systemd/systemd
35 # or create a bug report on https://github.com/systemd/systemd/issues and
36 # include your new rules, a description of the device, and the output of
37 # udevadm info --export-db
39 # For hwdb format and systemd behavior:
40 # https://www.freedesktop.org/software/systemd/man/hwdb.html
42 # Allowed properties are:
43 # ACCEL_MOUNT_MATRIX=<matrix>
45 # where <matrix> is a mount-matrix in the format specified in the IIO
46 # subsystem[1]. The default, when unset, is equivalent to:
47 # ACCEL_MOUNT_MATRIX=1, 0, 0; 0, 1, 0; 0, 0, 1
48 # eg. the identity matrix.
50 # [1]: https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=dfc57732ad38f93ae6232a3b4e64fd077383a0f1
52 # Note for devices where the display (LCD panel) is mounted non upright
53 # in the device's casing, e.g. mounted upside-down or 90 degree rotated,
54 # the ACCEL_MOUNT_MATRIX should be such that the x and y axis matches the
55 # x and y axis of the display, not those of the casing, so that desktop
56 # environments using the accelerometer data for rotation will e.g.
57 # automatically flip their output for an upside-down display when the device
60 # Sort by brand, model
62 #########################################
64 #########################################
65 sensor:modalias:acpi:INVN6500*:dmi:*svn*Acer*:*pn*AspireSW5-011*
66 ACCEL_MOUNT_MATRIX=0, -1, 0; -1, 0, 0; 0, 0, 1
68 sensor:modalias:acpi:INVN6500*:dmi:*svn*Acer*:*pn*AspireSW5-012*
69 ACCEL_MOUNT_MATRIX=0, 1, 0; 1, 0, 0; 0, 0, 1
71 sensor:modalias:acpi:BMA250E*:dmi:*:svnAcer:pnIconiaW1-810:*
72 ACCEL_MOUNT_MATRIX=1, 0, 0; 0, -1, 0; 0, 0, 1
74 #########################################
76 #########################################
77 sensor:modalias:acpi:SMO8500*:dmi:*:svnARCHOS:pnARCHOS80Cesium:*
78 ACCEL_MOUNT_MATRIX=-1, 0, 0; 0, 1, 0; 0, 0, 1
80 #########################################
82 #########################################
83 sensor:modalias:acpi:INVN6500*:dmi:*svnASUSTeK*:*pnT100CHI*
84 ACCEL_MOUNT_MATRIX=-1, 0, 0; 0, 1, 0; 0, 0, 1
86 sensor:modalias:acpi:INVN6500*:dmi:*svnASUSTeK*:*pnT100TA*
87 ACCEL_MOUNT_MATRIX=1, 0, 0; 0, -1, 0; 0, 0, 1
89 sensor:modalias:acpi:INVN6500*:dmi:*svnASUSTeK*:pnT200TA*
90 ACCEL_MOUNT_MATRIX=1, 0, 0; 0, -1, 0; 0, 0, 1
92 sensor:modalias:acpi:INVN6500*:dmi:*svnASUSTeK*:*pnTP201SA*
93 ACCEL_MOUNT_MATRIX=0, -1, 0; -1, 0, 0; 0, 0, 1
95 sensor:modalias:acpi:INVN6500*:dmi:*svnASUSTeK*:pn*E205SA*
96 ACCEL_MOUNT_MATRIX=0, -1, 0; -1, 0, 0; 0, 0, 1
98 sensor:modalias:acpi:INVN6500*:dmi:*svn*ASUSTeK*:*pn*TP300LA*
99 ACCEL_MOUNT_MATRIX=0, 1, 0; 1, 0, 0; 0, 0, 1
101 sensor:modalias:acpi:INVN6500*:dmi:*svn*ASUSTeK*:*pn*TP300LD*
102 ACCEL_MOUNT_MATRIX=0, 1, 0; 1, 0, 0; 0, 0, 1
104 sensor:modalias:acpi:SMO8500*:dmi:*svn*ASUSTeK*:*pn*TP300LJ*
105 ACCEL_MOUNT_MATRIX=0, -1, 0; -1, 0, 0; 0, 0, 1
107 sensor:modalias:acpi:SMO8500*:dmi:*svn*ASUSTeK*:*pn*TP500LB*
108 ACCEL_MOUNT_MATRIX=0, 1, 0; 1, 0, 0; 0, 0, 1
110 sensor:modalias:acpi:SMO8500*:dmi:*svn*ASUSTeK*:*pn*TP300LD*
111 ACCEL_MOUNT_MATRIX=0, -1, 0; -1, 0, 0; 0, 0, 1
113 sensor:modalias:acpi:BOSC0200*:dmi:*svn*ASUSTeK*:*pn*TP412UA*
114 ACCEL_MOUNT_MATRIX=0, -1, 0; 1, 0, 0; 0, 0, 1
116 #########################################
118 #########################################
119 sensor:modalias:acpi:SMO8500*:dmi:*:svnStandard:pnWCBT1011:*
120 ACCEL_MOUNT_MATRIX=-1, 0, 0; 0, 1, 0; 0, 0, 1
122 #########################################
124 #########################################
127 sensor:modalias:acpi:BMA250E*:dmi:bvnINSYDECorp.:bvrCHUWI.D86JLBNR*:svnInsyde:pni86:*
128 ACCEL_MOUNT_MATRIX=0, -1, 0; -1, 0, 0; 0, 0, 1
130 # Chuwi Vi8 Plus (CWI519)
131 sensor:modalias:acpi:BOSC0200*:dmi:*:svnHampoo:pnD2D3_Vi8A1:*
132 ACCEL_MOUNT_MATRIX=0, -1, 0; -1, 0, 0; 0, 0, 1
134 # Chuwi Vi10 (CWI505)
135 sensor:modalias:acpi:BMA250E*:dmi:bvnINSYDECorp.:bvrG1D_S165*:svnilife:pnS165:*
136 ACCEL_MOUNT_MATRIX=0, 1, 0; 1, 0, 0; 0, 0, 1
138 # Chuwi Hi8 Pro (CWI513)
139 sensor:modalias:acpi:BOSC0200*:dmi:*:svnHampoo:pnX1D3_C806N:*
140 ACCEL_MOUNT_MATRIX=0, -1, 0; -1, 0, 0; 0, 0, 1
143 sensor:modalias:acpi:BOSC0200*:dmi:*:svn*CHUWIINNOVATIONANDTECHNOLOGY*:pnHi10protablet:*
144 ACCEL_MOUNT_MATRIX=0, -1, 0; -1, 0, 0; 0, 0, 1
147 sensor:modalias:acpi:BOSC0200*:dmi:*:svnHampoo:pnP02BD6_HI-122LP:*
148 ACCEL_MOUNT_MATRIX=1, 0, 0; 0, -1, 0; 0, 0, 1
151 sensor:modalias:acpi:KIOX000A*:dmi:svnChuwi*:pnHi13
152 ACCEL_MOUNT_MATRIX=1, 0, 0; 0, -1, 0; 0, 0, 1
155 # Chuwi HiBook does not have its product name filled, so we
156 # match the entire dmi-alias, assuming that the use of a BOSC0200 +
157 # bios-version + bios-date combo is unique
158 sensor:modalias:acpi:BOSC0200*:dmi:bvnAmericanMegatrendsInc.:bvr5.11:bd05/07/2016:svnDefaultstring:pnDefaultstring:pvrDefaultstring:rvnHampoo:rnCherryTrailCR:rvrDefaultstring:cvnDefaultstring:ct3:cvrDefaultstring:
159 sensor:modalias:acpi:BOSC0200*:dmi:bvnAmericanMegatrendsInc.:bvr5.11:bd05/28/2016:svnDefaultstring:pnDefaultstring:pvrDefaultstring:rvnHampoo:rnCherryTrailCR:rvrDefaultstring:cvnDefaultstring:ct3:cvrDefaultstring:
160 ACCEL_MOUNT_MATRIX=1, 0, 0; 0, -1, 0; 0, 0, 1
162 #########################################
164 #########################################
167 sensor:modalias:acpi:KIOX000A*:dmi:*:svncube:pni1-TF:*
168 ACCEL_MOUNT_MATRIX=1, 0, 0; 0, -1, 0; 0, 0, 1
171 sensor:modalias:acpi:KIOX000A*:dmi:*:svnCube:pni7Stylus:*
172 ACCEL_MOUNT_MATRIX=-1, 0, 0; 0, 1, 0; 0, 0, 1
175 sensor:modalias:acpi:KIOX000A*:dmi:*:svnCube:pni16:*
176 ACCEL_MOUNT_MATRIX=-1, 0, 0; 0, 1, 0; 0, 0, 1
178 # Cube i7 Stylus I8L Model
179 sensor:modalias:acpi:KIOX000A*:dmi:*:svnCube:pni8-L:*
180 ACCEL_MOUNT_MATRIX=-1, 0, 0; 0, 1, 0; 0, 0, 1
182 # Cube iWork 10 Flagship
183 sensor:modalias:acpi:BOSC0200*:dmi:*:svnCube:pnI15-TC:*
184 ACCEL_MOUNT_MATRIX=1, 0, 0; 0, -1, 0; 0, 0, 1
186 #########################################
188 #########################################
189 sensor:modalias:acpi:*KIOX000A*:dmi:*svn*CytrixTechnology:*pn*Complex11t*
190 ACCEL_MOUNT_MATRIX=-1, 0, 0; 0, 1, 0; 0, 0, 1
192 #########################################
194 #########################################
195 sensor:modalias:acpi:SMO8500*:dmi:*svn*DEXP*:*pn*DEXPOEM*
196 ACCEL_MOUNT_MATRIX=0, -1, 0; -1, 0, 0; 0, 0, 1
198 #########################################
200 #########################################
201 sensor:modalias:acpi:ACCE0001*:dmi:*svnEndless*:*pnELT-NL3*
202 ACCEL_MOUNT_MATRIX=0, 1, 0; 0, 0, -1; -1, 0, 0
204 #########################################
206 #########################################
207 sensor:modalias:acpi:KIOX000A*:dmi:*:svnEVE*:pnEveV:*
208 ACCEL_MOUNT_MATRIX=0, 1, 0; -1, 0, 0; 0, 0, 1
210 #########################################
212 #########################################
213 sensor:modalias:acpi:KIOX000A*:dmi:bvnINSYDECorp.:bvrBYT70A.YNCHENG.WIN.007:*:svnInsyde:pnT701:*
214 ACCEL_MOUNT_MATRIX=0, -1, 0; -1, 0, 0; 0, 0, 1
216 #########################################
218 #########################################
219 sensor:modalias:platform:lis3lv02d:dmi:*svn*Hewlett-Packard*:*pn*HPEliteBook8540w*
220 sensor:modalias:platform:lis3lv02d:dmi:*svn*Hewlett-Packard*:*pn*HPEliteBook8560w*
221 ACCEL_MOUNT_MATRIX=1, 0, 0; 0, 0, -1; 0, 1, 0
223 sensor:modalias:acpi:SMO8500*:dmi:*:svnHewlett-Packard:pnHPStream7Tablet:*
224 sensor:modalias:acpi:SMO8500*:dmi:*:svnHewlett-Packard:pnHPStream8Tablet:*
225 ACCEL_MOUNT_MATRIX=0, 1, 0; 1, 0, 0; 0, 0, 1
227 # HP Pavillion X2 10-n000nd
228 sensor:modalias:i2c:bmc150_accel:dmi:*:svnHewlett-Packard:pnHPPavilionx2Detachable:*:rn815D:*
229 ACCEL_MOUNT_MATRIX=0, -1, 0; -1, 0, 0; 0, 0, 1
231 #########################################
233 #########################################
235 # The I.T.Works TW891 2-in-1's DMI has the product-name field set, but not
236 # the sys-vendor field. This makes the DMI data a bit generic, so we match
237 # the whole dmi modalias, except for the BIOS version/date
238 sensor:modalias:acpi:KIOX000A*:dmi:bvnAmericanMegatrendsInc.:*:svnTobefilledbyO.E.M.:pnTW891:pvrTobefilledbyO.E.M.:rvnTobefilledbyO.E.M.:rnTW891:rvr1.0:cvnToBeFilledByO.E.M.:ct3:cvrToBeFilledByO.E.M.:
239 ACCEL_MOUNT_MATRIX=0, 1, 0; 1, 0, 0; 0, 0, 1
241 # I.T.Works TW701 7" windows tablet, same hw as Trekstor ST70416-6
242 sensor:modalias:acpi:BMA250*:dmi:*:bvritWORKS.G.WI71C.JGBMRB*:*:svnInsyde:pni71c:*
243 ACCEL_MOUNT_MATRIX=0, 1, 0; 1, 0, 0; 0, 0, 1
245 #########################################
247 #########################################
248 sensor:modalias:acpi:KIOX000A*:dmi:*svn*iOTA*:*pn*IOTA2210*
249 ACCEL_MOUNT_MATRIX=0, -1, 0; -1, 0, 0; 0, 0, 1
251 #########################################
253 #########################################
256 sensor:modalias:acpi:BOSC0200*:dmi:bvnINSYDECorp.:bvrjumperx.T87.KFBNEE*
257 ACCEL_MOUNT_MATRIX=0, -1, 0; -1, 0, 0; 0, 0, 1
260 sensor:modalias:acpi:BOSC0200*:dmi:*:svnJumper:pnEZpad:*:rvr.A006:*
261 ACCEL_MOUNT_MATRIX=-1, 0, 0; 0, -1, 0; 0, 0, 1
263 #########################################
265 #########################################
266 sensor:modalias:acpi:KIOX000A*:dmi:bvnINSYDECorp.:bvrVISION.I22K*:svnKAZAM:pnVISION:*
267 ACCEL_MOUNT_MATRIX=0, 1, 0; 1, 0, 0; 0, 0, 1
269 #########################################
271 #########################################
272 sensor:modalias:acpi:SMO8500*:dmi:*svnLamina*:*pnT701BR.SE*
273 ACCEL_MOUNT_MATRIX=-1, 0, 0; 0, 1, 0; 0, 0, 1
275 sensor:modalias:acpi:KIOX000A*:dmi:*svnLAMINA:pnT-1016BNORD*
276 ACCEL_MOUNT_MATRIX=0, 1, 0; 1, 0, 0; 0, 0, 1
278 #########################################
280 #########################################
281 sensor:modalias:acpi:NCPE0388*:dmi:*:rnLenovoYOGA510-14IKB:*
282 ACCEL_MOUNT_MATRIX=-1, 0, 0; 0, -1, 0; 0, 0, 1
284 sensor:modalias:acpi:BOSC0200:BOSC0200:dmi:*ThinkPadYoga11e3rdGen*
285 ACCEL_MOUNT_MATRIX=0, 1, 0; -1, 0, 0; 0, 0, 1
288 sensor:modalias:acpi:BMA250E*:dmi:bvnLENOVO:*:pvrLenovoMIIX3-1030:*
289 ACCEL_MOUNT_MATRIX=0, -1, 0; -1, 0, 0; 0, 0, 1
292 sensor:modalias:acpi:SMO8500*:dmi:bvnLENOVO:*:pvrLenovoMIIX3-830:*
293 ACCEL_MOUNT_MATRIX=-1, 0, 0; 0, 1, 0; 0, 0, 1
295 # IdeaPad Miix 310 note this only is for BIOS version (bvr) 1HCN4?WW, which has
296 # a portrait LCD panel, versions with bvr 1HCN3?WW have a landscape panel
297 sensor:modalias:acpi:KIOX000A*:dmi:bvnLENOVO:bvr1HCN4?WW:*:svnLENOVO:pn80SG:*
298 ACCEL_MOUNT_MATRIX=0, 1, 0; 1, 0, 0; 0, 0, 1
300 # IdeaPad Miix 320, different batches use a different sensor
301 sensor:modalias:acpi:*BOSC0200*:dmi:*:svnLENOVO*:pn80XF:*
302 sensor:modalias:acpi:SMO8840*:dmi:*:svnLENOVO:pn80XF:pvrLenovoMIIX320*
303 ACCEL_MOUNT_MATRIX=0, -1, 0; -1, 0, 0; 0, 0, 1
306 sensor:modalias:acpi:*BOSC0200*:dmi:*:svnLENOVO*:pn80XE:*
307 ACCEL_MOUNT_MATRIX=0, -1, 0; -1, 0, 0; 0, 0, 1
309 #########################################
311 #########################################
314 sensor:modalias:acpi:BOSC0200*:dmi:*:svnLINX*:pnLINX1010B:*
315 ACCEL_MOUNT_MATRIX=-1, 0, 0; 0, 1, 0; 0, 0, -1
318 sensor:modalias:acpi:KIOX000A*:dmi:*:svnLINX*:pnLINX12X64:*
319 ACCEL_MOUNT_MATRIX=0, 1, 0; 1, 0, 0; 0, 0, 1
321 #########################################
323 #########################################
324 sensor:modalias:acpi:SMO8500*:dmi:*:svnMicro-StarInternationalCo.,Ltd.:pnS100:*
325 ACCEL_MOUNT_MATRIX=0, -1, 0; 1, 0, 0; 0, 0, 1
327 #########################################
329 #########################################
330 sensor:modalias:acpi:KIOX000A*:dmi:*:svnTMAX:pnTM800W560L:*
331 ACCEL_MOUNT_MATRIX=1, 0, 0; 0, -1, 0; 0, 0, 1
333 #########################################
335 #########################################
336 sensor:modalias:acpi:BMA250E*:dmi:bvnINSYDECorp.:bvrONDA.D89*:svnInsyde:pnONDATablet:*
337 sensor:modalias:acpi:BMA250E*:dmi:bvnINSYDECorp.:bvrONDA.W89*:svnInsyde:pnONDATablet:*
338 ACCEL_MOUNT_MATRIX=0, -1, 0; -1, 0, 0; 0, 0, 1
340 #########################################
342 #########################################
343 sensor:modalias:acpi:SMO8500*:dmi:*:svnPEAQ:pnPEAQPMMC1010MD99187:*
344 ACCEL_MOUNT_MATRIX=-1, 0, 0; 0, 1, 0; 0, 0, 1
346 #########################################
348 #########################################
349 sensor:modalias:acpi:KIOX000A*:dmi:*:svnPIPO:pnW2S:*
350 ACCEL_MOUNT_MATRIX=1, 0, 0; 0, -1, 0; 0, 0, 1
353 sensor:modalias:acpi:SMO8500*:dmi:*:bvrV8L_WIN32_CHIPHD_*_DX:*:rvnAMICorporation:rnAptioCRB:*
354 ACCEL_MOUNT_MATRIX=0, -1, 0; -1, 0, 0; 0, 0, 1
356 #########################################
358 #########################################
359 sensor:modalias:acpi:BMA250E*:dmi:*:svnShenzhenPLOYER*:pnMOMO7W:*
360 ACCEL_MOUNT_MATRIX=0, 1, 0; 1, 0, 0; 0, 0, 1
362 #########################################
364 #########################################
366 # The Point of View TAB-P800W does not have its product name filled, so we
367 # match the entire dmi-alias, assuming that the use of a BMA250E +
368 # bios-version + bios-date combo is unique
369 sensor:modalias:acpi:BMA250E*:dmi:bvnAmericanMegatrendsInc.:bvr3BAIR1013:bd08/22/2014:svnTobefilledbyO.E.M.:pnTobefilledbyO.E.M.:pvrTobefilledbyO.E.M.:rvnAMICorporation:rnAptioCRB:rvrTobefilledbyO.E.M.:cvnToBeFilledByO.E.M.:ct3:cvrToBeFilledByO.E.M.:
370 sensor:modalias:acpi:BMA250E*:dmi:bvnAmericanMegatrendsInc.:bvr3BAIR1014:bd10/24/2014:svnTobefilledbyO.E.M.:pnTobefilledbyO.E.M.:pvrTobefilledbyO.E.M.:rvnAMICorporation:rnAptioCRB:rvrTobefilledbyO.E.M.:cvnToBeFilledByO.E.M.:ct3:cvrToBeFilledByO.E.M.:
371 ACCEL_MOUNT_MATRIX=0, 1, 0; 1, 0, 0; 0, 0, 1
373 #########################################
375 #########################################
376 sensor:modalias:acpi:KIOX000A*:dmi:*:svnTECLAST:pnX80Pro:*
377 ACCEL_MOUNT_MATRIX=0, 1, 0; 1, 0, 0; 0, 0, 1
379 sensor:modalias:acpi:KIOX000A*:dmi:*:svnTECLAST:pnX98PlusII:*
380 ACCEL_MOUNT_MATRIX=1, 0, 0; 0, -1, 0; 0, 0, 1
382 #########################################
384 #########################################
385 sensor:modalias:acpi:BMA250*:dmi:*:bvrTREK.G.WI71C.JGBMRBA*:*:svnInsyde:pnST70416-6:*
386 sensor:modalias:acpi:BMA250*:dmi:*:bvrTREK.G.WI71C.JGBMRBA*:*:svnTrekStor:pnSurfTabwintron7.0ST70416-6:*
387 ACCEL_MOUNT_MATRIX=0, 1, 0; 1, 0, 0; 0, 0, 1
389 #########################################
391 #########################################
392 sensor:modalias:acpi:SMO8500*:dmi:*:svnUMAX:pnVisionBook10WiPlus:*
393 ACCEL_MOUNT_MATRIX=0, -1, 0; -1, 0, 0; 0, 0, 1
395 #########################################
397 #########################################
398 sensor:modalias:acpi:BMA250E*:dmi:*:svnYOURS:pnY8W81:*
399 ACCEL_MOUNT_MATRIX=0, -1, 0; -1, 0, 0; 0, 0, 1