70 lines
2.0 KiB
C
70 lines
2.0 KiB
C
|
/*
|
||
|
* Texas Instruments System Control Interface Protocol
|
||
|
*
|
||
|
* Copyright (C) 2015-2016 Texas Instruments Incorporated - http://www.ti.com/
|
||
|
* Nishanth Menon
|
||
|
*
|
||
|
* This program 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 program is distributed "as is" WITHOUT ANY WARRANTY of any
|
||
|
* kind, whether express or implied; without even the implied warranty
|
||
|
* of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||
|
* GNU General Public License for more details.
|
||
|
*/
|
||
|
|
||
|
#ifndef __TISCI_PROTOCOL_H
|
||
|
#define __TISCI_PROTOCOL_H
|
||
|
|
||
|
/**
|
||
|
* struct ti_sci_version_info - version information structure
|
||
|
* @abi_major: Major ABI version. Change here implies risk of backward
|
||
|
* compatibility break.
|
||
|
* @abi_minor: Minor ABI version. Change here implies new feature addition,
|
||
|
* or compatible change in ABI.
|
||
|
* @firmware_revision: Firmware revision (not usually used).
|
||
|
* @firmware_description: Firmware description (not usually used).
|
||
|
*/
|
||
|
struct ti_sci_version_info {
|
||
|
u8 abi_major;
|
||
|
u8 abi_minor;
|
||
|
u16 firmware_revision;
|
||
|
char firmware_description[32];
|
||
|
};
|
||
|
|
||
|
/**
|
||
|
* struct ti_sci_handle - Handle returned to TI SCI clients for usage.
|
||
|
* @version: structure containing version information
|
||
|
*/
|
||
|
struct ti_sci_handle {
|
||
|
struct ti_sci_version_info version;
|
||
|
};
|
||
|
|
||
|
#if IS_ENABLED(CONFIG_TI_SCI_PROTOCOL)
|
||
|
const struct ti_sci_handle *ti_sci_get_handle(struct device *dev);
|
||
|
int ti_sci_put_handle(const struct ti_sci_handle *handle);
|
||
|
const struct ti_sci_handle *devm_ti_sci_get_handle(struct device *dev);
|
||
|
|
||
|
#else /* CONFIG_TI_SCI_PROTOCOL */
|
||
|
|
||
|
static inline const struct ti_sci_handle *ti_sci_get_handle(struct device *dev)
|
||
|
{
|
||
|
return ERR_PTR(-EINVAL);
|
||
|
}
|
||
|
|
||
|
static inline int ti_sci_put_handle(const struct ti_sci_handle *handle)
|
||
|
{
|
||
|
return -EINVAL;
|
||
|
}
|
||
|
|
||
|
static inline
|
||
|
const struct ti_sci_handle *devm_ti_sci_get_handle(struct device *dev)
|
||
|
{
|
||
|
return ERR_PTR(-EINVAL);
|
||
|
}
|
||
|
|
||
|
#endif /* CONFIG_TI_SCI_PROTOCOL */
|
||
|
|
||
|
#endif /* __TISCI_PROTOCOL_H */
|