linux/drivers/platform/x86/touchscreen_dmi.c

// SPDX-License-Identifier: GPL-2.0-or-later
/*
 * Touchscreen driver DMI based configuration code
 *
 * Copyright (c) 2017 Red Hat Inc.
 *
 * Red Hat authors:
 * Hans de Goede <[email protected]>
 */

#include <linux/acpi.h>
#include <linux/ctype.h>
#include <linux/device.h>
#include <linux/dmi.h>
#include <linux/efi_embedded_fw.h>
#include <linux/i2c.h>
#include <linux/init.h>
#include <linux/kstrtox.h>
#include <linux/notifier.h>
#include <linux/property.h>
#include <linux/string.h>

struct ts_dmi_data {};

/* NOTE: Please keep all entries sorted alphabetically */

static const struct property_entry archos_101_cesium_educ_props[] =;

static const struct ts_dmi_data archos_101_cesium_educ_data =;

static const struct property_entry bush_bush_windows_tablet_props[] =;

static const struct ts_dmi_data bush_bush_windows_tablet_data =;

static const struct property_entry chuwi_hi8_props[] =;

static const struct ts_dmi_data chuwi_hi8_data =;

static const struct property_entry chuwi_hi8_air_props[] =;

static const struct ts_dmi_data chuwi_hi8_air_data =;

static const struct property_entry chuwi_hi8_pro_props[] =;

static const struct ts_dmi_data chuwi_hi8_pro_data =;

static const struct property_entry chuwi_hi10_air_props[] =;

static const struct ts_dmi_data chuwi_hi10_air_data =;

static const struct property_entry chuwi_hi10_plus_props[] =;

static const struct ts_dmi_data chuwi_hi10_plus_data =;

static const u32 chuwi_hi10_pro_efi_min_max[] =;

static const struct property_entry chuwi_hi10_pro_props[] =;

static const struct ts_dmi_data chuwi_hi10_pro_data =;

static const struct property_entry chuwi_hibook_props[] =;

static const struct ts_dmi_data chuwi_hibook_data =;

static const struct property_entry chuwi_vi8_props[] =;

static const struct ts_dmi_data chuwi_vi8_data =;

static const struct ts_dmi_data chuwi_vi8_plus_data =;

static const struct property_entry chuwi_vi10_props[] =;

static const struct ts_dmi_data chuwi_vi10_data =;

static const struct property_entry chuwi_surbook_mini_props[] =;

static const struct ts_dmi_data chuwi_surbook_mini_data =;

static const struct property_entry connect_tablet9_props[] =;

static const struct ts_dmi_data connect_tablet9_data =;

static const struct property_entry csl_panther_tab_hd_props[] =;

static const struct ts_dmi_data csl_panther_tab_hd_data =;

static const struct property_entry cube_iwork8_air_props[] =;

static const struct ts_dmi_data cube_iwork8_air_data =;

static const struct property_entry cube_knote_i1101_props[] =;

static const struct ts_dmi_data cube_knote_i1101_data =;

static const struct property_entry dexp_ursus_7w_props[] =;

static const struct ts_dmi_data dexp_ursus_7w_data =;

static const struct property_entry dexp_ursus_kx210i_props[] =;

static const struct ts_dmi_data dexp_ursus_kx210i_data =;

static const struct property_entry digma_citi_e200_props[] =;

static const struct ts_dmi_data digma_citi_e200_data =;

static const struct property_entry estar_beauty_hd_props[] =;

static const struct ts_dmi_data estar_beauty_hd_data =;

/* Generic props + data for upside-down mounted GDIX1001 touchscreens */
static const struct property_entry gdix1001_upside_down_props[] =;

static const struct ts_dmi_data gdix1001_upside_down_data =;

static const struct ts_dmi_data gdix1002_upside_down_data =;

static const struct property_entry gp_electronic_t701_props[] =;

static const struct ts_dmi_data gp_electronic_t701_data =;

static const struct property_entry irbis_tw90_props[] =;

static const struct ts_dmi_data irbis_tw90_data =;

static const struct property_entry irbis_tw118_props[] =;

static const struct ts_dmi_data irbis_tw118_data =;

static const struct property_entry itworks_tw891_props[] =;

static const struct ts_dmi_data itworks_tw891_data =;

static const struct property_entry jumper_ezpad_6_pro_props[] =;

static const struct ts_dmi_data jumper_ezpad_6_pro_data =;

static const struct property_entry jumper_ezpad_6_pro_b_props[] =;

static const struct ts_dmi_data jumper_ezpad_6_pro_b_data =;

static const struct property_entry jumper_ezpad_6_m4_props[] =;

static const struct ts_dmi_data jumper_ezpad_6_m4_data =;

static const struct property_entry jumper_ezpad_7_props[] =;

static const struct ts_dmi_data jumper_ezpad_7_data =;

static const struct property_entry jumper_ezpad_mini3_props[] =;

static const struct ts_dmi_data jumper_ezpad_mini3_data =;

static const struct property_entry mpman_converter9_props[] =;

static const struct ts_dmi_data mpman_converter9_data =;

static const struct property_entry mpman_mpwin895cl_props[] =;

static const struct ts_dmi_data mpman_mpwin895cl_data =;

static const struct property_entry myria_my8307_props[] =;

static const struct ts_dmi_data myria_my8307_data =;

static const struct property_entry onda_obook_20_plus_props[] =;

static const struct ts_dmi_data onda_obook_20_plus_data =;

static const struct property_entry onda_v80_plus_v3_props[] =;

static const struct ts_dmi_data onda_v80_plus_v3_data =;

static const struct property_entry onda_v820w_32g_props[] =;

static const struct ts_dmi_data onda_v820w_32g_data =;

static const struct property_entry onda_v891_v5_props[] =;

static const struct ts_dmi_data onda_v891_v5_data =;

static const struct property_entry onda_v891w_v1_props[] =;

static const struct ts_dmi_data onda_v891w_v1_data =;

static const struct property_entry onda_v891w_v3_props[] =;

static const struct ts_dmi_data onda_v891w_v3_data =;

static const struct property_entry pipo_w2s_props[] =;

static const struct ts_dmi_data pipo_w2s_data =;

static const struct property_entry pipo_w11_props[] =;

static const struct ts_dmi_data pipo_w11_data =;

static const struct property_entry positivo_c4128b_props[] =;

static const struct ts_dmi_data positivo_c4128b_data =;

static const struct property_entry pov_mobii_wintab_p800w_v20_props[] =;

static const struct ts_dmi_data pov_mobii_wintab_p800w_v20_data =;

static const struct property_entry pov_mobii_wintab_p800w_v21_props[] =;

static const struct ts_dmi_data pov_mobii_wintab_p800w_v21_data =;

static const struct property_entry pov_mobii_wintab_p1006w_v10_props[] =;

static const struct ts_dmi_data pov_mobii_wintab_p1006w_v10_data =;

static const struct property_entry predia_basic_props[] =;

static const struct ts_dmi_data predia_basic_data =;

static const struct property_entry rca_cambio_w101_v2_props[] =;

static const struct ts_dmi_data rca_cambio_w101_v2_data =;

static const struct property_entry rwc_nanote_p8_props[] =;

static const struct ts_dmi_data rwc_nanote_p8_data =;

static const struct property_entry schneider_sct101ctm_props[] =;

static const struct ts_dmi_data schneider_sct101ctm_data =;

static const struct property_entry globalspace_solt_ivw116_props[] =;

static const struct ts_dmi_data globalspace_solt_ivw116_data =;

static const struct property_entry techbite_arc_11_6_props[] =;

static const struct ts_dmi_data techbite_arc_11_6_data =;

static const struct property_entry teclast_tbook11_props[] =;

static const struct ts_dmi_data teclast_tbook11_data =;

static const struct property_entry teclast_x16_plus_props[] =;

static const struct ts_dmi_data teclast_x16_plus_data =;

static const struct property_entry teclast_x3_plus_props[] =;

static const struct ts_dmi_data teclast_x3_plus_data =;

static const struct property_entry teclast_x98plus2_props[] =;

static const struct ts_dmi_data teclast_x98plus2_data =;

static const struct property_entry trekstor_primebook_c11_props[] =;

static const struct ts_dmi_data trekstor_primebook_c11_data =;

static const struct property_entry trekstor_primebook_c13_props[] =;

static const struct ts_dmi_data trekstor_primebook_c13_data =;

static const struct property_entry trekstor_primetab_t13b_props[] =;

static const struct ts_dmi_data trekstor_primetab_t13b_data =;

static const struct property_entry trekstor_surftab_duo_w1_props[] =;

static const struct ts_dmi_data trekstor_surftab_duo_w1_data =;

static const struct property_entry trekstor_surftab_twin_10_1_props[] =;

static const struct ts_dmi_data trekstor_surftab_twin_10_1_data =;

static const struct property_entry trekstor_surftab_wintron70_props[] =;

static const struct ts_dmi_data trekstor_surftab_wintron70_data =;

static const struct property_entry viglen_connect_10_props[] =;

static const struct ts_dmi_data viglen_connect_10_data =;

static const struct property_entry vinga_twizzle_j116_props[] =;

static const struct ts_dmi_data vinga_twizzle_j116_data =;

/* NOTE: Please keep this table sorted alphabetically */
const struct dmi_system_id touchscreen_dmi_table[] =;

static struct ts_dmi_data *ts_data;

static void ts_dmi_add_props(struct i2c_client *client)
{}

static int ts_dmi_notifier_call(struct notifier_block *nb,
				unsigned long action, void *data)
{}

#define MAX_CMDLINE_PROPS

static struct property_entry ts_cmdline_props[MAX_CMDLINE_PROPS + 1];

static struct ts_dmi_data ts_cmdline_data =;

static int __init ts_parse_props(char *str)
{}
__setup();

static struct notifier_block ts_dmi_notifier =;

static int __init ts_dmi_init(void)
{}

/*
 * We are registering out notifier after i2c core is initialized and i2c bus
 * itself is ready (which happens at postcore initcall level), but before
 * ACPI starts enumerating devices (at subsys initcall level).
 */
arch_initcall(ts_dmi_init);