From: Jonathan Cameron <jic23@kernel.org>
To: Brian Masney <masneyb@onstation.org>
Cc: robh+dt@kernel.org, mark.rutland@arm.com, andy.gross@linaro.org,
david.brown@linaro.org, linux-iio@vger.kernel.org,
devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-arm-msm@vger.kernel.org, linux-soc@vger.kernel.org,
jonathan@marek.ca, jmaneyrol@invensense.com, knaack.h@gmx.de,
lars@metafoo.de, pmeerw@pmeerw.net, mkelly@xevo.com,
fischerdouglasc@gmail.com, bshah@kde.org, ctatlor97@gmail.com,
drew.paterson@ams.com
Subject: Re: [PATCH v2 3/7] iio: tsl2772: add support for reading power settings from device tree
Date: Sat, 21 Jul 2018 18:35:58 +0100 [thread overview]
Message-ID: <20180721183558.47510487@archlinux> (raw)
In-Reply-To: <20180717084158.23532-4-masneyb@onstation.org>
On Tue, 17 Jul 2018 04:41:54 -0400
Brian Masney <masneyb@onstation.org> wrote:
> This patch adds support for optionally reading the prox_diode and
> prox_power settings from device tree. This was tested using a LG
> Nexus 5 (hammerhead) which requires a different diode than the driver
> default for the IR LED.
>
> Signed-off-by: Brian Masney <masneyb@onstation.org>
I think we can make this binding more 'generic' as right now
the amstaos bindings aren't even general enough to apply
to future amstaos devices that need a similar binding.
I'm always anti defines rather than real values in DT (where
possible) and I think there is no reason not to use real values
here.
Jonathan
> ---
> The next patch in the series removes the tsl2772 driver from the
> trivial-devices.txt file. I separated it out so that change can go
> through device tree.
>
> .../devicetree/bindings/iio/light/tsl2772.txt | 39 +++++++++++++++++++
> drivers/iio/light/tsl2772.c | 16 ++++++++
> include/dt-bindings/iio/amstaos,tsl2772.h | 24 ++++++++++++
> 3 files changed, 79 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/iio/light/tsl2772.txt
> create mode 100644 include/dt-bindings/iio/amstaos,tsl2772.h
>
> diff --git a/Documentation/devicetree/bindings/iio/light/tsl2772.txt b/Documentation/devicetree/bindings/iio/light/tsl2772.txt
> new file mode 100644
> index 000000000000..ab553d52b9fc
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/iio/light/tsl2772.txt
> @@ -0,0 +1,39 @@
> +* AMS/TAOS ALS and proximity sensor
> +
> +Required properties:
> +
> + - compatible: Should be one of
> + "amstaos,tsl2571"
> + "amstaos,tsl2671"
> + "amstaos,tmd2671"
> + "amstaos,tsl2771"
> + "amstaos,tmd2771"
> + "amstaos,tsl2572"
> + "amstaos,tsl2672"
> + "amstaos,tmd2672"
> + "amstaos,tsl2772"
> + "amstaos,tmd2772"
> + - reg: the I2C address of the device
> +
> +Optional properties:
> +
> + - amstaos,prox_diode - must be TSL2772_DIODE0, TSL2772_DIODE1, or
> + TSL2772_DIODE_BOTH.
> + - amstaos,prox_power - must be TSL2772_100_mA, TSL2772_50_mA, TSL2772_25_mA,
> + or TSL2772_13_mA.
> + - interrupt-parent: should be the phandle for the interrupt controller
> + - interrupts: the sole interrupt generated by the device
> +
> + Refer to interrupt-controller/interrupts.txt for generic interrupt client
> + node bindings.
> +
> +Example:
> +
> +#include <dt-bindings/iio/amstaos,tsl2772.h>
> +
> +tsl2772@39 {
> + compatible = "amstaos,tsl2772";
> + reg = <0x39>;
> + interrupts-extended = <&msmgpio 61 IRQ_TYPE_EDGE_FALLING>;
> + amstaos,prox_diode = <TSL2772_DIODE0>;
> +};
> diff --git a/drivers/iio/light/tsl2772.c b/drivers/iio/light/tsl2772.c
> index 34d42a2504c9..0be57f2ecb02 100644
> --- a/drivers/iio/light/tsl2772.c
> +++ b/drivers/iio/light/tsl2772.c
> @@ -515,6 +515,18 @@ static int tsl2772_get_prox(struct iio_dev *indio_dev)
> return ret;
> }
>
> +#ifdef CONFIG_OF
> +static void tsl2772_parse_dt(struct tsl2772_chip *chip)
> +{
> + struct device_node *of_node = chip->client->dev.of_node;
> +
> + of_property_read_u32(of_node, "amstaos,prox_diode",
> + &chip->settings.prox_diode);
> + of_property_read_u32(of_node, "amstaos,prox_power",
> + &chip->settings.prox_power);
> +}
> +#endif
> +
> /**
> * tsl2772_defaults() - Populates the device nominal operating parameters
> * with those provided by a 'platform' data struct or
> @@ -541,6 +553,10 @@ static void tsl2772_defaults(struct tsl2772_chip *chip)
> memcpy(chip->tsl2772_device_lux,
> tsl2772_default_lux_table_group[chip->id],
> TSL2772_DEFAULT_TABLE_BYTES);
> +
> +#ifdef CONFIG_OF
> + tsl2772_parse_dt(chip);
> +#endif
> }
>
> /**
> diff --git a/include/dt-bindings/iio/amstaos,tsl2772.h b/include/dt-bindings/iio/amstaos,tsl2772.h
> new file mode 100644
> index 000000000000..ad6f9fbc0845
> --- /dev/null
> +++ b/include/dt-bindings/iio/amstaos,tsl2772.h
> @@ -0,0 +1,24 @@
> +/* SPDX-License-Identifier: GPL-2.0+ */
> +/*
> + * Device driver for monitoring ambient light intensity (lux)
> + * and proximity (prox) within the TAOS TSL2772 family of devices.
> + *
> + * Copyright (c) 2012 TAOS Corporation.
> + * Copyright (c) 2017-2018 Brian Masney <masneyb@onstation.org>
> + */
> +
> +#ifndef _DT_BINDINGS_AMSTAOS_TSL2772_H
> +#define _DT_BINDINGS_AMSTAOS_TSL2772_H
> +
> +/* Proximity diode to use */
> +#define TSL2772_DIODE0 0x01
> +#define TSL2772_DIODE1 0x02
> +#define TSL2772_DIODE_BOTH 0x03
Can we have two separate parameters to enable them?
> +
> +/* LED Power */
> +#define TSL2772_100_mA 0x00
> +#define TSL2772_50_mA 0x01
> +#define TSL2772_25_mA 0x02
> +#define TSL2772_13_mA 0x03
I'd like to see real numbers rather than defines. List the valid
values in the binding then match them to register addresses in the
driver.
A different instance of this binding for a different taos device
might have different values that are valid.
> +
> +#endif /* _DT_BINDINGS_AMSTAOS_TSL2772_H */
next prev parent reply other threads:[~2018-07-21 17:35 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-07-17 8:41 [PATCH v2 0/7] ARM: dts: qcom: msm8974-hammerhead: add more sensors Brian Masney
2018-07-17 8:41 ` [PATCH v2 1/7] iio: imu: mpu6050: add support for regulator framework Brian Masney
2018-07-20 17:02 ` Rob Herring
2018-07-21 17:31 ` Jonathan Cameron
2018-07-22 12:31 ` Brian Masney
2018-07-22 17:20 ` Jonathan Cameron
2018-07-17 8:41 ` [PATCH v2 2/7] ARM: dts: qcom: msm8974-hammerhead: add device tree bindings for mpu6515 Brian Masney
2018-07-17 8:41 ` [PATCH v2 3/7] iio: tsl2772: add support for reading power settings from device tree Brian Masney
2018-07-20 17:36 ` Rob Herring
2018-07-21 17:37 ` Jonathan Cameron
2018-07-22 12:37 ` Brian Masney
2018-07-22 17:17 ` Jonathan Cameron
2018-07-23 13:28 ` Rob Herring
2018-07-21 17:35 ` Jonathan Cameron [this message]
2018-07-17 8:41 ` [PATCH v2 4/7] dt-bindings: trivial: remove tsl2772 Brian Masney
2018-07-25 16:01 ` Rob Herring
2018-07-17 8:41 ` [PATCH v2 5/7] iio: tsl2772: add support for regulator framework Brian Masney
2018-07-20 17:38 ` Rob Herring
2018-07-21 17:45 ` Jonathan Cameron
2018-07-17 8:41 ` [PATCH v2 6/7] iio: tsl2772: add device tree binding for avago,apds9930 Brian Masney
2018-07-17 8:41 ` [PATCH v2 7/7] ARM: dts: qcom: msm8974-hammerhead: add device tree bindings for ALS / proximity Brian Masney
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20180721183558.47510487@archlinux \
--to=jic23@kernel.org \
--cc=andy.gross@linaro.org \
--cc=bshah@kde.org \
--cc=ctatlor97@gmail.com \
--cc=david.brown@linaro.org \
--cc=devicetree@vger.kernel.org \
--cc=drew.paterson@ams.com \
--cc=fischerdouglasc@gmail.com \
--cc=jmaneyrol@invensense.com \
--cc=jonathan@marek.ca \
--cc=knaack.h@gmx.de \
--cc=lars@metafoo.de \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-iio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-soc@vger.kernel.org \
--cc=mark.rutland@arm.com \
--cc=masneyb@onstation.org \
--cc=mkelly@xevo.com \
--cc=pmeerw@pmeerw.net \
--cc=robh+dt@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.