Hi all, I am really interested about that. But I want to know more about the device, its type, name, ... The device isn't HID (Human Interface Device) ? If so, we should rethink adding such thing but modify/use hid-input instead. Because, I have an accelerometer phidget device and it is HID. Handling should be the same. On Fri, May 15, 2009 at 7:06 PM, Trilok Soni <soni.trilok@xxxxxxxxx> wrote: > Hi Felipe, > > Adding linux-input and Jonathan, so not deleting any lines from this e-mail. > > On Fri, May 15, 2009 at 6:46 PM, Felipe Balbi <felipe.balbi@xxxxxxxxx> wrote: >> Hi all, >> >> the following patch is just an idea to see how the community feels about >> it. Considering accelerometer devices, you might have different use >> cases for it while running different applications. You could be using it >> for screen rotation in one case but when opening a game, you could use >> it as a game controller by turning the device side-by-side. > > There was one proposal from Jonathan called Industrial IO patchset > which tried to address these sensor devices. Please grep in your > linux-kernel archieve. I believe there are accelerometer drivers under > drivers/hwmon. > >> >> Thinking about that, I decided it would be nice to have some parameters >> configured at runtime in order to be able to use the accelerometer on >> different use cases. >> >> The following proposal (really draft) tries to add a new IOCTL on input >> layer such as userland could use that for passing proper parameters to >> accelerometer drivers. >> >> ps: the patch is in really early stage, I'm guessing the best would be >> to, as force feedback devices, provide proper registration for an >> accelerometer device. >> >> diff --git a/include/linux/input.h b/include/linux/input.h >> index adc1332..c3c9e82 100644 >> --- a/include/linux/input.h >> +++ b/include/linux/input.h >> @@ -55,6 +55,26 @@ struct input_absinfo { >> __s32 flat; >> }; >> >> +#define INPUT_ACCEL_IRQ_NONE 0 >> +#define INPUT_ACCEL_IRQ_HIGH BIT(0) >> +#define INPUT_ACCEL_IRQ_LOW BIT(1) >> +#define INPUT_ACCEL_IRQ_LATCH BIT(2) >> + >> +struct input_accelinfo { >> + __u32 threshold; >> + __u32 duration; >> + >> + /* the following 4 fields configure how the irqs will be generated: >> + * - High Event >> + * - Low Event >> + * - Latch irq request >> + */ >> + __u8 x_irq; >> + __u8 y_irq; >> + __u8 z_irq; >> + __u8 click_irq; >> +}; >> + >> #define EVIOCGVERSION _IOR('E', 0x01, int) /* get driver version */ >> #define EVIOCGID _IOR('E', 0x02, struct input_id) /* get device ID */ >> #define EVIOCGREP _IOR('E', 0x03, int[2]) /* get repeat settings */ >> @@ -81,6 +101,8 @@ struct input_absinfo { >> >> #define EVIOCGRAB _IOW('E', 0x90, int) /* Grab/Release device */ >> >> +#define EVIOCACCELINFO _IOW('E', 0x91, struct input_accelinfo) /* set accelerometer's parameters */ >> + >> /* >> * Event types >> */ >> @@ -975,6 +997,8 @@ struct ff_effect { >> #include <linux/timer.h> >> #include <linux/mod_devicetable.h> >> >> +struct input_accelinfo; >> + >> /** >> * struct input_dev - represents an input device >> * @name: name of the device >> @@ -1069,6 +1093,7 @@ struct input_dev { >> void *keycode; >> int (*setkeycode)(struct input_dev *dev, int scancode, int keycode); >> int (*getkeycode)(struct input_dev *dev, int scancode, int *keycode); >> + int (*set_accelinfo)(struct input_dev *dev, struct input_accelinfo *info); >> >> struct ff_device *ff; >> >> >> >> -- >> balbi >> -- >> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in >> the body of a message to majordomo@xxxxxxxxxxxxxxx >> More majordomo info at http://vger.kernel.org/majordomo-info.html >> Please read the FAQ at http://www.tux.org/lkml/ >> > > > > -- > ---Trilok Soni > http://triloksoni.wordpress.com > http://www.linkedin.com/in/triloksoni > -- > To unsubscribe from this list: send the line "unsubscribe linux-input" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html > -- To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html