1 | /* SPDX-License-Identifier: GPL-2.0+ */ |
2 | /* |
3 | * Core interface for Renesas Synchronization Management Unit (SMU) devices. |
4 | * |
5 | * Copyright (C) 2021 Integrated Device Technology, Inc., a Renesas Company. |
6 | */ |
7 | |
8 | #ifndef __LINUX_MFD_RSMU_H |
9 | #define __LINUX_MFD_RSMU_H |
10 | |
11 | #define RSMU_MAX_WRITE_COUNT (255) |
12 | #define RSMU_MAX_READ_COUNT (255) |
13 | |
14 | /* The supported devices are ClockMatrix, Sabre and SnowLotus */ |
15 | enum rsmu_type { |
16 | RSMU_CM = 0x34000, |
17 | RSMU_SABRE = 0x33810, |
18 | RSMU_SL = 0x19850, |
19 | }; |
20 | |
21 | /** |
22 | * |
23 | * struct rsmu_ddata - device data structure for sub devices. |
24 | * |
25 | * @dev: i2c/spi device. |
26 | * @regmap: i2c/spi bus access. |
27 | * @lock: mutex used by sub devices to make sure a series of |
28 | * bus access requests are not interrupted. |
29 | * @type: RSMU device type. |
30 | * @page: i2c/spi bus driver internal use only. |
31 | */ |
32 | struct rsmu_ddata { |
33 | struct device *dev; |
34 | struct regmap *regmap; |
35 | struct mutex lock; |
36 | enum rsmu_type type; |
37 | u32 page; |
38 | }; |
39 | #endif /* __LINUX_MFD_RSMU_H */ |
40 | |