| /* SPDX-License-Identifier: GPL-2.0+ */ | |
| /* | |
| * Core interface for Renesas Synchronization Management Unit (SMU) devices. | |
| * | |
| * Copyright (C) 2021 Integrated Device Technology, Inc., a Renesas Company. | |
| */ | |
| #ifndef __LINUX_MFD_RSMU_H | |
| #define __LINUX_MFD_RSMU_H | |
| #define RSMU_MAX_WRITE_COUNT (255) | |
| #define RSMU_MAX_READ_COUNT (255) | |
| /* The supported devices are ClockMatrix, Sabre and SnowLotus */ | |
| enum rsmu_type { | |
| RSMU_CM = 0x34000, | |
| RSMU_SABRE = 0x33810, | |
| RSMU_SL = 0x19850, | |
| }; | |
| /** | |
| * | |
| * struct rsmu_ddata - device data structure for sub devices. | |
| * | |
| * @dev: i2c/spi device. | |
| * @regmap: i2c/spi bus access. | |
| * @lock: mutex used by sub devices to make sure a series of | |
| * bus access requests are not interrupted. | |
| * @type: RSMU device type. | |
| * @page: i2c/spi bus driver internal use only. | |
| */ | |
| struct rsmu_ddata { | |
| struct device *dev; | |
| struct regmap *regmap; | |
| struct mutex lock; | |
| enum rsmu_type type; | |
| u32 page; | |
| }; | |
| #endif /* __LINUX_MFD_RSMU_H */ |