| 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 | |