mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-17 05:17:45 +07:00
d2d5437bdf
The driver MAX8973 supports the driver for Maxim PMIC MAX77621. MAX77621 supports the junction temp warning at 120 degC and 140 degC which is configurable. It generates alert signal when junction temperature crosses these threshold. MAX77621 does not support the continuous temp monitoring of junction temperature. It just report whether junction temperature crossed the threshold or not. Add support to - Configure junction temp warning threshold via DT property to generate alert when it crosses the threshold. - Add support to interrupt the host from this device when alert occurred. - read the junction temp via thermal framework. Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com> Signed-off-by: Mark Brown <broonie@kernel.org>
82 lines
3.2 KiB
C
82 lines
3.2 KiB
C
/*
|
|
* max8973-regulator.h -- MAXIM 8973 regulator
|
|
*
|
|
* Interface for regulator driver for MAXIM 8973 DC-DC step-down
|
|
* switching regulator.
|
|
*
|
|
* Copyright (C) 2012 NVIDIA Corporation
|
|
|
|
* Author: Laxman Dewangan <ldewangan@nvidia.com>
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation; either version 2 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful, but WITHOUT
|
|
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
|
* more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License along
|
|
* with this program; if not, write to the Free Software Foundation, Inc.,
|
|
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
*
|
|
*/
|
|
|
|
#ifndef __LINUX_REGULATOR_MAX8973_H
|
|
#define __LINUX_REGULATOR_MAX8973_H
|
|
|
|
/*
|
|
* Control flags for configuration of the device.
|
|
* Client need to pass this information with ORed
|
|
*/
|
|
#define MAX8973_CONTROL_REMOTE_SENSE_ENABLE 0x00000001
|
|
#define MAX8973_CONTROL_FALLING_SLEW_RATE_ENABLE 0x00000002
|
|
#define MAX8973_CONTROL_OUTPUT_ACTIVE_DISCH_ENABLE 0x00000004
|
|
#define MAX8973_CONTROL_BIAS_ENABLE 0x00000008
|
|
#define MAX8973_CONTROL_PULL_DOWN_ENABLE 0x00000010
|
|
#define MAX8973_CONTROL_FREQ_SHIFT_9PER_ENABLE 0x00000020
|
|
|
|
#define MAX8973_CONTROL_CLKADV_TRIP_DISABLED 0x00000000
|
|
#define MAX8973_CONTROL_CLKADV_TRIP_75mV_PER_US 0x00010000
|
|
#define MAX8973_CONTROL_CLKADV_TRIP_150mV_PER_US 0x00020000
|
|
#define MAX8973_CONTROL_CLKADV_TRIP_75mV_PER_US_HIST_DIS 0x00030000
|
|
|
|
#define MAX8973_CONTROL_INDUCTOR_VALUE_NOMINAL 0x00000000
|
|
#define MAX8973_CONTROL_INDUCTOR_VALUE_MINUS_30_PER 0x00100000
|
|
#define MAX8973_CONTROL_INDUCTOR_VALUE_PLUS_30_PER 0x00200000
|
|
#define MAX8973_CONTROL_INDUCTOR_VALUE_PLUS_60_PER 0x00300000
|
|
|
|
/*
|
|
* struct max8973_regulator_platform_data - max8973 regulator platform data.
|
|
*
|
|
* @reg_init_data: The regulator init data.
|
|
* @control_flags: Control flags which are ORed value of above flags to
|
|
* configure device.
|
|
* @junction_temp_warning: Junction temp in millicelcius on which warning need
|
|
* to be set. Thermal functionality is only supported on
|
|
* MAX77621. The threshold warning supported by MAX77621
|
|
* are 120C and 140C.
|
|
* @enable_ext_control: Enable the voltage enable/disable through external
|
|
* control signal from EN input pin. If it is false then
|
|
* voltage output will be enabled/disabled through EN bit of
|
|
* device register.
|
|
* @enable_gpio: Enable GPIO. If EN pin is controlled through GPIO from host
|
|
* then GPIO number can be provided. If no GPIO controlled then
|
|
* it should be -1.
|
|
* @dvs_gpio: GPIO for dvs. It should be -1 if this is tied with fixed logic.
|
|
* @dvs_def_state: Default state of dvs. 1 if it is high else 0.
|
|
*/
|
|
struct max8973_regulator_platform_data {
|
|
struct regulator_init_data *reg_init_data;
|
|
unsigned long control_flags;
|
|
unsigned long junction_temp_warning;
|
|
bool enable_ext_control;
|
|
int enable_gpio;
|
|
int dvs_gpio;
|
|
unsigned dvs_def_state:1;
|
|
};
|
|
|
|
#endif /* __LINUX_REGULATOR_MAX8973_H */
|