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

Commit 0cd5ff59 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull hwmon updates from Guenter Roeck:
 "New drivers for DA9052/53 PMIC as well as HIH-6130/HIH-6131 humidity
  and temperature sensors.

  Convert drivers to use devm_ functions and to use dev_pm_ops.  Address
  a couple of Coverity errors/warnings as well as compile warnings.
  Some functional improvements in applesmc driver."

* tag 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging: (72 commits)
  hwmon: (applesmc) Ignore some temperature registers
  hwmon: (applesmc) Allow negative temperature values
  hwmon: (s3c-hwmon) Use devm_kzalloc instead of kzalloc
  hwmon: (w83781d) Fix compile warning
  hwmon: (applesmc) Shorten minimum wait time
  hwmon: (exynos4_tmu) Use struct dev_pm_ops for power management
  hwmon: (gpio-fan) Use struct dev_pm_ops for power management
  hwmon: (abituguru3) Use struct dev_pm_ops for power management
  hwmon: (abituguru) Use struct dev_pm_ops for power management
  hwmon: (acpi_power_meter) Fix unintentional integer overflow
  hwmon: (acpi_power_meter) Cleanup and optimizations
  hwmon: Honeywell Humidicon HIH-6130/HIH-6131 humidity and temperature sensor driver
  hwmon: (applesmc) Skip sensor mapping
  hwmon: (ntc_thermistor) Ensure that data->name string is terminated
  hwmon: (w83l785ts) Convert to use devm_ functions
  hwmon: (w83l785ts) Simplify code and improve readability
  hwmon: (smsc47m192) Convert to use devm_ functions
  hwmon: (smsc47m1) Convert to use devm_ functions
  hwmon: (smsc47b397) Convert to use devm_ functions
  hwmon: (k8temp) Convert to use devm_ functions
  ...
parents 3539fc54 e30bca12
Loading
Loading
Loading
Loading
+61 −0
Original line number Diff line number Diff line
Supported chips:
  * Dialog Semiconductors DA9052-BC and DA9053-AA/Bx PMICs
    Prefix: 'da9052'
    Datasheet: Datasheet is not publicly available.

Authors: David Dajun Chen <dchen@diasemi.com>

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

The DA9052/53 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 10
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: ICH - internal battery charger current measurement
Channel 2: TBAT - output from the battery NTC
Channel 3: VBAT - measurement of the battery voltage
Channel 4: ADC_IN4 - high impedance input (0 - 2.5V)
Channel 5: ADC_IN5 - high impedance input (0 - 2.5V)
Channel 6: ADC_IN6 - high impedance input (0 - 2.5V)
Channel 7: XY - TSI interface to measure the X and Y voltage of the touch
	   screen resistive potentiometers
Channel 8: Internal Tjunc. - sense (internal temp. sensor)
Channel 9: VBBAT - measurement of the backup battery voltage

By using sysfs attributes we can measure the system voltage VDDOUT, the battery
charging current ICH, battery temperature TBAT, battery junction temperature
TJUNC, battery voltage VBAT and the back up battery voltage VBBAT.

Voltage Monitoring
------------------

Voltages are sampled by a 10 bit ADC.

The battery voltage is calculated as:
	Milli volt = ((ADC value * 1000) / 512) + 2500

The backup battery voltage is calculated as:
	Milli volt = (ADC value * 2500) / 512;

The voltages on ADC channels 4, 5 and 6 are calculated as:
	Milli volt = (ADC value * 2500) / 1023

Temperature Monitoring
----------------------

Temperatures are sampled by a 10 bit ADC.  Junction and battery temperatures
are monitored by the ADC channels.

The junction temperature is calculated:
	Degrees celsius = 1.708 * (TJUNC_RES - T_OFFSET) - 108.8
The junction temperature attribute is supported by the driver.

The battery temperature is calculated:
	Degree Celcius = 1 / (t1 + 1/298)- 273
where t1 = (1/B)* ln(( ADCval * 2.5)/(R25*ITBAT*255))
Default values of R25, B, ITBAT are 10e3, 3380 and 50e-6 respectively.
+37 −0
Original line number Diff line number Diff line
Kernel driver hih6130
=====================

Supported chips:
  * Honeywell HIH-6130 / HIH-6131
    Prefix: 'hih6130'
    Addresses scanned: none
    Datasheet: Publicly available at the Honeywell website
    http://sensing.honeywell.com/index.php?ci_id=3106&la_id=1&defId=44872

Author:
  Iain Paton <ipaton0@gmail.com>

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

The HIH-6130 & HIH-6131 are humidity and temperature sensors in a SO8 package.
The difference between the two devices is that the HIH-6131 has a condensation
filter.

The devices communicate with the I2C protocol. All sensors are set to the same
I2C address 0x27 by default, so an entry with I2C_BOARD_INFO("hih6130", 0x27)
can be used in the board setup code.

Please see Documentation/i2c/instantiating-devices for details on how to
instantiate I2C devices.

sysfs-Interface
---------------

temp1_input - temperature input
humidity1_input - humidity input

Notes
-----

Command mode and alarms are not currently supported.
+3 −0
Original line number Diff line number Diff line
@@ -70,6 +70,9 @@ increase the chances of your change being accepted.
  review more difficult. It may also result in code which is more complicated
  than necessary. Use inline functions or just regular functions instead.

* Use devres functions whenever possible to allocate resources. For rationale
  and supported functions, please see Documentation/driver-model/devres.txt.

* If the driver has a detect function, make sure it is silent. Debug messages
  and messages printed after a successful detection are acceptable, but it
  must not print messages such as "Chip XXX not found/supported".
+20 −0
Original line number Diff line number Diff line
@@ -314,6 +314,16 @@ config SENSORS_DS1621
	  This driver can also be built as a module.  If so, the module
	  will be called ds1621.

config SENSORS_DA9052_ADC
	tristate "Dialog DA9052/DA9053 ADC"
	depends on PMIC_DA9052
	help
	  Say y here to support the ADC found on Dialog Semiconductor
	  DA9052-BC and DA9053-AA/Bx PMICs.

	  This driver can also be built as module. If so, the module
	  will be called da9052-hwmon.

config SENSORS_EXYNOS4_TMU
	tristate "Temperature sensor on Samsung EXYNOS4"
	depends on ARCH_EXYNOS4
@@ -433,6 +443,16 @@ config SENSORS_GPIO_FAN
	  This driver can also be built as a module.  If so, the module
	  will be called gpio-fan.

config SENSORS_HIH6130
	tristate "Honeywell Humidicon HIH-6130 humidity/temperature sensor"
	depends on I2C && EXPERIMENTAL
	help
	  If you say yes here you get support for Honeywell Humidicon
	  HIH-6130 and HIH-6131 Humidicon humidity sensors.

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

config SENSORS_CORETEMP
	tristate "Intel Core/Core2/Atom temperature sensor"
	depends on X86 && PCI && EXPERIMENTAL
+2 −0
Original line number Diff line number Diff line
@@ -42,6 +42,7 @@ obj-$(CONFIG_SENSORS_APPLESMC) += applesmc.o
obj-$(CONFIG_SENSORS_ASC7621)	+= asc7621.o
obj-$(CONFIG_SENSORS_ATXP1)	+= atxp1.o
obj-$(CONFIG_SENSORS_CORETEMP)	+= coretemp.o
obj-$(CONFIG_SENSORS_DA9052_ADC)+= da9052-hwmon.o
obj-$(CONFIG_SENSORS_DME1737)	+= dme1737.o
obj-$(CONFIG_SENSORS_DS620)	+= ds620.o
obj-$(CONFIG_SENSORS_DS1621)	+= ds1621.o
@@ -58,6 +59,7 @@ obj-$(CONFIG_SENSORS_G760A) += g760a.o
obj-$(CONFIG_SENSORS_GL518SM)	+= gl518sm.o
obj-$(CONFIG_SENSORS_GL520SM)	+= gl520sm.o
obj-$(CONFIG_SENSORS_GPIO_FAN)	+= gpio-fan.o
obj-$(CONFIG_SENSORS_HIH6130)	+= hih6130.o
obj-$(CONFIG_SENSORS_ULTRA45)	+= ultra45_env.o
obj-$(CONFIG_SENSORS_I5K_AMB)	+= i5k_amb.o
obj-$(CONFIG_SENSORS_IBMAEM)	+= ibmaem.o
Loading