All of lore.kernel.org
 help / color / mirror / Atom feed
* Question on Platform Device/Driver
@ 2013-11-09 12:17 sanchayan maity
  2013-11-09 20:32 ` anish singh
  0 siblings, 1 reply; 5+ messages in thread
From: sanchayan maity @ 2013-11-09 12:17 UTC (permalink / raw)
  To: kernelnewbies

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/source/drivers/input/touchscreen/wm97xx-core.c

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?

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.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20131109/9bcdeadf/attachment.html 

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Question on Platform Device/Driver
  2013-11-09 12:17 Question on Platform Device/Driver sanchayan maity
@ 2013-11-09 20:32 ` anish singh
  2013-11-10 12:20   ` sanchayan maity
  0 siblings, 1 reply; 5+ messages in thread
From: anish singh @ 2013-11-09 20:32 UTC (permalink / raw)
  To: kernelnewbies

On Nov 9, 2013 4:18 AM, "sanchayan maity" <victorascroft@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/20131109/21b45c46/attachment.html 

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Question on Platform Device/Driver
  2013-11-09 20:32 ` anish singh
@ 2013-11-10 12:20   ` sanchayan maity
  2013-11-10 18:53     ` anish singh
  0 siblings, 1 reply; 5+ messages in thread
From: sanchayan maity @ 2013-11-10 12:20 UTC (permalink / raw)
  To: kernelnewbies

@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.
----------------------------------------------------------------------------------------------------------------------------------------

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.

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@gmail.com>wrote:

>
> On Nov 9, 2013 4:18 AM, "sanchayan maity" <victorascroft@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/c79dbadf/attachment.html 

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Question on Platform Device/Driver
  2013-11-10 12:20   ` sanchayan maity
@ 2013-11-10 18:53     ` anish singh
  2013-11-11 16:39       ` sanchayan maity
  0 siblings, 1 reply; 5+ messages in thread
From: anish singh @ 2013-11-10 18:53 UTC (permalink / raw)
  To: kernelnewbies

On Nov 10, 2013 4:20 AM, "sanchayan maity" <victorascroft@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@gmail.com>
wrote:
>>
>>
>> On Nov 9, 2013 4:18 AM, "sanchayan maity" <victorascroft@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 

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Question on Platform Device/Driver
  2013-11-10 18:53     ` anish singh
@ 2013-11-11 16:39       ` sanchayan maity
  0 siblings, 0 replies; 5+ messages in thread
From: sanchayan maity @ 2013-11-11 16:39 UTC (permalink / raw)
  To: kernelnewbies

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@gmail.com>wrote:

>
> On Nov 10, 2013 4:20 AM, "sanchayan maity" <victorascroft@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@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 

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2013-11-11 16:39 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-11-09 12:17 Question on Platform Device/Driver sanchayan maity
2013-11-09 20:32 ` anish singh
2013-11-10 12:20   ` sanchayan maity
2013-11-10 18:53     ` anish singh
2013-11-11 16:39       ` sanchayan maity

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.