Question on Platform Device/Driver

sanchayan maity victorascroft at gmail.com
Mon Nov 11 11:39:24 EST 2013


A call to one of those functions would require a valid wm97xx structure as
input to those functions.

How am i suppose to get a valid pointer to the structure which is required
by the function, if i am going to use it in a read function provided by the
file operations structure of the char driver?


On Mon, Nov 11, 2013 at 12:23 AM, anish singh
<anish198519851985 at gmail.com>wrote:

>
> On Nov 10, 2013 4:20 AM, "sanchayan maity" <victorascroft at gmail.com>
> wrote:
> >
> > @Peter
> >
> > Yes, i have read that. It says directly addressable but it's not like i
> can access those addresses straight from user space. So how do i access
> them . In the above case how do i access the register of the wm97 codec ic
> which is on an AC97 bus?
> >
> > @Anish
> >
> > Yes, wm97xx-core is a touch driver falling in the input subsystem.
> Though i did not look at the input core, but, i guess the touch screen
> functionality is provided that way as it includes the input.h file.
> >
> > Your suggestion is not exactly clear. I understand i have to write a
> kernel module. I guess the functions you are referring to are already
> exported by that driver code.
> Call those in your driver and you are done.
>
> >
> ----------------------------------------------------------------------------------------------------------------------------------------
> >
> > For my case, i was interested in reading the ADC values using four
> auxiliary ADC's provided by the WM97 codec IC. If you look at the driver
> code file, it has a function for reading the WM97 registers as well as the
> auxiliary ADC's. I wanted to use them.
> >
> > My specific question is how do i write a driver using this wm97xx_core.c
> to read the auxiliary ADC's?
> >
> > My general question will be how does a device use a platform driver to
> provide any kind of read write functionality access to it's register or any
> other functionality.
>
> In your case it justs report those values to input core.If you want to
> read/write then you need to explicitly make a new driver as char driver and
> call read/write when you are told by userspace.
>
> >
> > A character driver provides explicit read write functions which are used
> through an open /dev node. How do i do something similar using a platform
> driver like the one above?
> >
> > Thanks & Regards,
> > Sanchayan.
> >
> >
> >
> >
> > On Sun, Nov 10, 2013 at 2:02 AM, anish singh <
> anish198519851985 at gmail.com> wrote:
> >>
> >>
> >> On Nov 9, 2013 4:18 AM, "sanchayan maity" <victorascroft at gmail.com>
> wrote:
> >> >
> >> > Can someone give me some pointers or tell me as to how can one use a
> platform driver for reading and writing?
> >> >
> >> > For example, if i have a wm97xx codec IC, a core platform driver is
> provided (as on the below link).
> >> >
> http://lxr.free-electrons.com/sourcep/drivers/input/touchscreen/wm97xx-core.c
> >> This is a touch driver\input driver.
> >> So this driver comes under input subsystem.It interacts with input core
> to send events to it using report api's.
> >>
> >> >
> >> > If i wanted to use this core driver to read the auxilary ADC's of
> wm97xx codec how do i go about using the register read, write functions or
> read auxiliary adc functions provided by this driver file?
> >> What is the original problem you are trying to solve?You can do
> read\write just by a small hack.Write a kernel module and make the
> read\write function in this driver as exported.Use those in your own driver
> but make sure you export other variables also to give the right inputs for
> those api's.I am sure you are just looking for writing a device driver by
> doing an actual read\write.Remember this will just be a bad code i.e. hack.
> >>
> >> >
> >> > I have gone through the documentation provided here
> http://lxr.free-electrons.com/source/Documentation/driver-model/ but it
> is still not clear to me. I understand the concept of why a platform driver
> is required and how each device registers itself with the pseudo platform
> bus, but, i do not understand how to use such a driver or make my driver
> based on it and then use it for reading/writing.
> >> >
> >> > I understand character device drivers but, i am at a loss when it
> comes to understand these platform drivers. I come from embedded domain and
> these drivers seem are ubiquitous.
> >> >
> >> > Thanks.
> >> >
> >> > _______________________________________________
> >> > Kernelnewbies mailing list
> >> > Kernelnewbies at kernelnewbies.org
> >> > http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
> >> >
> >
> >
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20131111/79fa3c21/attachment.html 


More information about the Kernelnewbies mailing list