#define pr_fmt(fmt) …
#include <linux/acpi.h>
#include <linux/dmi.h>
#include <linux/i2c.h>
#include <linux/input.h>
#include <linux/interrupt.h>
#include <linux/ioport.h>
#include <linux/module.h>
#include <linux/pci.h>
#include <linux/platform_device.h>
#include <linux/property.h>
#define ATMEL_TP_I2C_ADDR …
#define ATMEL_TP_I2C_BL_ADDR …
#define ATMEL_TS_I2C_ADDR …
#define ATMEL_TS_I2C_BL_ADDR …
#define CYAPA_TP_I2C_ADDR …
#define ELAN_TP_I2C_ADDR …
#define ISL_ALS_I2C_ADDR …
#define TAOS_ALS_I2C_ADDR …
static const char *i2c_adapter_names[] = …;
enum i2c_adapter_type { … };
struct i2c_peripheral { … };
struct acpi_peripheral { … };
struct chromeos_laptop { … };
static const struct chromeos_laptop *cros_laptop;
static struct i2c_client *
chromes_laptop_instantiate_i2c_device(struct i2c_adapter *adapter,
struct i2c_board_info *info,
unsigned short alt_addr)
{ … }
static bool chromeos_laptop_match_adapter_devid(struct device *dev, u32 devid)
{ … }
static void chromeos_laptop_check_adapter(struct i2c_adapter *adapter)
{ … }
static bool chromeos_laptop_adjust_client(struct i2c_client *client)
{ … }
static void chromeos_laptop_detach_i2c_client(struct i2c_client *client)
{ … }
static int chromeos_laptop_i2c_notifier_call(struct notifier_block *nb,
unsigned long action, void *data)
{ … }
static struct notifier_block chromeos_laptop_i2c_notifier = …;
#define DECLARE_CROS_LAPTOP(_name) …
#define DECLARE_ACPI_CROS_LAPTOP(_name) …
static struct i2c_peripheral samsung_series_5_550_peripherals[] __initdata = …;
DECLARE_CROS_LAPTOP(…);
static struct i2c_peripheral samsung_series_5_peripherals[] __initdata = …;
DECLARE_CROS_LAPTOP(…);
static const int chromebook_pixel_tp_keys[] __initconst = …;
static const struct property_entry
chromebook_pixel_trackpad_props[] __initconst = …;
static const struct property_entry
chromebook_atmel_touchscreen_props[] __initconst = …;
static struct i2c_peripheral chromebook_pixel_peripherals[] __initdata = …;
DECLARE_CROS_LAPTOP(…);
static struct i2c_peripheral hp_chromebook_14_peripherals[] __initdata = …;
DECLARE_CROS_LAPTOP(…);
static struct i2c_peripheral dell_chromebook_11_peripherals[] __initdata = …;
DECLARE_CROS_LAPTOP(…);
static struct i2c_peripheral toshiba_cb35_peripherals[] __initdata = …;
DECLARE_CROS_LAPTOP(…);
static struct i2c_peripheral acer_c7_chromebook_peripherals[] __initdata = …;
DECLARE_CROS_LAPTOP(…);
static struct i2c_peripheral acer_ac700_peripherals[] __initdata = …;
DECLARE_CROS_LAPTOP(…);
static struct i2c_peripheral acer_c720_peripherals[] __initdata = …;
DECLARE_CROS_LAPTOP(…);
static struct i2c_peripheral
hp_pavilion_14_chromebook_peripherals[] __initdata = …;
DECLARE_CROS_LAPTOP(…);
static struct i2c_peripheral cr48_peripherals[] __initdata = …;
DECLARE_CROS_LAPTOP(…);
static const u32 samus_touchpad_buttons[] __initconst = …;
static const struct property_entry samus_trackpad_props[] __initconst = …;
static struct acpi_peripheral samus_peripherals[] __initdata = …;
DECLARE_ACPI_CROS_LAPTOP(…);
static struct acpi_peripheral generic_atmel_peripherals[] __initdata = …;
DECLARE_ACPI_CROS_LAPTOP(…);
static const struct dmi_system_id chromeos_laptop_dmi_table[] __initconst = …;
MODULE_DEVICE_TABLE(dmi, chromeos_laptop_dmi_table);
static int __init chromeos_laptop_scan_peripherals(struct device *dev, void *data)
{ … }
static int __init chromeos_laptop_get_irq_from_dmi(const char *dmi_name)
{ … }
static int __init chromeos_laptop_setup_irq(struct i2c_peripheral *i2c_dev)
{ … }
static int __init
chromeos_laptop_prepare_i2c_peripherals(struct chromeos_laptop *cros_laptop,
const struct chromeos_laptop *src)
{ … }
static int __init
chromeos_laptop_prepare_acpi_peripherals(struct chromeos_laptop *cros_laptop,
const struct chromeos_laptop *src)
{ … }
static void chromeos_laptop_destroy(const struct chromeos_laptop *cros_laptop)
{ … }
static struct chromeos_laptop * __init
chromeos_laptop_prepare(const struct chromeos_laptop *src)
{ … }
static int __init chromeos_laptop_init(void)
{ … }
static void __exit chromeos_laptop_exit(void)
{ … }
module_init(…) …;
module_exit(chromeos_laptop_exit);
MODULE_DESCRIPTION(…) …;
MODULE_AUTHOR(…) …;
MODULE_LICENSE(…) …;