]> git.baikalelectronics.ru Git - kernel.git/commit
arch: x86: New MailBox support driver for Intel SOC's
authorDavid E. Box <david.e.box@linux.intel.com>
Wed, 8 Jan 2014 21:27:51 +0000 (13:27 -0800)
committerH. Peter Anvin <hpa@linux.intel.com>
Wed, 8 Jan 2014 22:36:29 +0000 (14:36 -0800)
commite5301209c19408b841c19a11d3c9819d89a8cd3f
tree421ac0b6136151ce852d58950de6b9964438e81e
parentd0ccbc1e260ac80209bd44ec3dd05b26b0d36dd8
arch: x86: New MailBox support driver for Intel SOC's

Current Intel SOC cores use a MailBox Interface (MBI) to provide access to
configuration registers on devices (called units) connected to the system
fabric. This is a support driver that implements access to this interface on
those platforms that can enumerate the device using PCI. Initial support is for
BayTrail, for which port definitons are provided. This is a requirement for
implementing platform specific features (e.g. RAPL driver requires this to
perform platform specific power management using the registers in PUNIT).
Dependant modules should select IOSF_MBI in their respective Kconfig
configuraiton. Serialized access is handled by all exported routines with
spinlocks.

The API includes 3 functions for access to unit registers:

int iosf_mbi_read(u8 port, u8 opcode, u32 offset, u32 *mdr)
int iosf_mbi_write(u8 port, u8 opcode, u32 offset, u32 mdr)
int iosf_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>
Link: http://lkml.kernel.org/r/1389216471-734-1-git-send-email-david.e.box@linux.intel.com
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
Cc: Rafael J. Wysocki <rjw@rjwysocki.net>
Cc: Matthew Garrett <mjg59@srcf.ucam.org>
arch/x86/Kconfig
arch/x86/include/asm/iosf_mbi.h [new file with mode: 0644]
arch/x86/kernel/Makefile
arch/x86/kernel/iosf_mbi.c [new file with mode: 0644]