]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
platform/x86: x86-android-tablets: Move Acer info to its own file
authorHans de Goede <hansg@kernel.org>
Sat, 20 Sep 2025 20:07:09 +0000 (22:07 +0200)
committerIlpo Järvinen <ilpo.jarvinen@linux.intel.com>
Fri, 26 Sep 2025 11:26:37 +0000 (14:26 +0300)
Acer has several x86 based Android tablets which need x86-android-tablets
support to work around their broken ACPI tables.

At the moment x86-android-tablets only support one model, move this to
its own file before adding support for more models to avoid needing to
move more code around later.

Reviewed-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Reviewed-by: Andy Shevchenko <andy@kernel.org>
Signed-off-by: Hans de Goede <hansg@kernel.org>
Link: https://patch.msgid.link/20250920200713.20193-17-hansg@kernel.org
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
drivers/platform/x86/x86-android-tablets/Makefile
drivers/platform/x86/x86-android-tablets/acer.c [new file with mode: 0644]
drivers/platform/x86/x86-android-tablets/other.c

index 313be30548bc81b1a8a2db648bdec268bd2d2fb6..a2cf8cbdb3512a1834679be19780f77cdd5f4657 100644 (file)
@@ -6,4 +6,4 @@
 obj-$(CONFIG_X86_ANDROID_TABLETS) += vexia_atla10_ec.o
 obj-$(CONFIG_X86_ANDROID_TABLETS) += x86-android-tablets.o
 x86-android-tablets-y := core.o dmi.o shared-psy-info.o \
-                        asus.o lenovo.o other.o
+                        acer.o asus.o lenovo.o other.o
diff --git a/drivers/platform/x86/x86-android-tablets/acer.c b/drivers/platform/x86/x86-android-tablets/acer.c
new file mode 100644 (file)
index 0000000..e5850da
--- /dev/null
@@ -0,0 +1,87 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+/*
+ * Board info for Acer X86 tablets which ship with Android as the factory image
+ * and which have broken DSDT tables. The factory kernels shipped on these
+ * devices typically have a bunch of things hardcoded, rather than specified
+ * in their DSDT.
+ *
+ * Copyright (C) 2021-2025 Hans de Goede <hansg@kernel.org>
+ */
+
+#include <linux/gpio/machine.h>
+#include <linux/gpio/property.h>
+#include <linux/platform_device.h>
+#include <linux/property.h>
+
+#include "shared-psy-info.h"
+#include "x86-android-tablets.h"
+
+/* Acer Iconia One 7 B1-750 has an Android factory image with everything hardcoded */
+static const char * const acer_b1_750_mount_matrix[] = {
+       "-1", "0", "0",
+       "0", "1", "0",
+       "0", "0", "1"
+};
+
+static const struct property_entry acer_b1_750_bma250e_props[] = {
+       PROPERTY_ENTRY_STRING_ARRAY("mount-matrix", acer_b1_750_mount_matrix),
+       { }
+};
+
+static const struct software_node acer_b1_750_bma250e_node = {
+       .properties = acer_b1_750_bma250e_props,
+};
+
+static const struct property_entry acer_b1_750_novatek_props[] = {
+       PROPERTY_ENTRY_GPIO("reset-gpios", &baytrail_gpiochip_nodes[1], 26, GPIO_ACTIVE_LOW),
+       { }
+};
+
+static const struct software_node acer_b1_750_novatek_node = {
+       .properties = acer_b1_750_novatek_props,
+};
+
+static const struct x86_i2c_client_info acer_b1_750_i2c_clients[] __initconst = {
+       {
+               /* Novatek NVT-ts touchscreen */
+               .board_info = {
+                       .type = "nt11205-ts",
+                       .addr = 0x34,
+                       .dev_name = "NVT-ts",
+                       .swnode = &acer_b1_750_novatek_node,
+               },
+               .adapter_path = "\\_SB_.I2C4",
+               .irq_data = {
+                       .type = X86_ACPI_IRQ_TYPE_GPIOINT,
+                       .chip = "INT33FC:02",
+                       .index = 3,
+                       .trigger = ACPI_EDGE_SENSITIVE,
+                       .polarity = ACPI_ACTIVE_LOW,
+                       .con_id = "NVT-ts_irq",
+               },
+       }, {
+               /* BMA250E accelerometer */
+               .board_info = {
+                       .type = "bma250e",
+                       .addr = 0x18,
+                       .swnode = &acer_b1_750_bma250e_node,
+               },
+               .adapter_path = "\\_SB_.I2C3",
+               .irq_data = {
+                       .type = X86_ACPI_IRQ_TYPE_GPIOINT,
+                       .chip = "INT33FC:02",
+                       .index = 25,
+                       .trigger = ACPI_LEVEL_SENSITIVE,
+                       .polarity = ACPI_ACTIVE_HIGH,
+                       .con_id = "bma250e_irq",
+               },
+       },
+};
+
+const struct x86_dev_info acer_b1_750_info __initconst = {
+       .i2c_client_info = acer_b1_750_i2c_clients,
+       .i2c_client_count = ARRAY_SIZE(acer_b1_750_i2c_clients),
+       .pdev_info = int3496_pdevs,
+       .pdev_count = 1,
+       .gpiochip_type = X86_GPIOCHIP_BAYTRAIL,
+};
index bc473979e4f62f08e56674bc0fd049d6a1bf4f1c..ea7a01d7ccb460eb91b923e99c86492432eeea8d 100644 (file)
 #include "shared-psy-info.h"
 #include "x86-android-tablets.h"
 
-/* Acer Iconia One 7 B1-750 has an Android factory image with everything hardcoded */
-static const char * const acer_b1_750_mount_matrix[] = {
-       "-1", "0", "0",
-       "0", "1", "0",
-       "0", "0", "1"
-};
-
-static const struct property_entry acer_b1_750_bma250e_props[] = {
-       PROPERTY_ENTRY_STRING_ARRAY("mount-matrix", acer_b1_750_mount_matrix),
-       { }
-};
-
-static const struct software_node acer_b1_750_bma250e_node = {
-       .properties = acer_b1_750_bma250e_props,
-};
-
-static const struct property_entry acer_b1_750_novatek_props[] = {
-       PROPERTY_ENTRY_GPIO("reset-gpios", &baytrail_gpiochip_nodes[1], 26, GPIO_ACTIVE_LOW),
-       { }
-};
-
-static const struct software_node acer_b1_750_novatek_node = {
-       .properties = acer_b1_750_novatek_props,
-};
-
-static const struct x86_i2c_client_info acer_b1_750_i2c_clients[] __initconst = {
-       {
-               /* Novatek NVT-ts touchscreen */
-               .board_info = {
-                       .type = "nt11205-ts",
-                       .addr = 0x34,
-                       .dev_name = "NVT-ts",
-                       .swnode = &acer_b1_750_novatek_node,
-               },
-               .adapter_path = "\\_SB_.I2C4",
-               .irq_data = {
-                       .type = X86_ACPI_IRQ_TYPE_GPIOINT,
-                       .chip = "INT33FC:02",
-                       .index = 3,
-                       .trigger = ACPI_EDGE_SENSITIVE,
-                       .polarity = ACPI_ACTIVE_LOW,
-                       .con_id = "NVT-ts_irq",
-               },
-       }, {
-               /* BMA250E accelerometer */
-               .board_info = {
-                       .type = "bma250e",
-                       .addr = 0x18,
-                       .swnode = &acer_b1_750_bma250e_node,
-               },
-               .adapter_path = "\\_SB_.I2C3",
-               .irq_data = {
-                       .type = X86_ACPI_IRQ_TYPE_GPIOINT,
-                       .chip = "INT33FC:02",
-                       .index = 25,
-                       .trigger = ACPI_LEVEL_SENSITIVE,
-                       .polarity = ACPI_ACTIVE_HIGH,
-                       .con_id = "bma250e_irq",
-               },
-       },
-};
-
-const struct x86_dev_info acer_b1_750_info __initconst = {
-       .i2c_client_info = acer_b1_750_i2c_clients,
-       .i2c_client_count = ARRAY_SIZE(acer_b1_750_i2c_clients),
-       .pdev_info = int3496_pdevs,
-       .pdev_count = 1,
-       .gpiochip_type = X86_GPIOCHIP_BAYTRAIL,
-};
-
 /*
  * Advantech MICA-071
  * This is a standard Windows tablet, but it has an extra "quick launch" button