mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-11-24 12:00:58 +07:00
e597022353
This is the HWMON patch for DA9055 PMIC and has got dependency on the DA9055 MFD core. This patch monitors the DA9055 PMIC's ADC channels vddout, junction temperature and auxiliary channels. This patch is functionally tested on Samsung SMDKV6410. Signed-off-by: David Dajun Chen <dchen@diasemi.com> Signed-off-by: Ashish Jangam <ashish.jangam@kpitcummins.com> [Guenter Roeck: Dropped __devinit, __devexit, __devexit_p] Signed-off-by: Guenter Roeck <linux@roeck-us.net>
48 lines
1.6 KiB
Plaintext
48 lines
1.6 KiB
Plaintext
Supported chips:
|
|
* Dialog Semiconductors DA9055 PMIC
|
|
Prefix: 'da9055'
|
|
Datasheet: Datasheet is not publicly available.
|
|
|
|
Authors: David Dajun Chen <dchen@diasemi.com>
|
|
|
|
Description
|
|
-----------
|
|
|
|
The DA9055 provides an Analogue to Digital Converter (ADC) with 10 bits
|
|
resolution and track and hold circuitry combined with an analogue input
|
|
multiplexer. The analogue input multiplexer will allow conversion of up to 5
|
|
different inputs. The track and hold circuit ensures stable input voltages at
|
|
the input of the ADC during the conversion.
|
|
|
|
The ADC is used to measure the following inputs:
|
|
Channel 0: VDDOUT - measurement of the system voltage
|
|
Channel 1: ADC_IN1 - high impedance input (0 - 2.5V)
|
|
Channel 2: ADC_IN2 - high impedance input (0 - 2.5V)
|
|
Channel 3: ADC_IN3 - high impedance input (0 - 2.5V)
|
|
Channel 4: Internal Tjunc. - sense (internal temp. sensor)
|
|
|
|
By using sysfs attributes we can measure the system voltage VDDOUT,
|
|
chip junction temperature and auxiliary channels voltages.
|
|
|
|
Voltage Monitoring
|
|
------------------
|
|
|
|
Voltages are sampled in a AUTO mode it can be manually sampled too and results
|
|
are stored in a 10 bit ADC.
|
|
|
|
The system voltage is calculated as:
|
|
Milli volt = ((ADC value * 1000) / 85) + 2500
|
|
|
|
The voltages on ADC channels 1, 2 and 3 are calculated as:
|
|
Milli volt = (ADC value * 1000) / 102
|
|
|
|
Temperature Monitoring
|
|
----------------------
|
|
|
|
Temperatures are sampled by a 10 bit ADC. Junction temperatures
|
|
are monitored by the ADC channels.
|
|
|
|
The junction temperature is calculated:
|
|
Degrees celsius = -0.4084 * (ADC_RES - T_OFFSET) + 307.6332
|
|
The junction temperature attribute is supported by the driver.
|