From nobody Sun Feb 8 05:20:08 2026 Received: from mail-pl1-f173.google.com (mail-pl1-f173.google.com [209.85.214.173]) (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 6872C1A8F9A for ; Tue, 24 Dec 2024 09:28:09 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.173 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1735032491; cv=none; b=gj5n2dbqsYYSeaJjDKThuTl2GR+C5biIXbKsnYn1YwBTzWn1jJLbbemY+LWMdAyV8Sh1lJdUQCf6o1rabkOoBS5e355gNJPADhzwnQcoUacigTSv7LClwr0c459MItyZdERvqByIj4+TJmBPoMxYv+DvVOMK0uja/yFYuqi30hE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1735032491; c=relaxed/simple; bh=plbpc31rVrOD0KMkWiMy9DSCysG2bPp4EWpOgbNVk+g=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=CK1ETzWnMLYUyTVpU878dJE2mo9fVgzs5SRS0CktqcTm5Fte+apQ2pbgT5m/ehQXLtOmSAYsvf4+GtEgumvFU808Hzxo4RmYVTEna0NxIsE7PTRSjyqtAq1vURI9RAWiaXckPA+eREbCaw5aPCg4+8CFe4u0txcrOVf8mTK1gjw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=sifive.com; spf=pass smtp.mailfrom=sifive.com; dkim=pass (2048-bit key) header.d=sifive.com header.i=@sifive.com header.b=QiKoTtqC; arc=none smtp.client-ip=209.85.214.173 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=sifive.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=sifive.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=sifive.com header.i=@sifive.com header.b="QiKoTtqC" Received: by mail-pl1-f173.google.com with SMTP id d9443c01a7336-2161eb94cceso35005125ad.2 for ; Tue, 24 Dec 2024 01:28:09 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sifive.com; s=google; t=1735032488; x=1735637288; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=l3iCEA8tjYiThU7Rin4dKsTFv6XsSOzMIb0/FuGpw2E=; b=QiKoTtqC9kMqg3tB3bIGrAoICqNG+kJmYEbY4Mn7IHSnt+2A/g0KiFfPaE8m6qr/yR 54qvanbB8k1zd23kGfe4x4fgQB5fmM2c1ARtHzrJGkg203nXV4J7wir3YVMcL9rmkfEg U8fTw2s5pMhWM81bT67nRdIJZ9vvRqQ3QMhBbIGjG4eu4OoxnMP+KCzP+Odz/IqGuekm I0JsfXErH0rIPymgrVIcJyHcDml1jptwWvxfxyTIX3haY5gaKRxP1cQOihRSlTRz3QtL qrMWGjTl0kGB7ulPtpiQcqW5gTX0aYy3FizrNjVVoA4lawTGxZrBPt1KR3el2BBc8xnq whsg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1735032488; x=1735637288; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=l3iCEA8tjYiThU7Rin4dKsTFv6XsSOzMIb0/FuGpw2E=; b=oZTxQr7XC2Kx+79ImbuARb8ZLLyGV+lkt6L1/wBBYYtUUCgzbyZ2znr2M731GLR1ih 0ipqFet5caiNp9up06QpKDHAgGzgmtWhLL+/8FowVfHCFiwPG5YR94O8rGV7scRjQid2 IW0Ja2FeRMT8DjyhNQd9YUXAdqzwLDPKQk9u27+UGqM0UDnvWqSLWNAtTS5D4rNJQrgZ RdYE//OarRpBLFLg9W1xWXhAPY6oUVoo/W9+c/GNIOTM2HpONlB0uiJ7unBBzPFOhHSy YNrvZd9/884YK3Eihn/taatSq6+uU+25iNzEiONmbhB4HFQVIdjY5U4aLLlEflCFl25W DG5A== X-Gm-Message-State: AOJu0YyhyrgdMBNJXxrXbUguFn62//GyMSVJdsLepBugaO8slmflG4KK yF0Q7637G5FV/Iy0SI9nix0d6dAPjygFLIgT8tzo1iaZ54ETcnPstzIVm0wFwi6LnZMsCF5b/1S rVuWcpoMibN0DjWHWabV+yw2eMpuFBMaIuPbz9VjGa3JlcXft0qTY2AyPseNA1j2Kt851YSyzKN OLcfMsb2feQetNqRUYUDwtCNFZTxzWd2hrIEqzjw2If/J3b6M= X-Gm-Gg: ASbGncsTBMDsyBBsSC90TqEFSRc4TwRhckWfgZwxG2iptHkz+Kf0Dvlc4w2rk4QCShB GYSFEeHhz3wIQIb6dAD8qBVD0lfVe6WE/o0XoyUyHDtUyeVuFj+S9Vq5YwfHKXPk3wkpjO6fzTU sUED692J0c0pMAulPj8IHHh02YQRlb6e2L7Eh3dWoR1dJGjFA+4sGTYbb048qlGkZ/SW4pWDQfR tmhVGuhwxLJlVTFJIzJxcPiuQEaA420e6Dl50QYKfxw4ftRqrRWhgfgIb73kCrZ17sVrCesQmpg Cy/q4uT4JGl0H3FDKA== X-Google-Smtp-Source: AGHT+IF0zLvXg0En0J308WC3QLi6iR0zwk8h6v6PO7AKPZZqdQ2DFuER2UQDgneMceWfSmVNHYy5yA== X-Received: by 2002:a05:6a00:4485:b0:725:c8ea:b320 with SMTP id d2e1a72fcca58-72abde0f951mr22397563b3a.14.1735032488180; Tue, 24 Dec 2024 01:28:08 -0800 (PST) Received: from hsinchu36-syssw02.internal.sifive.com ([210.176.154.34]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-72af8dcff60sm516341b3a.152.2024.12.24.01.28.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 24 Dec 2024 01:28:07 -0800 (PST) From: Nylon Chen To: linux-kernel@vger.kernel.org, linux-pwm@vger.kernel.org, devicetree@vger.kernel.org Cc: Nylon Chen , Conor Dooley , Vincent Chen , Conor Dooley , Rob Herring , Krzysztof Kozlowski , Paul Walmsley , Palmer Dabbelt , Albert Ou , Samuel Holland , linux-riscv@lists.infradead.org Subject: [PATCH v10 1/3] riscv: dts: sifive: unleashed/unmatched: Remove PWM controlled LED's active-low properties Date: Tue, 24 Dec 2024 17:38:59 +0800 Message-Id: <20241224093902.1632627-2-nylon.chen@sifive.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20241224093902.1632627-1-nylon.chen@sifive.com> References: <20241224093902.1632627-1-nylon.chen@sifive.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" This removes the active-low properties of the PWM-controlled LEDs in the HiFive Unmatched device tree. The reference is hifive-unleashed-a00.pdf[0] and hifive-unmatched-schematic= s-v3.pdf[1]. Link: https://sifive.cdn.prismic.io/sifive/c52a8e32-05ce-4aaf-95c8-7bf8453f= 8698_hifive-unleashed-a00-schematics-1.pdf [0] Link: https://sifive.cdn.prismic.io/sifive/6a06d6c0-6e66-49b5-8e9e-e68ce76f= 4192_hifive-unmatched-schematics-v3.pdf [1] Acked-by: Conor Dooley Reviewed-by: Conor Dooley Signed-off-by: Vincent Chen Signed-off-by: Nylon Chen --- arch/riscv/boot/dts/sifive/hifive-unleashed-a00.dts | 12 ++++-------- arch/riscv/boot/dts/sifive/hifive-unmatched-a00.dts | 12 ++++-------- 2 files changed, 8 insertions(+), 16 deletions(-) diff --git a/arch/riscv/boot/dts/sifive/hifive-unleashed-a00.dts b/arch/ris= cv/boot/dts/sifive/hifive-unleashed-a00.dts index 900a50526d77..06731b8c7bc3 100644 --- a/arch/riscv/boot/dts/sifive/hifive-unleashed-a00.dts +++ b/arch/riscv/boot/dts/sifive/hifive-unleashed-a00.dts @@ -49,32 +49,28 @@ led-controller { compatible =3D "pwm-leds"; =20 led-d1 { - pwms =3D <&pwm0 0 7812500 PWM_POLARITY_INVERTED>; - active-low; + pwms =3D <&pwm0 0 7812500 0>; color =3D ; max-brightness =3D <255>; label =3D "d1"; }; =20 led-d2 { - pwms =3D <&pwm0 1 7812500 PWM_POLARITY_INVERTED>; - active-low; + pwms =3D <&pwm0 1 7812500 0>; color =3D ; max-brightness =3D <255>; label =3D "d2"; }; =20 led-d3 { - pwms =3D <&pwm0 2 7812500 PWM_POLARITY_INVERTED>; - active-low; + pwms =3D <&pwm0 2 7812500 0>; color =3D ; max-brightness =3D <255>; label =3D "d3"; }; =20 led-d4 { - pwms =3D <&pwm0 3 7812500 PWM_POLARITY_INVERTED>; - active-low; + pwms =3D <&pwm0 3 7812500 0>; color =3D ; max-brightness =3D <255>; label =3D "d4"; diff --git a/arch/riscv/boot/dts/sifive/hifive-unmatched-a00.dts b/arch/ris= cv/boot/dts/sifive/hifive-unmatched-a00.dts index 72b87b08ab44..03ce2cee4e97 100644 --- a/arch/riscv/boot/dts/sifive/hifive-unmatched-a00.dts +++ b/arch/riscv/boot/dts/sifive/hifive-unmatched-a00.dts @@ -51,8 +51,7 @@ led-controller-1 { compatible =3D "pwm-leds"; =20 led-d12 { - pwms =3D <&pwm0 0 7812500 PWM_POLARITY_INVERTED>; - active-low; + pwms =3D <&pwm0 0 7812500 0>; color =3D ; max-brightness =3D <255>; label =3D "d12"; @@ -68,20 +67,17 @@ multi-led { label =3D "d2"; =20 led-red { - pwms =3D <&pwm0 2 7812500 PWM_POLARITY_INVERTED>; - active-low; + pwms =3D <&pwm0 2 7812500 0>; color =3D ; }; =20 led-green { - pwms =3D <&pwm0 1 7812500 PWM_POLARITY_INVERTED>; - active-low; + pwms =3D <&pwm0 1 7812500 0>; color =3D ; }; =20 led-blue { - pwms =3D <&pwm0 3 7812500 PWM_POLARITY_INVERTED>; - active-low; + pwms =3D <&pwm0 3 7812500 0>; color =3D ; }; }; --=20 2.34.1 From nobody Sun Feb 8 05:20:08 2026 Received: from mail-pl1-f177.google.com (mail-pl1-f177.google.com [209.85.214.177]) (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 CDFEF1B2192 for ; Tue, 24 Dec 2024 09:28:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.177 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1735032497; cv=none; b=d/gscUqBoJgqmEvsmwWRuVF+/3+uaPRM5EQv6sCVBV6VHtXXI3qeWIL5MPj/hwzJ/njS5MuKdkY6H4f6/evn+DXOp0t0pEvqHbdIzgiydIZEeRPWC5q3iqnpEtLi7CJretFB3i5uVUxctbWFvEUXjoRuTa63sJXyYnPKkygnnpk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1735032497; c=relaxed/simple; bh=2VZgQzqkmIHGbSxAN4ilTEh2INUhlZFHHp/XIMBstrA=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=D7b9qsbGjHDGy9UroNrbhpyRNPaK5Mz2R6LXVyQUwRpSIB/GvpZYxBRgpxts2ptauObK3nIH9S6PY1EQjo9y3fTTeWAF6aTVHlxbOBG+7+MH3713Tt2sTBvussTGR91HSZl7xzNWMz7qvT9MNGu2/yDgK/UD1S7xW76YyJI79SQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=sifive.com; spf=pass smtp.mailfrom=sifive.com; dkim=pass (2048-bit key) header.d=sifive.com header.i=@sifive.com header.b=ITozso57; arc=none smtp.client-ip=209.85.214.177 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=sifive.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=sifive.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=sifive.com header.i=@sifive.com header.b="ITozso57" Received: by mail-pl1-f177.google.com with SMTP id d9443c01a7336-21683192bf9so55063135ad.3 for ; Tue, 24 Dec 2024 01:28:15 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sifive.com; s=google; t=1735032495; x=1735637295; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=foFQx7pLXh9yW9AzrGBy+50v7YD42XfIXa2v/75AelA=; b=ITozso57kC7w9M1kDFgVvwPhmvxAlcyFzTg9Zy5uRzjnUgGMpmQLVg4A1U9Zs3d5JU xLwlfr3+gDTx4W0OJnRTXsuKrxf/6BTONVDOE8un+x/82P60EQsgwl5Ikrj89b2IUK9y xPuFpy5lXWcbOZg88596TQ1AL9ENCIGlHCbi7X1CmNjkFfo/8hb9U6rt9DlJq5JEKg54 DUfEqyY54qecAzfl+3439APv3kx5Y9lcW3kaZqM7ZD1htgGFkazPsxoS+i16fn+YE1Cn 95C82Ujcr7ni+3rVgMjGtHeLIbw1uc50NabBU3r9stFvHFbPrz0RhmpksXmTq21yeesP V9Pg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1735032495; x=1735637295; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=foFQx7pLXh9yW9AzrGBy+50v7YD42XfIXa2v/75AelA=; b=Rb8KrE7hW77uj2mmdYXx+JqZz7un0z2c+gnrCN4z3JXSXr2lMS+/tNcmpMJODgtCb/ tvZGZsb/K0CqcXC+yb2pKOzQzlLRqeoV6dNA3qh0N+XRxXGdL7F7JAp49Xz+BsuhVju3 DVaGWbnTgn08O6WPQj4T7N6ia2OvyWlIC+k1mZwDx4sxUAb/E29oXVnwB0vA7Gx37o+a 4HoeF4JvnSEq8vu2MA+lWfaxk9ZdRnVI/rimnOWVoOuIpzIZGFDfGTRAaI2FGH0XULsJ pjsEbll3IF4bhuZiYUIQDGQ3FXhsxsF90lbYLVRyYFfyihXn+iSd6hBkQGnC8t+BYvNk FnoQ== X-Gm-Message-State: AOJu0Yxj8a4CoXy/Yk4n3SjfpFvh7ZCKLVnnITQSL01DShBiscRjGT0f Z/QYE5dpl6gDtF3XzA1VSSwuJMJzndwWgzyFPpcgePFbHEOXeDQg57AG0WJtYGY+Y5rBq5IVekP SYB/rl52Y2CvxFhYxfuB31D5N55biSLmila8dv07h3UHSaG0nqrbBt/JseWzny4IaRpS0P18Wgd r/B0JRFe94TZtyGKjlovSX73580oZJ5aSpGCd8NzB+zytyrnc= X-Gm-Gg: ASbGncvs+y3/fDruiRdoS6zQqzUa1/klnWZosa7O9abiGHJsfZ0pk7LhXzwdZSQpk+v QZR+nhIFkzojUQGAJRBtPHmThV8Qd6jw/ASdluBO22Mk2NVSUDToeo4Ni+uqfmOqj2k23KQI11z mANMaLPAKdYY/iMzeMRYw8hGOwai36T2YUv3wXoywBWhYVWoQMx294yHbdhVDoxeRXKGORZV+U9 5BfzguWKzstaxJ/kK96qxmIx/X5Y4E0AhYAryce+7vw7lYOQl5IrfwRSFYJj/gKwF25x851eD1q +/J6+pwmoeJPqXht1Q== X-Google-Smtp-Source: AGHT+IElaW7KRvjzzkaa9PnzdUfH1pw/EWBS66svqEXCyWXdLzH5EuyNp84u4FNtb41a24nBilQU3w== X-Received: by 2002:a05:6a20:1588:b0:1e1:e2d9:307 with SMTP id adf61e73a8af0-1e5e0802532mr20282867637.33.1735032494734; Tue, 24 Dec 2024 01:28:14 -0800 (PST) Received: from hsinchu36-syssw02.internal.sifive.com ([210.176.154.34]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-72af8dcff60sm516341b3a.152.2024.12.24.01.28.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 24 Dec 2024 01:28:14 -0800 (PST) From: Nylon Chen To: linux-kernel@vger.kernel.org, linux-pwm@vger.kernel.org, devicetree@vger.kernel.org Cc: Nylon Chen , Zong Li , Vincent Chen , =?UTF-8?q?Uwe=20Kleine-K=C3=B6nig?= , Paul Walmsley , Samuel Holland , linux-riscv@lists.infradead.org Subject: [PATCH v10 2/3] pwm: sifive: change the PWM algorithm Date: Tue, 24 Dec 2024 17:39:00 +0800 Message-Id: <20241224093902.1632627-3-nylon.chen@sifive.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20241224093902.1632627-1-nylon.chen@sifive.com> References: <20241224093902.1632627-1-nylon.chen@sifive.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" The `frac` variable represents the pulse inactive time, and the result of this algorithm is the pulse active time. Therefore, we must reverse the result. The reference is SiFive FU740-C000 Manual[0] Link: https://sifive.cdn.prismic.io/sifive/1a82e600-1f93-4f41-b2d8-86ed8b16= acba_fu740-c000-manual-v1p6.pdf [0] Co-developed-by: Zong Li Signed-off-by: Zong Li Co-developed-by: Vincent Chen Signed-off-by: Vincent Chen Signed-off-by: Nylon Chen --- drivers/pwm/pwm-sifive.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/drivers/pwm/pwm-sifive.c b/drivers/pwm/pwm-sifive.c index d5b647e6be78..bb9146267bc5 100644 --- a/drivers/pwm/pwm-sifive.c +++ b/drivers/pwm/pwm-sifive.c @@ -110,9 +110,10 @@ static int pwm_sifive_get_state(struct pwm_chip *chip,= struct pwm_device *pwm, struct pwm_state *state) { struct pwm_sifive_ddata *ddata =3D pwm_sifive_chip_to_ddata(chip); - u32 duty, val; + u32 duty, val, inactive; =20 - duty =3D readl(ddata->regs + PWM_SIFIVE_PWMCMP(pwm->hwpwm)); + inactive =3D readl(ddata->regs + PWM_SIFIVE_PWMCMP(pwm->hwpwm)); + duty =3D (1U << PWM_SIFIVE_CMPWIDTH) - 1 - inactive; =20 state->enabled =3D duty > 0; =20 @@ -123,7 +124,7 @@ static int pwm_sifive_get_state(struct pwm_chip *chip, = struct pwm_device *pwm, state->period =3D ddata->real_period; state->duty_cycle =3D (u64)duty * ddata->real_period >> PWM_SIFIVE_CMPWIDTH; - state->polarity =3D PWM_POLARITY_INVERSED; + state->polarity =3D PWM_POLARITY_NORMAL; =20 return 0; } @@ -137,9 +138,9 @@ static int pwm_sifive_apply(struct pwm_chip *chip, stru= ct pwm_device *pwm, unsigned long long num; bool enabled; int ret =3D 0; - u32 frac; + u32 frac, inactive; =20 - if (state->polarity !=3D PWM_POLARITY_INVERSED) + if (state->polarity !=3D PWM_POLARITY_NORMAL) return -EINVAL; =20 cur_state =3D pwm->state; @@ -157,8 +158,9 @@ static int pwm_sifive_apply(struct pwm_chip *chip, stru= ct pwm_device *pwm, */ num =3D (u64)duty_cycle * (1U << PWM_SIFIVE_CMPWIDTH); frac =3D DIV64_U64_ROUND_CLOSEST(num, state->period); - /* The hardware cannot generate a 100% duty cycle */ + /* The hardware cannot generate a 0% duty cycle */ frac =3D min(frac, (1U << PWM_SIFIVE_CMPWIDTH) - 1); + inactive =3D (1U << PWM_SIFIVE_CMPWIDTH) - 1 - frac; =20 mutex_lock(&ddata->lock); if (state->period !=3D ddata->approx_period) { @@ -190,7 +192,7 @@ static int pwm_sifive_apply(struct pwm_chip *chip, stru= ct pwm_device *pwm, } } =20 - writel(frac, ddata->regs + PWM_SIFIVE_PWMCMP(pwm->hwpwm)); + writel(inactive, ddata->regs + PWM_SIFIVE_PWMCMP(pwm->hwpwm)); =20 if (!state->enabled) clk_disable(ddata->clk); --=20 2.34.1 From nobody Sun Feb 8 05:20:08 2026 Received: from mail-pl1-f174.google.com (mail-pl1-f174.google.com [209.85.214.174]) (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 C5B021B4120 for ; Tue, 24 Dec 2024 09:28:20 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.174 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1735032502; cv=none; b=HKRG9AC4VCgDSmq4Emu124LYx6rZJjbRztgVwMjzVJ58aKSCI9k+rLQIuNgOoX/ApOjsLEkSXwl9y/fqql/mmpbMChS94YIpPoZrG57hTRuM8B37KcZsNrxDlaYu9JZmjfWz2HbIy9UbotyltfXhCZVbWjsaoEjaEQzIOtIm+Us= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1735032502; c=relaxed/simple; bh=glrL9frKUynd0eooWslKXIli7Wwl1Of8mWNqeP69AkU=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=E7gUTBPuzzKq5sgKDP9uoTod6Q9uRkKNRQi8Fb5tURqGv/H956wxmCTtEuRnCRF+YeV3rjMPXCWMMlsWpsd1kQ44CYMS/EIARtU/ZQcDSV9xGak9Xm78uRhx1B7bA8wnjVbHj1N9eC0z5/HWJLhQidqHoymqqWTzG9X7mHWZUEU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=sifive.com; spf=pass smtp.mailfrom=sifive.com; dkim=pass (2048-bit key) header.d=sifive.com header.i=@sifive.com header.b=CAYi7rBR; arc=none smtp.client-ip=209.85.214.174 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=sifive.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=sifive.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=sifive.com header.i=@sifive.com header.b="CAYi7rBR" Received: by mail-pl1-f174.google.com with SMTP id d9443c01a7336-2165cb60719so50689135ad.0 for ; Tue, 24 Dec 2024 01:28:20 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sifive.com; s=google; t=1735032500; x=1735637300; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=/Cqj4QIom4PNiBzVEbYX0WUBXZ7DUraiDzK4MrzGYzY=; b=CAYi7rBROIkGlrJ+4szhABKzVk9vFWzuKLlx6WHPvuNodk9UI8+doU07grDd178ANF 3vavNQqeBuWHgn4Afuv2F8YyokGx6dzwIbQwftHCnp1o8HHGm0EeXwyNpTaHu4Pj10AZ +pgRYZP/05OCtlCZ6kY3uWg5ilAb5cLpTWukIy+GhHHWrGDy0pRXLGbwhaW8pRe8EALS yxJ2iMBC1u8xCp8fY5f4kHZU07wGq+o3aCNcqZ6WEN8xd/M1Phyq9WI3mOOTTKs46H6f 2epfuLtGM7Kv80ClUSXlHVYNtiy/dc8xZjlA+BvIo5yYOR46YMOGjWBHmc2YApVCEV8/ 7GXQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1735032500; x=1735637300; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=/Cqj4QIom4PNiBzVEbYX0WUBXZ7DUraiDzK4MrzGYzY=; b=Ew1Mf8r7Z5GWv157BXM3nlhxeNZnfnNjs4SqIGjo5XXDvqgfijeMEzxBVuTeOEtnlw 9Ph/HaFkJc8Q6P1zPIwYKZQWTVRTD0rdQtgZ5ujJWj2l79OKjeW4b4REuberVXnCryKv /1TOhThCBSzHttG5OcgkWHVKPeezficmvwt5VIjWRTtpUmY1MEZJY1cLsk2HvIDoQiHC 4u3RYk4hulsF7u9FxluwvxVW5HlkHL4X9CyQQXCQcQpE5V5v+ia7liF4lMNb45qgE0V7 dKOLMyw7UrjmEfZfcXWEuXSNskv869jWaRPlfQV1JTh2AAbSRXYB84Q7HBlzp5nVD84p Lp5A== X-Gm-Message-State: AOJu0YzaLvF0zdU8Trw6vZee8dYpmoxGrOwH3bfFcCMk8A5iWXq8Hfkm iwZW7F4mCgnXPpEzmaXuNwbXxjiyZzwVeJ24OQlCC1Fm9NuyYp4ciAZ0BeoooXS88uz49QV3Yrg 2HcZ1Cv+aUvl2jH9/zaUeSj/1SRIW6CX9V+XsgURH7rDeyffEdF9Ue+GoNDCY6ttLa+ny4s4quM b0KxjO8sYEJmsItvvj73EUhIuVSl4HplRJZJPJW2ybIOk7YyU= X-Gm-Gg: ASbGncttg/U6fV2A6A6Y/0dkWQPPySA+UPSO1DIH2I5i03f2U4PSZm23SKbMVgfKoHo DRpCERcPDrwfHuGVybGwVcgrl+5a4bGfqFJ3NOuKQ32UtvPvXKs5g7bNhMFxTZsn+VLAitsbhLf 2GfJfCokZbcIvahTC8yHXgPYMhE2mvVUnXkHHaM7ZJpZlW/vXXXdBCfZ3uBJgtEZCgAH87hb0Km uXMAxnOJAc8GAe84iq+iwzBxRK12BRv9rncvYw79t68xB//Y2iS4/m7J78VVWOz7jFbppn3zuMn LDrXTaaz54a5b8a0vg== X-Google-Smtp-Source: AGHT+IEa+eM9lY5Aysf3MKkJti9gL8QjP+GyONH2JGutRyVpSEtvumQ8tbWG/KyFFjxNZfvlfPun/g== X-Received: by 2002:a05:6a21:6da9:b0:1db:e338:ab0a with SMTP id adf61e73a8af0-1e5e0447f5bmr29850414637.8.1735032499994; Tue, 24 Dec 2024 01:28:19 -0800 (PST) Received: from hsinchu36-syssw02.internal.sifive.com ([210.176.154.34]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-72af8dcff60sm516341b3a.152.2024.12.24.01.28.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 24 Dec 2024 01:28:19 -0800 (PST) From: Nylon Chen To: linux-kernel@vger.kernel.org, linux-pwm@vger.kernel.org, devicetree@vger.kernel.org Cc: Nylon Chen , Zong Li , =?UTF-8?q?Uwe=20Kleine-K=C3=B6nig?= , Paul Walmsley , Samuel Holland , linux-riscv@lists.infradead.org Subject: [PATCH v10 3/3] pwm: sifive: Fix the error in the idempotent test within the pwm_apply_state_debug function Date: Tue, 24 Dec 2024 17:39:01 +0800 Message-Id: <20241224093902.1632627-4-nylon.chen@sifive.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20241224093902.1632627-1-nylon.chen@sifive.com> References: <20241224093902.1632627-1-nylon.chen@sifive.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Round the result to the nearest whole number. This ensures that real_period is always a reasonable integer that is not lower than the actual value. e.g. $ echo 110 > /sys/devices/platform/led-controller-1/leds/d12/brightness $ .apply is not idempotent (ena=3D1 pol=3D0 1739692/4032985) -> (ena=3D1 po= l=3D0 1739630/4032985) Co-developed-by: Zong Li Signed-off-by: Zong Li Signed-off-by: Nylon Chen --- drivers/pwm/pwm-sifive.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/pwm/pwm-sifive.c b/drivers/pwm/pwm-sifive.c index bb9146267bc5..6259f8500f71 100644 --- a/drivers/pwm/pwm-sifive.c +++ b/drivers/pwm/pwm-sifive.c @@ -101,7 +101,7 @@ static void pwm_sifive_update_clock(struct pwm_sifive_d= data *ddata, =20 /* As scale <=3D 15 the shift operation cannot overflow. */ num =3D (unsigned long long)NSEC_PER_SEC << (PWM_SIFIVE_CMPWIDTH + scale); - ddata->real_period =3D div64_ul(num, rate); + ddata->real_period =3D DIV_ROUND_UP_ULL(num, rate); dev_dbg(ddata->parent, "New real_period =3D %u ns\n", ddata->real_period); } --=20 2.34.1