On 07/19/2012 09:26 PM, Marek Vasut wrote: > Dear Lars-Peter Clausen, > >> On 07/19/2012 04:23 PM, Marek Vasut wrote: >>> Dear Lars-Peter Clausen, >>> >>> Sorry for my late reply, got busy with other crazy stuff. >>> >>> [...] >>> >>>>>> Is there any reason not to use the mxs_lradc struct directly has the >>>>>> iio data? >>>>> >>>>> I explained it below in the patch. I hope we'll eventually support the >>>>> delay triggers, which will need 4 separate IIO devices. And this is >>>>> where this structure will be augmented by other components. >>>> >>>> Ok I saw the comment, but it wasn't obvious to me that delay channels >>>> will require multiple IIO devices. Might make sense to state this >>>> explicitly. >>> >>> Fixed. >>> >>>>>>> [...] >>>>>>> >>>>>>> + >>>>>>> +/* >>>>>>> + * Channel management >>>>>>> + * >>>>>>> + * This involves crazy mapping between 8 virtual channels the CTRL4 >>>>>>> register + * can harbor and 16 channels total this hardware supports. >>>>>>> + */ >>>>>> >>>>>> I suppose this means only a maximum 8 channels can be active at a >>>>>> time. I've recently posted a patch which makes it easy to implement >>>>>> such a restriction. >>>>>> http://www.spinics.net/lists/linux-iio/msg05936.html and >>>>>> http://www.spinics.net/lists/linux-iio/msg05935.html for an example >>>>>> validate callback implementation. In your case you'd check for >>>>>> bitmap_weight(...) <= 8. Those patches are not yet in IIO though. >>>>> >>>>> This is good. When do you expect this to hit linux-next possibly? Or at >>>>> least linux-iio? >>>> >>>> soon, hopefully. >>> >>> So I checked this, not sure how it'll help me though. >> >> Right now with your driver you can enable any combination of channels. If >> more than 8 channels are enabled and you start sampling it will fail, since >> not all channels can be mapped. With those patch you can implement a >> validate callback and check for bitmap_weight(scan_mask) <= 8. This will >> ensure that it is not possible to select more than 8 channels at once, >> which again means that starting sampling can't fail of this. > > Ok, I fixed this one. One last thing that I don't really understand is this. I > run generic_buffer.c to source samples from the LRADC. Is there any way to > continuously sample them? Because right now, I get one sample and that's it, no > more samples happen later on (I can 0 data in subsequent read() call). > I'd consider that a bug in your driver ;) The intend with IIO is that once you start sampling by enabling the buffer you get a continuous data stream until sampling is stopped and this works fine with other drivers. - Lars -- To unsubscribe from this list: send the line "unsubscribe linux-iio" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html