07 Sep, 2016

1 commit


28 Jul, 2016

1 commit


21 Mar, 2016

1 commit

  • Support for TI Message Manager Module. This hardware block manages a
    bunch of hardware queues meant for communication between processor
    entities.

    Clients sitting on top of this would manage the required protocol
    for communicating with the counterpart entities.

    For more details on TI Message Manager hardware block, see documentation
    that will is available here: http://www.ti.com/lit/ug/spruhy8/spruhy8.pdf
    Chapter 8.1(Message Manager)

    Signed-off-by: Nishanth Menon
    Signed-off-by: Jassi Brar

    Nishanth Menon
     

11 Mar, 2016

1 commit

  • This driver is found on RK3368 SoCs.

    The Mailbox module is a simple APB peripheral that allows both
    the Cortex-A53 MCU system to communicate by writing operation to
    generate interrupt.
    The registers are accessible by both CPU via APB interface.

    The Mailbox has the following main features:

    1) Support dual-core system: Cortex-A53 and MCU.
    2) Support APB interface.
    3) Support four mailbox elements, each element includes one data word,
    one command word register and one flag bit that can represent
    one interrupt.
    4) Four interrupts to Cortex-A53.
    5) Four interrupts to MCU.
    6) Provide 32 lock registers for software to use to indicate whether
    mailbox is occupied.

    [Jassi: Removed unused variable buf_base]

    Signed-off-by: Caesar Wang
    Signed-off-by: Jassi Brar

    Caesar Wang
     

04 Mar, 2016

1 commit

  • Add driver for Hi6220 mailbox, the mailbox communicates with MCU; for
    sending data, it can support two methods for low level implementation:
    one is to use interrupt as acknowledge, another is automatic mode which
    without any acknowledge. These two methods have been supported in the
    driver. For receiving data, it will depend on the interrupt to notify
    the channel has incoming message.

    Now mailbox driver is used to send message to MCU to control dynamic
    voltage and frequency scaling for CPU, GPU and DDR.

    Signed-off-by: Leo Yan
    Signed-off-by: Jassi Brar

    Leo Yan
     

15 Feb, 2016

1 commit


17 Oct, 2015

2 commits

  • This particular Client implementation uses shared memory in order
    to pass messages between Mailbox users; however, it can be easily
    hacked to support any type of Controller.

    Signed-off-by: Lee Jones
    Signed-off-by: Jassi Brar

    Lee Jones
     
  • ST's platforms currently support a maximum of 5 Mailboxes, one for
    each of the supported co-processors situated on the platform. Each
    Mailbox is divided up into 4 instances which consist of 32 channels.
    Messages are passed between the application and co-processors using
    shared memory areas. It is the Client's responsibility to manage
    these areas.

    Signed-off-by: Lee Jones
    Signed-off-by: Jassi Brar

    Lee Jones
     

12 Jun, 2015

1 commit

  • This mailbox driver provides a single mailbox channel to write 32-bit
    values to the VPU and get a 32-bit response. The Raspberry Pi
    firmware uses this mailbox channel to implement firmware calls, while
    Roku 2 (despite being derived from the same firmware tree) doesn't.

    The driver was originally submitted by Lubomir, based on the
    out-of-tree 2708 mailbox driver. Eric Anholt fixed it up for
    upstreaming, with the major functional change being that it now has no
    notion of multiple channels (since that is a firmware-dependent
    concept) and instead the raspberrypi-firmware driver will do that
    bit-twiddling in its own messages.
    [Jassi: made the 'mbox_chan_ops' struct as const and removed a redundant
    variable]

    Signed-off-by: Lubomir Rintel
    Signed-off-by: Craig McGeachie
    Signed-off-by: Eric Anholt
    Acked-by: Stephen Warren
    Signed-off-by: Jassi Brar

    Lubomir Rintel
     

17 Mar, 2015

1 commit


06 Feb, 2015

1 commit


27 Nov, 2014

1 commit

  • ACPI 5.0+ spec defines a generic mode of communication
    between the OS and a platform such as the BMC. This medium
    (PCC) is typically used by CPPC (ACPI CPU Performance management),
    RAS (ACPI reliability protocol) and MPST (ACPI Memory power
    states).

    This patch adds PCC support as a Mailbox Controller. As of
    ACPI v5.1 there is no provision for clients to lookup mailbox
    controllers in a way that Linux expects. e.g. in DT the clients
    can list the mailboxes they can associate with in the DT binding
    and then provide a unique index to lookup a channel within a mailbox.
    Since the ACPI spec doesn't have anything similar, we introduce a
    mailbox controller specific API so that when the client calls it,
    we know to lookup in the context of a specific controller. This
    also helps in keeping a consistent interface across DT and ACPI
    for such drivers.

    This patch implements basic PCC support using the ACPI v5.1
    structures. IRQ mode support will be provided as follow up patches.

    Signed-off-by: Ashwin Chaugule
    Reviewed-by: Mark Brown
    Reviewed-by: Arnd Bergmann
    Signed-off-by: Jassi Brar

    Ashwin Chaugule
     

08 Oct, 2014

1 commit

  • Introduce common framework for client/protocol drivers and
    controller drivers of Inter-Processor-Communication (IPC).

    Client driver developers should have a look at
    include/linux/mailbox_client.h to understand the part of
    the API exposed to client drivers.
    Similarly controller driver developers should have a look
    at include/linux/mailbox_controller.h

    Reviewed-by: Mark Brown
    Signed-off-by: Jassi Brar

    Jassi Brar
     

29 Jul, 2014

2 commits

  • There is no need for a separate common OMAP mailbox module
    now that the OMAP1 mailbox driver has been removed. So,
    consolidate the two individual OMAP mailbox modules into a
    single driver. This streamlines the driver for converting
    to mailbox framework.

    The following are the main changes:
    - collapse mailbox-omap2.c into omap-mailbox.c
    - remove omap_mbox_ops and replace the ops calls with
    the equivalent functionality.
    - simplify the sub-mailbox startup/shutdown functionality,
    the one-time operations are moved into probe, and the
    pm_runtime_get_sync and pm_runtime_put_sync can be invoked
    without using a configuration counter.
    - move all definitions from private omap_mbox.h into the
    source code, and eliminate this internal header.
    - rename some variables that used the omap2_mbox prefix with
    a generic omap_mbox prefix.

    Signed-off-by: Suman Anna
    Signed-off-by: Tony Lindgren

    Suman Anna
     
  • There are no existing users for OMAP1 mailbox driver
    in kernel. Commit ab6f775 "Removing dead OMAP_DSP"
    has cleaned up all the dead code related to the only
    possible user, including the creation of the mailbox
    platform device.

    Remove this stale driver so that the OMAP mailbox
    driver can be simplified and streamlined better for
    converting to mailbox framework.

    Signed-off-by: Suman Anna
    Acked-by: Aaro Koskinen
    Signed-off-by: Tony Lindgren

    Suman Anna
     

12 Jun, 2013

1 commit

  • The mailbox hardware (in OMAP) uses a queued mailbox interrupt
    mechanism that provides a communication channel between processors
    through a set of registers and their associated interrupt signals
    by sending and receiving messages.

    The OMAP mailbox framework/driver code is moved to be under
    drivers/mailbox, in preparation for adapting to a common mailbox
    driver framework. This allows the build for OMAP mailbox to be
    enabled (it was disabled during the multi-platform support).

    As part of the migration from plat and mach code:
    - Kconfig symbols have been renamed to build OMAP1 or OMAP2+ drivers.
    - mailbox.h under plat-omap/plat/include has been split into a public
    and private header files. The public header has only the API related
    functions and types.
    - The module name mailbox.ko from plat-omap is changed to
    omap-mailbox.ko
    - The module name mailbox_mach.ko from mach-omapX is changed as
    mailbox_omap1.ko for OMAP1
    mailbox_omap2.ko for OMAP2+

    Cc: Tony Lindgren
    [gregkh@linuxfoundation.org: ack for staging part]
    Acked-by: Greg Kroah-Hartman
    Signed-off-by: Omar Ramirez Luna
    Signed-off-by: Suman Anna

    Suman Anna
     

02 Feb, 2013

1 commit

  • The pl320 IPC allows for interprocessor communication between the
    highbank A9 and the EnergyCore Management Engine. The pl320 implements
    a straightforward mailbox protocol.

    Signed-off-by: Mark Langsdorf
    Signed-off-by: Rob Herring
    Signed-off-by: Rafael J. Wysocki

    Rob Herring