[{"id":3676602,"web_url":"http://patchwork.ozlabs.org/comment/3676602/","msgid":"<ady2pLwiNT9FffF7@monoceros>","list_archive_url":null,"date":"2026-04-13T09:35:47","subject":"Re: [PATCH v21 2/6] pwm: driver for qualcomm ipq6018 pwm block","submitter":{"id":88416,"url":"http://patchwork.ozlabs.org/api/people/88416/","name":"Uwe Kleine-König","email":"ukleinek@kernel.org"},"content":"Hello,\n\nOn Mon, Apr 06, 2026 at 10:24:39PM +0200, George Moussalem via B4 Relay wrote:\n> From: Devi Priya <quic_devipriy@quicinc.com>\n> \n> Driver for the PWM block in Qualcomm IPQ6018 line of SoCs. Based on\n> driver from downstream Codeaurora kernel tree. Removed support for older\n> (V1) variants because I have no access to that hardware.\n> \n> Tested on IPQ5018 and IPQ6010 based hardware.\n> \n> Co-developed-by: Baruch Siach <baruch.siach@siklu.com>\n> Signed-off-by: Baruch Siach <baruch.siach@siklu.com>\n> Signed-off-by: Devi Priya <quic_devipriy@quicinc.com>\n> Reviewed-by: Bjorn Andersson <andersson@kernel.org>\n> Signed-off-by: George Moussalem <george.moussalem@outlook.com>\n\nI have a few remaining nitpicks. If you're ok I'll squash the following\ndiff into this patch and apply it:\n\ndiff --git a/drivers/pwm/pwm-ipq.c b/drivers/pwm/pwm-ipq.c\nindex b79e5e457d1a..65af19ded72c 100644\n--- a/drivers/pwm/pwm-ipq.c\n+++ b/drivers/pwm/pwm-ipq.c\n@@ -2,7 +2,7 @@\n /*\n  * Copyright (c) 2016-2017, 2020 The Linux Foundation. All rights reserved.\n  *\n- * Hardware notes / Limitations:\n+ * Limitations:\n  * - The PWM controller has no publicly available datasheet.\n  * - Each of the four channels is programmed via two 32-bit registers\n  *   (REG0 and REG1 at 8-byte stride).\n\nThis is to make\n\n\tsed -rn '/Limitations:/,/\\*\\/?$/p' drivers/pwm/*.c\n\ndo the right thing. I know \"Limitations\" isn't a good subject for this,\nbut until I come around to pick a better marker, doing the same in all\ndrivers is good.\n\n@@ -44,13 +44,6 @@\n \n #define IPQ_PWM_REG1\t\t\t4\n #define IPQ_PWM_REG1_PRE_DIV\t\tGENMASK(15, 0)\n-\n-/*\n- * The max value specified for each field is based on the number of bits\n- * in the pwm control register for that field (16-bit)\n- */\n-#define IPQ_PWM_MAX_DIV\t\t\tFIELD_MAX(IPQ_PWM_REG0_PWM_DIV)\n-\n /*\n  * Enable bit is set to enable output toggling in pwm device.\n  * Update bit is set to trigger the change and is unset automatically\n@@ -59,6 +52,12 @@\n #define IPQ_PWM_REG1_UPDATE\t\tBIT(30)\n #define IPQ_PWM_REG1_ENABLE\t\tBIT(31)\n \n+/*\n+ * The max value specified for each field is based on the number of bits\n+ * in the pwm control register for that field (16-bit)\n+ */\n+#define IPQ_PWM_MAX_DIV\t\t\tFIELD_MAX(IPQ_PWM_REG0_PWM_DIV)\n+\n struct ipq_pwm_chip {\n \tvoid __iomem *mem;\n \tunsigned long clk_rate;\n\nThis is just about ordering definitions taken 1:1 from the manual before\ndriver specific stuff.\n\n@@ -95,6 +94,12 @@ static int ipq_pwm_apply(struct pwm_chip *chip, struct pwm_device *pwm,\n \tunsigned long val = 0;\n \tunsigned long hi_dur;\n \n+\tif (!state->enabled) {\n+\t\t/* clear IPQ_PWM_REG1_ENABLE */\n+\t\tipq_pwm_reg_write(pwm, IPQ_PWM_REG1, IPQ_PWM_REG1_UPDATE);\n+\t\treturn 0;\n+\t}\n+\n \tif (state->polarity != PWM_POLARITY_NORMAL)\n \t\treturn -EINVAL;\n \nThis ensures that the PWM can be disabled even if state->polarity is\nbogus or period and duty_cycle are out of range.\n\n@@ -102,7 +107,8 @@ static int ipq_pwm_apply(struct pwm_chip *chip, struct pwm_device *pwm,\n \t * Check the upper and lower bounds for the period as per\n \t * hardware limits\n \t */\n-\tperiod_ns = max(state->period, IPQ_PWM_MIN_PERIOD_NS);\n+\tif (state->period < IPQ_PWM_MIN_PERIOD_NS)\n+\t\treturn -ERANGE;\n \tperiod_ns = min(state->period, IPQ_PWM_MAX_PERIOD_NS);\n \tduty_ns = min(state->duty_cycle, period_ns);\n \nThis is about correctness. A driver is expected to never configure a\nhigher value than requested. (And otherwise I would have converted that\nto clamp().)\n\n@@ -134,7 +140,7 @@ static int ipq_pwm_apply(struct pwm_chip *chip, struct pwm_device *pwm,\n \n \t/* pwm duty = HI_DUR * (PRE_DIV + 1) / clk_rate */\n \thi_dur = mul_u64_u64_div_u64(duty_ns, ipq_chip->clk_rate,\n-\t\t\t\t     (u64)(pre_div + 1) * NSEC_PER_SEC);\n+\t\t\t\t     (u64)NSEC_PER_SEC * (pre_div + 1));\n \n \tval = FIELD_PREP(IPQ_PWM_REG0_HI_DURATION, hi_dur) |\n \t\tFIELD_PREP(IPQ_PWM_REG0_PWM_DIV, pwm_div);\n\nJust consistency with the period calculation\n\n@@ -144,9 +150,7 @@ static int ipq_pwm_apply(struct pwm_chip *chip, struct pwm_device *pwm,\n \tipq_pwm_reg_write(pwm, IPQ_PWM_REG1, val);\n \n \t/* PWM enable toggle needs a separate write to REG1 */\n-\tval |= IPQ_PWM_REG1_UPDATE;\n-\tif (state->enabled)\n-\t\tval |= IPQ_PWM_REG1_ENABLE;\n+\tval |= IPQ_PWM_REG1_UPDATE | IPQ_PWM_REG1_ENABLE;\n \tipq_pwm_reg_write(pwm, IPQ_PWM_REG1, val);\n \n \treturn 0;\n\nSimplification that is possible after checking for state->enabled early.\n\n@@ -174,7 +178,7 @@ static int ipq_pwm_get_state(struct pwm_chip *chip, struct pwm_device *pwm,\n \thi_dur = FIELD_GET(IPQ_PWM_REG0_HI_DURATION, reg0);\n \tpre_div = FIELD_GET(IPQ_PWM_REG1_PRE_DIV, reg1);\n \n-\teffective_div = (u64)(pre_div + 1) * (pwm_div + 1);\n+\teffective_div = (u64)(pwm_div + 1) * (pre_div + 1)\n \n \t/*\n \t * effective_div <= 0x100000000, so the multiplication doesn't overflow.\n\nAgain consistency.\n\nA nice followup for this patch would be the conversion to the waveform\nAPI; just in case you're still motivated to work on this driver :-)\n\nBest regards\nUwe","headers":{"Return-Path":"\n <linux-pwm+bounces-8567-incoming=patchwork.ozlabs.org@vger.kernel.org>","X-Original-To":["incoming@patchwork.ozlabs.org","linux-pwm@vger.kernel.org"],"Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=kernel.org header.i=@kernel.org header.a=rsa-sha256\n header.s=k20201202 header.b=bx+8O1xs;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=2600:3c0a:e001:db::12fc:5321; helo=sea.lore.kernel.org;\n envelope-from=linux-pwm+bounces-8567-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)","smtp.subspace.kernel.org;\n\tdkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org\n header.b=\"bx+8O1xs\"","smtp.subspace.kernel.org;\n arc=none smtp.client-ip=10.30.226.201"],"Received":["from sea.lore.kernel.org (sea.lore.kernel.org\n [IPv6:2600:3c0a:e001:db::12fc:5321])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fvMlD5sYkz1yDF\n\tfor <incoming@patchwork.ozlabs.org>; Mon, 13 Apr 2026 19:37:44 +1000 (AEST)","from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby sea.lore.kernel.org (Postfix) with ESMTP id 74B1D3028360\n\tfor <incoming@patchwork.ozlabs.org>; Mon, 13 Apr 2026 09:35:50 +0000 (UTC)","from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 0AA4A3AE1BD;\n\tMon, 13 Apr 2026 09:35:50 +0000 (UTC)","from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org\n [10.30.226.201])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby smtp.subspace.kernel.org (Postfix) with ESMTPS id DAC6E21B185;\n\tMon, 13 Apr 2026 09:35:49 +0000 (UTC)","by smtp.kernel.org (Postfix) with ESMTPSA id 6266CC116C6;\n\tMon, 13 Apr 2026 09:35:49 +0000 (UTC)"],"ARC-Seal":"i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1776072949; cv=none;\n b=quyU+q+nCh7qwH9jhd7+ElU7n4FB7Oi9/FBnZ/wJYp+jnZDfOBKsaJupr677CZulqb9rfQharxEd92wPySM1H4YZkFJ7av277cApI/4olr6zv559c0C9LRp9NdLi+ng1msfjhjgdoGzK1l3TC3fAUZtGo6q/LzRFZghOLzub1dI=","ARC-Message-Signature":"i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1776072949; c=relaxed/simple;\n\tbh=qiSFmjvv5lf+NtOOLOQm0uLeRuLoVxlpeEyskUaC3G4=;\n\th=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version:\n\t Content-Type:Content-Disposition:In-Reply-To;\n b=jQKhsQj7/0pfjc90bL4A5lrQbJ6gs1/sy8B90CZmbZU/DoG2R3MD3tHP3yMFaD6wwei37b8tOkPCwxudhfMmP8aqpYGdeWY3Iewtj6CbZDMbwNgi7/BNlng/bffHK/wvxXPf75xn7ccAiza9Kcm06CRGLwL01vmRnwKs0l0ZcJw=","ARC-Authentication-Results":"i=1; smtp.subspace.kernel.org;\n dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org\n header.b=bx+8O1xs; arc=none smtp.client-ip=10.30.226.201","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;\n\ts=k20201202; t=1776072949;\n\tbh=qiSFmjvv5lf+NtOOLOQm0uLeRuLoVxlpeEyskUaC3G4=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=bx+8O1xsLMg1XvBrUY7YbsV+O9u6e1FnpGe3gUhAwPIlmYzi5Hmc2Y1+Jj0NMfA8M\n\t fygbPc3FZs8fQtu/IOb9+z6G8NYERzukKabqj2bp49YuZaxJ1PlM6LzLvwK+ep/CHL\n\t 1Z/FjbieYQp2GzajCnSW/GLW1NXyZhTiiZzMnZicPhXKvqmc1ctpcSGyggNuVPhRcL\n\t eK7OL9M0tpVt/+QDLeK7HdmyDFaT7t0WQoQufgqVLCD6YiQULqN08AEWQ3EH6iZfOA\n\t K6Udbe/py48uw7F+jc4JdXKbGkgvdnC/UCN/7G/DxUsrctbI9mVDz2yO2o73wNnoCk\n\t pEMqkqVqKfECw==","Date":"Mon, 13 Apr 2026 11:35:47 +0200","From":"Uwe =?utf-8?q?Kleine-K=C3=B6nig?= <ukleinek@kernel.org>","To":"george.moussalem@outlook.com","Cc":"Rob Herring <robh@kernel.org>,\n\tKrzysztof Kozlowski <krzk+dt@kernel.org>, Conor Dooley <conor+dt@kernel.org>,\n\tBjorn Andersson <andersson@kernel.org>,\n Konrad Dybcio <konradybcio@kernel.org>,\n\tlinux-arm-msm@vger.kernel.org, linux-pwm@vger.kernel.org,\n devicetree@vger.kernel.org,\n\tlinux-kernel@vger.kernel.org, Devi Priya <quic_devipriy@quicinc.com>","Subject":"Re: [PATCH v21 2/6] pwm: driver for qualcomm ipq6018 pwm block","Message-ID":"<ady2pLwiNT9FffF7@monoceros>","References":"<20260406-ipq-pwm-v21-0-6ed1e868e4c2@outlook.com>\n <20260406-ipq-pwm-v21-2-6ed1e868e4c2@outlook.com>","Precedence":"bulk","X-Mailing-List":"linux-pwm@vger.kernel.org","List-Id":"<linux-pwm.vger.kernel.org>","List-Subscribe":"<mailto:linux-pwm+subscribe@vger.kernel.org>","List-Unsubscribe":"<mailto:linux-pwm+unsubscribe@vger.kernel.org>","MIME-Version":"1.0","Content-Type":"multipart/signed; micalg=pgp-sha512;\n\tprotocol=\"application/pgp-signature\"; boundary=\"5u5li7rew6iszz66\"","Content-Disposition":"inline","In-Reply-To":"<20260406-ipq-pwm-v21-2-6ed1e868e4c2@outlook.com>"}},{"id":3676887,"web_url":"http://patchwork.ozlabs.org/comment/3676887/","msgid":"<DS7PR19MB888389B41E784995F064EE0B9D242@DS7PR19MB8883.namprd19.prod.outlook.com>","list_archive_url":null,"date":"2026-04-13T19:17:18","subject":"Re: [PATCH v21 2/6] pwm: driver for qualcomm ipq6018 pwm block","submitter":{"id":90319,"url":"http://patchwork.ozlabs.org/api/people/90319/","name":"George Moussalem","email":"george.moussalem@outlook.com"},"content":"Hello\n\nOn 4/13/2026 1:35 PM, Uwe Kleine-König wrote:\n> Hello,\n> \n> On Mon, Apr 06, 2026 at 10:24:39PM +0200, George Moussalem via B4 Relay wrote:\n>> From: Devi Priya <quic_devipriy@quicinc.com>\n>>\n>> Driver for the PWM block in Qualcomm IPQ6018 line of SoCs. Based on\n>> driver from downstream Codeaurora kernel tree. Removed support for older\n>> (V1) variants because I have no access to that hardware.\n>>\n>> Tested on IPQ5018 and IPQ6010 based hardware.\n>>\n>> Co-developed-by: Baruch Siach <baruch.siach@siklu.com>\n>> Signed-off-by: Baruch Siach <baruch.siach@siklu.com>\n>> Signed-off-by: Devi Priya <quic_devipriy@quicinc.com>\n>> Reviewed-by: Bjorn Andersson <andersson@kernel.org>\n>> Signed-off-by: George Moussalem <george.moussalem@outlook.com>\n> \n> I have a few remaining nitpicks. If you're ok I'll squash the following\n> diff into this patch and apply it:\n\nJust applied it to my own branch, all okay from my side. Thanks for your\nguidance and support!\n\n> \n> diff --git a/drivers/pwm/pwm-ipq.c b/drivers/pwm/pwm-ipq.c\n> index b79e5e457d1a..65af19ded72c 100644\n> --- a/drivers/pwm/pwm-ipq.c\n> +++ b/drivers/pwm/pwm-ipq.c\n> @@ -2,7 +2,7 @@\n>  /*\n>   * Copyright (c) 2016-2017, 2020 The Linux Foundation. All rights reserved.\n>   *\n> - * Hardware notes / Limitations:\n> + * Limitations:\n>   * - The PWM controller has no publicly available datasheet.\n>   * - Each of the four channels is programmed via two 32-bit registers\n>   *   (REG0 and REG1 at 8-byte stride).\n> \n> This is to make\n> \n> \tsed -rn '/Limitations:/,/\\*\\/?$/p' drivers/pwm/*.c\n> \n> do the right thing. I know \"Limitations\" isn't a good subject for this,\n> but until I come around to pick a better marker, doing the same in all\n> drivers is good.\n> \n> @@ -44,13 +44,6 @@\n>  \n>  #define IPQ_PWM_REG1\t\t\t4\n>  #define IPQ_PWM_REG1_PRE_DIV\t\tGENMASK(15, 0)\n> -\n> -/*\n> - * The max value specified for each field is based on the number of bits\n> - * in the pwm control register for that field (16-bit)\n> - */\n> -#define IPQ_PWM_MAX_DIV\t\t\tFIELD_MAX(IPQ_PWM_REG0_PWM_DIV)\n> -\n>  /*\n>   * Enable bit is set to enable output toggling in pwm device.\n>   * Update bit is set to trigger the change and is unset automatically\n> @@ -59,6 +52,12 @@\n>  #define IPQ_PWM_REG1_UPDATE\t\tBIT(30)\n>  #define IPQ_PWM_REG1_ENABLE\t\tBIT(31)\n>  \n> +/*\n> + * The max value specified for each field is based on the number of bits\n> + * in the pwm control register for that field (16-bit)\n> + */\n> +#define IPQ_PWM_MAX_DIV\t\t\tFIELD_MAX(IPQ_PWM_REG0_PWM_DIV)\n> +\n>  struct ipq_pwm_chip {\n>  \tvoid __iomem *mem;\n>  \tunsigned long clk_rate;\n> \n> This is just about ordering definitions taken 1:1 from the manual before\n> driver specific stuff.\n> \n> @@ -95,6 +94,12 @@ static int ipq_pwm_apply(struct pwm_chip *chip, struct pwm_device *pwm,\n>  \tunsigned long val = 0;\n>  \tunsigned long hi_dur;\n>  \n> +\tif (!state->enabled) {\n> +\t\t/* clear IPQ_PWM_REG1_ENABLE */\n> +\t\tipq_pwm_reg_write(pwm, IPQ_PWM_REG1, IPQ_PWM_REG1_UPDATE);\n> +\t\treturn 0;\n> +\t}\n> +\n>  \tif (state->polarity != PWM_POLARITY_NORMAL)\n>  \t\treturn -EINVAL;\n>  \n> This ensures that the PWM can be disabled even if state->polarity is\n> bogus or period and duty_cycle are out of range.\n> \n> @@ -102,7 +107,8 @@ static int ipq_pwm_apply(struct pwm_chip *chip, struct pwm_device *pwm,\n>  \t * Check the upper and lower bounds for the period as per\n>  \t * hardware limits\n>  \t */\n> -\tperiod_ns = max(state->period, IPQ_PWM_MIN_PERIOD_NS);\n> +\tif (state->period < IPQ_PWM_MIN_PERIOD_NS)\n> +\t\treturn -ERANGE;\n>  \tperiod_ns = min(state->period, IPQ_PWM_MAX_PERIOD_NS);\n>  \tduty_ns = min(state->duty_cycle, period_ns);\n>  \n> This is about correctness. A driver is expected to never configure a\n> higher value than requested. (And otherwise I would have converted that\n> to clamp().)\n> \n> @@ -134,7 +140,7 @@ static int ipq_pwm_apply(struct pwm_chip *chip, struct pwm_device *pwm,\n>  \n>  \t/* pwm duty = HI_DUR * (PRE_DIV + 1) / clk_rate */\n>  \thi_dur = mul_u64_u64_div_u64(duty_ns, ipq_chip->clk_rate,\n> -\t\t\t\t     (u64)(pre_div + 1) * NSEC_PER_SEC);\n> +\t\t\t\t     (u64)NSEC_PER_SEC * (pre_div + 1));\n>  \n>  \tval = FIELD_PREP(IPQ_PWM_REG0_HI_DURATION, hi_dur) |\n>  \t\tFIELD_PREP(IPQ_PWM_REG0_PWM_DIV, pwm_div);\n> \n> Just consistency with the period calculation\n> \n> @@ -144,9 +150,7 @@ static int ipq_pwm_apply(struct pwm_chip *chip, struct pwm_device *pwm,\n>  \tipq_pwm_reg_write(pwm, IPQ_PWM_REG1, val);\n>  \n>  \t/* PWM enable toggle needs a separate write to REG1 */\n> -\tval |= IPQ_PWM_REG1_UPDATE;\n> -\tif (state->enabled)\n> -\t\tval |= IPQ_PWM_REG1_ENABLE;\n> +\tval |= IPQ_PWM_REG1_UPDATE | IPQ_PWM_REG1_ENABLE;\n>  \tipq_pwm_reg_write(pwm, IPQ_PWM_REG1, val);\n>  \n>  \treturn 0;\n> \n> Simplification that is possible after checking for state->enabled early.\n> \n> @@ -174,7 +178,7 @@ static int ipq_pwm_get_state(struct pwm_chip *chip, struct pwm_device *pwm,\n>  \thi_dur = FIELD_GET(IPQ_PWM_REG0_HI_DURATION, reg0);\n>  \tpre_div = FIELD_GET(IPQ_PWM_REG1_PRE_DIV, reg1);\n>  \n> -\teffective_div = (u64)(pre_div + 1) * (pwm_div + 1);\n> +\teffective_div = (u64)(pwm_div + 1) * (pre_div + 1)\n>  \n>  \t/*\n>  \t * effective_div <= 0x100000000, so the multiplication doesn't overflow.\n> \n> Again consistency.\n> \n> A nice followup for this patch would be the conversion to the waveform\n> API; just in case you're still motivated to work on this driver :-)\n> \n> Best regards\n> Uwe\n\nBest regards,\nGeorge","headers":{"Return-Path":"\n <linux-pwm+bounces-8570-incoming=patchwork.ozlabs.org@vger.kernel.org>","X-Original-To":["incoming@patchwork.ozlabs.org","linux-pwm@vger.kernel.org"],"Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=outlook.com header.i=@outlook.com header.a=rsa-sha256\n header.s=selector1 header.b=tIlyN+K1;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=172.232.135.74; helo=sto.lore.kernel.org;\n envelope-from=linux-pwm+bounces-8570-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)","smtp.subspace.kernel.org;\n\tdkim=pass (2048-bit key) header.d=outlook.com header.i=@outlook.com\n header.b=\"tIlyN+K1\"","smtp.subspace.kernel.org;\n arc=fail smtp.client-ip=52.103.12.39","smtp.subspace.kernel.org;\n dmarc=pass (p=none dis=none) header.from=outlook.com","smtp.subspace.kernel.org;\n spf=pass smtp.mailfrom=outlook.com"],"Received":["from sto.lore.kernel.org (sto.lore.kernel.org [172.232.135.74])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fvccG0v6pz1yDG\n\tfor <incoming@patchwork.ozlabs.org>; Tue, 14 Apr 2026 05:17:34 +1000 (AEST)","from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby sto.lore.kernel.org (Postfix) with ESMTP id 340A7301818A\n\tfor <incoming@patchwork.ozlabs.org>; Mon, 13 Apr 2026 19:17:31 +0000 (UTC)","from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 4ADB63B8935;\n\tMon, 13 Apr 2026 19:17:30 +0000 (UTC)","from BN8PR05CU002.outbound.protection.outlook.com\n (mail-eastus2azolkn19011039.outbound.protection.outlook.com [52.103.12.39])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby smtp.subspace.kernel.org (Postfix) with ESMTPS id BFA2937EFFA;\n\tMon, 13 Apr 2026 19:17:28 +0000 (UTC)","from DS7PR19MB8883.namprd19.prod.outlook.com (2603:10b6:8:253::16)\n by SA1PR19MB5641.namprd19.prod.outlook.com (2603:10b6:806:239::6) with\n Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9769.48; Mon, 13 Apr\n 2026 19:17:26 +0000","from DS7PR19MB8883.namprd19.prod.outlook.com\n ([fe80::5880:19f:c819:c921]) by DS7PR19MB8883.namprd19.prod.outlook.com\n ([fe80::5880:19f:c819:c921%4]) with mapi id 15.20.9769.046; Mon, 13 Apr 2026\n 19:17:25 +0000"],"ARC-Seal":["i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1776107850; cv=fail;\n b=qVmqjxgb3B1PsMcI4jn0LhLQ1MTEZ5QscfqYvJlYJps2e5y/uESGX0nceBrieu/UxXXdDBZfu5Gkb7H7jGfyyW1M3uEfDuyL6a8o7vNxHcqCV8jxMUGquCVeYyKNCCuXoIBkLgzzqr5R6u3V8Trkxb3FQ1vAA9amalq6RHSCZ7Y=","i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;\n b=dd7TQsmePRdkPIx2/Pz/WPKyPY4bi5yZSpGs7pk8DCtf8JMNctWbbbyWINgvH9DzZIidofMLXFRNK8z6lTdRMwyN7LhpzlNsNnq3xqMlaH2Zram60W6Wku8XH/qxU5GUTSUy35jq2GgBAB4Wibp8oVvc4zmoRn5XAOZBCWByBBqeFrErj74hP+c9NstNL7Dpz31rV2krpG/otx0MWcsx3NS20o8fgVWJuP6zEDEIXnH6Wp2FdsJxHVf8CMTGuXmFtpT5ErARmFFVal0SErVYXbqd01Y0gXoXwZo8jFRcsPF7DY+7PwW6mZ2LplebLIfDseq8eQ0UZT1o12xb1ow3KQ=="],"ARC-Message-Signature":["i=2; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1776107850; c=relaxed/simple;\n\tbh=ffd2xjEirb08z5miGr21BG8z8Y1JAYm1onJNK36zwy0=;\n\th=Message-ID:Date:Subject:To:Cc:References:From:In-Reply-To:\n\t Content-Type:MIME-Version;\n b=oN0stfNPo1drPtCI7SccmCYUi5lVA/xq9/uP2y6uUYaTWxLgpTuHANRm+Q3nQnrO1V2F8bz8S0quixArdpOp5QSeu1RKdbJ6StVN3dkJwDoHxU+Ymz8fg+zmCVcKVMBhnWwGBhq8u9HwzVyjCVuuPw3g0UhP8fEKQSyVMvNNrcg=","i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n s=arcselector10001;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;\n bh=Ax2D9a0izlfOTkUcjxnLUcuWwxXsEtMXjIMG4mSvCpg=;\n b=UKG0ZqYqk64Yp+7QGxUaBhUsaWS9itMnRwrJUi5qoK6LUt1ES8j8b0I0tg6jg5D9Z1orMbjmfWRz6Vfoo0LHtfStb/7f+Y/KdOsZrcON3FCKZBfAHrp3Bdvpz1j8TorBUqTOFat32e/y3P5/oF8GdoPDw4lLTpQbVG2P4KTgr3r7JkxNMXq6gk8YzYPdNNi+1VUJp785d2a0PqZEZ1vC/Py6IWCy3nwC8d6QyhRqK1NFakOTKO8WR+6oDcEC1hoeaQYZxQmkZG8VQ3T8wBm1/3pj4JsIPLTkN3zprPHqqgqKmlOOHNcT5o2mWEm+KZae1U4qQXXf8+pxAMjvvxSksQ=="],"ARC-Authentication-Results":["i=2; smtp.subspace.kernel.org;\n dmarc=pass (p=none dis=none) header.from=outlook.com;\n spf=pass smtp.mailfrom=outlook.com;\n dkim=pass (2048-bit key) header.d=outlook.com header.i=@outlook.com\n header.b=tIlyN+K1; arc=fail smtp.client-ip=52.103.12.39","i=1; mx.microsoft.com 1; spf=none; dmarc=none;\n dkim=none; arc=none"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=outlook.com;\n s=selector1;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=Ax2D9a0izlfOTkUcjxnLUcuWwxXsEtMXjIMG4mSvCpg=;\n b=tIlyN+K1wi4VtIlFhLpfWtn3Q+rwcum/RZUCtnQPMsBYuGMucIzzR0tBRfYtC0cqP+SZXS7N+2MhD/WjIXl8H6kXQtx0JuZdbV82EVMoY3VjqnYQaN2qyHdNwstLcnuni2HrISgfhxkgRxx5Cr0oV+JGywziJupo7p381R2DaBGJ/qJLizE0Rlhh1WgT3RdbuC2OgSFSBI9G7Z7JZ4TIDwq5OJOr2E90vmw8XIullK4a8ZtqV2D/0Cswcc1t7Ji1KXfrQPVB1sHLNvkeMozDXlrlJaxGYiZ04LWTsdAtoFNQgNORJX18PSF0VLmnd4+gM/E8v6t8a1/wwVpKDWH0/w==","Message-ID":"\n <DS7PR19MB888389B41E784995F064EE0B9D242@DS7PR19MB8883.namprd19.prod.outlook.com>","Date":"Mon, 13 Apr 2026 23:17:18 +0400","User-Agent":"Mozilla Thunderbird","Subject":"Re: [PATCH v21 2/6] pwm: driver for qualcomm ipq6018 pwm block","To":"=?utf-8?q?Uwe_Kleine-K=C3=B6nig?= <ukleinek@kernel.org>","Cc":"Rob Herring <robh@kernel.org>, Krzysztof Kozlowski <krzk+dt@kernel.org>,\n Conor Dooley <conor+dt@kernel.org>, Bjorn Andersson <andersson@kernel.org>,\n Konrad Dybcio <konradybcio@kernel.org>, linux-arm-msm@vger.kernel.org,\n linux-pwm@vger.kernel.org, devicetree@vger.kernel.org,\n linux-kernel@vger.kernel.org, Devi Priya <quic_devipriy@quicinc.com>","References":"<20260406-ipq-pwm-v21-0-6ed1e868e4c2@outlook.com>\n <20260406-ipq-pwm-v21-2-6ed1e868e4c2@outlook.com>\n <ady2pLwiNT9FffF7@monoceros>","Content-Language":"en-US","From":"George Moussalem <george.moussalem@outlook.com>","In-Reply-To":"<ady2pLwiNT9FffF7@monoceros>","Content-Type":"text/plain; charset=UTF-8","Content-Transfer-Encoding":"8bit","X-ClientProxiedBy":"MR2P264CA0176.FRAP264.PROD.OUTLOOK.COM (2603:10a6:501::15)\n To DS7PR19MB8883.namprd19.prod.outlook.com (2603:10b6:8:253::16)","X-Microsoft-Original-Message-ID":"\n <adf45283-7255-4348-9722-fe7b3c0120ad@outlook.com>","Precedence":"bulk","X-Mailing-List":"linux-pwm@vger.kernel.org","List-Id":"<linux-pwm.vger.kernel.org>","List-Subscribe":"<mailto:linux-pwm+subscribe@vger.kernel.org>","List-Unsubscribe":"<mailto:linux-pwm+unsubscribe@vger.kernel.org>","MIME-Version":"1.0","X-MS-Exchange-MessageSentRepresentingType":"1","X-MS-PublicTrafficType":"Email","X-MS-TrafficTypeDiagnostic":"DS7PR19MB8883:EE_|SA1PR19MB5641:EE_","X-MS-Office365-Filtering-Correlation-Id":"b8a0cdc9-6f2c-42f1-91d0-08de99914b1d","X-Microsoft-Antispam":"\n\tBCL:0;ARA:14566002|37011999003|5072599009|12121999013|51005399006|8060799015|41001999006|15080799012|461199028|6090799003|23021999003|19110799012|40105399003|3412199025|440099028|26121999003;","X-Microsoft-Antispam-Message-Info":"=?utf-8?q?2dA4OkjXjlLdKeisCD5NnAhZGvBMKwH?=\n\t=?utf-8?q?PTqKScf3JrvpizuAVgru05QiBoNxHcRDgMg8m83nXcEOjzL/BKSVGv/p9sAlltC6t?=\n\t=?utf-8?q?YHIaA2fJVLDsbPOZISQlnMSpF17aEGu2tIOv5Xl4OUGkh9UfBGX62A/hMyVjiGxuS?=\n\t=?utf-8?q?ewc0V+xkGsQZFLi536npyZdsHDVxWnfwmmiBDbnYN57BIGijRGnIAleA/I6WJoiyG?=\n\t=?utf-8?q?WMhDV6lZd0g8ICM6dt1CUaZEEeDr/ron7ujBPpMejhQImZ12+DtPz2Vj6/Kd4E543?=\n\t=?utf-8?q?fPBC0VYH1taGX0QP7bS5NYDC7jry6/u5LaCjkjXJ10xKJ8k/8g8l9Ugpk2ne1qIww?=\n\t=?utf-8?q?A8FkEhXZq5qkbES9ptWawdLoykyjYchR3qx8CufkVKZyqZNXk+q8DHrALa7FEE7TK?=\n\t=?utf-8?q?QBf5r9FLZhZAUYK23WPJ2z1jFWeGH5jME4jronZYfQQBFRXhvlUeAw8GD6alVxMfX?=\n\t=?utf-8?q?F4VXBRkqyooubxi/kxyCuJmiCALY1/gK0jXyoRC481a6VvET5bgLMZ/LlPExT1dcd?=\n\t=?utf-8?q?Zgo4x0CCxIPjhHxyvcO0n4OZOYMzYdzbJAezgbplSwH8qySkt3lNHJzSSylszjLoy?=\n\t=?utf-8?q?aYdeTl1AGB3Hpv3ahviZj2Mg9hiMDzO1e/RaErTHBg8hVITbWwL82TeQF98YGoCgo?=\n\t=?utf-8?q?X548eqSf6wjZHdmOBk1rTR1Gg9s0FgnfC05d66NUbuLRfgsv1nCpLNY8LXOgrFeaK?=\n\t=?utf-8?q?fpXUFOa1JqlXtmisBTG0xV/vsDTE5z06G1hmaON2wH1jCzkiNyHzqVNSymI+/p9Gc?=\n\t=?utf-8?q?18s1ePgfL9tjkroyZtmDM/1lAcMPtoP58du6oPTstk6qLBUHRUWjmTtkVZfBAsD+r?=\n\t=?utf-8?q?OBEcEtIFLXN/kMS/kayoCTfnRtzQ+Du3IOn7l07GXvMUG++qVcSVF/Ao+vCiYafut?=\n\t=?utf-8?q?FMOusuUKmhbJliZD+2lttMGnOdMkeg9tt7qgdcGKqwg6XOVQFCib6ysmsjs1Ri9Cj?=\n\t=?utf-8?q?Youp/QtGV4cAaASbyVV/kjESWy9n5QFIdFRNWpeDGlQQt74OhkLv0SuBTGbJGt+hj?=\n\t=?utf-8?q?u7SK6qYY32+O92/eL?=","X-MS-Exchange-AntiSpam-MessageData-ChunkCount":"1","X-MS-Exchange-AntiSpam-MessageData-0":"=?utf-8?q?48Xjx5kqlxzRNo8Ic2v6w6UR7O9c?=\n\t=?utf-8?q?jrKLltuWB28VvGwV2kNZ8pVP8RW+mK2Rg4lwDyzWvvG+xIr5hTwz2X6MRTDsYPIzd?=\n\t=?utf-8?q?bWwzRRVAwBfIoc4kVyBhzFGILdLSgjQt5MdZW39F7pSPh84WJ0l5JyN+Z4z557Qgt?=\n\t=?utf-8?q?cMqAw4kcgLxuN+VYhSfKjVAIYfbOS7Fwae+uJu6UrOxkE4CVkFXNqJDbILHvsXHxD?=\n\t=?utf-8?q?eVX5D6AIkOX+13Fzf8+m2sCMtwNDXH1aKozKIrRncO4NcQ25HJF7pIjatA+0nIyqg?=\n\t=?utf-8?q?sZevNZDDwzWDTlO/KX8hWyn1C9xHMC9eVYkvdLYAWmuklym72HHm5EMi/oJLdWAoX?=\n\t=?utf-8?q?N5cN3/H9+9cvevZbna8LEcIItP1vn1DWVLd7qK778CgpEieD1shfnTfbcLXaQe8x7?=\n\t=?utf-8?q?LqlofH5huDZoUSKNxl7N9p2/vG2Gm611snUdZ6AbOgJgz5BdChXGlvw4EfMM0APeL?=\n\t=?utf-8?q?CQBjBGlbZ0ZBthatPvkJuDDtK/HIzmi3JrQfaoYeklXA4SNKbynG6MFcC8x1/cAIG?=\n\t=?utf-8?q?tApoXOyhVnNHXEcAOcgecEC+8oAAH+4dh2wCEMyVXa7wZRyKS6X3OXIO3cpd+49Dd?=\n\t=?utf-8?q?J7UBV5K3+HrijpFzn/HLXgB06T9HAllLPnUynXKT1rQ9DsZyXF/esbz/Rb7U3SyiO?=\n\t=?utf-8?q?SCoCEnnUJBgQB4G4XnRmmGDPqTwCpx+4TEctkqBItx3XfSrBI8Nrlbu0elMesH1ci?=\n\t=?utf-8?q?aOPXoRzYdZjE7COH3EtEbXu1sH+YnxnnIp+NKE0sIyLXlwhezFl2ktysRmUiek35F?=\n\t=?utf-8?q?J4DngkKZycWtGt740oxlkJAi55aUljJyn0wUtrNMSG2EPUnTu5h8+GZrxSyboIaR4?=\n\t=?utf-8?q?Doz0ZI5nD8mFKVCAFqJTWHGJZSo/c8TPUnrQ/7bPFkZZvdsg74n0hvwUSBdqG9VEC?=\n\t=?utf-8?q?AiijpONheRUf7CKkydJs6R83+flmjRTiVc0FbuYvv4kyK57YpORuhqaPWdwBH2Str?=\n\t=?utf-8?q?iD/wOriPLkBiQfRvGUdXFtIP/++iiFGlBoYWzDD/Txxw/c2DzslwfnuCQOlmPILTc?=\n\t=?utf-8?q?508aqXHYb8gys/QRZH7yEuwfHJhWL32QQbGyskqdHDgVhjcxcNh6H8QS4YTi4eCem?=\n\t=?utf-8?q?E2IZEbNsqb5kGChSePjcbbUOIHp9UYyO5hHU/ZbAaVI3Ysitfp9Jigcy2qpGRsltd?=\n\t=?utf-8?q?xWd5adBfOA1v98stu4/oWUQllNogRvbaReWlfQ6LZq9C+kKHUBCxumqKBM6Kt4vA1?=\n\t=?utf-8?q?HDVfi7ILyYS52/9fqz26oe0GezPzs19egnIpsQviOD9y2Zzdlnf+KtP6Q/RjpgtO2?=\n\t=?utf-8?q?MclTck2u4VevB3lSdNW0hk/kBS3oO92t4K/5vKzsd5B8KBSs4tynWPziJrHO9YttC?=\n\t=?utf-8?q?mAHBP/6ZYNWWmw78a8X7OFQPU8ZGFH+zM1R0w=3D=3D?=","X-OriginatorOrg":"outlook.com","X-MS-Exchange-CrossTenant-Network-Message-Id":"\n b8a0cdc9-6f2c-42f1-91d0-08de99914b1d","X-MS-Exchange-CrossTenant-AuthSource":"DS7PR19MB8883.namprd19.prod.outlook.com","X-MS-Exchange-CrossTenant-AuthAs":"Internal","X-MS-Exchange-CrossTenant-OriginalArrivalTime":"13 Apr 2026 19:17:25.5527\n (UTC)","X-MS-Exchange-CrossTenant-FromEntityHeader":"Hosted","X-MS-Exchange-CrossTenant-Id":"84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa","X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg":"\n\t00000000-0000-0000-0000-000000000000","X-MS-Exchange-Transport-CrossTenantHeadersStamped":"SA1PR19MB5641"}},{"id":3676912,"web_url":"http://patchwork.ozlabs.org/comment/3676912/","msgid":"<ad1RFmg0AEb7hudQ@monoceros>","list_archive_url":null,"date":"2026-04-13T20:27:33","subject":"Re: [PATCH v21 2/6] pwm: driver for qualcomm ipq6018 pwm block","submitter":{"id":88416,"url":"http://patchwork.ozlabs.org/api/people/88416/","name":"Uwe Kleine-König","email":"ukleinek@kernel.org"},"content":"Hello George,\n\nOn Mon, Apr 13, 2026 at 11:17:18PM +0400, George Moussalem wrote:\n> On 4/13/2026 1:35 PM, Uwe Kleine-König wrote:\n> > On Mon, Apr 06, 2026 at 10:24:39PM +0200, George Moussalem via B4 Relay wrote:\n> >> From: Devi Priya <quic_devipriy@quicinc.com>\n> >>\n> >> Driver for the PWM block in Qualcomm IPQ6018 line of SoCs. Based on\n> >> driver from downstream Codeaurora kernel tree. Removed support for older\n> >> (V1) variants because I have no access to that hardware.\n> >>\n> >> Tested on IPQ5018 and IPQ6010 based hardware.\n> >>\n> >> Co-developed-by: Baruch Siach <baruch.siach@siklu.com>\n> >> Signed-off-by: Baruch Siach <baruch.siach@siklu.com>\n> >> Signed-off-by: Devi Priya <quic_devipriy@quicinc.com>\n> >> Reviewed-by: Bjorn Andersson <andersson@kernel.org>\n> >> Signed-off-by: George Moussalem <george.moussalem@outlook.com>\n> > \n> > I have a few remaining nitpicks. If you're ok I'll squash the following\n> > diff into this patch and apply it:\n> \n> Just applied it to my own branch, all okay from my side. Thanks for your\n> guidance and support!\n\nI did that and added a ; to make the compiler happy. It is now contained\nat\nhttps://git.kernel.org/pub/scm/linux/kernel/git/ukleinek/linux.git pwm/for-nexxt\nas 7.2-rc1 material. I'll push it into next after the merge window\ncloses in ~ two weeks.\n\nBest regards and thanks for work\nUwe","headers":{"Return-Path":"\n <linux-pwm+bounces-8571-incoming=patchwork.ozlabs.org@vger.kernel.org>","X-Original-To":["incoming@patchwork.ozlabs.org","linux-pwm@vger.kernel.org"],"Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=kernel.org header.i=@kernel.org header.a=rsa-sha256\n header.s=k20201202 header.b=mWzZNZY7;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=2600:3c0a:e001:db::12fc:5321; helo=sea.lore.kernel.org;\n envelope-from=linux-pwm+bounces-8571-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)","smtp.subspace.kernel.org;\n\tdkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org\n header.b=\"mWzZNZY7\"","smtp.subspace.kernel.org;\n arc=none smtp.client-ip=10.30.226.201"],"Received":["from sea.lore.kernel.org (sea.lore.kernel.org\n [IPv6:2600:3c0a:e001:db::12fc:5321])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fvfBQ31Fhz1xtJ\n\tfor <incoming@patchwork.ozlabs.org>; Tue, 14 Apr 2026 06:28:46 +1000 (AEST)","from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby sea.lore.kernel.org (Postfix) with ESMTP id BD0E1301FA5B\n\tfor <incoming@patchwork.ozlabs.org>; Mon, 13 Apr 2026 20:27:37 +0000 (UTC)","from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id E17D339478E;\n\tMon, 13 Apr 2026 20:27:36 +0000 (UTC)","from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org\n [10.30.226.201])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby smtp.subspace.kernel.org (Postfix) with ESMTPS id BC054393DE0;\n\tMon, 13 Apr 2026 20:27:36 +0000 (UTC)","by smtp.kernel.org (Postfix) with ESMTPSA id 086CAC2BCAF;\n\tMon, 13 Apr 2026 20:27:35 +0000 (UTC)"],"ARC-Seal":"i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1776112056; cv=none;\n b=oiB6FzbfsfxXoVR6gJu1eU6dKMKyb8q/msrx2XoS+C2nbd7Qu3E4ZgqklanxFK4nK8gTh/xjE2SxsgWEx8f2HH8AvN8C2l4pekrLqI7I/82qqgujHwTxIX90lo0AY82Rbr7bMINBhVnEg0D+CmQrvM98Tj62/vZj3wL+djO3Flo=","ARC-Message-Signature":"i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1776112056; c=relaxed/simple;\n\tbh=6yofSQLj+gW5ePwKJizrWlHOQntWXc7yHgiMuUR/QC4=;\n\th=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version:\n\t Content-Type:Content-Disposition:In-Reply-To;\n b=DzEP73cQpUJpcBpXL8i2UR/GOGrP3EdjfIwM8hIjnG/uNBA5UkMHUjEpOhjlAUJZU8Xc6jNai3iB4bgG1hOUHzTDWJW1ApwS6f8K8vj8hEN7byzTHgGwzVXVSZUmI8nOlfLoI3O6rKuUnHskKeqk6JMJe7Bt8F410AEO2XQVagE=","ARC-Authentication-Results":"i=1; smtp.subspace.kernel.org;\n dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org\n header.b=mWzZNZY7; arc=none smtp.client-ip=10.30.226.201","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;\n\ts=k20201202; t=1776112056;\n\tbh=6yofSQLj+gW5ePwKJizrWlHOQntWXc7yHgiMuUR/QC4=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=mWzZNZY7tBqVHisz5/TAuMVz5TwYyVIrJsX2ylAlDYRVokTuIo5Bszo7eLA4Qynxp\n\t lxS1eKsHMcVwYP52rBrfR27Pa4yrhzLJHiESqYKIoA0fVWL+ro0SPvkTiRY9VM2+0p\n\t x/Aq7TOWJVGFwZINF46Bfu2mEIGDBpejfOpskTy8eAJHAir8Dj9VrX7VjW61Y7v6+W\n\t w8Y6P6VbTuBha74LE3s4zK+JdtTWCNzvamxsZz0OECIkT+Xbx/AQLHGyhM5FGv9yHS\n\t 9ASdk+UPEaN2ecqhnGIUwF2kgGaMvId6IRX7l3QxDM7ov93KyvFfoXhrv2csydSsmF\n\t p6huCDnuQQocA==","Date":"Mon, 13 Apr 2026 22:27:33 +0200","From":"Uwe =?utf-8?q?Kleine-K=C3=B6nig?= <ukleinek@kernel.org>","To":"George Moussalem <george.moussalem@outlook.com>","Cc":"Rob Herring <robh@kernel.org>,\n\tKrzysztof Kozlowski <krzk+dt@kernel.org>, Conor Dooley <conor+dt@kernel.org>,\n\tBjorn Andersson <andersson@kernel.org>,\n Konrad Dybcio <konradybcio@kernel.org>,\n\tlinux-arm-msm@vger.kernel.org, linux-pwm@vger.kernel.org,\n devicetree@vger.kernel.org,\n\tlinux-kernel@vger.kernel.org, Devi Priya <quic_devipriy@quicinc.com>","Subject":"Re: [PATCH v21 2/6] pwm: driver for qualcomm ipq6018 pwm block","Message-ID":"<ad1RFmg0AEb7hudQ@monoceros>","References":"<20260406-ipq-pwm-v21-0-6ed1e868e4c2@outlook.com>\n <20260406-ipq-pwm-v21-2-6ed1e868e4c2@outlook.com>\n <ady2pLwiNT9FffF7@monoceros>\n <DS7PR19MB888389B41E784995F064EE0B9D242@DS7PR19MB8883.namprd19.prod.outlook.com>","Precedence":"bulk","X-Mailing-List":"linux-pwm@vger.kernel.org","List-Id":"<linux-pwm.vger.kernel.org>","List-Subscribe":"<mailto:linux-pwm+subscribe@vger.kernel.org>","List-Unsubscribe":"<mailto:linux-pwm+unsubscribe@vger.kernel.org>","MIME-Version":"1.0","Content-Type":"multipart/signed; micalg=pgp-sha512;\n\tprotocol=\"application/pgp-signature\"; boundary=\"bhhp4rpnsyfcrsua\"","Content-Disposition":"inline","In-Reply-To":"\n <DS7PR19MB888389B41E784995F064EE0B9D242@DS7PR19MB8883.namprd19.prod.outlook.com>"}}]