Skip to content

Commit 59df54c

Browse files
jwrdegoedeij-intel
authored andcommitted
platform/x86: x86-android-tablets: Add Vexia Edu Atla 10 tablet 5V data
The Vexia EDU ATLA 10 tablet comes in 2 different versions with significantly different mainboards. The only outward difference is that the charging barrel on one is marked 5V and the other is marked 9V. Both are x86 ACPI tablets which ships with Android x86 as factory OS. with a DSDT which contains a bunch of I2C devices which are not actually there, causing various resource conflicts. Enumeration of these is skipped through the acpi_quirk_skip_i2c_client_enumeration(). Extend the existing support for the 9V version by adding support for manually instantiating the I2C devices which are actually present on the 5V version by adding the necessary device info to the x86-android-tablets module. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Link: https://lore.kernel.org/r/20250407092017.273124-2-hdegoede@redhat.com Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com> Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
1 parent 3343b08 commit 59df54c

File tree

3 files changed

+73
-0
lines changed

3 files changed

+73
-0
lines changed

drivers/platform/x86/x86-android-tablets/dmi.c

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -179,6 +179,18 @@ const struct dmi_system_id x86_android_tablet_ids[] __initconst = {
179179
},
180180
.driver_data = (void *)&peaq_c1010_info,
181181
},
182+
{
183+
/* Vexia Edu Atla 10 tablet 5V version */
184+
.matches = {
185+
/* Having all 3 of these not set is somewhat unique */
186+
DMI_MATCH(DMI_SYS_VENDOR, "To be filled by O.E.M."),
187+
DMI_MATCH(DMI_PRODUCT_NAME, "To be filled by O.E.M."),
188+
DMI_MATCH(DMI_BOARD_NAME, "To be filled by O.E.M."),
189+
/* Above strings are too generic, also match on BIOS date */
190+
DMI_MATCH(DMI_BIOS_DATE, "05/14/2015"),
191+
},
192+
.driver_data = (void *)&vexia_edu_atla10_5v_info,
193+
},
182194
{
183195
/* Vexia Edu Atla 10 tablet 9V version */
184196
.matches = {

drivers/platform/x86/x86-android-tablets/other.c

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -598,6 +598,66 @@ const struct x86_dev_info whitelabel_tm800a550l_info __initconst = {
598598
.gpiod_lookup_tables = whitelabel_tm800a550l_gpios,
599599
};
600600

601+
/*
602+
* Vexia EDU ATLA 10 tablet 5V, Android 4.4 + Guadalinex Ubuntu tablet
603+
* distributed to schools in the Spanish Andalucía region.
604+
*/
605+
static const struct property_entry vexia_edu_atla10_5v_touchscreen_props[] = {
606+
PROPERTY_ENTRY_U32("hid-descr-addr", 0x0000),
607+
PROPERTY_ENTRY_U32("post-reset-deassert-delay-ms", 120),
608+
{ }
609+
};
610+
611+
static const struct software_node vexia_edu_atla10_5v_touchscreen_node = {
612+
.properties = vexia_edu_atla10_5v_touchscreen_props,
613+
};
614+
615+
static const struct x86_i2c_client_info vexia_edu_atla10_5v_i2c_clients[] __initconst = {
616+
{
617+
/* kxcjk1013 accelerometer */
618+
.board_info = {
619+
.type = "kxcjk1013",
620+
.addr = 0x0f,
621+
.dev_name = "kxcjk1013",
622+
},
623+
.adapter_path = "\\_SB_.I2C3",
624+
}, {
625+
/* touchscreen controller */
626+
.board_info = {
627+
.type = "hid-over-i2c",
628+
.addr = 0x38,
629+
.dev_name = "FTSC1000",
630+
.swnode = &vexia_edu_atla10_5v_touchscreen_node,
631+
},
632+
.adapter_path = "\\_SB_.I2C4",
633+
.irq_data = {
634+
.type = X86_ACPI_IRQ_TYPE_APIC,
635+
.index = 0x44,
636+
.trigger = ACPI_LEVEL_SENSITIVE,
637+
.polarity = ACPI_ACTIVE_HIGH,
638+
},
639+
}
640+
};
641+
642+
static struct gpiod_lookup_table vexia_edu_atla10_5v_ft5416_gpios = {
643+
.dev_id = "i2c-FTSC1000",
644+
.table = {
645+
GPIO_LOOKUP("INT33FC:01", 26, "reset", GPIO_ACTIVE_LOW),
646+
{ }
647+
},
648+
};
649+
650+
static struct gpiod_lookup_table * const vexia_edu_atla10_5v_gpios[] = {
651+
&vexia_edu_atla10_5v_ft5416_gpios,
652+
NULL
653+
};
654+
655+
const struct x86_dev_info vexia_edu_atla10_5v_info __initconst = {
656+
.i2c_client_info = vexia_edu_atla10_5v_i2c_clients,
657+
.i2c_client_count = ARRAY_SIZE(vexia_edu_atla10_5v_i2c_clients),
658+
.gpiod_lookup_tables = vexia_edu_atla10_5v_gpios,
659+
};
660+
601661
/*
602662
* Vexia EDU ATLA 10 tablet 9V, Android 4.2 + Guadalinex Ubuntu tablet
603663
* distributed to schools in the Spanish Andalucía region.

drivers/platform/x86/x86-android-tablets/x86-android-tablets.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,7 @@ extern const struct x86_dev_info nextbook_ares8_info;
127127
extern const struct x86_dev_info nextbook_ares8a_info;
128128
extern const struct x86_dev_info peaq_c1010_info;
129129
extern const struct x86_dev_info whitelabel_tm800a550l_info;
130+
extern const struct x86_dev_info vexia_edu_atla10_5v_info;
130131
extern const struct x86_dev_info vexia_edu_atla10_9v_info;
131132
extern const struct x86_dev_info xiaomi_mipad2_info;
132133
extern const struct dmi_system_id x86_android_tablet_ids[];

0 commit comments

Comments
 (0)