summaryrefslogtreecommitdiff
path: root/include/linux
diff options
context:
space:
mode:
authorAndreas Dannenberg <dannenberg@ti.com>2018-08-27 13:27:33 +0300
committerTom Rini <trini@konsulko.com>2018-09-11 15:32:55 +0300
commitdcfc52ad69db29118bc6658f716d0480d18a0651 (patch)
tree386fc289f263c3082f7720b1bbbdb8ccafaa7479 /include/linux
parent32cd25128bd8497db7a239e1eb9c338398fb42bc (diff)
downloadu-boot-dcfc52ad69db29118bc6658f716d0480d18a0651.tar.xz
firmware: ti_sci: Add support for board configuration
TI-SCI message protocol provides support for board configuration to assign resources and other board related operations. Introduce the board configuration capability support to the driver protocol as part of this change. Reviewed-by: Tom Rini <trini@konsulko.com> Signed-off-by: Andreas Dannenberg <dannenberg@ti.com> Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/soc/ti/ti_sci_protocol.h38
1 files changed, 38 insertions, 0 deletions
diff --git a/include/linux/soc/ti/ti_sci_protocol.h b/include/linux/soc/ti/ti_sci_protocol.h
index f216bfbcfa..dd88f646ed 100644
--- a/include/linux/soc/ti/ti_sci_protocol.h
+++ b/include/linux/soc/ti/ti_sci_protocol.h
@@ -30,10 +30,48 @@ struct ti_sci_version_info {
struct ti_sci_handle;
/**
+ * struct ti_sci_board_ops - Board config operations
+ * @board_config: Command to set the board configuration
+ * Returns 0 for successful exclusive request, else returns
+ * corresponding error message.
+ * @board_config_rm: Command to set the board resource management
+ * configuration
+ * Returns 0 for successful exclusive request, else returns
+ * corresponding error message.
+ * @board_config_security: Command to set the board security configuration
+ * Returns 0 for successful exclusive request, else returns
+ * corresponding error message.
+ * @board_config_pm: Command to trigger and set the board power and clock
+ * management related configuration
+ * Returns 0 for successful exclusive request, else returns
+ * corresponding error message.
+ */
+struct ti_sci_board_ops {
+ int (*board_config)(const struct ti_sci_handle *handle,
+ u64 addr, u32 size);
+ int (*board_config_rm)(const struct ti_sci_handle *handle,
+ u64 addr, u32 size);
+ int (*board_config_security)(const struct ti_sci_handle *handle,
+ u64 addr, u32 size);
+ int (*board_config_pm)(const struct ti_sci_handle *handle,
+ u64 addr, u32 size);
+};
+
+/**
+ * struct ti_sci_ops - Function support for TI SCI
+ * @board_ops: Miscellaneous operations
+ */
+struct ti_sci_ops {
+ struct ti_sci_board_ops board_ops;
+};
+
+/**
* struct ti_sci_handle - Handle returned to TI SCI clients for usage.
+ * @ops: operations that are made available to TI SCI clients
* @version: structure containing version information
*/
struct ti_sci_handle {
+ struct ti_sci_ops ops;
struct ti_sci_version_info version;
};