|  | /* SPDX-License-Identifier: GPL-2.0-or-later */ | 
|  | /* | 
|  | * Hardware monitoring driver for PMBus devices | 
|  | * | 
|  | * Copyright (c) 2010, 2011 Ericsson AB. | 
|  | */ | 
|  |  | 
|  | #ifndef _PMBUS_H_ | 
|  | #define _PMBUS_H_ | 
|  |  | 
|  | #include <linux/bits.h> | 
|  |  | 
|  | /* flags */ | 
|  |  | 
|  | /* | 
|  | * PMBUS_SKIP_STATUS_CHECK | 
|  | * | 
|  | * During register detection, skip checking the status register for | 
|  | * communication or command errors. | 
|  | * | 
|  | * Some PMBus chips respond with valid data when trying to read an unsupported | 
|  | * register. For such chips, checking the status register is mandatory when | 
|  | * trying to determine if a chip register exists or not. | 
|  | * Other PMBus chips don't support the STATUS_CML register, or report | 
|  | * communication errors for no explicable reason. For such chips, checking | 
|  | * the status register must be disabled. | 
|  | */ | 
|  | #define PMBUS_SKIP_STATUS_CHECK	BIT(0) | 
|  |  | 
|  | /* | 
|  | * PMBUS_WRITE_PROTECTED | 
|  | * Set if the chip is write protected and write protection is not determined | 
|  | * by the standard WRITE_PROTECT command. | 
|  | */ | 
|  | #define PMBUS_WRITE_PROTECTED	BIT(1) | 
|  |  | 
|  | /* | 
|  | * PMBUS_NO_CAPABILITY | 
|  | * | 
|  | * Some PMBus chips don't respond with valid data when reading the CAPABILITY | 
|  | * register. For such chips, this flag should be set so that the PMBus core | 
|  | * driver doesn't use CAPABILITY to determine it's behavior. | 
|  | */ | 
|  | #define PMBUS_NO_CAPABILITY			BIT(2) | 
|  |  | 
|  | /* | 
|  | * PMBUS_READ_STATUS_AFTER_FAILED_CHECK | 
|  | * | 
|  | * Some PMBus chips end up in an undefined state when trying to read an | 
|  | * unsupported register. For such chips, it is necessary to reset the | 
|  | * chip pmbus controller to a known state after a failed register check. | 
|  | * This can be done by reading a known register. By setting this flag the | 
|  | * driver will try to read the STATUS register after each failed | 
|  | * register check. This read may fail, but it will put the chip in a | 
|  | * known state. | 
|  | */ | 
|  | #define PMBUS_READ_STATUS_AFTER_FAILED_CHECK	BIT(3) | 
|  |  | 
|  | /* | 
|  | * PMBUS_NO_WRITE_PROTECT | 
|  | * | 
|  | * Some PMBus chips respond with invalid data when reading the WRITE_PROTECT | 
|  | * register. For such chips, this flag should be set so that the PMBus core | 
|  | * driver doesn't use the WRITE_PROTECT command to determine its behavior. | 
|  | */ | 
|  | #define PMBUS_NO_WRITE_PROTECT			BIT(4) | 
|  |  | 
|  | /* | 
|  | * PMBUS_USE_COEFFICIENTS_CMD | 
|  | * | 
|  | * When this flag is set the PMBus core driver will use the COEFFICIENTS | 
|  | * register to initialize the coefficients for the direct mode format. | 
|  | */ | 
|  | #define PMBUS_USE_COEFFICIENTS_CMD		BIT(5) | 
|  |  | 
|  | struct pmbus_platform_data { | 
|  | u32 flags;		/* Device specific flags */ | 
|  |  | 
|  | /* regulator support */ | 
|  | int num_regulators; | 
|  | struct regulator_init_data *reg_init_data; | 
|  | }; | 
|  |  | 
|  | #endif /* _PMBUS_H_ */ |