Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
1/*
2 * platform_lis331.c: lis331 platform data initialization file
3 *
4 * (C) Copyright 2013 Intel Corporation
5 * Author: Sathyanarayanan Kuppuswamy <sathyanarayanan.kuppuswamy@intel.com>
6 *
7 * This program is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License
9 * as published by the Free Software Foundation; version 2
10 * of the License.
11 */
12
13#include <linux/i2c.h>
14#include <linux/gpio.h>
15#include <asm/intel-mid.h>
16
17static void __init *lis331dl_platform_data(void *info)
18{
19 static short intr2nd_pdata;
20 struct i2c_board_info *i2c_info = info;
21 int intr = get_gpio_by_name("accel_int");
22 int intr2nd = get_gpio_by_name("accel_2");
23
24 if (intr < 0)
25 return NULL;
26 if (intr2nd < 0)
27 return NULL;
28
29 i2c_info->irq = intr + INTEL_MID_IRQ_OFFSET;
30 intr2nd_pdata = intr2nd + INTEL_MID_IRQ_OFFSET;
31
32 return &intr2nd_pdata;
33}
34
35static const struct devs_id lis331dl_dev_id __initconst = {
36 .name = "i2c_accel",
37 .type = SFI_DEV_TYPE_I2C,
38 .get_platform_data = &lis331dl_platform_data,
39};
40
41sfi_device(lis331dl_dev_id);