On 07/10/2012 10:29 AM, anish singh wrote: > On Fri, Jul 6, 2012 at 11:48 PM, Lars-Peter Clausen <lars@xxxxxxxxxx> wrote: >> On 07/06/2012 06:45 PM, anish kumar wrote: >>> On Fri, 2012-07-06 at 14:25 +0100, Jonathan Cameron wrote: >>>> On 7/6/2012 1:00 PM, anish singh wrote: >>>>> Hello Jonathan, >>>>> >>>>> I would be extremely happy if I can get your opinion on this. >>>>> >>>>> Recently Myungjoo Ham had posted Extcon: adc-jack driver patch. >>>>> >>>>> Description of this driver: >>>>> This is basically a Headset(jack) driver.Once the headset is inserted >>>>> a irq_handler is called and in this handler we have a callback(this >>>>> callback calls into pmic driver to get the adc value) to get >>>>> the adc value to determine the kind of headset: This headset could >>>>> be headset with mic, headset without mic or headset with >>>>> keys(volume-up/down) attached to it.One we have found out the kind >>>>> of headset we use extcon framework to notify the other interested drivers or >>>>> userspace that a headset with so and so capabilities has been inserted. >>>>> >>>>> Question: >>>>> Does this driver fall into IIO as pointed by Mark Brown in his review comments? >>>> The driver itself probably doesn't, but the adc part does in that IIO >>>> provides a means of talking to the relevant adc. >>>>> >>>>> Why do we need to use IIO to get the adc value?As for different boards the >>>>> method of getting adc is different.How does IIO help in this? >>>> Ultimately, IIO in this case is acting as an infrastructure for ALL >>>> adcs. E.g. for different boards you'll need a mapping to tell it which >>>> adc channel is connected but that is it. Hence you don't need a >>>> specific callback for each pmic as you will be using generic interfaces >>>> to query it. >>> After having a brief glance at IIO below is my understanding: >>> IIO is used to provide standard interfaces in the form of sysfs to >>> userspace _ONLY_. >>> >>> My requirement: >>> ADC-JACK-Driver should get the adc value from other driver i.e. PMIC >>> driver.Here the requirement is communication between two drivers in >>> kernel.Can IIO be used here? >>> >>> I had a look at drivers/staging/iio/Documentation/Overview.txt and some >>> ADC drivers. >> >> Hi, >> >> There is a new experimental in kernel API, which lets you write IIO clients >> in the kernel. >> >> See: drivers/iio/inkern.h >> and drivers/staging/iio/iio_hwmon.c > Thanks for this.So below is my understanding: > 1.The driver which will provide adc value should first register itself with IIO > core by specifiying it channels(struct iio_map should be used) and what > values we can expect from it. > 2.The driver which is interested in reading the adc values should call > iio_channel_get > to get the channel. > 3.Once the channel is obtained we can call iio_st_read_channel_raw function to > read the values. > > Is my understanding right or I am completely lost here? Yes, that sounds about right. Btw. iio_st_read_channel_raw has been renamed to iio_read_channel_raw - 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