X86 platform: New BayTrail IOSF-SB MBI driver
authorDavid E. Box <david.e.box@linux.intel.com>
Thu, 19 Dec 2013 18:37:22 +0000 (10:37 -0800)
committerMatthew Garrett <matthew.garrett@nebula.com>
Tue, 21 Jan 2014 13:44:17 +0000 (08:44 -0500)
commit997ab407d2b4e7d7ce2788d2de68435eb94fcfec
tree52defddea0b41a79b9dd3ad75cb07227d75959ce
parent475879d65123eaf0b1490d603c4a4f5faac4179d
X86 platform: New BayTrail IOSF-SB MBI driver

Current Intel SOC cores use a MailBox Interface (MBI) to provide access to unit
devices connected to the system fabric. This driver implements access to this
interface on BayTrail platforms. This is a requirement for drivers that need
access to unit registers on the platform (e.g. accessing the PUNIT for power
management features such as RAPL). Serialized access is handled by all exported
routines with spinlocks.

The API includes 3 functions for access to unit registers:

int bt_mbi_read(u8 port, u8 opcode, u32 offset, u32 *mdr)
int bt_mbi_write(u8 port, u8 opcode, u32 offset, u32 mdr)
int bt_mbi_modify(u8 port, u8 opcode, u32 offset, u32 mdr, u32 mask)

port: indicating the unit being accessed
opcode: the read or write port specific opcode
offset: the register offset within the port
mdr: the register data to be read, written, or modified
mask: bit locations in mdr to change

Returns nonzero on error

Note: GPU code handles access to the GFX unit. Therefore access to that unit
with this driver is disallowed to avoid conflicts.

Signed-off-by: David E. Box <david.e.box@linux.intel.com>
Signed-off-by: Matthew Garrett <matthew.garrett@nebula.com>
drivers/platform/x86/Kconfig
drivers/platform/x86/Makefile
drivers/platform/x86/intel_baytrail.c [new file with mode: 0644]
drivers/platform/x86/intel_baytrail.h [new file with mode: 0644]