/* 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_ */
