Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
84 changes: 84 additions & 0 deletions Documentation/devicetree/bindings/iio/light/amstaos,tcs3472.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/iio/light/amstaos,tcs3472.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: AMS/TAOS TCS3472/TMD3782 Color Light and Proximity Sensor

maintainers:
- Peter Meerwald <pmeerw@pmeerw.net>

description: |
RGBC color light-to-digital converter with optional proximity detection.
TCS3472 provides 4-channel RGBC sensing. TMD3782 adds an integrated
proximity detector with IR LED driver. The TMD3782 family also includes
TMD37825/TMD37827 variants at I2C address 0x29 (same die, untested).

TCS3472 datasheet:
https://ams.com/documents/20143/36005/TCS3472_DS000190_1-00.pdf

properties:
compatible:
enum:
- amstaos,tcs3472
- amstaos,tmd3782

reg:
maxItems: 1

interrupts:
maxItems: 1

vdd-supply:
description: Regulator that provides power to the sensor

vddio-supply:
description: Regulator that provides power to the I2C bus

vled-supply:
description: Regulator that provides power to the proximity IR LED

led-max-microamp:
description: Maximum proximity LED drive current in microamps
enum:
- 12500
- 25000
- 50000
- 100000

amstaos,proximity-pulse-count:
description:
Number of proximity IR LED pulses per measurement cycle.
Higher values increase signal strength at the cost of power.
$ref: /schemas/types.yaml#/definitions/uint32
minimum: 1
maximum: 255
default: 8

required:
- compatible
- reg

additionalProperties: false

examples:
- |
#include <dt-bindings/interrupt-controller/irq.h>

i2c {
#address-cells = <1>;
#size-cells = <0>;

light-sensor@39 {
compatible = "amstaos,tmd3782";
reg = <0x39>;
interrupts = <113 IRQ_TYPE_LEVEL_LOW>;
vdd-supply = <&reg_prox_vdd>;
vddio-supply = <&pm8916_l5>;
vled-supply = <&reg_prox_led>;
led-max-microamp = <100000>;
amstaos,proximity-pulse-count = <6>;
};
};
...
41 changes: 41 additions & 0 deletions arch/arm64/boot/dts/qcom/msm8916-samsung-a5u-eur.dts
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,16 @@
pinctrl-names = "default";
pinctrl-0 = <&tkey_en_default>;
};

reg_prox_vled: regulator-prox-vled {
compatible = "regulator-fixed";
regulator-name = "prox_vled";
gpios = <&tlmm 8 GPIO_ACTIVE_HIGH>;
enable-active-high;

pinctrl-0 = <&prox_led_default>;
pinctrl-names = "default";
};
};

&accelerometer {
Expand All @@ -61,6 +71,23 @@
constant-charge-voltage-max-microvolt = <4350000>;
};

&blsp_i2c2 {
light-sensor@39 {
compatible = "amstaos,tmd3782";
reg = <0x39>;
interrupts-extended = <&tlmm 113 IRQ_TYPE_LEVEL_LOW>;

vddio-supply = <&pm8916_l5>;
vled-supply = <&reg_prox_vled>;

led-max-microamp = <100000>;
amstaos,proximity-pulse-count = <6>;

pinctrl-0 = <&prox_int_default>;
pinctrl-names = "default";
};
};

&blsp_i2c5 {
status = "okay";

Expand Down Expand Up @@ -145,4 +172,18 @@
drive-strength = <2>;
bias-disable;
};

prox_int_default: prox-int-default-state {
pins = "gpio113";
function = "gpio";
drive-strength = <2>;
bias-pull-up;
};

prox_led_default: prox-led-default-state {
pins = "gpio8";
function = "gpio";
drive-strength = <2>;
bias-disable;
};
};
23 changes: 23 additions & 0 deletions arch/arm64/boot/dts/qcom/msm8939-samsung-a7.dts
Original file line number Diff line number Diff line change
Expand Up @@ -166,6 +166,22 @@
vdd-supply = <&pm8916_l17>;
vddio-supply = <&pm8916_l5>;
};

light-sensor@39 {
compatible = "amstaos,tmd3782";
reg = <0x39>;
interrupts-extended = <&tlmm 113 IRQ_TYPE_LEVEL_LOW>;

vdd-supply = <&pm8916_l17>;
vddio-supply = <&pm8916_l5>;
vled-supply = <&pm8916_l17>;

led-max-microamp = <100000>;
amstaos,proximity-pulse-count = <6>;

pinctrl-0 = <&prox_int_default>;
pinctrl-names = "default";
};
};

i2c-tkey {
Expand Down Expand Up @@ -700,6 +716,13 @@
bias-disable;
};

prox_int_default: prox-int-default-state {
pins = "gpio113";
function = "gpio";
drive-strength = <2>;
bias-pull-up;
};

reg_tsp_en_default: reg-tsp-en-default-state {
pins = "gpio73";
function = "gpio";
Expand Down
Loading
Loading