1312416d9SMahesh Sivasubramanian /* SPDX-License-Identifier: GPL-2.0 */
2*6a283d64SMaulik Shah /*
3*6a283d64SMaulik Shah * Copyright (c) 2016-2018, The Linux Foundation. All rights reserved.
4*6a283d64SMaulik Shah * Copyright (c) 2024, Qualcomm Innovation Center, Inc. All rights reserved.
5*6a283d64SMaulik Shah */
6312416d9SMahesh Sivasubramanian
7312416d9SMahesh Sivasubramanian #ifndef __QCOM_COMMAND_DB_H__
8312416d9SMahesh Sivasubramanian #define __QCOM_COMMAND_DB_H__
9312416d9SMahesh Sivasubramanian
107ad18bb5SSibi Sankar #include <linux/err.h>
11312416d9SMahesh Sivasubramanian
12312416d9SMahesh Sivasubramanian enum cmd_db_hw_type {
13312416d9SMahesh Sivasubramanian CMD_DB_HW_INVALID = 0,
14312416d9SMahesh Sivasubramanian CMD_DB_HW_MIN = 3,
15312416d9SMahesh Sivasubramanian CMD_DB_HW_ARC = CMD_DB_HW_MIN,
16312416d9SMahesh Sivasubramanian CMD_DB_HW_VRM = 4,
17312416d9SMahesh Sivasubramanian CMD_DB_HW_BCM = 5,
18312416d9SMahesh Sivasubramanian CMD_DB_HW_MAX = CMD_DB_HW_BCM,
19312416d9SMahesh Sivasubramanian CMD_DB_HW_ALL = 0xff,
20312416d9SMahesh Sivasubramanian };
21312416d9SMahesh Sivasubramanian
22312416d9SMahesh Sivasubramanian #if IS_ENABLED(CONFIG_QCOM_COMMAND_DB)
23312416d9SMahesh Sivasubramanian u32 cmd_db_read_addr(const char *resource_id);
24312416d9SMahesh Sivasubramanian
25ed3cafa7SStephen Boyd const void *cmd_db_read_aux_data(const char *resource_id, size_t *len);
26312416d9SMahesh Sivasubramanian
27*6a283d64SMaulik Shah bool cmd_db_match_resource_addr(u32 addr1, u32 addr2);
28*6a283d64SMaulik Shah
29312416d9SMahesh Sivasubramanian enum cmd_db_hw_type cmd_db_read_slave_id(const char *resource_id);
30312416d9SMahesh Sivasubramanian
31312416d9SMahesh Sivasubramanian int cmd_db_ready(void);
32312416d9SMahesh Sivasubramanian #else
cmd_db_read_addr(const char * resource_id)33312416d9SMahesh Sivasubramanian static inline u32 cmd_db_read_addr(const char *resource_id)
34312416d9SMahesh Sivasubramanian { return 0; }
35312416d9SMahesh Sivasubramanian
cmd_db_read_aux_data(const char * resource_id,size_t * len)36ed3cafa7SStephen Boyd static inline const void *cmd_db_read_aux_data(const char *resource_id, size_t *len)
37ed3cafa7SStephen Boyd { return ERR_PTR(-ENODEV); }
38312416d9SMahesh Sivasubramanian
cmd_db_match_resource_addr(u32 addr1,u32 addr2)39*6a283d64SMaulik Shah static inline bool cmd_db_match_resource_addr(u32 addr1, u32 addr2)
40*6a283d64SMaulik Shah { return false; }
41*6a283d64SMaulik Shah
cmd_db_read_slave_id(const char * resource_id)42312416d9SMahesh Sivasubramanian static inline enum cmd_db_hw_type cmd_db_read_slave_id(const char *resource_id)
43312416d9SMahesh Sivasubramanian { return -ENODEV; }
44312416d9SMahesh Sivasubramanian
cmd_db_ready(void)45312416d9SMahesh Sivasubramanian static inline int cmd_db_ready(void)
46312416d9SMahesh Sivasubramanian { return -ENODEV; }
47312416d9SMahesh Sivasubramanian #endif /* CONFIG_QCOM_COMMAND_DB */
48312416d9SMahesh Sivasubramanian #endif /* __QCOM_COMMAND_DB_H__ */
49