#include <linux/auxiliary_bus.h>
#include <linux/module.h>
#include <linux/of.h>
#include <linux/platform_device.h>
#include <linux/rpmsg.h>
#include <linux/slab.h>
#include <linux/soc/qcom/pdr.h>
#include <linux/soc/qcom/pmic_glink.h>
#include <linux/spinlock.h>
enum { … };
struct pmic_glink { … };
static struct pmic_glink *__pmic_glink;
static DEFINE_MUTEX(__pmic_glink_lock);
struct pmic_glink_client { … };
static void _devm_pmic_glink_release_client(struct device *dev, void *res)
{ … }
struct pmic_glink_client *devm_pmic_glink_register_client(struct device *dev,
unsigned int id,
void (*cb)(const void *, size_t, void *),
void (*pdr)(void *, int),
void *priv)
{ … }
EXPORT_SYMBOL_GPL(…);
int pmic_glink_send(struct pmic_glink_client *client, void *data, size_t len)
{ … }
EXPORT_SYMBOL_GPL(…);
static int pmic_glink_rpmsg_callback(struct rpmsg_device *rpdev, void *data,
int len, void *priv, u32 addr)
{ … }
static void pmic_glink_aux_release(struct device *dev) { … }
static int pmic_glink_add_aux_device(struct pmic_glink *pg,
struct auxiliary_device *aux,
const char *name)
{ … }
static void pmic_glink_del_aux_device(struct pmic_glink *pg,
struct auxiliary_device *aux)
{ … }
static void pmic_glink_state_notify_clients(struct pmic_glink *pg)
{ … }
static void pmic_glink_pdr_callback(int state, char *svc_path, void *priv)
{ … }
static int pmic_glink_rpmsg_probe(struct rpmsg_device *rpdev)
{ … }
static void pmic_glink_rpmsg_remove(struct rpmsg_device *rpdev)
{ … }
static const struct rpmsg_device_id pmic_glink_rpmsg_id_match[] = …;
static struct rpmsg_driver pmic_glink_rpmsg_driver = …;
static int pmic_glink_probe(struct platform_device *pdev)
{ … }
static void pmic_glink_remove(struct platform_device *pdev)
{ … }
static const unsigned long pmic_glink_sc8280xp_client_mask = …;
static const unsigned long pmic_glink_sm8450_client_mask = …;
static const struct of_device_id pmic_glink_of_match[] = …;
MODULE_DEVICE_TABLE(of, pmic_glink_of_match);
static struct platform_driver pmic_glink_driver = …;
static int pmic_glink_init(void)
{ … }
module_init(…) …;
static void pmic_glink_exit(void)
{ … }
module_exit(pmic_glink_exit);
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;