Lines Matching +full:processor +full:- +full:a +full:- +full:side

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
7 processor to go into low power modes more often, resulting in increased
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
24 Using a analogy with a usbhid implementation, the ISH follows a similar model
25 for a very high speed communication::
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 ----------------- ----------------------
45 Like USB protocol provides a method for device enumeration, link management
51 firmware. Like USB endpoints the messaging can be to/from a client. As part of
57 implemented as a bus. Each client application executing in the ISH processor
58 is registered as a device on this bus. The driver, which binds each device
66 ---------------------------
68 ---------------------------
70 ----------------IIO ABI----------------
71 --------------------------
73 --------------------------
74 --------------------------
76 --------------------------
77 --------------------------
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
110 3.2 Inter Processor Communication (IPC) driver
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
131 A doorbell mechanism is used in messaging to trigger processing in host and
132 client firmware side. When ISH interrupt handler is called, the ISH2HOST
136 Each side has 32 32-bit message registers and a 32-bit doorbell. Doorbell
142 Bit 31: doorbell trigger (signal H/W interrupt to the other side)
148 To abstract HW level IPC communication, a set of callbacks is registered.
153 -----------------------
155 Location: drivers/hid/intel-ish-hid/ishtp/
157 3.3.1 A Generic Transport Layer
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"
172 Each FW client and a protocol is identified by a UUID. In order to communicate
173 to a FW client, a connection must be established using connect request and
174 response bus messages. If successful, a pair (host_client_id and fw_client_id)
178 independently. Every peer may send a message only if it has received a
179 flow-control credit before. Once it has sent a message, it may not send another one
181 Either side can send disconnect request bus message to end communication. Also
191 Each side (host and FW) manages its DMA transfer memory independently. When an
192 ISHTP client from either host or FW side wants to send something, it decides
194 independent. The sending side sends DMA_XFER message when the message is in
206 it's request to do host->ISH DMA transfer; when FW sends DMA_XFER, it means
212 the receiving side, DMA_XFER_ACK returns ownership to the sender. A sender
223 When a client initiates a connection, a ring of RX and TX buffers is allocated.
229 to send. Same thing holds true on receive side and flow control is required.
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
269 ---------------------------------------------
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 -----------------
351 -----------------------------------------------------
355 root@otcpl-ThinkPad-Yoga-260:~# tree -l /sys/bus/iio/devices/
357 ├── iio:device0 -> ../../../devices/0044:8086:22D8.0001/HID-SENSOR-200073.9.auto/iio:device0