* [PATCH v2 0/3] Add driver for Nicera D3-323-AA PIR sensor
@ 2025-06-14 22:13 Waqar Hameed
2025-06-14 22:13 ` [PATCH v2 1/3] dt-bindings: vendor-prefixes: Add Nicera Waqar Hameed
` (2 more replies)
0 siblings, 3 replies; 8+ messages in thread
From: Waqar Hameed @ 2025-06-14 22:13 UTC (permalink / raw)
To: Jonathan Cameron, Lars-Peter Clausen, Rob Herring,
Krzysztof Kozlowski
Cc: kernel, linux-kernel, linux-iio, devicetree
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
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH v2 1/3] dt-bindings: vendor-prefixes: Add Nicera
2025-06-14 22:13 [PATCH v2 0/3] Add driver for Nicera D3-323-AA PIR sensor Waqar Hameed
@ 2025-06-14 22:13 ` Waqar Hameed
2025-06-17 9:04 ` Krzysztof Kozlowski
2025-06-14 22:14 ` [PATCH v2 2/3] dt-bindings: iio: proximity: Add Nicera D3-323-AA PIR sensor Waqar Hameed
2025-06-22 10:33 ` [PATCH v2 0/3] Add driver for " Jonathan Cameron
2 siblings, 1 reply; 8+ messages in thread
From: Waqar Hameed @ 2025-06-14 22:13 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley
Cc: kernel, Rob Herring, devicetree, linux-kernel
Nicera (Nippon Ceramic Co.) is a manufacturer of a wide range of
sensors. For example infrared, ultrasonic, gas sensors and much more.
Signed-off-by: Waqar Hameed <waqar.hameed@axis.com>
---
Documentation/devicetree/bindings/vendor-prefixes.yaml | 2 ++
1 file changed, 2 insertions(+)
diff --git a/Documentation/devicetree/bindings/vendor-prefixes.yaml b/Documentation/devicetree/bindings/vendor-prefixes.yaml
index c01adbaacbbb..b41cf7ba1b04 100644
--- a/Documentation/devicetree/bindings/vendor-prefixes.yaml
+++ b/Documentation/devicetree/bindings/vendor-prefixes.yaml
@@ -1067,6 +1067,8 @@ patternProperties:
description: Next Thing Co.
"^ni,.*":
description: National Instruments
+ "^nicera,.*":
+ description: Nippon Ceramic Co., Ltd.
"^nintendo,.*":
description: Nintendo
"^nlt,.*":
--
2.39.5
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH v2 2/3] dt-bindings: iio: proximity: Add Nicera D3-323-AA PIR sensor
2025-06-14 22:13 [PATCH v2 0/3] Add driver for Nicera D3-323-AA PIR sensor Waqar Hameed
2025-06-14 22:13 ` [PATCH v2 1/3] dt-bindings: vendor-prefixes: Add Nicera Waqar Hameed
@ 2025-06-14 22:14 ` Waqar Hameed
2025-06-17 9:06 ` Krzysztof Kozlowski
2025-06-22 10:33 ` [PATCH v2 0/3] Add driver for " Jonathan Cameron
2 siblings, 1 reply; 8+ messages in thread
From: Waqar Hameed @ 2025-06-14 22:14 UTC (permalink / raw)
To: Jonathan Cameron, Lars-Peter Clausen, Rob Herring,
Krzysztof Kozlowski, Conor Dooley
Cc: kernel, linux-iio, devicetree, linux-kernel
Nicera D3-323-AA is a PIR sensor for human detection. It has two GPIOs
for detection and data communication.
Signed-off-by: Waqar Hameed <waqar.hameed@axis.com>
---
.../iio/proximity/nicera,d3323aa.yaml | 60 +++++++++++++++++++
1 file changed, 60 insertions(+)
create mode 100644 Documentation/devicetree/bindings/iio/proximity/nicera,d3323aa.yaml
diff --git a/Documentation/devicetree/bindings/iio/proximity/nicera,d3323aa.yaml b/Documentation/devicetree/bindings/iio/proximity/nicera,d3323aa.yaml
new file mode 100644
index 000000000000..01c084de96c3
--- /dev/null
+++ b/Documentation/devicetree/bindings/iio/proximity/nicera,d3323aa.yaml
@@ -0,0 +1,60 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/iio/proximity/nicera,d3323aa.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Nicera D3-323-AA PIR sensor
+
+maintainers:
+ - Waqar Hameed <waqar.hameed@axis.com>
+
+description: |
+ PIR sensor for human detection.
+ Datasheet: https://www.endrich.com/Datenbl%C3%A4tter/Sensoren/D3-323-AA_e.pdf
+
+properties:
+ compatible:
+ const: nicera,d3323aa
+
+ vdd-supply:
+ description:
+ Supply voltage (1.8 to 5.5 V).
+
+ vout-clk-gpios:
+ maxItems: 1
+ description:
+ GPIO for clock and detection.
+ After reset, the device signals with two falling edges on this pin that it
+ is ready for configuration (within 1.2 s).
+ During configuration, it is used as clock for data reading and writing (on
+ data-gpios).
+ After all this, when device is in operational mode, it signals on this pin
+ for any detections.
+
+ data-gpios:
+ maxItems: 1
+ description:
+ GPIO for data reading and writing. This is denoted "DO (SI)" in datasheet.
+ During configuration, this pin is used for writing and reading
+ configuration data (together with vout-clk-gpios as clock).
+ After this, during operational mode, the device will output serial data on
+ this GPIO.
+
+required:
+ - compatible
+ - vdd-supply
+ - vout-clk-gpios
+ - data-gpios
+
+additionalProperties: false
+
+examples:
+ - |
+ proximity {
+ compatible = "nicera,d3323aa";
+ vdd-supply = <®ulator_3v3>;
+ vout-clk-gpios = <&gpio 78 0>;
+ data-gpios = <&gpio 76 0>;
+ };
+...
--
2.39.5
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH v2 1/3] dt-bindings: vendor-prefixes: Add Nicera
2025-06-14 22:13 ` [PATCH v2 1/3] dt-bindings: vendor-prefixes: Add Nicera Waqar Hameed
@ 2025-06-17 9:04 ` Krzysztof Kozlowski
0 siblings, 0 replies; 8+ messages in thread
From: Krzysztof Kozlowski @ 2025-06-17 9:04 UTC (permalink / raw)
To: Waqar Hameed
Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, kernel,
devicetree, linux-kernel
On Sun, Jun 15, 2025 at 12:13:58AM GMT, Waqar Hameed wrote:
> Nicera (Nippon Ceramic Co.) is a manufacturer of a wide range of
> sensors. For example infrared, ultrasonic, gas sensors and much more.
>
> Signed-off-by: Waqar Hameed <waqar.hameed@axis.com>
> ---
> Documentation/devicetree/bindings/vendor-prefixes.yaml | 2 ++
> 1 file changed, 2 insertions(+)
Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v2 2/3] dt-bindings: iio: proximity: Add Nicera D3-323-AA PIR sensor
2025-06-14 22:14 ` [PATCH v2 2/3] dt-bindings: iio: proximity: Add Nicera D3-323-AA PIR sensor Waqar Hameed
@ 2025-06-17 9:06 ` Krzysztof Kozlowski
2025-06-18 10:37 ` Waqar Hameed
0 siblings, 1 reply; 8+ messages in thread
From: Krzysztof Kozlowski @ 2025-06-17 9:06 UTC (permalink / raw)
To: Waqar Hameed
Cc: Jonathan Cameron, Lars-Peter Clausen, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, kernel, linux-iio, devicetree,
linux-kernel
On Sun, Jun 15, 2025 at 12:14:02AM GMT, Waqar Hameed wrote:
> +examples:
> + - |
> + proximity {
> + compatible = "nicera,d3323aa";
> + vdd-supply = <®ulator_3v3>;
> + vout-clk-gpios = <&gpio 78 0>;
> + data-gpios = <&gpio 76 0>;
Same comment as before.
> + };
> +...
> --
> 2.39.5
>
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v2 2/3] dt-bindings: iio: proximity: Add Nicera D3-323-AA PIR sensor
2025-06-17 9:06 ` Krzysztof Kozlowski
@ 2025-06-18 10:37 ` Waqar Hameed
0 siblings, 0 replies; 8+ messages in thread
From: Waqar Hameed @ 2025-06-18 10:37 UTC (permalink / raw)
To: Krzysztof Kozlowski
Cc: Jonathan Cameron, Lars-Peter Clausen, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, kernel, linux-iio, devicetree,
linux-kernel
On Tue, Jun 17, 2025 at 11:06 +0200 Krzysztof Kozlowski <krzk@kernel.org> wrote:
> On Sun, Jun 15, 2025 at 12:14:02AM GMT, Waqar Hameed wrote:
>> +examples:
>> + - |
>> + proximity {
>> + compatible = "nicera,d3323aa";
>> + vdd-supply = <®ulator_3v3>;
>> + vout-clk-gpios = <&gpio 78 0>;
>> + data-gpios = <&gpio 76 0>;
>
> Same comment as before.
I removed the include header thinking that would be fine, since there
were already a bunch of other examples just using `0` as the GPIO flag
(without the include). I'll re-add the include header in next version
then and use `GPIO_ACTIVE_HIGH` on both `-gpios`.
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v2 0/3] Add driver for Nicera D3-323-AA PIR sensor
2025-06-14 22:13 [PATCH v2 0/3] Add driver for Nicera D3-323-AA PIR sensor Waqar Hameed
2025-06-14 22:13 ` [PATCH v2 1/3] dt-bindings: vendor-prefixes: Add Nicera Waqar Hameed
2025-06-14 22:14 ` [PATCH v2 2/3] dt-bindings: iio: proximity: Add Nicera D3-323-AA PIR sensor Waqar Hameed
@ 2025-06-22 10:33 ` Jonathan Cameron
2025-06-24 19:36 ` Waqar Hameed
2 siblings, 1 reply; 8+ messages in thread
From: Jonathan Cameron @ 2025-06-22 10:33 UTC (permalink / raw)
To: Waqar Hameed
Cc: Lars-Peter Clausen, Rob Herring, Krzysztof Kozlowski, kernel,
linux-kernel, linux-iio, devicetree
On Sun, 15 Jun 2025 00:13:52 +0200
Waqar Hameed <waqar.hameed@axis.com> wrote:
> 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
I guess you didn't +CC linux-iio on this as I'm not seeing it locally.
Given the whole series including that patch will ultimately go through
the IIO tree, please make sure to include that on the next version.
Jonathan
> 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
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v2 0/3] Add driver for Nicera D3-323-AA PIR sensor
2025-06-22 10:33 ` [PATCH v2 0/3] Add driver for " Jonathan Cameron
@ 2025-06-24 19:36 ` Waqar Hameed
0 siblings, 0 replies; 8+ messages in thread
From: Waqar Hameed @ 2025-06-24 19:36 UTC (permalink / raw)
To: Jonathan Cameron
Cc: Lars-Peter Clausen, Rob Herring, Krzysztof Kozlowski, kernel,
linux-kernel, linux-iio, devicetree
On Sun, Jun 22, 2025 at 11:33 +0100 Jonathan Cameron <jic23@kernel.org> wrote:
> On Sun, 15 Jun 2025 00:13:52 +0200
> Waqar Hameed <waqar.hameed@axis.com> wrote:
[...]
>> Waqar Hameed (3):
>> dt-bindings: vendor-prefixes: Add Nicera
> I guess you didn't +CC linux-iio on this as I'm not seeing it locally.
That's correct, solely relied on `get_maintainers.pl` here.
>
> Given the whole series including that patch will ultimately go through
> the IIO tree, please make sure to include that on the next version.
Makes perfect sense, will do!
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2025-06-24 19:36 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-06-14 22:13 [PATCH v2 0/3] Add driver for Nicera D3-323-AA PIR sensor Waqar Hameed
2025-06-14 22:13 ` [PATCH v2 1/3] dt-bindings: vendor-prefixes: Add Nicera Waqar Hameed
2025-06-17 9:04 ` Krzysztof Kozlowski
2025-06-14 22:14 ` [PATCH v2 2/3] dt-bindings: iio: proximity: Add Nicera D3-323-AA PIR sensor Waqar Hameed
2025-06-17 9:06 ` Krzysztof Kozlowski
2025-06-18 10:37 ` Waqar Hameed
2025-06-22 10:33 ` [PATCH v2 0/3] Add driver for " Jonathan Cameron
2025-06-24 19:36 ` Waqar Hameed
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox