iio: isl29028: add isl29030 support
authorSebastian Reichel <sebastian.reichel@collabora.co.uk>
Fri, 28 Apr 2017 15:55:58 +0000 (17:55 +0200)
committerJonathan Cameron <jic23@kernel.org>
Sun, 30 Apr 2017 16:26:04 +0000 (17:26 +0100)
isl29030 is basically the same chip. The only difference
is the chip's first pin. For isl29028 its named ADDR0 and
can be used to change the chip's i2c address. For isl29030
on the other hand that pin is named Ials and is an analog
current output proportional to ALS/IR. This change is
irrelevant for the Linux driver.

This has been tested on Motorola Droid 4.

Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.co.uk>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Documentation/devicetree/bindings/i2c/trivial-devices.txt
drivers/iio/light/isl29028.c

index ad10fbe..010e2ac 100644 (file)
@@ -55,6 +55,7 @@ gmt,g751              G751: Digital Temperature Sensor and Thermal Watchdog with Two-Wire In
 infineon,slb9635tt     Infineon SLB9635 (Soft-) I2C TPM (old protocol, max 100khz)
 infineon,slb9645tt     Infineon SLB9645 I2C TPM (new protocol, max 400khz)
 isil,isl29028          Intersil ISL29028 Ambient Light and Proximity Sensor
+isil,isl29030          Intersil ISL29030 Ambient Light and Proximity Sensor
 maxim,ds1050           5 Bit Programmable, Pulse-Width Modulator
 maxim,max1237          Low-Power, 4-/12-Channel, 2-Wire Serial, 12-Bit ADCs
 maxim,max6625          9-Bit/12-Bit Temperature Sensors with I²C-Compatible Serial Interface
index aeb5082..3d09c1f 100644 (file)
  *
  * You should have received a copy of the GNU General Public License
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ * Datasheets:
+ *  - http://www.intersil.com/content/dam/Intersil/documents/isl2/isl29028.pdf
+ *  - http://www.intersil.com/content/dam/Intersil/documents/isl2/isl29030.pdf
  */
 
 #include <linux/module.h>
@@ -694,6 +698,7 @@ static const struct dev_pm_ops isl29028_pm_ops = {
 
 static const struct i2c_device_id isl29028_id[] = {
        {"isl29028", 0},
+       {"isl29030", 0},
        {}
 };
 MODULE_DEVICE_TABLE(i2c, isl29028_id);
@@ -701,6 +706,7 @@ MODULE_DEVICE_TABLE(i2c, isl29028_id);
 static const struct of_device_id isl29028_of_match[] = {
        { .compatible = "isl,isl29028", }, /* for backward compat., don't use */
        { .compatible = "isil,isl29028", },
+       { .compatible = "isil,isl29030", },
        { },
 };
 MODULE_DEVICE_TABLE(of, isl29028_of_match);