1 /* SPDX-License-Identifier: GPL-2.0-only */
2 /*
3  * Copyright (c) 2022, Linaro Ltd
4  */
5 #ifndef __SOC_QCOM_PMIC_GLINK_H__
6 #define __SOC_QCOM_PMIC_GLINK_H__
7 
8 struct pmic_glink;
9 struct pmic_glink_client;
10 
11 #define PMIC_GLINK_OWNER_BATTMGR	32778
12 #define PMIC_GLINK_OWNER_USBC		32779
13 #define PMIC_GLINK_OWNER_USBC_PAN	32780
14 
15 #define PMIC_GLINK_REQ_RESP		1
16 #define PMIC_GLINK_NOTIFY		2
17 
18 struct pmic_glink_hdr {
19 	__le32 owner;
20 	__le32 type;
21 	__le32 opcode;
22 };
23 
24 int pmic_glink_send(struct pmic_glink_client *client, void *data, size_t len);
25 
26 struct pmic_glink_client *devm_pmic_glink_client_alloc(struct device *dev,
27 						       unsigned int id,
28 						       void (*cb)(const void *, size_t, void *),
29 						       void (*pdr)(void *, int),
30 						       void *priv);
31 void pmic_glink_client_register(struct pmic_glink_client *client);
32 
33 #endif
34