/* SPDX-License-Identifier: GPL-2.0-or-later */ /* * Broadcom BCM590xx PMU * * Copyright 2014 Linaro Limited * Author: Matt Porter */ #ifndef __LINUX_MFD_BCM590XX_H #define __LINUX_MFD_BCM590XX_H #include #include #include /* PMU ID register values; also used as device type */ #define BCM590XX_PMUID_BCM59054 0x54 #define BCM590XX_PMUID_BCM59056 0x56 /* Known chip revision IDs */ #define BCM59054_REV_DIGITAL_A1 1 #define BCM59054_REV_ANALOG_A1 2 #define BCM59056_REV_DIGITAL_A0 1 #define BCM59056_REV_ANALOG_A0 1 #define BCM59056_REV_DIGITAL_B0 2 #define BCM59056_REV_ANALOG_B0 2 /* regmap types */ enum bcm590xx_regmap_type { BCM590XX_REGMAP_PRI, BCM590XX_REGMAP_SEC, }; /* max register address */ #define BCM590XX_MAX_REGISTER_PRI 0xe7 #define BCM590XX_MAX_REGISTER_SEC 0xf0 struct bcm590xx { struct device *dev; struct i2c_client *i2c_pri; struct i2c_client *i2c_sec; struct regmap *regmap_pri; struct regmap *regmap_sec; /* PMU ID value; also used as device type */ u8 pmu_id; /* Chip revision, read from PMUREV reg */ u8 rev_digital; u8 rev_analog; }; #endif /* __LINUX_MFD_BCM590XX_H */