Lines Matching +full:sensor +full:- +full:hub
2 Intel Integrated Sensor Hub (ISH)
5 A sensor hub enables the ability to offload sensor polling and algorithm
6 processing to a dedicated low power co-processor. This allows the core
10 There are many vendors providing external sensor hubs conforming to HID
11 Sensor usage tables. These may be found in tablets, 2-in-1 convertible laptops
14 Intel® introduced integrated sensor hubs as a part of the SoC starting from
16 are many commercial devices already shipped with Integrated Sensor Hubs (ISH).
17 These ISH also comply to HID sensor specification, but the difference is the
18 transport protocol used for communication. The current external sensor hubs
27 ----------------- ----------------------
28 | USB HID | --> | ISH HID |
29 ----------------- ----------------------
30 ----------------- ----------------------
31 | USB protocol | --> | ISH Transport |
32 ----------------- ----------------------
33 ----------------- ----------------------
34 | EHCI/XHCI | --> | ISH IPC |
35 ----------------- ----------------------
37 ----------------- ----------------------
38 |Host controller| --> | ISH processor |
39 ----------------- ----------------------
41 ----------------- ----------------------
42 | USB End points| --> | ISH Clients |
43 ----------------- ----------------------
50 The ISH allows multiple sensor management applications executing in the
53 HID sensor applications, sensor calibration applications or sensor firmware
66 ---------------------------
68 ---------------------------
70 ----------------IIO ABI----------------
71 --------------------------
72 | IIO Sensor Drivers |
73 --------------------------
74 --------------------------
76 --------------------------
77 --------------------------
78 | HID Sensor Hub MFD |
79 --------------------------
80 --------------------------
82 --------------------------
83 --------------------------
85 --------------------------
86 --------------------------
88 --------------------------
89 --------------------------
91 --------------------------
93 ---------------- PCI -----------------
95 ----------------------------
97 ----------------------------
103 ------------------
105 The ISH is exposed as "Non-VGA unclassified PCI device" to the host. The PCI
111 ------------------------------------------
113 Location: drivers/hid/intel-ish-hid/ipc
116 hw-ish-regs.h.
127 A set of memory mapped register offers support of multi-byte messages TX and
136 Each side has 32 32-bit message registers and a 32-bit doorbell. Doorbell
153 -------------------
155 Location: drivers/hid/intel-ish-hid/ishtp/
160 The transport layer is a bi-directional protocol, which defines:
161 - Set of commands to start, stop, connect, disconnect and flow control
163 - A flow control mechanism to avoid buffer overflows
166 http://www.intel.com/content/dam/www/public/us/en/documents/technical-\
167 specifications/dcmi-hi-1-0-spec.pdf "Chapter 7: Bus Message Layer"
179 flow-control credit before. Once it has sent a message, it may not send another one
188 the sensor bandwidth requirement DMA can be enabled by using module parameter
206 it's request to do host->ISH DMA transfer; when FW sends DMA_XFER, it means
235 There can be multiple sensor clients and clients for calibration function.
243 - Host sends HOST_START_REQ_CMD, indicating that host ISHTP layer is up.
244 - FW responds with HOST_START_RES_CMD
245 - Host sends HOST_ENUM_REQ_CMD (enumerate FW clients)
246 - FW responds with HOST_ENUM_RES_CMD that includes bitmap of available FW
248 - For each FW ID found in that bitmap host sends
250 - FW responds with HOST_CLIENT_PROPERTIES_RES_CMD. Properties include UUID,
252 - Once host received properties for that last discovered client, it considers
256 -------------------
258 Location: drivers/hid/intel-ish-hid
262 - enumerate HID devices under FW ISH client
263 - Get Report descriptor
264 - Register with HID core as a LL driver
265 - Process Get/Set feature request
266 - Get input reports
268 HID Sensor Hub MFD and IIO sensor drivers
269 -----------------------------------------
271 The functionality in these drivers is the same as an external sensor hub.
273 Documentation/hid/hid-sensor.rst for HID sensor
274 Documentation/ABI/testing/sysfs-bus-iio for IIO ABIs to user space.
277 -----------------------------------------
281 HID-ISH-CLN ISHTP IPC HW
283 | | |-----WAKE UP------------------>|
285 | | |-----HOST READY--------------->|
287 | | |<----MNG_RESET_NOTIFY_ACK----- |
289 | |<----ISHTP_START------ | |
291 | |<-----------------HOST_START_RES_CMD-------------------|
293 | |------------------QUERY_SUBSCRIBER-------------------->|
295 | |------------------HOST_ENUM_REQ_CMD------------------->|
297 | |<-----------------HOST_ENUM_RES_CMD--------------------|
299 | |------------------HOST_CLIENT_PROPERTIES_REQ_CMD------>|
301 | |<-----------------HOST_CLIENT_PROPERTIES_RES_CMD-------|
304 | |------------------HOST_CLIENT_PROPERTIES_REQ_CMD------>|
306 | |<-----------------HOST_CLIENT_PROPERTIES_RES_CMD-------|
309 | |--Repeat HOST_CLIENT_PROPERTIES_REQ_CMD-till last one--|
312 |----ishtp_cl_connect--->|----------------- CLIENT_CONNECT_REQ_CMD-------------->|
314 | |<----------------CLIENT_CONNECT_RES_CMD----------------|
319 HOSTIF_DM_ENUM_DEVICES) |----------fill ishtp_msg_hdr struct write to HW----- >|
321 | | |<-----IRQ(IPC_PROTOCOL_ISHTP---|
323 |<--ENUM_DEVICE RSP------| | |
327 HOSTIF_GET_HID_DESCRIPTOR|----------fill ishtp_msg_hdr struct write to HW----- >|
333 HOSTIF_GET_REPORT_DESCRIPTOR|--------------fill ishtp_msg_hdr struct write to HW-- >|
343 -----------------------------------
349 - Initially, the ISHTP driver sends a command, HOST_START_REQ_CMD, to the ISH bootloader. In respon…
351 - During this process, the ISHTP driver first invokes the request_firmware() function, followed by …
353 - After the process concludes, the ISHTP driver calls the release_firmware() function.
359 +---------------+ +-----------------+
361 +---------------+ +-----------------+
365 |<--Send HOST_START_RES_CMD(Includes ISHTP_SUPPORT_CAP_LOADER bit)----|
373 |<---------------------------------------------+ |
375 --------------------------- |
377 --------------------------- |
381 |<--Send response-----------------------------------------------------|
385 |<--Send response-----------------------------------------------------|
389 |<--Send response-----------------------------------------------------|
393 …| |<--------------------------+
395 --------------------------- |
397 --------------------------- |
403 +---------------+ +-----------------+
405 +---------------+ +-----------------+
411 …he Intel-built firmware to the ``linux-firmware.git`` repository, located under the path ``intel/i…
414 - The firmware filename should use one of the following patterns:
416 - ``ish_${intel_plat_gen}_${SYS_VENDOR_CRC32}_${PRODUCT_NAME_CRC32}_${PRODUCT_SKU_CRC32}.bin``
417 - ``ish_${intel_plat_gen}_${SYS_VENDOR_CRC32}_${PRODUCT_SKU_CRC32}.bin``
418 - ``ish_${intel_plat_gen}_${SYS_VENDOR_CRC32}_${PRODUCT_NAME_CRC32}.bin``
419 - ``ish_${intel_plat_gen}_${SYS_VENDOR_CRC32}.bin``
421 - ``${intel_plat_gen}`` indicates the Intel platform generation (e.g., ``lnlm`` for Lunar Lake) and…
422 - ``${SYS_VENDOR_CRC32}`` is the CRC32 checksum of the ``sys_vendor`` value from the DMI field ``DM…
423 - ``${PRODUCT_NAME_CRC32}`` is the CRC32 checksum of the ``product_name`` value from the DMI field …
424 - ``${PRODUCT_SKU_CRC32}`` is the CRC32 checksum of the ``product_sku`` value from the DMI field ``…
437 -------------
445 -------------------------------------------------
449 root@otcpl-ThinkPad-Yoga-260:~# tree -l /sys/bus/iio/devices/
451 ├── iio:device0 -> ../../../devices/0044:8086:22D8.0001/HID-SENSOR-200073.9.auto/iio:device0