/* * mbx_sh.h * * DSP-BIOS Bridge driver support functions for TI OMAP processors. * * Definitions for shared mailbox cmd/data values.(used on both * the GPP and DSP sides). * * Copyright (C) 2008 Texas Instruments, Inc. * * This package is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. * * THIS PACKAGE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. */ /* * Bridge usage of OMAP mailbox 1 is determined by the "class" of the * mailbox interrupt's cmd value received. The class value are defined * as a bit (10 thru 15) being set. * * Note: Only 16 bits of each is used. Other 16 bit data reg available. * * 16 bit Mbx bit defns: * * A). Exception/Error handling (Module DEH) : class = 0. * * 15 10 0 * --------------------------------- * |0|0|0|0|0|0|x|x|x|x|x|x|x|x|x|x| * --------------------------------- * | (class) | (module specific) | * * * B: DSP-DMA link driver channels (DDMA) : class = 1. * * 15 10 0 * --------------------------------- * |0|0|0|0|0|1|b|b|b|b|b|c|c|c|c|c| * --------------------------------- * | (class) | (module specific) | * * where b -> buffer index (32 DDMA buffers/chnl max) * c -> channel Id (32 DDMA chnls max) * * * C: Proc-copy link driver channels (PCPY) : class = 2. * * 15 10 0 * --------------------------------- * |0|0|0|0|1|0|x|x|x|x|x|x|x|x|x|x| * --------------------------------- * | (class) | (module specific) | * * * D: Zero-copy link driver channels (DDZC) : class = 4. * * 15 10 0 * --------------------------------- * |0|0|0|1|0|0|x|x|x|x|x|c|c|c|c|c| * --------------------------------- * | (class) | (module specific) | * * where x -> not used * c -> channel Id (32 ZCPY chnls max) * * * E: Power management : class = 8. * * 15 10 0 * --------------------------------- * |0|0|1|0|0|0|x|x|x|x|x|c|c|c|c|c| * 0010 00xx xxxc cccc * 0010 00nn pppp qqqq * nn: * 00 = reserved * 01 = pwr state change * 10 = opp pre-change * 11 = opp post-change * * if nn = pwr state change: * pppp = don't care * qqqq: * 0010 = hibernate * 0010 0001 0000 0010 * 0110 = retention * 0010 0001 0000 0110 * others reserved * * if nn = opp pre-change: * pppp = current opp * qqqq = next opp * * if nn = opp post-change: * pppp = prev opp * qqqq = current opp * * --------------------------------- * | (class) | (module specific) | * * where x -> not used * c -> Power management command * */ #ifndef _MBX_SH_H #define _MBX_SH_H #define MBX_PCPY_CLASS 0x0800 /* PROC-COPY " */ #define MBX_PM_CLASS 0x2000 /* Power Management */ #define MBX_DBG_CLASS 0x4000 /* For debugging purpose */ /* * Exception Handler codes * Magic code used to determine if DSP signaled exception. */ #define MBX_DEH_BASE 0x0 #define MBX_DEH_USERS_BASE 0x100 /* 256 */ #define MBX_DEH_LIMIT 0x3FF /* 1023 */ #define MBX_DEH_RESET 0x101 /* DSP RESET (DEH) */ /* * Link driver command/status codes. */ /* Power Management Commands */ #define MBX_PM_DSPIDLE (MBX_PM_CLASS + 0x0) #define MBX_PM_DSPWAKEUP (MBX_PM_CLASS + 0x1) #define MBX_PM_EMERGENCYSLEEP (MBX_PM_CLASS + 0x2) #define MBX_PM_SETPOINT_PRENOTIFY (MBX_PM_CLASS + 0x6) #define MBX_PM_SETPOINT_POSTNOTIFY (MBX_PM_CLASS + 0x7) #define MBX_PM_DSPRETENTION (MBX_PM_CLASS + 0x8) #define MBX_PM_DSPHIBERNATE (MBX_PM_CLASS + 0x9) #define MBX_PM_HIBERNATE_EN (MBX_PM_CLASS + 0xA) #define MBX_PM_OPP_REQ (MBX_PM_CLASS + 0xB) /* Bridge Debug Commands */ #define MBX_DBG_SYSPRINTF (MBX_DBG_CLASS + 0x0) #endif /* _MBX_SH_H */