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
8struct pmic_glink;
9struct 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
18struct pmic_glink_hdr {
19	__le32 owner;
20	__le32 type;
21	__le32 opcode;
22};
23
24int pmic_glink_send(struct pmic_glink_client *client, void *data, size_t len);
25
26struct pmic_glink_client *devm_pmic_glink_register_client(struct device *dev,
27							  unsigned int id,
28							  void (*cb)(const void *, size_t, void *),
29							  void (*pdr)(void *, int),
30							  void *priv);
31
32#endif
33