Re: [RFC PATCH] slimbus: Linux driver framework for SLIMbus.

From: Kenneth Heitke
Date: Tue Aug 16 2011 - 19:27:14 EST


On 08/16/2011 01:49 PM, Arnd Bergmann wrote:
On Tuesday 16 August 2011 10:44:35 sdharia@xxxxxxxxxxxxxx wrote:

SLIMbus is a MIPI standard bus primarily used for digital audio devices.
The devices on the bus SLIMbus enumerate themselves by sending an
IDENTITY message. I'll let Sagar clarify further.

Thanks everyone for taking your time to review the RFC.
Regarding device discovery:
Every device sends a "PRESENT" message when it comes up. Every device has
48-bit address like Ethernet and spec lets upto 256 devices (each getting
8-bit logical address) on one bus.
The device can report anytime (when it's plugged in, when a dynamic module
powers it on etc.)
Typical use case will be to have it board-specific but as Mark
mentioned,we may have plug-in cards with slimbus devices so we want
dynamic support as well.

Thanks for the info. The part that I still don't understand is how the
48-bit address and the 8 bit address are chosen. Do you mean that
the 8-bit address identifies the location on the bus and is used
when talking to the device locally while the 48-bit address is globally
unique and different for each individual board?

In that case, we would still not have any way to identify the type
of device, other than using a look-up table of 8-bit addresses to
device names (or numbers).

Or does the 48-bit number actually tell us something about what
device we're talking to, e.g. 24 bit vendor plus 24 bit device
type and revision or such. If that's the case, the number needs
to be the primary key that gets used to identify the driver,
just like we do it in case of USB or PCI devices.

Arnd


The 8-bit address is a logical address that is assigned by the SLIMbus framework. The framework maintains the mapping of logical addresses to the 48-bit Enumeration Address (EA). The 8-bit logical address is then used for any further SLIMbus device addressing.

The slim_get_logical_addr() API call is used by the client drivers to get the logical address that has been assigned to the device.

For the proposed implementation, the client drivers are probed before their devices are discovered because the client driver may need to power-up the device or pull it out of reset. Once the device is powered up, the call to get_logical_address() will let the client know whether or not their device has enumerated.

--
Sent by an employee of the Qualcomm Innovation Center, Inc.
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/