From nobody Mon Dec 1 22:03:41 2025 Received: from mail-dl1-f53.google.com (mail-dl1-f53.google.com [74.125.82.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 2C40023185D for ; Fri, 28 Nov 2025 00:39:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=74.125.82.53 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764290346; cv=none; b=FAClmD4WuX2C8yjQ9h3YMwOJP2NWtZBgz2qz1kUqMclKDTTXaiu5af6Ve3Gt50xCSYiLXrhhB1Ga7dLp3p+oUJCpGp5wbSo7v4KzPiaxLBWkrF9hyjGeMwBZuXLAeLXwZjupNf5snbGKuFHMOYiGyJPxpXUKXbs8gCMXMdumESY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764290346; c=relaxed/simple; bh=OSim1mj9HkSTe46cFg4rOkLc0yUfhq8IhSvph0dkAAM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=nhgdtu9JHu/cFD4KOSCrqsfKAryhL0Hwoq4/fJwBh05U+KfztJb+zxbB8c+RH8gTS8C/VtIzDZlQ6SL5E1hYNKA1rEVt0Ldcs2P3hHC2giQzy6zU8y4tnGU9s71vSTsLJtopCzE8lkTOBFylC1mUFjoLb3EQPDvu08UX+SyIkHU= 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=L8UvmslD; arc=none smtp.client-ip=74.125.82.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 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="L8UvmslD" Received: by mail-dl1-f53.google.com with SMTP id a92af1059eb24-11beb0a7bd6so2602341c88.1 for ; Thu, 27 Nov 2025 16:39:04 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1764290344; x=1764895144; 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=afOk1ITr+hgg7p4RIrqg51cCVfFBtTkqq0M/4LUt7uo=; b=L8UvmslD3fd3bSbhWrunjz3CO1hEf4yuyNX1j+NssbDyWmUoyIPrPANbHjVtMf5slS LsOZsww5Sd3yhB4q/Tp2zP7BAh3HpsEanpTfJmwuxPEDjEV8XJ3UeQ9+8YRQB+4ytI/S tOgP6BPA9vJMrhJSe6tHr7vDkqkSosm/VvNIjWFixJMDulpD0pA0JOpVGxlU+i5dh+EM 3Rd+xSUviS8w3BzQDTOBum8oXP+5as3MyLNMmxTqQ/t7SMGoLMFWSPMHvswIAjwYF6Hx mGAjsZR9BDg6cIvNNq4x7Cjitwl39cwZq5BUwhToEQZWlr6LA36pEZayzi+sROLDcCBn fBpA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1764290344; x=1764895144; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=afOk1ITr+hgg7p4RIrqg51cCVfFBtTkqq0M/4LUt7uo=; b=J8kmAErOj+uwiO8B4nHpAMqzezF+1yfuO4LPWwEYtUY3KrJivuOY+EiYo8elQkBpk9 v9ywh80mM93v4vu5Ggw8ul8SLV5WlINYNG0q8ceRFyDjApzmdU947EI7FKhPeaPpaVyu DuDxapRButCXxZZtK0SgW+TycdvxbZY83DX8kVNsGcih1eJWTNYCHKE4xtk1C6R4/d75 8Gwprk+oEeo70qrVpIjQ8uvzZEjqtpP8cJJdxbD6Ng/h7XRp0vXh3BfkbfZWLk/hriUn ejC8D/1pxWno0ad1A+8LjcuLieN5WiBV9CElWBEl0Ck4Ti4ja+S8TSLLad34V+0L9iBg 9Cpw== X-Gm-Message-State: AOJu0YxXc/kfAic2nuW3s2IiGCJevY7Bd8ouQ+kqxRrvnJP307uAjHvP dwHiD718olARQDsoDLBbZ3JJEGMJSm/hdGS+fD0KAdsHE8KQNFf8F6mh X-Gm-Gg: ASbGncvV54JHyfkPn2OIsq9767fISaY6qapkwkV9fW5Lk/Aa1oJxwkcCErHvB4cd+yD /MVnhgFc5HQJUPdKvGbwNp+kjmkU+n+Q471C6su4R6tIEw/N4EOBvXCtLMffOTVdSLU/X8s1yY9 6lQjPR5TbmjDShHYQQwMoNr8r1KG1rPOAg+MwvoSZSVbrMXA72qYqLaneNKI5BmyzKYz17206j3 KyKAZtHaE7whX5smp/PPtXdIPbG4VZHUeAGiENyDtK5uIN0/tppelXKT50pEkf+KP/vjvonBjKz E+2K5o0hWLkpTXLtGJpyq5o3JR6fVyU2ZII0P9pIhDeNUBPROpvkCyYlOkfqmNnbqAAp87fL6pg Dz0aWOvgvzq6/1wYTjOc8wvyxzBcjd5RIsWJl63q0RSxmyR3WvQ96O9qwhDXvV51xI67cRJSGkl zwnJb+virBCKg3XBqmVrZGZI6MGHG3Z546Mkc9RB9m+jkYbzzTdmQlIg== X-Google-Smtp-Source: AGHT+IFT8RsjgV6EDZ8DwSkn6xgloOqqY5oHeZflkVbmSve7CDF6qj9GaFa5/HSngXC5dIgtO9Drrg== X-Received: by 2002:a05:7022:a93:b0:11b:a738:65b2 with SMTP id a92af1059eb24-11c94aefcabmr20854764c88.5.1764290344092; Thu, 27 Nov 2025 16:39:04 -0800 (PST) Received: from ParadiseLost.localdomain (lohr.com.br. [177.69.253.233]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-11dcaee7076sm12404561c88.4.2025.11.27.16.39.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 27 Nov 2025 16:39:03 -0800 (PST) From: "Rafael V. Volkmer" To: ukleinek@kernel.org Cc: linux-kernel@vger.kernel.org, linux-pwm@vger.kernel.org, rafael.v.volkmer@gmail.com Subject: [PATCH v7 5/9] pwm: tiehrpwm: use FIELD_PREP() for prescaler fields Date: Thu, 27 Nov 2025 21:36:30 -0300 Message-ID: <20251128003634.247529-6-rafael.v.volkmer@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251128003634.247529-1-rafael.v.volkmer@gmail.com> References: <20251128003634.247529-1-rafael.v.volkmer@gmail.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" Refactor TBCTL prescaler handling to use GENMASK() and FIELD_PREP() instead of open-coded shifts. Split the prescaler bits into TIEHRPWM_TBCTL_CLKDIV_MASK and TIEHRPWM_TBCTL_HSPCLKDIV_MASK and introduce TIEHRPWM_TBCTL_PRESCALE_MASK to cover both fields. Use FIELD_PREP() in set_prescale_div() to build the prescaler value, and update ehrpwm_modify() to clear and program both fields in a single call. The removed *_SHIFT macros are no longer needed. No functional change intended. Signed-off-by: Rafael V. Volkmer --- drivers/pwm/pwm-tiehrpwm.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/drivers/pwm/pwm-tiehrpwm.c b/drivers/pwm/pwm-tiehrpwm.c index 4b8b4a9e7379..41af1bf74cbb 100644 --- a/drivers/pwm/pwm-tiehrpwm.c +++ b/drivers/pwm/pwm-tiehrpwm.c @@ -25,7 +25,10 @@ #define TIEHRPWM_TBCTL_PRDLD_SHDW FIELD_PREP(TIEHRPWM_TBCTL_PRDLD, 0) #define TIEHRPWM_TBCTL_PRDLD_IMDT FIELD_PREP(TIEHRPWM_TBCTL_PRDLD, 1) =20 -#define TIEHRPWM_TBCTL_CLKDIV_MASK GENMASK(12, 7) +#define TIEHRPWM_TBCTL_CLKDIV_MASK GENMASK(12, 10) +#define TIEHRPWM_TBCTL_HSPCLKDIV_MASK GENMASK(9, 7) +#define TIEHRPWM_TBCTL_PRESCALE_MASK (TIEHRPWM_TBCTL_CLKDIV_MASK | \ + TIEHRPWM_TBCTL_HSPCLKDIV_MASK) =20 #define TIEHRPWM_TBCTL_CTRMODE_MASK GENMASK(1, 0) #define TIEHRPWM_TBCTL_CTRMODE_UP FIELD_PREP(TIEHRPWM_TBCTL_CTRMODE_MASK,= 0) @@ -33,9 +36,6 @@ #define TIEHRPWM_TBCTL_CTRMODE_UPDOWN FIELD_PREP(TIEHRPWM_TBCTL_CTRMODE_M= ASK, 2) #define TIEHRPWM_TBCTL_CTRMODE_FREEZE FIELD_PREP(TIEHRPWM_TBCTL_CTRMODE_M= ASK, 3) =20 -#define TIEHRPWM_TBCTL_HSPCLKDIV_SHIFT 7 -#define TIEHRPWM_TBCTL_CLKDIV_SHIFT 10 - #define TIEHRPWM_CLKDIV_MAX 7 #define TIEHRPWM_HSPCLKDIV_MAX 7 =20 @@ -174,8 +174,8 @@ static int set_prescale_div(unsigned long rqst_prescale= r, u16 *prescale_div, *prescale_div =3D (1 << clkdiv) * (hspclkdiv ? (hspclkdiv * 2) : 1); if (*prescale_div >=3D rqst_prescaler) { - *tb_clk_div =3D (clkdiv << TIEHRPWM_TBCTL_CLKDIV_SHIFT) | - (hspclkdiv << TIEHRPWM_TBCTL_HSPCLKDIV_SHIFT); + *tb_clk_div =3D FIELD_PREP(TIEHRPWM_TBCTL_CLKDIV_MASK, clkdiv) | + FIELD_PREP(TIEHRPWM_TBCTL_HSPCLKDIV_MASK, hspclkdiv); return 0; } } @@ -252,7 +252,7 @@ static int ehrpwm_pwm_config(struct pwm_chip *chip, str= uct pwm_device *pwm, pm_runtime_get_sync(pwmchip_parent(chip)); =20 /* Update clock prescaler values */ - ehrpwm_modify(pc->mmio_base, TIEHRPWM_TBCTL, TIEHRPWM_TBCTL_CLKDIV_MASK, = tb_divval); + ehrpwm_modify(pc->mmio_base, TIEHRPWM_TBCTL, TIEHRPWM_TBCTL_PRESCALE_MAS= K, tb_divval); =20 if (pwm->hwpwm =3D=3D 1) { /* Channel 1 configured with compare B register */ --=20 2.43.0