linux/arch/x86/platform/intel-mid/device_libs/platform_lis331.c
<<
>>
Prefs
   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);
  42