dt-bindings: vendor-prefixes: add aosong
Subsystems (3)
Anshul Dalal
maintainerPATCH v5 1/3 dt-bindings: vendor-prefixes: add aosong
Aosong Electronic Co., LTD. is a supplier for MEMS sensors such as AHT20 temperature and humidity sensor under the brand name Asair
---
Changes for v5,4,3:
- no updates
Changes for v2:
- Changed vendor prefix from asair to aosong
Previous versions:
v4: https://lore.kernel.org/lkml/[email protected]/
v3: https://lore.kernel.org/lkml/[email protected]/
v2: https://lore.kernel.org/lkml/[email protected]/
v1: https://lore.kernel.org/lkml/[email protected]/
--- Documentation/devicetree/bindings/vendor-prefixes.yaml | 2 ++ 1 file changed, 2 insertions(+)
Documentation/devicetree/bindings/vendor-prefixes.yaml +2 -0
@@ -117,6 +117,8 @@ patternProperties: description: Andes Technology Corporation "^anvo,.*": description: Anvo-Systems Dresden GmbH + "^aosong,.*": + description: Guangzhou Aosong Electronic Co., Ltd. "^apm,.*": description: Applied Micro Circuits Corporation (APM) "^apple,.*":
Signature · 1 line
2.43.0
Anshul Dalal
maintainerPATCH v5 2/3 dt-bindings: iio: chemical: add aosong,ags02ma
Add bindings for Aosong AGS02MA TVOC sensor.
The sensor communicates over i2c with the default address 0x1a. TVOC values can be read in the units of ppb and ug/m^3 at register 0x00.
Datasheet: https://asairsensors.com/wp-content/uploads/2021/09/AGS02MA.pdf
---
Changes for v5:
- Made vdd-supply a required property
Changes for v4:
- Changed node name from 'light-sensor' to 'voc-sensor'
Changes for v3:
- Fixed commit message
- Removed "asair,ags02ma" compatible
Changes for v2:
- Removed device from trivial-devices
- Added standalone binding with vdd-supply property
Previous versions:
v4: https://lore.kernel.org/lkml/[email protected]/
v3: https://lore.kernel.org/lkml/[email protected]/
v2: https://lore.kernel.org/lkml/[email protected]/
v1: https://lore.kernel.org/lkml/[email protected]/
--- .../bindings/iio/chemical/aosong,ags02ma.yaml | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 Documentation/devicetree/bindings/iio/chemical/aosong,ags02ma.yaml
Documentation/devicetree/bindings/iio/chemical/aosong,ags02ma.yaml new file +47 -0
@@ -0,0 +1,47 @@ +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/iio/chemical/aosong,ags02ma.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Aosong AGS02MA VOC Sensor + +description: | + AGS02MA is an TVOC (Total Volatile Organic Compounds) i2c sensor with default + address of 0x1a. + + Datasheet: + https://asairsensors.com/wp-content/uploads/2021/09/AGS02MA.pdf + +maintainers: + - Anshul Dalal <[email protected]> + +properties: + compatible: + enum: + - aosong,ags02ma + + reg: + maxItems: 1 + + vdd-supply: true + +required: + - compatible + - reg + - vdd-supply + +additionalProperties: false + +examples: + - | + i2c { + #address-cells = <1>; + #size-cells = <0>; + + voc-sensor@1a { + compatible = "aosong,ags02ma"; + reg = <0x1a>; + vdd-supply = <&vdd_regulator>; + }; + };
Signature · 1 line
2.43.0
Anshul Dalal
maintainerPATCH v5 3/3 iio: chemical: add support for Aosong AGS02MA
In reply to Anshul DalalA simple driver for the TVOC (Total Volatile Organic Compounds) sensor from Aosong: AGS02MA
Steps in reading the VOC sensor value over i2c:
1. Read 5 bytes from the register AGS02MA_TVOC_READ_REG [0x00]
2. The first 4 bytes are taken as the big endian sensor data with final byte being the CRC
3. The CRC is verified and the value is returned over an IIO_CHAN_INFO_RAW channel as percents
Tested on Raspberry Pi Zero 2W
Datasheet: https://asairsensors.com/wp-content/uploads/2021/09/AGS02MA.pdf
---
Changes for v5:
- Removed AGS02MA_DEVICE_NAME define
- Saperated return value from data in ags02ma_register_read
- Added IIO_CHAN_INFO_SCALE for ppb to percent conversion
- Changed ags02ma_channels (iio_chan_spec[1]) to ags02ma_channel (iio_chan_spec) since only driver only uses a single channel
- Use dev_err_probe instead of dev_err
- removed unnecessary i2c_set_clientdata(..)
- Removed of_match_ptr(..)
Changes for v4:
- Fixed warning: unused variable 'ags02ma_of_table'
- Fixed warning: unsigned 'ret' is never less than zero in ags02ma_register_read
Changes for v3:
- Added of_device_id
Changes for v2:
- Fixed Kconfig not selecting CRC8 (used to be select crc8)
- Changed instances of asair to aosong
- Report raw readings in percents instead of ppb
- Added myself as maintainer for the device binding
Previous versions:
v4: https://lore.kernel.org/lkml/[email protected]/
v3: https://lore.kernel.org/lkml/[email protected]/
v2: https://lore.kernel.org/lkml/[email protected]/
v1: https://lore.kernel.org/lkml/[email protected]/
--- MAINTAINERS | 7 ++ drivers/iio/chemical/Kconfig | 11 +++ drivers/iio/chemical/Makefile | 1 + drivers/iio/chemical/ags02ma.c | 164 +++++++++++++++++++++++++++++++++ 4 files changed, 183 insertions(+) create mode 100644 drivers/iio/chemical/ags02ma.c
MAINTAINERS +7 -0
@@ -3028,6 +3028,13 @@ S: Supported W: http://www.akm.com/ F: drivers/iio/magnetometer/ak8974.c +AOSONG AGS02MA TVOC SENSOR DRIVER +M: Anshul Dalal <[email protected]> +L: [email protected] +S: Maintained +F: Documentation/devicetree/bindings/iio/chemical/aosong,ags02ma.yaml +F: drivers/iio/chemical/ags02ma.c + ASC7621 HARDWARE MONITOR DRIVER M: George Joseph <[email protected]> L: [email protected]
drivers/iio/chemical/Kconfig +11 -0
@@ -5,6 +5,17 @@ menu "Chemical Sensors" +config AOSONG_AGS02MA + tristate "Aosong AGS02MA TVOC sensor driver" + depends on I2C + select CRC8 + help + Say Y here to build support for Aosong AGS02MA TVOC (Total Volatile + Organic Compounds) sensor. + + To compile this driver as module, choose M here: the module will be + called ags02ma. + config ATLAS_PH_SENSOR tristate "Atlas Scientific OEM SM sensors" depends on I2C
drivers/iio/chemical/Makefile +1 -0
@@ -4,6 +4,7 @@ # # When adding new entries keep the list in alphabetical order +obj-$(CONFIG_AOSONG_AGS02MA) += ags02ma.o obj-$(CONFIG_ATLAS_PH_SENSOR) += atlas-sensor.o obj-$(CONFIG_ATLAS_EZO_SENSOR) += atlas-ezo-sensor.o obj-$(CONFIG_BME680) += bme680_core.o
drivers/iio/chemical/ags02ma.c new file +164 -0
164 lines not on this page · raw message
Signature · 1 line
2.43.0
Jonathan Cameron
maintainerRe: [PATCH v5 3/3] iio: chemical: add support for Aosong AGS02MA
Quoted 10 lines · On Fri, 15 Dec 2023 21:53:11 +0530 Anshul Dalal <[email protected]> wrote:
A simple driver for the TVOC (Total Volatile Organic Compounds) sensor from Aosong: AGS02MA
Steps in reading the VOC sensor value over i2c:
1. Read 5 bytes from the registerAGS02MA_TVOC_READ_REG[0x00]
2. The first 4 bytes are taken as the big endian sensor data with final byte being the CRC
3. The CRC is verified and the value is returned over anIIO_CHAN_INFO_RAWchannel as percents
Quoted 4 lines
Tested on Raspberry Pi Zero 2W
Datasheet: https://asairsensors.com/wp-content/uploads/2021/09/AGS02MA.pdf
Signed-off-by Anshul Dalal <[email protected]>
Hi Anshul, Just one trivial thing. I'll fix up whilst applying.
Applied to the togreg branch of iio.git. Will be initially pushed out as testing for 0-day to see if it can find anything we missed.
Thanks,
Jonathan
drivers/iio/chemical/ags02ma.c line 107
Quoted 9 lines
drivers/iio/chemical/ags02ma.c new file +9
-0+ +static const struct iio_info ags02ma_info = { + .read_raw = ags02ma_read_raw, +}; + +static const struct iio_chan_spec ags02ma_channel = { + .type =IIO_CONCENTRATION , + .channel2 =IIO_MOD_VOC , + .info_mask_separate =BIT (IIO_CHAN_INFO_RAW ) |BIT (IIO_CHAN_INFO_SCALE )
Comma after this line. I'll fix up if there isn't much else.
The reason for this is that it is very plausible we'll add more to this channel description in the future and the absence of the comma would make that messier.
Quoted 1 line
+};