mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-01-06 05:06:29 +00:00
94 lines
3.4 KiB
C
94 lines
3.4 KiB
C
|
/*
|
||
|
* Texas Instruments System Control Interface (TISCI) Protocol
|
||
|
*
|
||
|
* Communication protocol with TI SCI hardware
|
||
|
* The system works in a message response protocol
|
||
|
* See: http://processors.wiki.ti.com/index.php/TISCI for details
|
||
|
*
|
||
|
* Copyright (C) 2015-2016 Texas Instruments Incorporated - http://www.ti.com/
|
||
|
*
|
||
|
* Redistribution and use in source and binary forms, with or without
|
||
|
* modification, are permitted provided that the following conditions
|
||
|
* are met:
|
||
|
*
|
||
|
* Redistributions of source code must retain the above copyright
|
||
|
* notice, this list of conditions and the following disclaimer.
|
||
|
*
|
||
|
* Redistributions in binary form must reproduce the above copyright
|
||
|
* notice, this list of conditions and the following disclaimer in the
|
||
|
* documentation and/or other materials provided with the
|
||
|
* distribution.
|
||
|
*
|
||
|
* Neither the name of Texas Instruments Incorporated nor the names of
|
||
|
* its contributors may be used to endorse or promote products derived
|
||
|
* from this software without specific prior written permission.
|
||
|
*
|
||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||
|
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||
|
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||
|
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||
|
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||
|
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||
|
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||
|
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||
|
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||
|
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||
|
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||
|
*
|
||
|
*/
|
||
|
|
||
|
#ifndef __TI_SCI_H
|
||
|
#define __TI_SCI_H
|
||
|
|
||
|
/* Generic Messages */
|
||
|
#define TI_SCI_MSG_ENABLE_WDT 0x0000
|
||
|
#define TI_SCI_MSG_WAKE_RESET 0x0001
|
||
|
#define TI_SCI_MSG_VERSION 0x0002
|
||
|
#define TI_SCI_MSG_WAKE_REASON 0x0003
|
||
|
#define TI_SCI_MSG_GOODBYE 0x0004
|
||
|
|
||
|
/**
|
||
|
* struct ti_sci_msg_hdr - Generic Message Header for All messages and responses
|
||
|
* @type: Type of messages: One of TI_SCI_MSG* values
|
||
|
* @host: Host of the message
|
||
|
* @seq: Message identifier indicating a transfer sequence
|
||
|
* @flags: Flag for the message
|
||
|
*/
|
||
|
struct ti_sci_msg_hdr {
|
||
|
u16 type;
|
||
|
u8 host;
|
||
|
u8 seq;
|
||
|
#define TI_SCI_MSG_FLAG(val) (1 << (val))
|
||
|
#define TI_SCI_FLAG_REQ_GENERIC_NORESPONSE 0x0
|
||
|
#define TI_SCI_FLAG_REQ_ACK_ON_RECEIVED TI_SCI_MSG_FLAG(0)
|
||
|
#define TI_SCI_FLAG_REQ_ACK_ON_PROCESSED TI_SCI_MSG_FLAG(1)
|
||
|
#define TI_SCI_FLAG_RESP_GENERIC_NACK 0x0
|
||
|
#define TI_SCI_FLAG_RESP_GENERIC_ACK TI_SCI_MSG_FLAG(1)
|
||
|
/* Additional Flags */
|
||
|
u32 flags;
|
||
|
} __packed;
|
||
|
|
||
|
/**
|
||
|
* struct ti_sci_msg_resp_version - Response for a message
|
||
|
* @hdr: Generic header
|
||
|
* @firmware_description: String describing the firmware
|
||
|
* @firmware_revision: Firmware revision
|
||
|
* @abi_major: Major version of the ABI that firmware supports
|
||
|
* @abi_minor: Minor version of the ABI that firmware supports
|
||
|
*
|
||
|
* In general, ABI version changes follow the rule that minor version increments
|
||
|
* are backward compatible. Major revision changes in ABI may not be
|
||
|
* backward compatible.
|
||
|
*
|
||
|
* Response to a generic message with message type TI_SCI_MSG_VERSION
|
||
|
*/
|
||
|
struct ti_sci_msg_resp_version {
|
||
|
struct ti_sci_msg_hdr hdr;
|
||
|
char firmware_description[32];
|
||
|
u16 firmware_revision;
|
||
|
u8 abi_major;
|
||
|
u8 abi_minor;
|
||
|
} __packed;
|
||
|
|
||
|
#endif /* __TI_SCI_H */
|