Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a8bfeceb authored by Zhu, Richard \(NSN - CN/Beijing\)'s avatar Zhu, Richard \(NSN - CN/Beijing\) Committed by Guenter Roeck
Browse files

hwmon: (pmbus) Add tps40422 front-end driver



For TI power management chip TPS40422, READ_TEMPERATURE_2 command is supported on
page 1 of the chip, but the original driver(pmbus.c) only tried to detect this command
on page 0, this will lead to a result that the temperature sensor in page 1 couldn't
be detected. This change is to isolate the tps40422 driver from pmbus.c into a solo
front-end driver.

Signed-off-by: default avatarZhu Laiwen <richard.zhu@nsn.com>
[Guenter Roeck: Dropped unnecessary license text (fixes checkpatch warning)]
Signed-off-by: default avatarGuenter Roeck <linux@roeck-us.net>
parent 012cb5e2
Loading
Loading
Loading
Loading
+2 −3
Original line number Diff line number Diff line
@@ -23,12 +23,11 @@ Supported chips:
	http://www.lineagepower.com/oem/pdf/PDT012A0X.pdf
	http://www.lineagepower.com/oem/pdf/UDT020A0X.pdf
	http://www.lineagepower.com/oem/pdf/MDT040A0X.pdf
  * Texas Instruments TPS40400, TPS40422
    Prefixes: 'tps40400', 'tps40422'
  * Texas Instruments TPS40400
    Prefixes: 'tps40400'
    Addresses scanned: -
    Datasheets:
	http://www.ti.com/lit/gpn/tps40400
	http://www.ti.com/lit/gpn/tps40422
  * Generic PMBus devices
    Prefix: 'pmbus'
    Addresses scanned: -
+64 −0
Original line number Diff line number Diff line
Kernel driver tps40422
======================

Supported chips:
  * TI TPS40422
    Prefix: 'tps40422'
    Addresses scanned: -
    Datasheet: http://www.ti.com/lit/gpn/tps40422

Author: Zhu Laiwen <richard.zhu@nsn.com>


Description
-----------

This driver supports TI TPS40422 Dual-Output or Two-Phase Synchronous Buck
Controller with PMBus

The driver is a client driver to the core PMBus driver.
Please see Documentation/hwmon/pmbus for details on PMBus client drivers.


Usage Notes
-----------

This driver does not auto-detect devices. You will have to instantiate the
devices explicitly. Please see Documentation/i2c/instantiating-devices for
details.


Platform data support
---------------------

The driver supports standard PMBus driver platform data.


Sysfs entries
-------------

The following attributes are supported.

in[1-2]_label		"vout[1-2]"
in[1-2]_input		Measured voltage. From READ_VOUT register.
in[1-2]_alarm		voltage alarm.

curr[1-2]_input		Measured current. From READ_IOUT register.
curr[1-2]_label		"iout[1-2]"
curr1_max		Maximum current. From IOUT_OC_WARN_LIMIT register.
curr1_crit		Critical maximum current. From IOUT_OC_FAULT_LIMIT register.
curr1_max_alarm		Current high alarm. From IOUT_OC_WARN_LIMIT status.
curr1_crit_alarm	Current critical high alarm. From IOUT_OC_FAULT status.
curr2_alarm		Current high alarm. From IOUT_OC_WARNING status.

temp1_input		Measured temperature. From READ_TEMPERATURE_2 register on page 0.
temp1_max		Maximum temperature. From OT_WARN_LIMIT register.
temp1_crit		Critical high temperature. From OT_FAULT_LIMIT register.
temp1_max_alarm		Chip temperature high alarm. Set by comparing
			READ_TEMPERATURE_2 on page 0 with OT_WARN_LIMIT if TEMP_OT_WARNING
			status is set.
temp1_crit_alarm	Chip temperature critical high alarm. Set by comparing
			READ_TEMPERATURE_2 on page 0 with OT_FAULT_LIMIT if TEMP_OT_FAULT
			status is set.
temp2_input		Measured temperature. From READ_TEMPERATURE_2 register on page 1.
temp2_alarm		Chip temperature alarm on page 1.
+11 −2
Original line number Diff line number Diff line
@@ -20,8 +20,7 @@ config SENSORS_PMBUS
	help
	  If you say yes here you get hardware monitoring support for generic
	  PMBus devices, including but not limited to ADP4000, BMR453, BMR454,
	  MDT040, NCP4200, NCP4208, PDT003, PDT006, PDT012, UDT020, TPS40400,
	  and TPS40422.
	  MDT040, NCP4200, NCP4208, PDT003, PDT006, PDT012, UDT020, and TPS40400.

	  This driver can also be built as a module. If so, the module will
	  be called pmbus.
@@ -87,6 +86,16 @@ config SENSORS_MAX8688
	  This driver can also be built as a module. If so, the module will
	  be called max8688.

config SENSORS_TPS40422
	tristate "TI TPS40422"
	default n
	help
	  If you say yes here you get hardware monitoring support for TI
	  TPS40422.

	  This driver can also be built as a module. If so, the module will
	  be called tps40422.

config SENSORS_UCD9000
	tristate "TI UCD90120, UCD90124, UCD9090, UCD90910"
	default n
+1 −0
Original line number Diff line number Diff line
@@ -10,6 +10,7 @@ obj-$(CONFIG_SENSORS_LTC2978) += ltc2978.o
obj-$(CONFIG_SENSORS_MAX16064)	+= max16064.o
obj-$(CONFIG_SENSORS_MAX34440)	+= max34440.o
obj-$(CONFIG_SENSORS_MAX8688)	+= max8688.o
obj-$(CONFIG_SENSORS_TPS40422)	+= tps40422.o
obj-$(CONFIG_SENSORS_UCD9000)	+= ucd9000.o
obj-$(CONFIG_SENSORS_UCD9200)	+= ucd9200.o
obj-$(CONFIG_SENSORS_ZL6100)	+= zl6100.o
+0 −1
Original line number Diff line number Diff line
@@ -193,7 +193,6 @@ static const struct i2c_device_id pmbus_id[] = {
	{"pdt012", 1},
	{"pmbus", 0},
	{"tps40400", 1},
	{"tps40422", 2},
	{"udt020", 1},
	{}
};
Loading