Linux kernel & device driver programming

Cross-Referenced Linux and Device Driver Code

[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ]
Version: [ 2.6.11.8 ] [ 2.6.25 ] [ 2.6.25.8 ] [ 2.6.31.13 ] Architecture: [ i386 ]
  1 #include <linux/i2c.h>
  2 #include <linux/input-polldev.h>
  3 #include <linux/kthread.h>
  4 #include <linux/mutex.h>
  5 #include <linux/spinlock.h>
  6 #include <linux/types.h>
  7 #include <asm/of_device.h>
  8 
  9 enum ams_irq {
 10         AMS_IRQ_FREEFALL = 0x01,
 11         AMS_IRQ_SHOCK = 0x02,
 12         AMS_IRQ_GLOBAL = 0x04,
 13         AMS_IRQ_ALL =
 14                 AMS_IRQ_FREEFALL |
 15                 AMS_IRQ_SHOCK |
 16                 AMS_IRQ_GLOBAL,
 17 };
 18 
 19 struct ams {
 20         /* Locks */
 21         spinlock_t irq_lock;
 22         struct mutex lock;
 23 
 24         /* General properties */
 25         struct device_node *of_node;
 26         struct of_device *of_dev;
 27         char has_device;
 28         char vflag;
 29         u32 orient1;
 30         u32 orient2;
 31 
 32         /* Interrupt worker */
 33         struct work_struct worker;
 34         u8 worker_irqs;
 35 
 36         /* Implementation
 37          *
 38          * Only call these functions with the main lock held.
 39          */
 40         void (*exit)(void);
 41 
 42         void (*get_xyz)(s8 *x, s8 *y, s8 *z);
 43         u8 (*get_vendor)(void);
 44 
 45         void (*clear_irq)(enum ams_irq reg);
 46 
 47 #ifdef CONFIG_SENSORS_AMS_I2C
 48         /* I2C properties */
 49         int i2c_bus;
 50         int i2c_address;
 51         struct i2c_client i2c_client;
 52 #endif
 53 
 54         /* Joystick emulation */
 55         struct input_polled_dev *idev;
 56         __u16 bustype;
 57 
 58         /* calibrated null values */
 59         int xcalib, ycalib, zcalib;
 60 };
 61 
 62 extern struct ams ams_info;
 63 
 64 extern void ams_sensors(s8 *x, s8 *y, s8 *z);
 65 extern int ams_sensor_attach(void);
 66 
 67 extern int ams_pmu_init(struct device_node *np);
 68 extern int ams_i2c_init(struct device_node *np);
 69 
 70 extern int ams_input_init(void);
 71 extern void ams_input_exit(void);
 72 
  This page was automatically generated by the LXR engine.