From patchwork Mon Feb 26 21:25:55 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Javier Carrasco X-Patchwork-Id: 206928 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7300:a81b:b0:108:e6aa:91d0 with SMTP id bq27csp2342593dyb; Mon, 26 Feb 2024 13:26:47 -0800 (PST) X-Forwarded-Encrypted: i=3; AJvYcCXrq/NEQp3iPTuaDfAUInklUeY7G64h56Zhodp5LAsiu/hjSB8k/ohOGG6U5sVU5EF5mGwfIh74L2EihcmwzHJCRjt1YA== X-Google-Smtp-Source: AGHT+IFqMAcf//9VE0ODnkEFmC6D9P4gW4vVu3N93KdJBiRe6FOWG4QkJBD4/DNmP+C3Rf51gFhy X-Received: by 2002:a0d:db8a:0:b0:608:b3cc:66dd with SMTP id d132-20020a0ddb8a000000b00608b3cc66ddmr417995ywe.10.1708982807203; Mon, 26 Feb 2024 13:26:47 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1708982807; cv=pass; d=google.com; s=arc-20160816; b=dPPLAjGR3txe14AJCEunVsO2EXaqUsA28kbiIppjNGjrrHSbUGgpBT6+3EAcCAWIqg 7vM6H4n0tgcnm2YUGWjtW3Vfox9RCHjsk5KLFgYNgAf1Uo5XZXgAfEnPB2GxsM2HpG5Y TOySnq3A1DusOMiiKm2A4MlywlcQ9UHNIXxEIq9/W4qi+WkCY1IJ9G7/n8AShjVeBIZW HH5jA1KYo/85OFSRV6/s7FhfF1d2Z9hz0mPXManraxvbChXICISdO17weiZ24sJaWUNy 6HmDfr1UdKHCCs34MkeviDweZyCBEOrlb9WZMV9m6QJ8PRwUHFkGg1sM1/ilUp87E84W Vvpw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:list-unsubscribe:list-subscribe:list-id:precedence :subject:date:from:dkim-signature; bh=3wukwNEIF4iZyo0L2rgyE4uUoJ+QW5CahBwhrSw6xvg=; fh=GdAgTbKmmi7/suYqyH+YqyZ5EH/qAYO0eaghPTnpIyA=; b=WwVvi3IdrCfk74aTi2n0jjKRcCOjMolZkpIA8YUidCbY1kU5DpFjBtnVoadQJ1CFVe hjyztbhiANgWfo/F3axFmvipqHndf9BUm1JRRzAR9KVK/8/dZMOC4rND8cgybgDlZwSS S80npDkJkEPn7HSdLefe8Fy/O6phHQQJpa2FixkS5OGxfTQm2dmdP9SpcKgTqk6ZD+vy MQKHGKMMdsy51OPdJHT1E1pXU7HVNvhBwTav8fJkNY/SZLOvy89RzIb2UntksZju/qYt 0u5G3iKJp4PoT35/2QzepXjUKwEH/Hf6199B6n5hXE7ZP6y37JUfzWARMSMEwcWATKmB Ydbg==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=VzyLjoXo; arc=pass (i=1 spf=pass spfdomain=gmail.com dkim=pass dkdomain=gmail.com dmarc=pass fromdomain=gmail.com); spf=pass (google.com: domain of linux-kernel+bounces-82335-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-82335-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from ny.mirrors.kernel.org (ny.mirrors.kernel.org. [2604:1380:45d1:ec00::1]) by mx.google.com with ESMTPS id t19-20020ac86a13000000b0042c77c183b0si5764785qtr.590.2024.02.26.13.26.47 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 26 Feb 2024 13:26:47 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-82335-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) client-ip=2604:1380:45d1:ec00::1; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=VzyLjoXo; arc=pass (i=1 spf=pass spfdomain=gmail.com dkim=pass dkdomain=gmail.com dmarc=pass fromdomain=gmail.com); spf=pass (google.com: domain of linux-kernel+bounces-82335-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-82335-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com 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 E828A1C25529 for ; Mon, 26 Feb 2024 21:26:46 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 7A2CB132486; Mon, 26 Feb 2024 21:26:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="VzyLjoXo" Received: from mail-ed1-f53.google.com (mail-ed1-f53.google.com [209.85.208.53]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 371C2130E46; Mon, 26 Feb 2024 21:26:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.53 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708982763; cv=none; b=K25SGemTf4c2KzWT4bYAR0EFLt+K8cLLlvXFOAM3PrXqnU7+3Yce6tmCdqG8Ch/OcbFXx0CQBzPfgpLSDQUiWWf1bzYrxFwYkil0glqFp4N47GwjRaMSUyvNzrcCuC+0La4J6hTBR4XLdpBF1rAlEQGsprtkfqtN4fhEXfAY48A= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708982763; c=relaxed/simple; bh=v4m1Put7F/TGBgZJ2VHhefokJAsChLTIJYhfwC0AZyY=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=FxI/KpBLqEvaaNH547wVGy2RG5z8qIAsh51Tsn3oJOQRS6AkaJ1x873+U3JabMc5a285EHOsxrfIKGLAlVb8zW24NsrCYEriNZfCdBWlh9lBQLwM0ayVF90s9PNcllSjF6aD1NhthboWG0vtKDqfcpT/b8gatm6bgSUHd55WqSU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=VzyLjoXo; arc=none smtp.client-ip=209.85.208.53 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-ed1-f53.google.com with SMTP id 4fb4d7f45d1cf-55f50cf2021so5467639a12.1; Mon, 26 Feb 2024 13:26:00 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1708982759; x=1709587559; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=3wukwNEIF4iZyo0L2rgyE4uUoJ+QW5CahBwhrSw6xvg=; b=VzyLjoXosd0aIj8eghxIWDkyPF3FChdyEQosniA5hwA6lGiEiV7xk1ZPv5+12mN93/ OLF48I189pxBWNA+shkO6j3XiDIuUVLeTPmK2ER/uYdx9iwKeNkIBQLd5gSrzNmX4WX2 B1mud9aabXjC8xTWFBEJuPkCFffvsyd6LcxYOZMw+U04ipdY6CzIxF+4f/NckMES/wl5 AuJYJqg/CDRnOb7kGz5t2FI0RDR3j2t+c0HliVnnQSRncX7dHmTojhDYG9jEEThKOhz1 8MheKdNLxNYdP7aBx133/qqgYlXg2Ofy2heOiIeUYqUBADiCyjuDTJNJYH4d4jR1VmzP MPoA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1708982759; x=1709587559; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=3wukwNEIF4iZyo0L2rgyE4uUoJ+QW5CahBwhrSw6xvg=; b=YNsXzVLqBHzCgnllL9FEyULVrsU5ZIZ9jYzRnhvYCiWim5Tq2gxtcpBY/vHSU5oNyS uL0pGOWa5/UwVtA6xpW1UcTslLKkYjVlstSpRemzEUYp3Ps3viQcBNGOw6scJmty1OCm E8pvPsSeojwN27PtAdwNpJAp/LHiT8BFha4XerLhWqJdSphbaqCKqs1rTnNyQk3qbE0C vONUE6RkoBUtVQr8kvI1T8/rw/0HQ9A8sHiBRkorhgA6uT6MYfr9k5mV9Q4K7J0YshOj jlVrkC2A2nWHp3YNrHEGC8vI2C0hw7uutoAO4RWzWwKUwamPTfn/5VXSwJoaHwIlXuaq rZeg== X-Forwarded-Encrypted: i=1; AJvYcCWEB7Rjwy1mrcMgqGonM6OnqUwWRc6KlcvfIX6Nr3sTdABe75TE01W3+7r8aSllPGerWyQLzjHhLOjxo6fpd0Dxupw1SxnfnvSt7Ic9sLGdY8al2BOkv4ZCAklfaW2eRK0PU/72Zh52ovFFEKI9f+y5+L3cIsjvVsXW3HzFxDhgx9oWrQ== X-Gm-Message-State: AOJu0YzfPuSpw1btn08FjZ6xt2uGit3zOsDFCmRfZRn/cHTpk5IkwSiW qndgpyQp/pBX516rKS8BwgyPHEyIG4XJ0BqBOVtkHwv+iyaXFBHHRWSJvRHA9Al7iQ== X-Received: by 2002:a17:906:cb8c:b0:a3f:c4f9:eb16 with SMTP id mf12-20020a170906cb8c00b00a3fc4f9eb16mr5139178ejb.20.1708982759199; Mon, 26 Feb 2024 13:25:59 -0800 (PST) Received: from [127.0.1.1] (2a02-8389-41cf-e200-06e1-5ae1-dc32-d149.cable.dynamic.v6.surfer.at. [2a02:8389:41cf:e200:6e1:5ae1:dc32:d149]) by smtp.gmail.com with ESMTPSA id uz28-20020a170907119c00b00a3df13a4fe0sm122386ejb.15.2024.02.26.13.25.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 26 Feb 2024 13:25:58 -0800 (PST) From: Javier Carrasco Date: Mon, 26 Feb 2024 22:25:55 +0100 Subject: [PATCH v2 1/3] iio: humidity: hdc3020: add power management Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20240226-hdc3020-pm-v2-1-cec6766086e8@gmail.com> References: <20240226-hdc3020-pm-v2-0-cec6766086e8@gmail.com> In-Reply-To: <20240226-hdc3020-pm-v2-0-cec6766086e8@gmail.com> To: Jonathan Cameron , Lars-Peter Clausen , Li peiyu <579lpy@gmail.com>, Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: Jonathan Cameron , linux-kernel@vger.kernel.org, linux-iio@vger.kernel.org, devicetree@vger.kernel.org, Javier Carrasco X-Mailer: b4 0.14-dev X-Developer-Signature: v=1; a=ed25519-sha256; t=1708982756; l=5085; i=javier.carrasco.cruz@gmail.com; s=20230509; h=from:subject:message-id; bh=v4m1Put7F/TGBgZJ2VHhefokJAsChLTIJYhfwC0AZyY=; b=F40Faja/hEvhjLltiGyber32qa6JIZcO3Kpcr88hZsEsLRDV7IDDJOGKtoDIu5n07O9WFT1EF HTC3cltRbEbBgHbFUKtUgiJlirwI8OGbq/Jgo+dgpBE56jVD5EvdzT1 X-Developer-Key: i=javier.carrasco.cruz@gmail.com; a=ed25519; pk=tIGJV7M+tCizagNijF0eGMBGcOsPD+0cWGfKjl4h6K8= X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1791998356228705541 X-GMAIL-MSGID: 1791998356228705541 The HDC3020 sensor carries out periodic measurements during normal operation, but as long as the power supply is enabled, it will carry on in low-power modes. In order to avoid that and reduce power consumption, the device can be switched to Trigger-on Demand mode, and if possible, turn off its regulator. According to the datasheet, the maximum "Power Up Ready" is 5 ms. Add resume/suspend pm operations to manage measurement mode and regulator state. Signed-off-by: Javier Carrasco --- drivers/iio/humidity/hdc3020.c | 89 ++++++++++++++++++++++++++++++++++-------- 1 file changed, 73 insertions(+), 16 deletions(-) diff --git a/drivers/iio/humidity/hdc3020.c b/drivers/iio/humidity/hdc3020.c index 1e5d0d4797b1..6848be41e1c8 100644 --- a/drivers/iio/humidity/hdc3020.c +++ b/drivers/iio/humidity/hdc3020.c @@ -20,6 +20,8 @@ #include #include #include +#include +#include #include #include @@ -68,6 +70,7 @@ struct hdc3020_data { struct i2c_client *client; + struct regulator *vdd_supply; /* * Ensure that the sensor configuration (currently only heater is * supported) will not be changed during the process of reading @@ -551,9 +554,45 @@ static const struct iio_info hdc3020_info = { .write_event_value = hdc3020_write_thresh, }; -static void hdc3020_stop(void *data) +static int hdc3020_power_off(struct hdc3020_data *data) { - hdc3020_exec_cmd((struct hdc3020_data *)data, HDC3020_EXIT_AUTO); + hdc3020_exec_cmd(data, HDC3020_EXIT_AUTO); + + return regulator_disable(data->vdd_supply); +} + +static int hdc3020_power_on(struct hdc3020_data *data) +{ + int ret; + + ret = regulator_enable(data->vdd_supply); + if (ret) + return ret; + + fsleep(5000); + + if (data->client->irq) { + /* + * The alert output is activated by default upon power up, + * hardware reset, and soft reset. Clear the status register. + */ + ret = hdc3020_exec_cmd(data, HDC3020_S_STATUS); + if (ret) { + hdc3020_power_off(data); + return ret; + } + } + + ret = hdc3020_exec_cmd(data, HDC3020_S_AUTO_10HZ_MOD0); + if (ret) + hdc3020_power_off(data); + + return ret; +} + +static void hdc3020_exit(void *data) +{ + hdc3020_power_off(data); } static int hdc3020_probe(struct i2c_client *client) @@ -569,6 +608,8 @@ static int hdc3020_probe(struct i2c_client *client) if (!indio_dev) return -ENOMEM; + dev_set_drvdata(&client->dev, (void *)indio_dev); + data = iio_priv(indio_dev); data->client = client; mutex_init(&data->lock); @@ -580,6 +621,16 @@ static int hdc3020_probe(struct i2c_client *client) indio_dev->info = &hdc3020_info; indio_dev->channels = hdc3020_channels; indio_dev->num_channels = ARRAY_SIZE(hdc3020_channels); + + data->vdd_supply = devm_regulator_get(&client->dev, "vdd"); + if (IS_ERR(data->vdd_supply)) + return dev_err_probe(&client->dev, PTR_ERR(data->vdd_supply), + "Unable to get VDD regulator\n"); + + ret = hdc3020_power_on(data); + if (ret) + return dev_err_probe(&client->dev, ret, "Power on failed\n"); + if (client->irq) { ret = devm_request_threaded_irq(&client->dev, client->irq, NULL, hdc3020_interrupt_handler, @@ -588,22 +639,9 @@ static int hdc3020_probe(struct i2c_client *client) if (ret) return dev_err_probe(&client->dev, ret, "Failed to request IRQ\n"); - - /* - * The alert output is activated by default upon power up, - * hardware reset, and soft reset. Clear the status register. - */ - ret = hdc3020_exec_cmd(data, HDC3020_S_STATUS); - if (ret) - return ret; } - ret = hdc3020_exec_cmd(data, HDC3020_S_AUTO_10HZ_MOD0); - if (ret) - return dev_err_probe(&client->dev, ret, - "Unable to set up measurement\n"); - - ret = devm_add_action_or_reset(&data->client->dev, hdc3020_stop, data); + ret = devm_add_action_or_reset(&data->client->dev, hdc3020_exit, data); if (ret) return ret; @@ -614,6 +652,24 @@ static int hdc3020_probe(struct i2c_client *client) return 0; } +static int hdc3020_suspend(struct device *dev) +{ + struct iio_dev *iio_dev = dev_get_drvdata(dev); + struct hdc3020_data *data = iio_priv(iio_dev); + + return hdc3020_power_off(data); +} + +static int hdc3020_resume(struct device *dev) +{ + struct iio_dev *iio_dev = dev_get_drvdata(dev); + struct hdc3020_data *data = iio_priv(iio_dev); + + return hdc3020_power_on(data); +} + +static DEFINE_SIMPLE_DEV_PM_OPS(hdc3020_pm_ops, hdc3020_suspend, hdc3020_resume); + static const struct i2c_device_id hdc3020_id[] = { { "hdc3020" }, { "hdc3021" }, @@ -633,6 +689,7 @@ MODULE_DEVICE_TABLE(of, hdc3020_dt_ids); static struct i2c_driver hdc3020_driver = { .driver = { .name = "hdc3020", + .pm = pm_sleep_ptr(&hdc3020_pm_ops), .of_match_table = hdc3020_dt_ids, }, .probe = hdc3020_probe, From patchwork Mon Feb 26 21:25:56 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Javier Carrasco X-Patchwork-Id: 206929 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7300:a81b:b0:108:e6aa:91d0 with SMTP id bq27csp2342646dyb; Mon, 26 Feb 2024 13:26:56 -0800 (PST) X-Forwarded-Encrypted: i=3; AJvYcCX3AOAV3Q4HksWNPI2IHJdCx1IrkWu5dAVR4egO0k+dvYBlofIxGhG2blRue8PYvStDX+yRSmSs+EQvCxYiBThUAQ88Eg== X-Google-Smtp-Source: AGHT+IG2WhUFq+VSgee2sEcu3oqBh2TO89Ne2MGiFayBXieWOrkYNRP5WSp6tTpL232rm9n+8Ox9 X-Received: by 2002:a05:6214:5090:b0:690:1704:6261 with SMTP id kk16-20020a056214509000b0069017046261mr409477qvb.43.1708982816645; Mon, 26 Feb 2024 13:26:56 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1708982816; cv=pass; d=google.com; s=arc-20160816; b=lhfmMpld8WVSUitqsgOICQRpnifo91AKyFCvi344si79F40VQoptNp2YYH+rBpLDuA wurqOPqiPS2lZt4e2ea2nTMvGYEbogFk3nFKJclKB5f2dIwZ3RVcWGLyz05uwcYfc09G zphBssUZu8P8fGWiCTS3WNUX6Lx+qrDNk/xGyxOCYc3pxgI++OOQ3qu6fSlXFPCjsu9S TzGmUvQwhnQ8nZRloZ4x/oEiGNu/eAa4lyaJxvZJLH7VkNpTE41dkFUH9eTfRDk5s2DH sBBPLEo5utCZiSTjq85nsNsAkfqDei6hGcKnrurRLFX20sntBmZaLAIdc9IVdZo1vIgb fBjg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:list-unsubscribe:list-subscribe:list-id:precedence :subject:date:from:dkim-signature; bh=sjOh/UQPhwu1ysWxAs0vISEfQvcgjub2FXkP8IJA4e0=; fh=JdAvqZL+tZ2G9ICW35ca50n4ZSMMOiwVXNZ37IVQ7Uk=; b=lMB5lhLKiiL5Cac2pogpCJJ8QXj72JvFn0WVQv/fZfsyDlEsrCMrjWFClUk693DJgH JPGTBDJ0fLYIyZVa6P4sHNPiovDDFx5RwXXCd7d5zvp5CFKV4vTfymqHPqzbjZt7wvZC MNO9PmrsTOvsSsvdR0y5Y3Ooo/ffn30HRtx0VJuGds/KE7MAI8DhI1AkGNCOT4aq9jk7 nzO2IyYfgkWJZgVeWCuwXbqsVBOP4/wIxrTvLTf7WhA2FbsUPDl8GEprioYrkx0qvBrC 61JEKm4g2OGLpYv8npeOzzIRxMDcFoPfwUjGIpjyJMdnkRU5xKA+ACf6nQ4jHCi0UzLQ c4aA==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=hswmQevp; arc=pass (i=1 spf=pass spfdomain=gmail.com dkim=pass dkdomain=gmail.com dmarc=pass fromdomain=gmail.com); spf=pass (google.com: domain of linux-kernel+bounces-82336-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-82336-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from ny.mirrors.kernel.org (ny.mirrors.kernel.org. [2604:1380:45d1:ec00::1]) by mx.google.com with ESMTPS id j2-20020a05621419c200b0068fb74bc2f4si6046291qvc.477.2024.02.26.13.26.56 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 26 Feb 2024 13:26:56 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-82336-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) client-ip=2604:1380:45d1:ec00::1; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=hswmQevp; arc=pass (i=1 spf=pass spfdomain=gmail.com dkim=pass dkdomain=gmail.com dmarc=pass fromdomain=gmail.com); spf=pass (google.com: domain of linux-kernel+bounces-82336-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-82336-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com 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 7000B1C25A6E for ; Mon, 26 Feb 2024 21:26:56 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 4597D132C09; Mon, 26 Feb 2024 21:26:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="hswmQevp" Received: from mail-ej1-f45.google.com (mail-ej1-f45.google.com [209.85.218.45]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C3FAE131E24; Mon, 26 Feb 2024 21:26:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.45 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708982764; cv=none; b=nrAYP0iNccttNf0i3qxWeLNOP/nLyVh2JMwtg/VYq2F0L2w518P6rzmkj/LGYp5arWsJEsEKK91ZQz0ISmaR2wUED/S+MC+2KHSOhnZ0I2BRaCw3QvD0yGuS40fmOniO96XyxV6J4zTh0I3yg3SkJb9PFdaPTIg9jsJsbN6CWb0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708982764; c=relaxed/simple; bh=plh10VuMojhQ7wzSifZveM3iRuWPqiS+3GR/CvVqCLs=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=TVQzkhlMafoMwEaTmP0CWOh7JDKTke3u7ce7EO7LY/TkJsK1LDw7F8Qjz8YVKjO0UtPQTaIZNlMtJJdo4VIJGEZfxu6Nj2IvM+0iCAeXE2ugX3QDgUYMP93CkLPPKPZPQ7rpUT/s+xVO2kBjcQb+5sBour8Ov/0KESza+JDN3dI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=hswmQevp; arc=none smtp.client-ip=209.85.218.45 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-ej1-f45.google.com with SMTP id a640c23a62f3a-a437a2a46b1so121673066b.2; Mon, 26 Feb 2024 13:26:02 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1708982761; x=1709587561; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=sjOh/UQPhwu1ysWxAs0vISEfQvcgjub2FXkP8IJA4e0=; b=hswmQevpCXznZZRXJOrjwBeD358Zz1R3m/9wtQmGbxsGL8vzHW8LxvKf7RiP3RyET7 jmDrrMldC0Ue38Ey0RDEnPwgAx6Qs/UwKPxiix/NIKJUSeIRtBzac6Mov2/VRUsrZ1Wt w8/qWo+A7mmKqPNzIhPowC02dKkKwZifuH+Z7hcn7Yxj6Lx0hrAuvHJQkvMiBSJKe6tK QYM6Xg/OOh2zwbpwx2do2tz8A8bmxIyDWAfLSnlMYjmbqXn/OgpIDsQZgPnwvBY/JLkO m7dEKkbTaKaZInlhdY6KzWPiPU9V34KHf73GHcVhYW6okndadg7RrxpVJxR/5ZzDNQDs TRkA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1708982761; x=1709587561; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=sjOh/UQPhwu1ysWxAs0vISEfQvcgjub2FXkP8IJA4e0=; b=qO0oPfrM3JUlQIkQIq3DS6Ct8oW6PytpMAbCo3IDogxwH+0SgJMgkYC1//jK08KpHz O3T5edNMJVGJobe6wmkjO9cVVYeBfbUrdHnR/ML6N0LcsbYfWAsDPPMfCOEDqgmswzgv +n1cJ8sJ+0Kbzd8Xj2mTEEHjdZfLtW9dO+wJpQBW6OOr7y+Na22//J9lK7mQfT03XsfP eAkEVGX74fhQ2A7oiKO1R9ETV+ZX2WMFcB/FBBRY2VBrDMmQgA6Rx46ZWoFGB+dr2bZ7 93sfObggLAIIiVpKJQOQTLD86Yvff8AEWEZdL5mi38SVExEF/zUb3ShBVGr6QxIJK4dW MKqA== X-Forwarded-Encrypted: i=1; AJvYcCUQHmU8rrnbhnbOmICuKfGet2z4FewgH8p7Z1rF/S5a5EylzMAk2ZWP/gM9ncTRM/zFlAL4XzCDKht1Hlu8AbOczXmNbwMnRHD3M6nVpjwPsOXCuKYP3Cch1qZ7NGJ/L5mB1ThbPtHZdquMzxin99sL2bHbh/D2sflEt1T4q6+ZYfoS8Q== X-Gm-Message-State: AOJu0Yw3r6iNCvtjPuNkT7oPFzTuoM+m+P22sRzG08AWLeZibugZMrqR 89oD23RO/MVWS2DDboJco7Ei10kkEVkPSw+Raz/wb/qkrk9/e8RbeobzUdUAEjQQ3A== X-Received: by 2002:a17:907:bb8b:b0:a43:827d:53c5 with SMTP id xo11-20020a170907bb8b00b00a43827d53c5mr1533588ejc.32.1708982760734; Mon, 26 Feb 2024 13:26:00 -0800 (PST) Received: from [127.0.1.1] (2a02-8389-41cf-e200-06e1-5ae1-dc32-d149.cable.dynamic.v6.surfer.at. [2a02:8389:41cf:e200:6e1:5ae1:dc32:d149]) by smtp.gmail.com with ESMTPSA id uz28-20020a170907119c00b00a3df13a4fe0sm122386ejb.15.2024.02.26.13.25.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 26 Feb 2024 13:26:00 -0800 (PST) From: Javier Carrasco Date: Mon, 26 Feb 2024 22:25:56 +0100 Subject: [PATCH v2 2/3] dt-bindings: iio: humidity: hdc3020: add reset-gpios Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20240226-hdc3020-pm-v2-2-cec6766086e8@gmail.com> References: <20240226-hdc3020-pm-v2-0-cec6766086e8@gmail.com> In-Reply-To: <20240226-hdc3020-pm-v2-0-cec6766086e8@gmail.com> To: Jonathan Cameron , Lars-Peter Clausen , Li peiyu <579lpy@gmail.com>, Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: Jonathan Cameron , linux-kernel@vger.kernel.org, linux-iio@vger.kernel.org, devicetree@vger.kernel.org, Javier Carrasco X-Mailer: b4 0.14-dev X-Developer-Signature: v=1; a=ed25519-sha256; t=1708982756; l=1261; i=javier.carrasco.cruz@gmail.com; s=20230509; h=from:subject:message-id; bh=plh10VuMojhQ7wzSifZveM3iRuWPqiS+3GR/CvVqCLs=; b=9SlNqWHXPe8gZiGxzTnvxP1t9rXDzpK4ZkSCDpUJuK/rEz6XW+MjTwUjiLJodTrvCOAYagqLI 62PvWnClLJgAz033D7FPtwe+AzbpuZ4ieEo2ZUZRu7WTxQFVnpi7ylw X-Developer-Key: i=javier.carrasco.cruz@gmail.com; a=ed25519; pk=tIGJV7M+tCizagNijF0eGMBGcOsPD+0cWGfKjl4h6K8= X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1791998365746066975 X-GMAIL-MSGID: 1791998365746066975 The HDC3020 provides an active low reset signal that is still not described in the bindings. Add reset-gpios to the bindings and the example. Signed-off-by: Javier Carrasco --- Documentation/devicetree/bindings/iio/humidity/ti,hdc3020.yaml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Documentation/devicetree/bindings/iio/humidity/ti,hdc3020.yaml b/Documentation/devicetree/bindings/iio/humidity/ti,hdc3020.yaml index 8b5dedd1a598..b375d307513f 100644 --- a/Documentation/devicetree/bindings/iio/humidity/ti,hdc3020.yaml +++ b/Documentation/devicetree/bindings/iio/humidity/ti,hdc3020.yaml @@ -34,6 +34,9 @@ properties: reg: maxItems: 1 + reset-gpios: + maxItems: 1 + required: - compatible - reg @@ -43,6 +46,7 @@ additionalProperties: false examples: - | + #include #include i2c { #address-cells = <1>; @@ -54,5 +58,6 @@ examples: vdd-supply = <&vcc_3v3>; interrupt-parent = <&gpio3>; interrupts = <23 IRQ_TYPE_EDGE_RISING>; + reset-gpios = <&gpio3 27 GPIO_ACTIVE_LOW>; }; }; From patchwork Mon Feb 26 21:25:57 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Javier Carrasco X-Patchwork-Id: 206932 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7300:a81b:b0:108:e6aa:91d0 with SMTP id bq27csp2343487dyb; Mon, 26 Feb 2024 13:29:21 -0800 (PST) X-Forwarded-Encrypted: i=3; AJvYcCUJoMWGXcwU5klN0ak1W+d/pzgxqWCOwgu6Zd7N0SfjjFrfAA55PP6rpfb3qrhHwooJ6Iez7BdSkirVETx2Ry6zAAzx4A== X-Google-Smtp-Source: AGHT+IEJxcFmFE38c4TKCXaBovd8wQS5mc2TDhFYiFVLhdilIKXLjqpgj7v8u2fufH4PblDhiQgP X-Received: by 2002:a92:cf0b:0:b0:365:1578:8c17 with SMTP id c11-20020a92cf0b000000b0036515788c17mr7652695ilo.2.1708982961408; Mon, 26 Feb 2024 13:29:21 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1708982961; cv=pass; d=google.com; s=arc-20160816; b=XRPfc6xANIdQiQ8lhTatsC9NobY6dl+41fthmxYhYLMtgXRxhLARwFL6QkWgLSjoev i3FGnUfyZlbPHk03pQIWVhz2NdOTIm2OYxhunsnCjKgtkhhLe+TPHrXwkza655IQfr/+ sMLwGew2ZAYCnC7067Nnh1JfqDAjDgAycf1GCaUfeYIF0MVCYzGLKhlDHQNwMsdaOrbY XT85hyqehHV7bq+Qy3iIQGpgveNUrs3vAJGpveaghE62Kjsru0yn8P+357Ohi0qIG83e NDgKBrf5geYR6GFE2aCZup4RoByUnaO0Ux/guVqpSJ4BvjktwGdBz5d5a9P9uXXkI6mR IYFg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:list-unsubscribe:list-subscribe:list-id:precedence :subject:date:from:dkim-signature; bh=144mFCoAmLnYhpxBxU841lMdT4yO+1U9AQuLuH2HZyw=; fh=EsGs0VpT6oMjE94YEtbmQSRUfAUwPm4R9qm0NhCntyE=; b=qO41qOp36hWMw0jT9+4v8PnhqZWz9lF3vkxUI0o/Mqhb1vgfD+IjZFNLIpVVW2rdZm p/ioom1Nkis93y1EXxycRYSCCkk3wJJTIuwIbr41cyAxRgsFDjGBSkQD1YOdKcgnVNxj xs+eYXnqs0yBEEG9GGPYQcLmWTY4SH6itbaBMrlMJgtLr6kPl3Bq+PqOV6hjZgsgm0Ry vcgh6VGYC/27gVmjAIXSAirjOrhoIe6GIh6hGtKqdjPzb2ZvjquuboiUjXxo5qQ91s4X 8TMCs+SbqaqN86liSbrVRo2w7m2X9Gc4Vb98oZpbllzdJiLP9suNLmSx9DjKTfYyLWuV SqYQ==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b="go/dzltW"; arc=pass (i=1 spf=pass spfdomain=gmail.com dkim=pass dkdomain=gmail.com dmarc=pass fromdomain=gmail.com); spf=pass (google.com: domain of linux-kernel+bounces-82337-ouuuleilei=gmail.com@vger.kernel.org designates 147.75.48.161 as permitted sender) smtp.mailfrom="linux-kernel+bounces-82337-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from sy.mirrors.kernel.org (sy.mirrors.kernel.org. [147.75.48.161]) by mx.google.com with ESMTPS id z17-20020a63c051000000b005dc431481absi4256428pgi.672.2024.02.26.13.29.20 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 26 Feb 2024 13:29:21 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-82337-ouuuleilei=gmail.com@vger.kernel.org designates 147.75.48.161 as permitted sender) client-ip=147.75.48.161; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b="go/dzltW"; arc=pass (i=1 spf=pass spfdomain=gmail.com dkim=pass dkdomain=gmail.com dmarc=pass fromdomain=gmail.com); spf=pass (google.com: domain of linux-kernel+bounces-82337-ouuuleilei=gmail.com@vger.kernel.org designates 147.75.48.161 as permitted sender) smtp.mailfrom="linux-kernel+bounces-82337-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com 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 sy.mirrors.kernel.org (Postfix) with ESMTPS id A2B11B23A2B for ; Mon, 26 Feb 2024 21:27:09 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 8E4D4132C24; Mon, 26 Feb 2024 21:26:09 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="go/dzltW" Received: from mail-lf1-f48.google.com (mail-lf1-f48.google.com [209.85.167.48]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CFB71132467; Mon, 26 Feb 2024 21:26:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.167.48 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708982766; cv=none; b=VyKpYHJj0TxFbrzpBWYuCPTzq7dtQSJFdkgPd2Ini6GRcH4vxdlzEb6nCcnphocf4zexWy1axY7nLEuxcPMGi2I7BhAcA21yHorrEkRtH81BALVy0VzEtAksZkbr+yy7ic02NgLHucQIMeKI23hz1RJrEqCrBT/3wFtsCCd9dAo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708982766; c=relaxed/simple; bh=+aZznYEEJnxpn3Hfp1CaaYgaYW/C+miPXfNVer03ZgQ=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=sznuEA5EDp/NsBYL1M+rA7hheHCfRdNXUufBQd5tM+Yfxl2X08Dv/AOMY63DMi5MEsbTcKcBNDXPX8CJe880emPwIztkNHiP2V7HiiK1ufxEWB9znypMwu3tvG9KArByKUqp29p+wufsPLLsRN8ty/2mI4SVWTqeOvRO5jk5cy4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=go/dzltW; arc=none smtp.client-ip=209.85.167.48 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-lf1-f48.google.com with SMTP id 2adb3069b0e04-512f6f263a6so1609308e87.2; Mon, 26 Feb 2024 13:26:04 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1708982762; x=1709587562; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=144mFCoAmLnYhpxBxU841lMdT4yO+1U9AQuLuH2HZyw=; b=go/dzltWJvq453cg6xIphjT9bHHy1Tm4rfMV5KKuNt+xkMir0bfn7NirrZ0tWqRO9B Prt4wPjurTd7oA1r0tBGifpmnA8w9hKiydBOtTPeHZvDJKoy0fohSIH2jjquZfTCD6vT 1EVqQWLf35J4lcs/SRiDRP2njOXnwHHubxKn+5SHrOzJHTP7jUze06HbGLbyPPNBiaDn /NWUVaPZoZWMIQhiTj5nUu/pPWFvkTJdxUwUz1LfSTACWTCBzgA9m2cUc/4y01c2ceC4 APkvW0qZ/HEvUTpcNzxB74b650B9cj+pofZ/qTtAbbEqS/1/KvzjaATKmBWRBqzzSN0M UsEQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1708982762; x=1709587562; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=144mFCoAmLnYhpxBxU841lMdT4yO+1U9AQuLuH2HZyw=; b=Zg8s+hfaC6fNXHjh4jvzcTWkpYTUAHJxuOiaHYavATpZrN+ZD0chEoH3kAEoaTy2Qb 1Sq+EvLegXZq8ZLRbvpsLJYcGdMrQ7qO09+c8lkXvsQaKztEvgPm7L6cX1AgaHD82+zK YuN1jqEztXPSvEVGuA+Uq+v01Fnag9JHdwNuvwnmQuz0s+9qittNb7WOZ69LDUJ4PGgD wWI813t0W2Z1d/jgqW0CzJFlIr1B6eM3HMGxtYUns3YTedcjdwZXjiaiJi5jnL9PtUo/ LcaO9m7OafEzgY20U9SGgLpk385zg8AUShogEQaqCmKww0A92RUBOY4SzpgHuzsBYohf +9zw== X-Forwarded-Encrypted: i=1; AJvYcCUpz8TWxSC/0CvZ6R61PIAf1Id7TepTNJy1C4aGPQCBpNeSkm5+zSnWbinQGMBs86DSdDNJ1HfyLJZsye3PaB6QZbK4O56pvy5uPHv7VXvF4wAEsOXcVByM8cOsioorpL03GNGjIlJsyfgqvf9+bdiZITXWyfM/204gwvCKcWJk99cGJQ== X-Gm-Message-State: AOJu0Yy/izbCtsc7pJ+n9PD1IJ57cdrw9oi9q8GANjnYDMDSW05KgpqR xhUu60lVVuC017QV9HWkhvgcv+1yFlU2qMRFgV4nWRzbXNQhFgzbg8+phF1tQWw= X-Received: by 2002:ac2:4ecf:0:b0:512:d4fb:14da with SMTP id p15-20020ac24ecf000000b00512d4fb14damr4799760lfr.44.1708982762327; Mon, 26 Feb 2024 13:26:02 -0800 (PST) Received: from [127.0.1.1] (2a02-8389-41cf-e200-06e1-5ae1-dc32-d149.cable.dynamic.v6.surfer.at. [2a02:8389:41cf:e200:6e1:5ae1:dc32:d149]) by smtp.gmail.com with ESMTPSA id uz28-20020a170907119c00b00a3df13a4fe0sm122386ejb.15.2024.02.26.13.26.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 26 Feb 2024 13:26:01 -0800 (PST) From: Javier Carrasco Date: Mon, 26 Feb 2024 22:25:57 +0100 Subject: [PATCH v2 3/3] iio: humidity: hdc3020: add reset management Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20240226-hdc3020-pm-v2-3-cec6766086e8@gmail.com> References: <20240226-hdc3020-pm-v2-0-cec6766086e8@gmail.com> In-Reply-To: <20240226-hdc3020-pm-v2-0-cec6766086e8@gmail.com> To: Jonathan Cameron , Lars-Peter Clausen , Li peiyu <579lpy@gmail.com>, Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: Jonathan Cameron , linux-kernel@vger.kernel.org, linux-iio@vger.kernel.org, devicetree@vger.kernel.org, Javier Carrasco X-Mailer: b4 0.14-dev X-Developer-Signature: v=1; a=ed25519-sha256; t=1708982756; l=2300; i=javier.carrasco.cruz@gmail.com; s=20230509; h=from:subject:message-id; bh=+aZznYEEJnxpn3Hfp1CaaYgaYW/C+miPXfNVer03ZgQ=; b=CZMSC7gN5LcIOZou5QfuhlYuJ+aLxLzWNTgKdYnWvtbl6n34l0Vn2Iy1YDlOp497+AzeeU5Wa ppLyaUJsXAsDcbgbfAKxlBH9dEMdJQZAFrJ8mvyxhIC60dUF52FpUgX X-Developer-Key: i=javier.carrasco.cruz@gmail.com; a=ed25519; pk=tIGJV7M+tCizagNijF0eGMBGcOsPD+0cWGfKjl4h6K8= X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1791998517685136378 X-GMAIL-MSGID: 1791998517685136378 The HDC3020 provides an active low reset signal that must be handled if connected. Asserting this signal turns the device into Trigger-on Demand measurement mode, reducing its power consumption when no measurements are required like in low-power modes. According to the datasheet, the longest "Reset Ready" is 3 ms, which is only taken into account if the reset signal is defined. Signed-off-by: Javier Carrasco --- drivers/iio/humidity/hdc3020.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/drivers/iio/humidity/hdc3020.c b/drivers/iio/humidity/hdc3020.c index 6848be41e1c8..aa477b5e583e 100644 --- a/drivers/iio/humidity/hdc3020.c +++ b/drivers/iio/humidity/hdc3020.c @@ -15,6 +15,7 @@ #include #include #include +#include #include #include #include @@ -70,6 +71,7 @@ struct hdc3020_data { struct i2c_client *client; + struct gpio_desc *reset_gpio; struct regulator *vdd_supply; /* * Ensure that the sensor configuration (currently only heater is @@ -558,6 +560,9 @@ static int hdc3020_power_off(struct hdc3020_data *data) { hdc3020_exec_cmd(data, HDC3020_EXIT_AUTO); + if (data->reset_gpio) + gpiod_set_value_cansleep(data->reset_gpio, 1); + return regulator_disable(data->vdd_supply); } @@ -571,6 +576,11 @@ static int hdc3020_power_on(struct hdc3020_data *data) fsleep(5000); + if (data->reset_gpio) { + gpiod_set_value_cansleep(data->reset_gpio, 0); + fsleep(3000); + } + if (data->client->irq) { /* * The alert output is activated by default upon power up, @@ -627,6 +637,12 @@ static int hdc3020_probe(struct i2c_client *client) return dev_err_probe(&client->dev, PTR_ERR(data->vdd_supply), "Unable to get VDD regulator\n"); + data->reset_gpio = devm_gpiod_get_optional(&client->dev, "reset", + GPIOD_OUT_HIGH); + if (IS_ERR(data->reset_gpio)) + return dev_err_probe(&client->dev, PTR_ERR(data->reset_gpio), + "Cannot get reset GPIO\n"); + ret = hdc3020_power_on(data); if (ret) return dev_err_probe(&client->dev, ret, "Power on failed\n");