linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* SDIO Drivers?
@ 2006-04-04  8:30 Ram
  2006-04-07  8:55 ` Pierre Ossman
  0 siblings, 1 reply; 7+ messages in thread
From: Ram @ 2006-04-04  8:30 UTC (permalink / raw)
  To: linux-kernel

Hi,
   i want to write an SDIO driver. There is not much information of
what an SDIO driver is
   supposed to do or any sample sdio drivers.

   I have a few questions regarding that:

   1) What is an SDIO Driver?.

   2) Is SDIO a protocol/standard to which all devices confirm?.

   3)  Is it a generic driver ?. (Same for a set of devices) or
different for each device?
        Suppose i want to run an SDIO WLAN Card?. will the
manufacturer support it or
       an will a Generic Driver "drive" it?

   4) What is a SD Driver?

   5) What are the differences between SD Driver and SDIO Driver?.


   6) Are there any sample/Open Source SDIO drivers available in Linux
Kernel or else where?.If, not when can one expect/is anyone working on
it currently?.


  Please CC your responses to  vshrirama-at-gmail.com

Thanks and Regards,
sriram

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

* Re: SDIO Drivers?
  2006-04-04  8:30 SDIO Drivers? Ram
@ 2006-04-07  8:55 ` Pierre Ossman
  2006-04-07 14:43   ` Russell King
  2006-04-09  6:55   ` Marcel Holtmann
  0 siblings, 2 replies; 7+ messages in thread
From: Pierre Ossman @ 2006-04-07  8:55 UTC (permalink / raw)
  To: Ram; +Cc: linux-kernel

Ram wrote:
> Hi,
>    i want to write an SDIO driver. There is not much information of
> what an SDIO driver is
>    supposed to do or any sample sdio drivers.
> 
>    I have a few questions regarding that:
> 
>    1) What is an SDIO Driver?.
> 

They don't exist in the kernel right now, that's why you haven't found
any examples.

To support SDIO, the MMC layer would need to be extended to handle the
initialisation of SDIO cards (they're a bit different from SD storage
and MMC). After that, a driver model needs to be constructed. It might
be possible to build upon the current MMC driver model, but one would
need to make sure that cards that are both storage and SDIO are handled.

>    2) Is SDIO a protocol/standard to which all devices confirm?.
> 

It's a subset of the SD standard suite. Note that it only specifies how
to get access to registers in the card (like for instance PCI). To
actually use the card you also need a specification for how to use the
registers.

>    3)  Is it a generic driver ?. (Same for a set of devices) or
> different for each device?
>         Suppose i want to run an SDIO WLAN Card?. will the
> manufacturer support it or
>        an will a Generic Driver "drive" it?
> 

Depends on if there is a generic interface for SDIO WLAN cards. SD is a
very closed world so we know very little about the protocols.

>    4) What is a SD Driver?
> 

Depends on context. It might refer to the driver for SD storage cards.
Or it might refer to a driver for the SD controller (that interfaces to
the card(s)).

>    5) What are the differences between SD Driver and SDIO Driver?.
> 

If we're talking about SD storage vs SDIO, then the drivers use
different parts of the SD protocol. They share the same bus interface
though (which is implemented as the MMC layer in Linux).

> 
>    6) Are there any sample/Open Source SDIO drivers available in Linux
> Kernel or else where?.If, not when can one expect/is anyone working on
> it currently?.
> 

There are a lot of people interested, but I haven't seen anyone working
on it yet.

Rgds
Pierre


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

* Re: SDIO Drivers?
  2006-04-07  8:55 ` Pierre Ossman
@ 2006-04-07 14:43   ` Russell King
  2006-04-07 18:07     ` Pierre Ossman
  2006-04-09  6:55   ` Marcel Holtmann
  1 sibling, 1 reply; 7+ messages in thread
From: Russell King @ 2006-04-07 14:43 UTC (permalink / raw)
  To: Pierre Ossman; +Cc: Ram, linux-kernel

On Fri, Apr 07, 2006 at 10:55:15AM +0200, Pierre Ossman wrote:
> Ram wrote:
> > Hi,
> >    i want to write an SDIO driver. There is not much information of
> > what an SDIO driver is
> >    supposed to do or any sample sdio drivers.
> > 
> >    I have a few questions regarding that:
> > 
> >    1) What is an SDIO Driver?.
> > 
> 
> They don't exist in the kernel right now, that's why you haven't found
> any examples.
> 
> To support SDIO, the MMC layer would need to be extended to handle the
> initialisation of SDIO cards (they're a bit different from SD storage
> and MMC). After that, a driver model needs to be constructed. It might
> be possible to build upon the current MMC driver model, but one would
> need to make sure that cards that are both storage and SDIO are handled.

I think we would be forced to re-think the existing model - SDIO cards
seem to be able to support simultaneously both block device and IO.
Therefore, it would appear that we need the ability to register two
drivers against the same device.

-- 
Russell King
 Linux kernel    2.6 ARM Linux   - http://www.arm.linux.org.uk/
 maintainer of:  2.6 Serial core

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

* Re: SDIO Drivers?
  2006-04-07 14:43   ` Russell King
@ 2006-04-07 18:07     ` Pierre Ossman
  0 siblings, 0 replies; 7+ messages in thread
From: Pierre Ossman @ 2006-04-07 18:07 UTC (permalink / raw)
  To: Ram, linux-kernel

Russell King wrote:
>
> I think we would be forced to re-think the existing model - SDIO cards
> seem to be able to support simultaneously both block device and IO.
> Therefore, it would appear that we need the ability to register two
> drivers against the same device.
>
>   

On the other hand, they both need to select cards so there is some
overlap in how they grab the bus.

Also, MMC has some kind of register support as well. But I can't say
that I've ever seen anything but MMC memory cards.

Rgds
Pierre



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

* Re: SDIO Drivers?
  2006-04-07  8:55 ` Pierre Ossman
  2006-04-07 14:43   ` Russell King
@ 2006-04-09  6:55   ` Marcel Holtmann
  1 sibling, 0 replies; 7+ messages in thread
From: Marcel Holtmann @ 2006-04-09  6:55 UTC (permalink / raw)
  To: Pierre Ossman; +Cc: Ram, linux-kernel

Hi Pierre,

> >    3)  Is it a generic driver ?. (Same for a set of devices) or
> > different for each device?
> >         Suppose i want to run an SDIO WLAN Card?. will the
> > manufacturer support it or
> >        an will a Generic Driver "drive" it?

for WiFi this is unlikely, but for Bluetooth there exists an open
standard on how to access Bluetooth cards. So the easiest way might be
to use a Bluetooth SDIO device to build the driver model.

> >    6) Are there any sample/Open Source SDIO drivers available in Linux
> > Kernel or else where?.If, not when can one expect/is anyone working on
> > it currently?.
> 
> There are a lot of people interested, but I haven't seen anyone working
> on it yet.

This includes me and I finally have a SDHCI capable laptop and one of
the Bluetooth SDIO cards. However my time is so limited at the moment,
that I haven't looked at it.

Regards

Marcel



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

* Re: SDIO drivers?
  2006-08-25  9:26 SDIO drivers? Maximus
@ 2006-08-25 15:05 ` Ian Stirling
  0 siblings, 0 replies; 7+ messages in thread
From: Ian Stirling @ 2006-08-25 15:05 UTC (permalink / raw)
  To: Maximus; +Cc: linux-kernel

Maximus wrote:
> Hi,
>   Just going through the linux kernel sources which has support  for
> SD and MMC.
> 
>   Wondering whats the difference between SD and SDIO.
> 
>   What is meant by SDIO ?.  (SD + IO) ?.
> 
>   what  is meant  by  IO part?.
> 
> Are any SDIO drivers open source?.

I found the PDF at 
http://www.windowsfordevices.com/articles/AT3451543568.html of great use 
for understanding the differences.

Basically - SD and MMC are not really 'normal' memory - due to their 
connection, they act more like USB, or even network attached stuff.

At the top level that you'd want to present to the user, you've got the 
logical SD and SDIO device.
This can be one of 8 functions in a SD/SDIO card.
A SDIO card is a SD-I/O card - it does input or output. An SD card is 
just memory, with some area that may be encrypted - see the S of SD.

Now, there are many ways to connect to an SD(I'll omit the I/O from here 
in). First, you've got the 'low speed' 400kbps serial mode - that is 
common to MMC and SD, now you've got 20Mhz 1 bit serial that is SDs base 
  mode, and 4 bit 25Mhz that's the faster mode - there may have been 
faster clocks released since the above doc - I haven't checkes.

Each card can now either be connected directly to the controller, or it 
can be connected to a bus, sharing access between cards. This mode is of 
course slower, and can slow all devices on the bus to the speed of the 
slowest, and is hard to do well.

This is not a 'traditional' memory/IO device, it's more like USB, or IO 
across the network.
For example, a single 8 byte write to a configuration register takes 
about 64 clocks, which can be many tens of microseconds. In the slowest 
mode, you can't even reliably run a 16550 (which is what one of the 
standard class drivers - GPS - is defined as, a 16550 in register space) 
at the highest baud rates, without losing chars.

So - briefly, an SD card can have up to 8 functions, with varying 
bandwidth back to the host, depending on card and connection from a 
shared 32KiB/s to unshared 25MiB/s. The controller can vary from 
_really_ dumb - practically bit-banging, to one that does scatter-gather 
  DMA, and much of the protocol work for you.
AIUI, all of the controllers available do not expose the device as a 
'simple' register/memory interface, but as a message passing interface - 
with the exception of DMA.

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

* SDIO drivers?
@ 2006-08-25  9:26 Maximus
  2006-08-25 15:05 ` Ian Stirling
  0 siblings, 1 reply; 7+ messages in thread
From: Maximus @ 2006-08-25  9:26 UTC (permalink / raw)
  To: linux-kernel

Hi,
   Just going through the linux kernel sources which has support  for
SD and MMC.

   Wondering whats the difference between SD and SDIO.

   What is meant by SDIO ?.  (SD + IO) ?.

   what  is meant  by  IO part?.

Are any SDIO drivers open source?.

 Regards,
   Jo

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

end of thread, other threads:[~2006-08-25 15:05 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2006-04-04  8:30 SDIO Drivers? Ram
2006-04-07  8:55 ` Pierre Ossman
2006-04-07 14:43   ` Russell King
2006-04-07 18:07     ` Pierre Ossman
2006-04-09  6:55   ` Marcel Holtmann
2006-08-25  9:26 SDIO drivers? Maximus
2006-08-25 15:05 ` Ian Stirling

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).