1 /* SPDX-License-Identifier: GPL-2.0-or-later */
2 /*
3  * Goodix Touchscreen Driver
4  * Copyright (C) 2020 - 2021 Goodix, Inc.
5  * Copyright (C) 2023 Linaro Ltd.
6  *
7  * Based on goodix_berlin_berlin driver.
8  */
9 
10 #ifndef __GOODIX_BERLIN_H_
11 #define __GOODIX_BERLIN_H_
12 
13 #include <linux/pm.h>
14 
15 #define GOODIX_BERLIN_FW_VERSION_INFO_ADDR_A	0x1000C
16 #define GOODIX_BERLIN_FW_VERSION_INFO_ADDR_D	0x10014
17 
18 #define GOODIX_BERLIN_IC_INFO_ADDR_A		0x10068
19 #define GOODIX_BERLIN_IC_INFO_ADDR_D		0x10070
20 
21 struct goodix_berlin_ic_data {
22 	int fw_version_info_addr;
23 	int ic_info_addr;
24 	ssize_t read_dummy_len;
25 	ssize_t read_prefix_len;
26 };
27 
28 struct device;
29 struct input_id;
30 struct regmap;
31 
32 int goodix_berlin_probe(struct device *dev, int irq, const struct input_id *id,
33 			struct regmap *regmap,
34 			const struct goodix_berlin_ic_data *ic_data);
35 
36 extern const struct dev_pm_ops goodix_berlin_pm_ops;
37 extern const struct attribute_group *goodix_berlin_groups[];
38 
39 #endif
40