Hi,
On Tue, Mar 07, 2017 at 12:39:39AM +0530, Shah, Nehal-bakulchandra wrote:
> Hi Heikki ,
>
>
> Thanks for the prompt reply.
> If i understood correctly the current driver(drivers/usb/misc/ucsi.c) supports
> the OPM and rest all is taken care by EC FW with BIOS .
> In ucsi.c file i did not find any mailbox related code. Am I missing something
> here?
The driver maps the region for the mailbox on line 478.
OPM needs to be able to access to the mailbox as normal Memory
resource. The UCSI BIOS implementation guide, in the example for the
requirements, only shows the OperationRegion, but that is not enough
of course as OperationRegions provides access to some data for other
ACPI methods, not for the OS.
Here's ASL snippet that should give an idea about how the device
object for UCSI should look like:
Device (<what ever>)
{
Name (_HID, EISAID("USBC000"))
Name (_CID, EISAID("PNP0CA0"))
Name (_UID, 1)
Name (_DDN, "USB Type-C")
Name (_ADR, 0x0)
Name (_DEP, Package (0x01)
{
// You probable want to have dependency on EC.
})
...
// This will give the OPM (the driver) access to the mailbox
Name (CRS, ResourceTemplate()
{
Memory32Fixed(ReadWrite, 0x12345678, 0x00001000, )
})
// This will just give other ACPI methods access to the mailbox
OperationRegion (USBC, SystemMemory, 0x12345678, 0x30)
Field (USBC,AnyAcc,Lock,Preserve)
{
VERS, 16, // PPM->OPM Version
, 16, // Reserved
CCI, 32, // PPM->OPM CCI indicator
CTRL, 64, // OPM->PPM Control message
MSGI, 128, // OPM->PPM Message In
MSGO, 128, // PPM->OPM Message Out
}
Method (_DSM, 4, Serialized)
{
If (LEqual(Arg0, ToUUID
("6f8398c2-7ca4-11e4-ad36-631042b5008f")))
{
// Here you will probable need the OpRegion
...
}
}
}
I hope that helps!
Br,
--
heikki
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html