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