Lines Matching +full:surface +full:- +full:sam
1 // SPDX-License-Identifier: GPL-2.0+
3 * Surface System Aggregator Module (SSAM) client device registry.
5 * Registry for non-platform/non-ACPI SSAM client devices, i.e. devices that
6 * cannot be auto-detected. Provides device-hubs and performs instantiation
9 * Copyright (C) 2020-2022 Maximilian Luz <luzmaximilian@gmail.com>
23 /* -- Device registry. ------------------------------------------------------ */
28 * function, each encoded as two-digit hexadecimal, separated by ':'. In other
33 * Where, 'dd', 'cc', 'tt', 'ii', and 'ff' are the two-digit hexadecimal
42 /* KIP device hub (connects keyboard cover devices on Surface Pro 8). */
48 /* Base device hub (devices attached to Surface Book 3 base). */
66 /* Secondary battery (Surface Book 3). */
72 /* Platform profile / performance-mode device without a fan. */
78 /* Platform profile / performance-mode device with a fan, such that
104 /* Tablet-mode switch via KIP subsystem. */
110 /* DTX / detachment-system device (Surface Book 3). */
116 /* HID keyboard (SAM, TID=1). */
122 /* HID pen stash (SAM, TID=1; pen taken / stashed away evens). */
128 /* HID touchpad (SAM, TID=1). */
134 /* HID device instance 6 (SAM, TID=1, HID sensor collection). */
140 /* HID device instance 7 (SAM, TID=1, UCM UCSI HID client). */
146 /* HID system controls (SAM, TID=1). */
212 /* HID device instance 5 (KIP hub, type-cover firmware update). */
218 /* Tablet-mode switch via POS subsystem. */
225 * Devices for 5th- and 6th-generations models:
226 * - Surface Book 2,
227 * - Surface Laptop 1 and 2,
228 * - Surface Pro 5 and 6.
236 /* Devices for Surface Book 3. */
252 /* Devices for Surface Laptop 3 and 4. */
264 /* Devices for Surface Laptop 5. */
279 /* Devices for Surface Laptop 6. */
295 /* Devices for Surface Laptop 7. */
307 /* Devices for Surface Laptop Studio 1. */
323 /* Devices for Surface Laptop Studio 2. */
339 /* Devices for Surface Laptop Go. */
348 /* Devices for Surface Pro 7 and Surface Pro 7+. */
357 /* Devices for Surface Pro 8 */
374 /* Devices for Surface Pro 9, 10 and 11 (Intel/x86) */
393 /* Devices for Surface Pro 9 5G (ARM/QCOM) */
409 /* -- SSAM platform/meta-hub driver. ---------------------------------------- */
412 /* Surface Pro 4, 5, and 6 (OMBR < 0x10) */
415 /* Surface Pro 6 (OMBR >= 0x10) */
418 /* Surface Pro 7 */
421 /* Surface Pro 7+ */
424 /* Surface Pro 8 */
427 /* Surface Pro 9 */
430 /* Surface Pro 10 */
433 /* Surface Pro 11 */
436 /* Surface Book 2 */
439 /* Surface Book 3 */
442 /* Surface Laptop 1 */
445 /* Surface Laptop 2 */
448 /* Surface Laptop 3 (13", Intel) */
451 /* Surface Laptop 3 (15", AMD) and 4 (15", AMD) */
454 /* Surface Laptop 4 (13", Intel) */
457 /* Surface Laptop 5 */
460 /* Surface Laptop 6 */
463 /* Surface Laptop Go 1 */
466 /* Surface Laptop Go 2 */
469 /* Surface Laptop Go 3 */
472 /* Surface Laptop Studio 1 */
475 /* Surface Laptop Studio 2 */
483 /* Surface Pro 9 5G (ARM/QCOM) */
485 /* Surface Laptop 7 */
500 nodes = (const struct software_node **)acpi_device_get_match_data(&pdev->dev); in ssam_platform_hub_probe()
504 return -ENODEV; in ssam_platform_hub_probe()
509 return -ENODEV; in ssam_platform_hub_probe()
511 nodes = (const struct software_node **)match->data; in ssam_platform_hub_probe()
513 return -ENODEV; in ssam_platform_hub_probe()
523 ctrl = ssam_client_bind(&pdev->dev); in ssam_platform_hub_probe()
525 return PTR_ERR(ctrl) == -ENODEV ? -EPROBE_DEFER : PTR_ERR(ctrl); in ssam_platform_hub_probe()
534 return -ENOENT; in ssam_platform_hub_probe()
537 set_secondary_fwnode(&pdev->dev, root); in ssam_platform_hub_probe()
539 status = __ssam_register_clients(&pdev->dev, ctrl, root); in ssam_platform_hub_probe()
541 set_secondary_fwnode(&pdev->dev, NULL); in ssam_platform_hub_probe()
553 ssam_remove_clients(&pdev->dev); in ssam_platform_hub_remove()
554 set_secondary_fwnode(&pdev->dev, NULL); in ssam_platform_hub_remove()
571 MODULE_DESCRIPTION("Device-registry for Surface System Aggregator Module");