mirror of
https://github.com/torvalds/linux.git
synced 2026-07-28 18:21:24 +02:00
misc: Remove old APDS990x driver
The APDS990x driver in misc lacks DeviceTree support, and no mainline pre-DT board files configured this device using apds990x_platform_data. This driver belongs to a legacy group of ambient light sensor drivers in drivers/misc/ that predates the migration to DT and the standard IIO ABI. Since the Avago APDS9900/9901 ALS/Proximity sensor is now supported by the tsl2772 IIO driver and there are no active users in the kernel tree, remove this old implementation. Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com> Signed-off-by: Jonathan Cameron <jic23@kernel.org>
This commit is contained in:
parent
2f640a4d0f
commit
9c48294623
|
|
@ -1,128 +0,0 @@
|
|||
.. SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
======================
|
||||
Kernel driver apds990x
|
||||
======================
|
||||
|
||||
Supported chips:
|
||||
Avago APDS990X
|
||||
|
||||
Data sheet:
|
||||
Not freely available
|
||||
|
||||
Author:
|
||||
Samu Onkalo <samu.p.onkalo@nokia.com>
|
||||
|
||||
Description
|
||||
-----------
|
||||
|
||||
APDS990x is a combined ambient light and proximity sensor. ALS and proximity
|
||||
functionality are highly connected. ALS measurement path must be running
|
||||
while the proximity functionality is enabled.
|
||||
|
||||
ALS produces raw measurement values for two channels: Clear channel
|
||||
(infrared + visible light) and IR only. However, threshold comparisons happen
|
||||
using clear channel only. Lux value and the threshold level on the HW
|
||||
might vary quite much depending the spectrum of the light source.
|
||||
|
||||
Driver makes necessary conversions to both directions so that user handles
|
||||
only lux values. Lux value is calculated using information from the both
|
||||
channels. HW threshold level is calculated from the given lux value to match
|
||||
with current type of the lightning. Sometimes inaccuracy of the estimations
|
||||
lead to false interrupt, but that doesn't harm.
|
||||
|
||||
ALS contains 4 different gain steps. Driver automatically
|
||||
selects suitable gain step. After each measurement, reliability of the results
|
||||
is estimated and new measurement is triggered if necessary.
|
||||
|
||||
Platform data can provide tuned values to the conversion formulas if
|
||||
values are known. Otherwise plain sensor default values are used.
|
||||
|
||||
Proximity side is little bit simpler. There is no need for complex conversions.
|
||||
It produces directly usable values.
|
||||
|
||||
Driver controls chip operational state using pm_runtime framework.
|
||||
Voltage regulators are controlled based on chip operational state.
|
||||
|
||||
SYSFS
|
||||
-----
|
||||
|
||||
|
||||
chip_id
|
||||
RO - shows detected chip type and version
|
||||
|
||||
power_state
|
||||
RW - enable / disable chip. Uses counting logic
|
||||
|
||||
1 enables the chip
|
||||
0 disables the chip
|
||||
lux0_input
|
||||
RO - measured lux value
|
||||
|
||||
sysfs_notify called when threshold interrupt occurs
|
||||
|
||||
lux0_sensor_range
|
||||
RO - lux0_input max value.
|
||||
|
||||
Actually never reaches since sensor tends
|
||||
to saturate much before that. Real max value varies depending
|
||||
on the light spectrum etc.
|
||||
|
||||
lux0_rate
|
||||
RW - measurement rate in Hz
|
||||
|
||||
lux0_rate_avail
|
||||
RO - supported measurement rates
|
||||
|
||||
lux0_calibscale
|
||||
RW - calibration value.
|
||||
|
||||
Set to neutral value by default.
|
||||
Output results are multiplied with calibscale / calibscale_default
|
||||
value.
|
||||
|
||||
lux0_calibscale_default
|
||||
RO - neutral calibration value
|
||||
|
||||
lux0_thresh_above_value
|
||||
RW - HI level threshold value.
|
||||
|
||||
All results above the value
|
||||
trigs an interrupt. 65535 (i.e. sensor_range) disables the above
|
||||
interrupt.
|
||||
|
||||
lux0_thresh_below_value
|
||||
RW - LO level threshold value.
|
||||
|
||||
All results below the value
|
||||
trigs an interrupt. 0 disables the below interrupt.
|
||||
|
||||
prox0_raw
|
||||
RO - measured proximity value
|
||||
|
||||
sysfs_notify called when threshold interrupt occurs
|
||||
|
||||
prox0_sensor_range
|
||||
RO - prox0_raw max value (1023)
|
||||
|
||||
prox0_raw_en
|
||||
RW - enable / disable proximity - uses counting logic
|
||||
|
||||
- 1 enables the proximity
|
||||
- 0 disables the proximity
|
||||
|
||||
prox0_reporting_mode
|
||||
RW - trigger / periodic.
|
||||
|
||||
In "trigger" mode the driver tells two possible
|
||||
values: 0 or prox0_sensor_range value. 0 means no proximity,
|
||||
1023 means proximity. This causes minimal number of interrupts.
|
||||
In "periodic" mode the driver reports all values above
|
||||
prox0_thresh_above. This causes more interrupts, but it can give
|
||||
_rough_ estimate about the distance.
|
||||
|
||||
prox0_reporting_mode_avail
|
||||
RO - accepted values to prox0_reporting_mode (trigger, periodic)
|
||||
|
||||
prox0_thresh_above_value
|
||||
RW - threshold level which trigs proximity events.
|
||||
|
|
@ -13,7 +13,6 @@ fit into other categories.
|
|||
|
||||
ad525x_dpot
|
||||
amd-sbi
|
||||
apds990x
|
||||
bh1770glc
|
||||
c2port
|
||||
dw-xdata-pcie
|
||||
|
|
|
|||
|
|
@ -381,16 +381,6 @@ config SENSORS_BH1770
|
|||
To compile this driver as a module, choose M here: the
|
||||
module will be called bh1770glc. If unsure, say N here.
|
||||
|
||||
config SENSORS_APDS990X
|
||||
tristate "APDS990X combined als and proximity sensors"
|
||||
depends on I2C
|
||||
help
|
||||
Say Y here if you want to build a driver for Avago APDS990x
|
||||
combined ambient light and proximity sensor chip.
|
||||
|
||||
To compile this driver as a module, choose M here: the
|
||||
module will be called apds990x. If unsure, say N here.
|
||||
|
||||
config HMC6352
|
||||
tristate "Honeywell HMC6352 compass"
|
||||
depends on I2C
|
||||
|
|
|
|||
|
|
@ -20,7 +20,6 @@ obj-$(CONFIG_RPMB) += rpmb-core.o
|
|||
obj-$(CONFIG_QCOM_COINCELL) += qcom-coincell.o
|
||||
obj-$(CONFIG_QCOM_FASTRPC) += fastrpc.o
|
||||
obj-$(CONFIG_SENSORS_BH1770) += bh1770glc.o
|
||||
obj-$(CONFIG_SENSORS_APDS990X) += apds990x.o
|
||||
obj-$(CONFIG_ENCLOSURE_SERVICES) += enclosure.o
|
||||
obj-$(CONFIG_KGDB_TESTS) += kgdbts.o
|
||||
obj-$(CONFIG_SGI_XP) += sgi-xp/
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -1,65 +0,0 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
/*
|
||||
* This file is part of the APDS990x sensor driver.
|
||||
* Chip is combined proximity and ambient light sensor.
|
||||
*
|
||||
* Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
|
||||
*
|
||||
* Contact: Samu Onkalo <samu.p.onkalo@nokia.com>
|
||||
*/
|
||||
|
||||
#ifndef __APDS990X_H__
|
||||
#define __APDS990X_H__
|
||||
|
||||
|
||||
#define APDS_IRLED_CURR_12mA 0x3
|
||||
#define APDS_IRLED_CURR_25mA 0x2
|
||||
#define APDS_IRLED_CURR_50mA 0x1
|
||||
#define APDS_IRLED_CURR_100mA 0x0
|
||||
|
||||
/**
|
||||
* struct apds990x_chip_factors - defines effect of the cover window
|
||||
* @ga: Total glass attenuation
|
||||
* @cf1: clear channel factor 1 for raw to lux conversion
|
||||
* @irf1: IR channel factor 1 for raw to lux conversion
|
||||
* @cf2: clear channel factor 2 for raw to lux conversion
|
||||
* @irf2: IR channel factor 2 for raw to lux conversion
|
||||
* @df: device factor for conversion formulas
|
||||
*
|
||||
* Structure for tuning ALS calculation to match with environment.
|
||||
* Values depend on the material above the sensor and the sensor
|
||||
* itself. If the GA is zero, driver will use uncovered sensor default values
|
||||
* format: decimal value * APDS_PARAM_SCALE except df which is plain integer.
|
||||
*/
|
||||
struct apds990x_chip_factors {
|
||||
int ga;
|
||||
int cf1;
|
||||
int irf1;
|
||||
int cf2;
|
||||
int irf2;
|
||||
int df;
|
||||
};
|
||||
#define APDS_PARAM_SCALE 4096
|
||||
|
||||
/**
|
||||
* struct apds990x_platform_data - platform data for apsd990x.c driver
|
||||
* @cf: chip factor data
|
||||
* @pdrive: IR-led driving current
|
||||
* @ppcount: number of IR pulses used for proximity estimation
|
||||
* @setup_resources: interrupt line setup call back function
|
||||
* @release_resources: interrupt line release call back function
|
||||
*
|
||||
* Proximity detection result depends heavily on correct ppcount, pdrive
|
||||
* and cover window.
|
||||
*
|
||||
*/
|
||||
|
||||
struct apds990x_platform_data {
|
||||
struct apds990x_chip_factors cf;
|
||||
u8 pdrive;
|
||||
u8 ppcount;
|
||||
int (*setup_resources)(void);
|
||||
int (*release_resources)(void);
|
||||
};
|
||||
|
||||
#endif
|
||||
Loading…
Reference in New Issue
Block a user