#include <linux/delay.h>
#include <linux/err.h>
#include <linux/module.h>
#include <linux/of.h>
#include <linux/platform_device.h>
#include <linux/of_platform.h>
#include <linux/regmap.h>
#include <linux/spmi.h>
#include <linux/soc/qcom/qcom-pbs.h>
#define PBS_CLIENT_TRIG_CTL …
#define PBS_CLIENT_SW_TRIG_BIT …
#define PBS_CLIENT_SCRATCH1 …
#define PBS_CLIENT_SCRATCH2 …
#define PBS_CLIENT_SCRATCH2_ERROR …
#define RETRIES …
#define DELAY …
struct pbs_dev { … };
static int qcom_pbs_wait_for_ack(struct pbs_dev *pbs, u8 bit_pos)
{ … }
int qcom_pbs_trigger_event(struct pbs_dev *pbs, u8 bitmap)
{ … }
EXPORT_SYMBOL_GPL(…);
struct pbs_dev *get_pbs_client_device(struct device *dev)
{ … }
EXPORT_SYMBOL_GPL(…);
static int qcom_pbs_probe(struct platform_device *pdev)
{ … }
static const struct of_device_id qcom_pbs_match_table[] = …;
MODULE_DEVICE_TABLE(of, qcom_pbs_match_table);
static struct platform_driver qcom_pbs_driver = …;
module_platform_driver(…) …
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;