platform/surface: aggregator_registry: Add support for Surface Pro 9
authorMaximilian Luz <luzmaximilian@gmail.com>
Sun, 13 Nov 2022 18:59:51 +0000 (19:59 +0100)
committerHans de Goede <hdegoede@redhat.com>
Tue, 15 Nov 2022 16:18:55 +0000 (17:18 +0100)
Add device nodes to enable support for battery and charger status, the
ACPI platform profile, as well as internal and type-cover HID devices
(including sensors, touchpad, keyboard, and other miscellaneous devices)
on the Surface Pro 9.

This does not include support for a tablet-mode switch yet, as that is
now handled via the POS subsystem (unlike the Surface Pro 8, where it is
handled via the KIP subsystem) and therefore needs further changes.

While we're at it, also add the missing comment for the Surface Pro 8.

Signed-off-by: Maximilian Luz <luzmaximilian@gmail.com>
Link: https://lore.kernel.org/r/20221113185951.224759-2-luzmaximilian@gmail.com
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
drivers/platform/surface/surface_aggregator_registry.c

index 5859110..db82c2a 100644 (file)
@@ -268,6 +268,7 @@ static const struct software_node *ssam_node_group_sp7[] = {
        NULL,
 };
 
+/* Devices for Surface Pro 8 */
 static const struct software_node *ssam_node_group_sp8[] = {
        &ssam_node_root,
        &ssam_node_hub_kip,
@@ -284,6 +285,23 @@ static const struct software_node *ssam_node_group_sp8[] = {
        NULL,
 };
 
+/* Devices for Surface Pro 9 */
+static const struct software_node *ssam_node_group_sp9[] = {
+       &ssam_node_root,
+       &ssam_node_hub_kip,
+       &ssam_node_bat_ac,
+       &ssam_node_bat_main,
+       &ssam_node_tmp_pprof,
+       /* TODO: Tablet mode switch (via POS subsystem) */
+       &ssam_node_hid_kip_keyboard,
+       &ssam_node_hid_kip_penstash,
+       &ssam_node_hid_kip_touchpad,
+       &ssam_node_hid_kip_fwupd,
+       &ssam_node_hid_sam_sensors,
+       &ssam_node_hid_sam_ucm_ucsi,
+       NULL,
+};
+
 
 /* -- SSAM platform/meta-hub driver. ---------------------------------------- */
 
@@ -303,6 +321,9 @@ static const struct acpi_device_id ssam_platform_hub_match[] = {
        /* Surface Pro 8 */
        { "MSHW0263", (unsigned long)ssam_node_group_sp8 },
 
+       /* Surface Pro 9 */
+       { "MSHW0343", (unsigned long)ssam_node_group_sp9 },
+
        /* Surface Book 2 */
        { "MSHW0107", (unsigned long)ssam_node_group_gen5 },