From patchwork Sat Jan 27 16:03:55 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Petre Rodan X-Patchwork-Id: 193030 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7301:2395:b0:106:343:edcb with SMTP id gw21csp558064dyb; Sat, 27 Jan 2024 08:05:18 -0800 (PST) X-Google-Smtp-Source: AGHT+IFJ1Kh6wIHvG2Uf2bYG/6CkMbwFEsASQcGt7EJHGopGd799yq2RBcM2Te4wmOf2jZiqRgEa X-Received: by 2002:a17:903:1107:b0:1d5:4b18:17d1 with SMTP id n7-20020a170903110700b001d54b1817d1mr2084958plh.106.1706371518220; Sat, 27 Jan 2024 08:05:18 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1706371518; cv=pass; d=google.com; s=arc-20160816; b=IFt7oGS107oAVK+3xdv4xbUG+oVFomv8Bid+yy1EBSYiGEhWn+kj1vo7H4Cz9ejtGa wFFwE+L1+yfj5x5/6xGGhj/t2Jw52st7b8ZoTgVDjR2vlDHiK5t4fff7fDasVgDFOb7m hxH4lHoGWhYol68NYvSIPr/L39wn/pvJsR2vRx77fNxkbw4BXDxaqZusj7KBBmA5QUly wrX807WwIv2I278AjN5j00jegkhUyXL1TSNNY5EVQsd/mat16mrKBSK23sB15YA9j/sF 7shSr5N+kCudgDNMoMKZxisgnPckgIK1J2JSl95auv7sFbCZGcauiKLcA6M9QZJ6K57S QhLA== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature; bh=TxdXd6kN6kkjZrYvfGnlXou148FZuADizhnw2OmoqWs=; fh=qAPe5qiEjGEI6PAB4iGo703ejtRIE8f07Uvyp/kzsRs=; b=wjQ4IuyNeUPFAHX/h06mnkxg8QBOyqzHuF3PmDNlZEZcV6gDV7rlwM+DXNc3it6Kw9 mAK0fDCxCJI5Mrzzex2vDis4AC1pnHhsvvIT2bg2LxeGF/CssL+c+cIe87I3ujqBDEaw PBc5pQa2kWOnOlB0Gssqs68HVU/4Q15gqIGiv50oq8oknuJgtdXfyOa6L5Pw9x9UeWdr BwXKhrIQ2ldJliOgX76/OVTcI9wur/9pLThrqc7NPBTOuFIhKHkM6cSlz5FVNSbk+L/O Pm6WSVYT89Pcoa0O9Xp3wWkLerDQr6Y4YLUiGguZFg1Hg7zeGsG2CxePJEM8Jl7Xg+45 bbsw== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@subdimension.ro header.s=skycaves header.b=Cd65x+KJ; arc=pass (i=1 spf=pass spfdomain=subdimension.ro dkim=pass dkdomain=subdimension.ro); spf=pass (google.com: domain of linux-kernel+bounces-41261-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-41261-ouuuleilei=gmail.com@vger.kernel.org" Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org. [2604:1380:45e3:2400::1]) by mx.google.com with ESMTPS id y24-20020a17090aa41800b002927e6e7df6si2911822pjp.65.2024.01.27.08.05.18 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 27 Jan 2024 08:05:18 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-41261-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) client-ip=2604:1380:45e3:2400::1; Authentication-Results: mx.google.com; dkim=pass header.i=@subdimension.ro header.s=skycaves header.b=Cd65x+KJ; arc=pass (i=1 spf=pass spfdomain=subdimension.ro dkim=pass dkdomain=subdimension.ro); spf=pass (google.com: domain of linux-kernel+bounces-41261-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-41261-ouuuleilei=gmail.com@vger.kernel.org" Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sv.mirrors.kernel.org (Postfix) with ESMTPS id E778128413E for ; Sat, 27 Jan 2024 16:05:17 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id C19122D611; Sat, 27 Jan 2024 16:04:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=subdimension.ro header.i=@subdimension.ro header.b="Cd65x+KJ" Received: from mail.subdimension.ro (skycaves.subdimension.ro [172.104.132.142]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 30A5929425; Sat, 27 Jan 2024 16:04:19 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=172.104.132.142 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706371462; cv=none; b=ZwLnY7THY1l1GvBWpslECJSvFjlNsoHS9uJvMjb13oIthHy/Ub99oBxsHf9+Bo28aiWuWXH5bULarctY85QX5qKPYNEfV8yTSmc4gsSXPp7d+lyoZKTJSXRNrdOrCVRUMLynK5lSBLPK9EIlUQgBOuvNyeYlVTzrux2Nr/XPcRo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706371462; c=relaxed/simple; bh=rThLPG0oKPIY+R5SCgniLS4AOa/AbEm1BbmpT++4eoA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=t2Mpx2pmv7XP/4VQk4ycED3rwx789qyCZyhAdx1gnyB5n26Z88e00N5eoRqr4D4qD22Hq3ixMnZE820Bp+Ke16wRIuJBngn4LozuKsIHzr91O01GjWFN+RyHYAS3e1l+NfQScZfEyymtJSV8Wsal95X8gRpg42hi9XxBVVAa4zc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=subdimension.ro; spf=pass smtp.mailfrom=subdimension.ro; dkim=pass (1024-bit key) header.d=subdimension.ro header.i=@subdimension.ro header.b=Cd65x+KJ; arc=none smtp.client-ip=172.104.132.142 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=subdimension.ro Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=subdimension.ro Received: from localhost.localdomain (unknown [188.24.80.170]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mail.subdimension.ro (Postfix) with ESMTPSA id 365B4293A94; Sat, 27 Jan 2024 16:04:12 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=subdimension.ro; s=skycaves; t=1706371452; bh=rThLPG0oKPIY+R5SCgniLS4AOa/AbEm1BbmpT++4eoA=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=Cd65x+KJigdUgolM9yGgHvd18F5uWnJQkw1b/oQB/HUPhr4Culgab6NpdCTq/nK95 86UzlvQBZPQhPyzAmsBMSsV+zCQLMS1pz+TA1cnuk7Ami9p7SmDIG/exn1HIUcP8Dc ov2uVz+GGyq9TQJr0UfJGoM68TqmEQTzNXOrcVxI= From: Petre Rodan To: linux-iio@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Petre Rodan , Jonathan Cameron , Lars-Peter Clausen , Rob Herring , Krzysztof Kozlowski , Conor Dooley Subject: [PATCH v2 1/4] dt-bindings: iio: pressure: honeywell,hsc030pa.yaml add spi props Date: Sat, 27 Jan 2024 18:03:55 +0200 Message-ID: <20240127160405.19696-2-petre.rodan@subdimension.ro> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240127160405.19696-1-petre.rodan@subdimension.ro> References: <20240127160405.19696-1-petre.rodan@subdimension.ro> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1789260221205726149 X-GMAIL-MSGID: 1789260221205726149 Add spi-peripheral-props.yaml requirement needed by the spi-max-frequency property. Signed-off-by: Petre Rodan Reviewed-by: Krzysztof Kozlowski --- v2 -> v1 change the commit message based on Krzysztof's request .../devicetree/bindings/iio/pressure/honeywell,hsc030pa.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Documentation/devicetree/bindings/iio/pressure/honeywell,hsc030pa.yaml b/Documentation/devicetree/bindings/iio/pressure/honeywell,hsc030pa.yaml index 65a24ed67b3c..89977b9f01cf 100644 --- a/Documentation/devicetree/bindings/iio/pressure/honeywell,hsc030pa.yaml +++ b/Documentation/devicetree/bindings/iio/pressure/honeywell,hsc030pa.yaml @@ -99,6 +99,9 @@ required: - honeywell,transfer-function - honeywell,pressure-triplet +allOf: + - $ref: /schemas/spi/spi-peripheral-props.yaml + additionalProperties: false dependentSchemas: From patchwork Sat Jan 27 16:03:56 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Petre Rodan X-Patchwork-Id: 193032 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7301:2395:b0:106:343:edcb with SMTP id gw21csp558133dyb; Sat, 27 Jan 2024 08:05:27 -0800 (PST) X-Google-Smtp-Source: AGHT+IHUqLrxV6N4ylYnyBAtn5TCf9e6Q6p2HWJpjgXPaHx4NROrGxrmBfseCD65E0+r2qtC+9dP X-Received: by 2002:a17:906:5ac8:b0:a35:40ca:c8df with SMTP id x8-20020a1709065ac800b00a3540cac8dfmr1039556ejs.7.1706371527146; Sat, 27 Jan 2024 08:05:27 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1706371527; cv=pass; d=google.com; s=arc-20160816; b=EyVuocbT51CTkJ2+7epcYYkwA2S1o6hLBDkQz9muD2x81i/rRTRwVB2EPEOcaj850W YlomcKg4RRYjB/d21/OBLAZpmlT/cDKqB8q3mRp468dwhM0/dHL/vO7/eIuVUjlFGguc v+5buZK2OKBgvx9IHoWxoPRh5Nt/xKfzkbp9cnBGiiSXtTmLOaJ76OeG/VQTULXLaJ36 fOg2jxERCM2w/zMGMaSYP7pD9gjwEZNROXOhl4k4RiK/BT03ieoOlLjt1UHfOUyM9Ahq Nfq7kP3pcrLylrp1/1vigU2Uls4GO0zS8RnGkQNIW72eJL29YfUhu/t/3pkOyLPR+VcX 0QNg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature; bh=uw8PQzj7YWNzG2x9VLeGQFqm6Ktk4Fl72vt8ODvTQNE=; fh=RpJjGiuDlOjmyoLhPwSzjbPbeK51vYo3I0V3BuRLNmU=; b=0B1IQj4vtpeBVKz/FRLiK7WzlHIjNcd+xzZYIEoHDeNWG38THf3Uactqq4RLxyGik5 K0HgN5Fk0xQzMzyNvofwxC3IGOsbxT0jnNNsP8fZx3ql/28uJnioULYzaHuG4c0rXVCS dN4+/b+87tBGAAno1pa1dn7XTXnMa/07ILEX5IDdU9q5bfE+DPirstSgYaa051hO5Lcr 4xHD7cPycwfPzBIDmxzbXsr2SfEJXtJBDr527Kb8VR7L22j+aNkH9OBc7oe5d6v6E8mJ avvcX8AagIFwLZZpF3UkxzuIZnJ6p/H/PEx86kzk4gtG1r2XW2OKLRaxyO9K7MqICCsg xbng== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@subdimension.ro header.s=skycaves header.b=qK4V5e6B; arc=pass (i=1 spf=pass spfdomain=subdimension.ro dkim=pass dkdomain=subdimension.ro); spf=pass (google.com: domain of linux-kernel+bounces-41263-ouuuleilei=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) smtp.mailfrom="linux-kernel+bounces-41263-ouuuleilei=gmail.com@vger.kernel.org" Received: from am.mirrors.kernel.org (am.mirrors.kernel.org. [147.75.80.249]) by mx.google.com with ESMTPS id fy5-20020a170906b7c500b00a341e30b00asi1753211ejb.926.2024.01.27.08.05.26 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 27 Jan 2024 08:05:27 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-41263-ouuuleilei=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) client-ip=147.75.80.249; Authentication-Results: mx.google.com; dkim=pass header.i=@subdimension.ro header.s=skycaves header.b=qK4V5e6B; arc=pass (i=1 spf=pass spfdomain=subdimension.ro dkim=pass dkdomain=subdimension.ro); spf=pass (google.com: domain of linux-kernel+bounces-41263-ouuuleilei=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) smtp.mailfrom="linux-kernel+bounces-41263-ouuuleilei=gmail.com@vger.kernel.org" Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by am.mirrors.kernel.org (Postfix) with ESMTPS id 943D41F22A13 for ; Sat, 27 Jan 2024 16:05:26 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 3657B2E40A; Sat, 27 Jan 2024 16:04:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=subdimension.ro header.i=@subdimension.ro header.b="qK4V5e6B" Received: from mail.subdimension.ro (skycaves.subdimension.ro [172.104.132.142]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8F87E2942A; Sat, 27 Jan 2024 16:04:20 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=172.104.132.142 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706371462; cv=none; b=rbkr5JiLyN58PSWfhQgl7WvJ3QXZSPl5Gcih+PFIUFH0mGRj8lXEcnR428OUZSBHs4UUPfHcT4St9TtcyLlb1S3Mzt2N1z/zMQBCEYbsIWh4WE/pxa0r/0LltAbO9uYWh6+AZjmMEKezqRB05H7fy+7SEw5/dwnEcblQNrqmIL4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706371462; c=relaxed/simple; bh=NgaXfya/JmF4HV+b44clhdfGVtTwdg0qDzOTzyoDzpY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=KWPznftksGL0frf2NhcgG0Y9zl2MJggCZBVYmCSjixe/v+5BBIMRsD8AdPsHcDmhQZxor9Xr0yII6iTNbHWu42ElmNThYh8RLsHY0NsFGAc/94BxgALhLoo1Hil64PwIsuP9ThshgbxNZq9l8kLLiIRRIXiBpwdlEUPRyS0y8z4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=subdimension.ro; spf=pass smtp.mailfrom=subdimension.ro; dkim=pass (1024-bit key) header.d=subdimension.ro header.i=@subdimension.ro header.b=qK4V5e6B; arc=none smtp.client-ip=172.104.132.142 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=subdimension.ro Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=subdimension.ro Received: from localhost.localdomain (unknown [188.24.80.170]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mail.subdimension.ro (Postfix) with ESMTPSA id 8319E293A95; Sat, 27 Jan 2024 16:04:12 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=subdimension.ro; s=skycaves; t=1706371452; bh=NgaXfya/JmF4HV+b44clhdfGVtTwdg0qDzOTzyoDzpY=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=qK4V5e6B1GzGIg/zRvhY19ikQPVxBJL0Otg8VOdr6xnv1x8p4NDwqa8UruJGQtHKv Tc/8elnxNODXzvWqqzofpsHYskEO4pFj5aSZWdyXXnBj2caqMUK4GZYK8V0OKEqeSZ yweUdNwIOhWvvac2mLoGtca13e8hE5iv3EnFO0+E= From: Petre Rodan To: linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Petre Rodan , Jonathan Cameron , Lars-Peter Clausen Subject: [PATCH v2 2/4] iio: pressure: hsc030pa cleanup Date: Sat, 27 Jan 2024 18:03:56 +0200 Message-ID: <20240127160405.19696-3-petre.rodan@subdimension.ro> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240127160405.19696-1-petre.rodan@subdimension.ro> References: <20240127160405.19696-1-petre.rodan@subdimension.ro> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1789260230136819799 X-GMAIL-MSGID: 1789260230136819799 Use signed type to variable holding the result given by div_s64(). Add includes based on prior reviews from Andy. Provide bus-specific technical datasheet in the _i2c.c _spi.c headers instead of the generic one. Signed-off-by: Petre Rodan --- v1 -> v2 no change drivers/iio/pressure/hsc030pa.c | 2 +- drivers/iio/pressure/hsc030pa.h | 2 ++ drivers/iio/pressure/hsc030pa_i2c.c | 6 ++++-- drivers/iio/pressure/hsc030pa_spi.c | 5 ++++- 4 files changed, 11 insertions(+), 4 deletions(-) diff --git a/drivers/iio/pressure/hsc030pa.c b/drivers/iio/pressure/hsc030pa.c index d6a51f0c335f..7e3f74d53b47 100644 --- a/drivers/iio/pressure/hsc030pa.c +++ b/drivers/iio/pressure/hsc030pa.c @@ -406,7 +406,7 @@ int hsc_common_probe(struct device *dev, hsc_recv_fn recv) struct hsc_data *hsc; struct iio_dev *indio_dev; const char *triplet; - u64 tmp; + s64 tmp; int ret; indio_dev = devm_iio_device_alloc(dev, sizeof(*hsc)); diff --git a/drivers/iio/pressure/hsc030pa.h b/drivers/iio/pressure/hsc030pa.h index d20420dba4f6..f1079a70799f 100644 --- a/drivers/iio/pressure/hsc030pa.h +++ b/drivers/iio/pressure/hsc030pa.h @@ -10,6 +10,8 @@ #include +#include + #define HSC_REG_MEASUREMENT_RD_SIZE 4 struct device; diff --git a/drivers/iio/pressure/hsc030pa_i2c.c b/drivers/iio/pressure/hsc030pa_i2c.c index e2b524b36417..b5810bafef40 100644 --- a/drivers/iio/pressure/hsc030pa_i2c.c +++ b/drivers/iio/pressure/hsc030pa_i2c.c @@ -4,14 +4,16 @@ * * Copyright (c) 2023 Petre Rodan * - * Datasheet: https://prod-edam.honeywell.com/content/dam/honeywell-edam/sps/siot/en-us/products/sensors/pressure-sensors/board-mount-pressure-sensors/trustability-hsc-series/documents/sps-siot-trustability-hsc-series-high-accuracy-board-mount-pressure-sensors-50099148-a-en-ciid-151133.pdf [hsc] - * Datasheet: https://prod-edam.honeywell.com/content/dam/honeywell-edam/sps/siot/en-us/products/sensors/pressure-sensors/board-mount-pressure-sensors/common/documents/sps-siot-i2c-comms-digital-output-pressure-sensors-tn-008201-3-en-ciid-45841.pdf [i2c related] + * Datasheet: https://prod-edam.honeywell.com/content/dam/honeywell-edam/sps/siot/en-us/products/sensors/pressure-sensors/board-mount-pressure-sensors/common/documents/sps-siot-i2c-comms-digital-output-pressure-sensors-tn-008201-3-en-ciid-45841.pdf + * Datasheet: https://prod-edam.honeywell.com/content/dam/honeywell-edam/sps/siot/en-us/products/sensors/pressure-sensors/common/documents/sps-siot-sleep-mode-technical-note-008286-1-en-ciid-155793.pdf */ +#include #include #include #include #include +#include #include diff --git a/drivers/iio/pressure/hsc030pa_spi.c b/drivers/iio/pressure/hsc030pa_spi.c index a719bade8326..8d3441f1dcf9 100644 --- a/drivers/iio/pressure/hsc030pa_spi.c +++ b/drivers/iio/pressure/hsc030pa_spi.c @@ -4,13 +4,16 @@ * * Copyright (c) 2023 Petre Rodan * - * Datasheet: https://prod-edam.honeywell.com/content/dam/honeywell-edam/sps/siot/en-us/products/sensors/pressure-sensors/board-mount-pressure-sensors/trustability-hsc-series/documents/sps-siot-trustability-hsc-series-high-accuracy-board-mount-pressure-sensors-50099148-a-en-ciid-151133.pdf + * Datasheet: https://prod-edam.honeywell.com/content/dam/honeywell-edam/sps/siot/en-us/products/sensors/pressure-sensors/common/documents/sps-siot-spi-comms-digital-ouptu-pressure-sensors-tn-008202-3-en-ciid-45843.pdf + * Datasheet: https://prod-edam.honeywell.com/content/dam/honeywell-edam/sps/siot/en-us/products/sensors/pressure-sensors/common/documents/sps-siot-sleep-mode-technical-note-008286-1-en-ciid-155793.pdf */ +#include #include #include #include #include +#include #include From patchwork Sat Jan 27 16:03:57 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Petre Rodan X-Patchwork-Id: 193031 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7301:2395:b0:106:343:edcb with SMTP id gw21csp558093dyb; Sat, 27 Jan 2024 08:05:22 -0800 (PST) X-Google-Smtp-Source: AGHT+IGySGWz4z1rdpJVL9W4SUBsQGxH/K4Bjo0ej+kbx8/gc8j9mK5ltw5cD5OmJm2IPslvsBJg X-Received: by 2002:a17:903:188:b0:1d7:55b1:4a3 with SMTP id z8-20020a170903018800b001d755b104a3mr3041844plg.11.1706371522209; Sat, 27 Jan 2024 08:05:22 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1706371521; cv=pass; d=google.com; s=arc-20160816; b=EuhiDOFu+QUp+L0N8LbW2J6eTOZrLU4eyrfW1Wgy5R0x7gfld6jYFy6AmbFsfh8gDk YpF3d7EZHOys+2wRctDsuihvXK154wY3C7qNBn5BnfaJhoyx7Vh4Qy4FKuaqVJF8VJ88 4kxTF37j/A3WxyuPcFOOE4datVp/i13Y6Mnv351HV8cXU7qncEvsN/S5BDXiEywqQ07p mHBoF+zM+MmpS6iD5Adm5kuqYLeD3h4DVsenIAmvTEP1nY2T9FvdNyjzfMrIuuomZBNP YQrjtv2qgvhoG3aozGcUKTXASlENnZh9wdHLeA4rF1V3oUM6b9kQ/C2G0xhyzGOttXzR b58Q== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature; bh=U+x2SU3hj/nF4qLC/1uxVExrIHdd/La86ejwi0dEPUs=; fh=RpJjGiuDlOjmyoLhPwSzjbPbeK51vYo3I0V3BuRLNmU=; b=HHSXZPIlkoFIziR19qvPyoql361+VwTCPxH5C1fKj+2CUdCakhDcEVzj+PpsUBSlhZ e+liEIwm6w03shnF8iFLO6SXQwXoIdpTgVGTfL9LoL3XPkWAeY1ey+LqENfro+iKSWeI Fy4KYGBm+mSPMdpw+Pol4XPBVLAGHT3foPOrgAhGxzTqK03oDw3hBQolSXhEfcnAF2M7 ptBRFOo2T3uYd6ffQDqiEeYZmTqVN599XGst4TPyG80OkDjxv2l+vbkpw9UQ19OOcNdW hqzpd0tvIkieZIVmEs06focIW2UJKUgSTFnjWc4YQF1lHX7FCQ6pgOrI5fU4kfqu9Z71 d2+A== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@subdimension.ro header.s=skycaves header.b=CUh9o+uT; arc=pass (i=1 spf=pass spfdomain=subdimension.ro dkim=pass dkdomain=subdimension.ro); spf=pass (google.com: domain of linux-kernel+bounces-41262-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-41262-ouuuleilei=gmail.com@vger.kernel.org" Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org. [2604:1380:45e3:2400::1]) by mx.google.com with ESMTPS id k70-20020a638449000000b005d62a0134eesi2959814pgd.889.2024.01.27.08.05.21 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 27 Jan 2024 08:05:21 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-41262-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) client-ip=2604:1380:45e3:2400::1; Authentication-Results: mx.google.com; dkim=pass header.i=@subdimension.ro header.s=skycaves header.b=CUh9o+uT; arc=pass (i=1 spf=pass spfdomain=subdimension.ro dkim=pass dkdomain=subdimension.ro); spf=pass (google.com: domain of linux-kernel+bounces-41262-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-41262-ouuuleilei=gmail.com@vger.kernel.org" Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sv.mirrors.kernel.org (Postfix) with ESMTPS id 095B2283F2B for ; Sat, 27 Jan 2024 16:05:21 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id EC0042D78A; Sat, 27 Jan 2024 16:04:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=subdimension.ro header.i=@subdimension.ro header.b="CUh9o+uT" Received: from mail.subdimension.ro (skycaves.subdimension.ro [172.104.132.142]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8DFA529429; Sat, 27 Jan 2024 16:04:20 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=172.104.132.142 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706371462; cv=none; b=d3S2jN2SOU5djUCVXAibu93A2MnEChmmoUwlK8O2LkDNdkLexgUWr6nDoU+se3LP+EySAuGdWVX2W9Me3UPsuoE578onkG61u7WHcianQRmBL5VgoyTMW9TsZYlDr1JZOAdT90P7ehArKssbOc3aKao3wE3/UYU7Aheqjz6it5I= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706371462; c=relaxed/simple; bh=ckgGjldfa/QMe8AawYQJb7Zfb90P85Y8WeoWJuvHEos=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=trCappT2L07M7Wk1hAEWbAchWiHi6nsWtDlGuUt2+4kcBc6HCoaam2B++HtgACean1+VmVfTWnqlAd8DA/B8mTwfTrcBHTOBNumpzekVAWfxXzuBiLydm9rCWnfWCUoHljRq6q+FLD4mdJAhl+vHhMcRSTQ/eY9ISVzOr1zKPvc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=subdimension.ro; spf=pass smtp.mailfrom=subdimension.ro; dkim=pass (1024-bit key) header.d=subdimension.ro header.i=@subdimension.ro header.b=CUh9o+uT; arc=none smtp.client-ip=172.104.132.142 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=subdimension.ro Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=subdimension.ro Received: from localhost.localdomain (unknown [188.24.80.170]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mail.subdimension.ro (Postfix) with ESMTPSA id BACDD293A96; Sat, 27 Jan 2024 16:04:12 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=subdimension.ro; s=skycaves; t=1706371452; bh=ckgGjldfa/QMe8AawYQJb7Zfb90P85Y8WeoWJuvHEos=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=CUh9o+uTnmUJoufQ0WYAnwhjJmT6Hp05pQRZm8wnKawzLSpzmpxHiAsRRLS7S8r/E ndUqY5XHQo+bERBUbmOfr95NPFfJYJ6wKBoHgR4sLH8WJjv4e5/oCB18fiGxZGJesL LxfbLN3cg0gHeDKw0y0d8GqtzzP/v3mlWfz3hLqc= From: Petre Rodan To: linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Petre Rodan , Jonathan Cameron , Lars-Peter Clausen Subject: [PATCH v2 3/4] iio: pressure: hsc030pa add mandatory delay Date: Sat, 27 Jan 2024 18:03:57 +0200 Message-ID: <20240127160405.19696-4-petre.rodan@subdimension.ro> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240127160405.19696-1-petre.rodan@subdimension.ro> References: <20240127160405.19696-1-petre.rodan@subdimension.ro> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1789260224166603928 X-GMAIL-MSGID: 1789260224166603928 Add a mandatory 2ms delay between consecutive chip reads. I found a new Technical Note pdf that specifies that the measurement cycle in these chips takes around 1.26ms. By adding this 2ms delay we make sure that we never get stale measurements. For more details, please see "Figure 1" in the pdf below: https://prod-edam.honeywell.com/content/dam/honeywell-edam/sps/siot/en-us/products/sensors/pressure-sensors/common/documents/sps-siot-sleep-mode-technical-note-008286-1-en-ciid-155793.pdf Signed-off-by: Petre Rodan --- v1 -> v2 no change drivers/iio/pressure/hsc030pa.h | 1 + drivers/iio/pressure/hsc030pa_i2c.c | 3 +++ drivers/iio/pressure/hsc030pa_spi.c | 2 ++ 3 files changed, 6 insertions(+) diff --git a/drivers/iio/pressure/hsc030pa.h b/drivers/iio/pressure/hsc030pa.h index f1079a70799f..56dc8e88194b 100644 --- a/drivers/iio/pressure/hsc030pa.h +++ b/drivers/iio/pressure/hsc030pa.h @@ -13,6 +13,7 @@ #include #define HSC_REG_MEASUREMENT_RD_SIZE 4 +#define HSC_RESP_TIME_MS 2 struct device; diff --git a/drivers/iio/pressure/hsc030pa_i2c.c b/drivers/iio/pressure/hsc030pa_i2c.c index b5810bafef40..b3fd230e71da 100644 --- a/drivers/iio/pressure/hsc030pa_i2c.c +++ b/drivers/iio/pressure/hsc030pa_i2c.c @@ -8,6 +8,7 @@ * Datasheet: https://prod-edam.honeywell.com/content/dam/honeywell-edam/sps/siot/en-us/products/sensors/pressure-sensors/common/documents/sps-siot-sleep-mode-technical-note-008286-1-en-ciid-155793.pdf */ +#include #include #include #include @@ -25,6 +26,8 @@ static int hsc_i2c_recv(struct hsc_data *data) struct i2c_msg msg; int ret; + msleep_interruptible(HSC_RESP_TIME_MS); + msg.addr = client->addr; msg.flags = client->flags | I2C_M_RD; msg.len = HSC_REG_MEASUREMENT_RD_SIZE; diff --git a/drivers/iio/pressure/hsc030pa_spi.c b/drivers/iio/pressure/hsc030pa_spi.c index 8d3441f1dcf9..818fa6303454 100644 --- a/drivers/iio/pressure/hsc030pa_spi.c +++ b/drivers/iio/pressure/hsc030pa_spi.c @@ -8,6 +8,7 @@ * Datasheet: https://prod-edam.honeywell.com/content/dam/honeywell-edam/sps/siot/en-us/products/sensors/pressure-sensors/common/documents/sps-siot-sleep-mode-technical-note-008286-1-en-ciid-155793.pdf */ +#include #include #include #include @@ -28,6 +29,7 @@ static int hsc_spi_recv(struct hsc_data *data) .len = HSC_REG_MEASUREMENT_RD_SIZE, }; + msleep_interruptible(HSC_RESP_TIME_MS); return spi_sync_transfer(spi, &xfer, 1); } From patchwork Sat Jan 27 16:03:58 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Petre Rodan X-Patchwork-Id: 193033 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7301:2395:b0:106:343:edcb with SMTP id gw21csp558278dyb; Sat, 27 Jan 2024 08:05:44 -0800 (PST) X-Google-Smtp-Source: AGHT+IE9f4Q8LhiPXYch9s4jHmMDETI1qTFAuI4Pi69gDBu6iQge4NyzOEql8/ySpEH1PcdE7biY X-Received: by 2002:a05:620a:2098:b0:783:e81:d616 with SMTP id e24-20020a05620a209800b007830e81d616mr1722871qka.132.1706371543904; Sat, 27 Jan 2024 08:05:43 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1706371543; cv=pass; d=google.com; s=arc-20160816; b=1E1zwbAjEFcbhXhrkazkolsnqsCUpxyz2DPW0GeyUykE1b1us5jTqe3S0VldbqMJRX S2vPSGjo6i4NhDS7tu7DRuLpATXTAWIVk1ZTEnVK2vEmhpA8veOiEJ1aOdc9MO/P8xxy o+JeYkywzfZc7KzN1q3e5vym1NVMNYX8JwkshEa3Qo9vvCh1FXIg207X+UuBSjJglGwD Y6lUDc74SWfQBB4iXsdKiydWztzUmJ0W7yxa8f7AqMSTml/OB0sFo/sMY9uHnSMA9hYL fONOyiXe8THFgzPlK4vzdJeXMj3bkAW3OAnDLbcv9VIUD3mlazjNb2uDnGzXAgHuPEJ7 vSQw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature; bh=pzIyOSPUNscVf3PfX8ltu1Bx4kv0AthIK/1Ml/xzKeI=; fh=RpJjGiuDlOjmyoLhPwSzjbPbeK51vYo3I0V3BuRLNmU=; b=wkP9b6gZKmErjbUHoYURl1dPe7WijYiLDmOTRd1iCgTJPR1XzEZot1khVrIsuXbv21 snOlsFCSeNo5KvunxC9Dk+eb1wn1SkiovCU2lYrzzJ+JMXPXXKvLEWM04QC1sY1OM6Zm 133m+SdPu2TvpNwLRHmeNqXNAOWEi0Y8V7JWhamj2I6giLx3a4CtfjkEAU+Ar2sD4trc FdXDr9efOZ0kXZLlBs1FJZaPvl5M3bQ4NCveuwBubsg6L9Pwp7oPH69NiciSFeIvr2HJ MjCYhPvd+hu3XSzyzX7IMKpYZ/Npo2ChdsXZA+fkUqJndCfw+zBfi52zwHYHH2godsp+ WNgA== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@subdimension.ro header.s=skycaves header.b=kvDN6o1x; arc=pass (i=1 spf=pass spfdomain=subdimension.ro dkim=pass dkdomain=subdimension.ro); spf=pass (google.com: domain of linux-kernel+bounces-41264-ouuuleilei=gmail.com@vger.kernel.org designates 147.75.199.223 as permitted sender) smtp.mailfrom="linux-kernel+bounces-41264-ouuuleilei=gmail.com@vger.kernel.org" Received: from ny.mirrors.kernel.org (ny.mirrors.kernel.org. [147.75.199.223]) by mx.google.com with ESMTPS id pa15-20020a05620a830f00b0078393cb6533si3660356qkn.243.2024.01.27.08.05.43 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 27 Jan 2024 08:05:43 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-41264-ouuuleilei=gmail.com@vger.kernel.org designates 147.75.199.223 as permitted sender) client-ip=147.75.199.223; Authentication-Results: mx.google.com; dkim=pass header.i=@subdimension.ro header.s=skycaves header.b=kvDN6o1x; arc=pass (i=1 spf=pass spfdomain=subdimension.ro dkim=pass dkdomain=subdimension.ro); spf=pass (google.com: domain of linux-kernel+bounces-41264-ouuuleilei=gmail.com@vger.kernel.org designates 147.75.199.223 as permitted sender) smtp.mailfrom="linux-kernel+bounces-41264-ouuuleilei=gmail.com@vger.kernel.org" Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ny.mirrors.kernel.org (Postfix) with ESMTPS id 08DCC1C21F9D for ; Sat, 27 Jan 2024 16:05:34 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 46F002E62F; Sat, 27 Jan 2024 16:04:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=subdimension.ro header.i=@subdimension.ro header.b="kvDN6o1x" Received: from mail.subdimension.ro (skycaves.subdimension.ro [172.104.132.142]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 90E1C2942C; Sat, 27 Jan 2024 16:04:20 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=172.104.132.142 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706371463; cv=none; b=VLs2Omsh0o4lVVoNx6kI+H38glOZEm19nH6fCHFDNBBVifQcgGdbmZJOOmXNjmvpEtTeh3Bvhu2rXv77Sbtk0W2uA716c3xyxXXH+iXPNjPZB/EEK3DSkov5lxYJzPsS9a1fLMyZR8MSxkVhL12o1aPla+xb7tmgW4OtrNIWNS0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706371463; c=relaxed/simple; bh=uNZlNH68NOdUs670gUg9HFrHubxtW5W3+AmCbfDPYuM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=VJ6oHeto8cB2SRs9zi0q6nqsdIbFqUFUTuafSYfVoOnuur4WfvMIHs4KFV1BDOfhKL1eAk7sNe7+o16e9pqDLG2uurqjEpfSSCxlBrP9R6Tm8mAmyOp/eeKNxsAwfS1ye6PDviYGVVIxOvhYfuAns1cqTS2mWV57m0TybmiOOho= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=subdimension.ro; spf=pass smtp.mailfrom=subdimension.ro; dkim=pass (1024-bit key) header.d=subdimension.ro header.i=@subdimension.ro header.b=kvDN6o1x; arc=none smtp.client-ip=172.104.132.142 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=subdimension.ro Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=subdimension.ro Received: from localhost.localdomain (unknown [188.24.80.170]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mail.subdimension.ro (Postfix) with ESMTPSA id F262E293A97; Sat, 27 Jan 2024 16:04:12 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=subdimension.ro; s=skycaves; t=1706371453; bh=uNZlNH68NOdUs670gUg9HFrHubxtW5W3+AmCbfDPYuM=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=kvDN6o1xB6Wxq1AT7VFZbgxjX5ROejk/V6uzeRrvVQivZDZfpFEhC3jg1pb0bXnR5 XV7FPaolSgR14vAT0sgeFOXWfAlKex1BVARPQF1ffJcInh/DDbFS6caoIyUAHQyFdH 41UL6EBdeCqVNJWFN5dLJop+eh0+VwD1DMf6kyLY= From: Petre Rodan To: linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Petre Rodan , Jonathan Cameron , Lars-Peter Clausen Subject: [PATCH v2 4/4] iio: pressure: hsc030pa add triggered buffer Date: Sat, 27 Jan 2024 18:03:58 +0200 Message-ID: <20240127160405.19696-5-petre.rodan@subdimension.ro> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240127160405.19696-1-petre.rodan@subdimension.ro> References: <20240127160405.19696-1-petre.rodan@subdimension.ro> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1789260248030120229 X-GMAIL-MSGID: 1789260248030120229 Add triggered buffer feature. Signed-off-by: Petre Rodan --- v1 -> v2 add Kconfig select for IIO_*BUFFER a few changes based on Jonathan's review drivers/iio/pressure/Kconfig | 2 ++ drivers/iio/pressure/hsc030pa.c | 47 +++++++++++++++++++++++++++++++++ drivers/iio/pressure/hsc030pa.h | 4 +++ 3 files changed, 53 insertions(+) diff --git a/drivers/iio/pressure/Kconfig b/drivers/iio/pressure/Kconfig index 5da7931dc537..3ad38506028e 100644 --- a/drivers/iio/pressure/Kconfig +++ b/drivers/iio/pressure/Kconfig @@ -114,6 +114,8 @@ config HSC030PA depends on (I2C || SPI_MASTER) select HSC030PA_I2C if I2C select HSC030PA_SPI if SPI_MASTER + select IIO_BUFFER + select IIO_TRIGGERED_BUFFER help Say Y here to build support for the Honeywell TruStability HSC and SSC pressure and temperature sensor series. diff --git a/drivers/iio/pressure/hsc030pa.c b/drivers/iio/pressure/hsc030pa.c index 7e3f74d53b47..f8bddcdf5056 100644 --- a/drivers/iio/pressure/hsc030pa.c +++ b/drivers/iio/pressure/hsc030pa.c @@ -22,8 +22,11 @@ #include #include +#include #include #include +#include +#include #include @@ -297,6 +300,29 @@ static int hsc_get_measurement(struct hsc_data *data) return 0; } +static irqreturn_t hsc_trigger_handler(int irq, void *private) +{ + struct iio_poll_func *pf = private; + struct iio_dev *indio_dev = pf->indio_dev; + struct hsc_data *data = iio_priv(indio_dev); + int ret; + + ret = hsc_get_measurement(data); + if (ret) + goto error; + + memcpy(&data->scan.chan[0], &data->buffer, 2); + memcpy(&data->scan.chan[1], &data->buffer[2], 2); + + iio_push_to_buffers_with_timestamp(indio_dev, &data->scan, + iio_get_time_ns(indio_dev)); + +error: + iio_trigger_notify_done(indio_dev->trig); + + return IRQ_HANDLED; +} + /* * IIO ABI expects * value = (conv + offset) * scale @@ -382,13 +408,29 @@ static const struct iio_chan_spec hsc_channels[] = { .info_mask_separate = BIT(IIO_CHAN_INFO_RAW) | BIT(IIO_CHAN_INFO_SCALE) | BIT(IIO_CHAN_INFO_OFFSET), + .scan_index = 0, + .scan_type = { + .sign = 'u', + .realbits = 14, + .storagebits = 16, + .endianness = IIO_BE, + }, }, { .type = IIO_TEMP, .info_mask_separate = BIT(IIO_CHAN_INFO_RAW) | BIT(IIO_CHAN_INFO_SCALE) | BIT(IIO_CHAN_INFO_OFFSET), + .scan_index = 1, + .scan_type = { + .sign = 'u', + .realbits = 11, + .storagebits = 16, + .shift = 5, + .endianness = IIO_BE, + }, }, + IIO_CHAN_SOFT_TIMESTAMP(2), }; static const struct iio_info hsc_info = { @@ -485,6 +527,11 @@ int hsc_common_probe(struct device *dev, hsc_recv_fn recv) indio_dev->channels = hsc->chip->channels; indio_dev->num_channels = hsc->chip->num_channels; + ret = devm_iio_triggered_buffer_setup(dev, indio_dev, NULL, + hsc_trigger_handler, NULL); + if (ret) + return ret; + return devm_iio_device_register(dev, indio_dev); } EXPORT_SYMBOL_NS(hsc_common_probe, IIO_HONEYWELL_HSC030PA); diff --git a/drivers/iio/pressure/hsc030pa.h b/drivers/iio/pressure/hsc030pa.h index 56dc8e88194b..9b40f46f575f 100644 --- a/drivers/iio/pressure/hsc030pa.h +++ b/drivers/iio/pressure/hsc030pa.h @@ -56,6 +56,10 @@ struct hsc_data { s32 p_scale_dec; s64 p_offset; s32 p_offset_dec; + struct { + __be16 chan[2]; + s64 timestamp __aligned(8); + } scan; u8 buffer[HSC_REG_MEASUREMENT_RD_SIZE] __aligned(IIO_DMA_MINALIGN); };