From: Waqar Hameed <waqar.hameed@axis.com>
To: Jonathan Cameron <jic23@kernel.org>,
Lars-Peter Clausen <lars@metafoo.de>,
Rob Herring <robh@kernel.org>,
Krzysztof Kozlowski <krzk+dt@kernel.org>
Cc: <kernel@axis.com>, <linux-kernel@vger.kernel.org>,
<linux-iio@vger.kernel.org>, <devicetree@vger.kernel.org>
Subject: [PATCH 0/3] Add driver for Nicera D3-323-AA PIR sensor
Date: Sat, 14 Jun 2025 23:56:41 +0200 [thread overview]
Message-ID: <cover.1749937579.git.waqar.hameed@axis.com> (raw)
Nicera D3-323-AA is a PIR sensor for human detection. It has support for
raw data measurements and detection notification. The communication
protocol is custom made and therefore needs to be GPIO bit banged.
Previously, there has been an attempt to add a driver for this device
[1]. However, that driver was written for the wrong sub-system. `hwmon`
is clearly not a suitable framework for a proximity device.
In this series, we add a driver for support for event notification for
detections through IIO (the more appropriate sub-system!). The various
settings have been mapped to existing `sysfs` ABIs in the IIO framework.
The public datasheet [2] is quite sparse. A more detailed version can be
obtained through the company.
[1] https://lore.kernel.org/lkml/20241212042412.702044-2-Hermes.Zhang@axis.com/
[2] https://www.endrich.com/Datenbl%C3%A4tter/Sensoren/D3-323-AA_e.pdf
Changes in v2:
[dt-bindings]
* Convert `vdd-gpio` to a `vdd-supply`.
* Rename `clk-vout-gpio` to `vout-clk-gpios`.
* Add description for `data-gpios` explaining the rename to a more
descriptive name.
* Drop all references to driver.
* Remove unused gpio include in examples.
* Re-phrase commit message to only describe the hardware.
[iio]
* Add newline after variable definitions inside the for-loop in
`d3323aa_set_lp_filter_freq()`.
* Remove error code in string in `dev_err_probe()`.
* Remove driver name macro and use it inline instead.
* Format filter gain arrays into one line.
* Drop structure comment in `probe()`.
* Format sentinel value in `of_device_id` with a space.
* Rename `gpiod_clk_vout` to `gpiod_clkin_detectout`.
* Request `vout-clk` GPIO to match rename in dt-bindings.
* Use the regulator framework for supply voltage.
* Use only one IRQ handler for both reset and detection.
* Reword comment about Vout/CLK ramp-up behavior (it's because of VDD charging
up).
* Add comment for why we have both `IRQF_TRIGGER_RISING` and
`IRQF_TRIGGER_FALLING`.
* Rename `regmap` to `regbitmap` to not confuse with the `regmap`-framework.
* Move `d3323aa_setup()` into the set-functions.
* Use state variables in `d3323aa_data` instead of bitmap and move bitmap
handling to read/write settings functions.
* Pad bitmap with compulsory end pattern in `d3323aa_write_settings()`.
* Add `d3323aa_set_hp_filter_freq()` and allow userspace to set it.
Link to v1: https://lore.kernel.org/lkml/cover.1746802541.git.waqar.hameed@axis.com/
Waqar Hameed (3):
dt-bindings: vendor-prefixes: Add Nicera
dt-bindings: iio: proximity: Add Nicera D3-323-AA PIR sensor
iio: Add driver for Nicera D3-323-AA PIR sensor
.../iio/proximity/nicera,d3323aa.yaml | 60 ++
.../devicetree/bindings/vendor-prefixes.yaml | 2 +
drivers/iio/proximity/Kconfig | 9 +
drivers/iio/proximity/Makefile | 1 +
drivers/iio/proximity/d3323aa.c | 808 ++++++++++++++++++
5 files changed, 880 insertions(+)
create mode 100644 Documentation/devicetree/bindings/iio/proximity/nicera,d3323aa.yaml
create mode 100644 drivers/iio/proximity/d3323aa.c
base-commit: 5abc7438f1e9d62e91ad775cc83c9594c48d2282
--
2.39.5
next reply other threads:[~2025-06-14 21:56 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-06-14 21:56 Waqar Hameed [this message]
2025-06-14 21:56 ` [PATCH 2/3] dt-bindings: iio: proximity: Add Nicera D3-323-AA PIR sensor Waqar Hameed
2025-06-14 21:56 ` [PATCH 3/3] iio: Add driver for " Waqar Hameed
2025-06-14 22:09 ` [PATCH 0/3] " Waqar Hameed
-- strict thread matches above, loose matches on Subject: below --
2025-05-09 15:03 Waqar Hameed
2025-05-09 15:09 ` Krzysztof Kozlowski
2025-05-16 17:14 ` Waqar Hameed
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=cover.1749937579.git.waqar.hameed@axis.com \
--to=waqar.hameed@axis.com \
--cc=devicetree@vger.kernel.org \
--cc=jic23@kernel.org \
--cc=kernel@axis.com \
--cc=krzk+dt@kernel.org \
--cc=lars@metafoo.de \
--cc=linux-iio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=robh@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).