Question on Platform Device/Driver

anish singh anish198519851985 at gmail.com
Sun Nov 10 13:53:12 EST 2013


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/20131110/2bdb4a48/attachment.html 


More information about the Kernelnewbies mailing list