From nobody Tue Dec 16 21:29:24 2025 Received: from mail-ed1-f43.google.com (mail-ed1-f43.google.com [209.85.208.43]) (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 484C32D7DCF for ; Mon, 8 Dec 2025 15:21:40 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.43 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765207303; cv=none; b=IWybXeRE9Se8wzQAkrjjsVRZfNwtBngkeJfjrKsypmvyxU8UbQk+VvyUP7PCz5w1I7y9IrxjDrUqb6MpfQAIgtnc1ISYbNut3futclckH5XOTFIaeuL9HM6l/4kObXzOtNFcLNqZHyX5P5sRfDXfnarACwo5BsLHBelnDqMt7u0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765207303; c=relaxed/simple; bh=tF8GYHsih3o9B0YaDZiAj7rjm0YqBZPAKJ6MRA0M9uo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=IPwKoBujvSS0H9qm/Ulm9ZMumFUj66ZH7rRUus8D0101ttF/tQy6cjftNGNpl0BhL9JmCjiHjSdfl5BKRc/pgQPgOlJkjYPAPTmDDgti6BBeHttCI71cNKCgR5UvfQK9zSrrgksB4Nit4nLhoHt+DHVp5uo6hDyEIjU/g6VwhBQ= 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=gMyOsaJU; arc=none smtp.client-ip=209.85.208.43 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="gMyOsaJU" Received: by mail-ed1-f43.google.com with SMTP id 4fb4d7f45d1cf-641677916b5so6670510a12.0 for ; Mon, 08 Dec 2025 07:21:39 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1765207298; x=1765812098; 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=XvIclrXTCCDVb1tT0Tz5uI8Tzn8Nr2KWj9swXAYTYuQ=; b=gMyOsaJU46G67jRxrlH/goJ+usklO3Yv9t53XWgB7qii8SOI5atdfa06EUKL2Xz5ZO JmN+dMun+EHgtnMu92cKOiyqz3yFcWuMiSc9TXFVucwglrWSaX9DT6lw7M9MrtxXko4B /PBQK5pYHtdlsv/sQqUWZq9Eo5XSCJJSOkiX41KP2551N3DDAtGrj0cOA9gZkGnBKgir Dvj96wV2XYqdcGooo5cILnBAms+pGGH8ojHC2/OpGwaSZAjRqGdfQDDoebozsB459IGK r4lBs3k4dQRahoomhMAYvruaEhPVTIRLV6jAgUIyCoX31FUFn2R7nybG2WDbQdxu0eFE 3R/g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765207298; x=1765812098; 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=XvIclrXTCCDVb1tT0Tz5uI8Tzn8Nr2KWj9swXAYTYuQ=; b=navWR9DuDMGP07BW0LeU467GbvPZhOj9OX5fWeY+Y+riQgsatImPyV2fBocPe/e5cS gM61ko6JYZAz3/FR7YaMZirI3A/rQYmUiLyG/4H9F/eWkQ85CAPOZv3mekbgNx2f6ChI U9FNTmDDCYcD6iTSi2mshQPTLvwhSQh6rGaz5D5DCOGRW5ad9vMTT2XeHK3xqBRe1DK3 Z70yppm5GIVjb8vjMtvNIPJISVGHrHZy2Se1DbtW9y/D3RCVLCObghI0P7ECEKNdtNN+ kcEAHHJGuhuFWTIM1fQuxEbh5Lt6m72LWPa6yYVmv+jd048czhU7rqzV3jf7X08egOWa VCWA== X-Forwarded-Encrypted: i=1; AJvYcCUdis22xcrvrjnNLTKteKDBcGAAX3NHA9ovtVZt9kKTAzpo5ngP7QgmX4oIN1SE8g8OxVXp3U42II/j+5k=@vger.kernel.org X-Gm-Message-State: AOJu0YyDteiMZ2K2eF1VQjyqdYMlG+wqBz5ZXGdlrTozqrqJZ1o46FPg HEZyKcYjpJpLScscEROGLbYjm3y5tobPSy35dS5tayODSdRFeifKUa6y X-Gm-Gg: ASbGncsydFFSaZSlCJtH2NjXazfHTx2XHGkfBziiVGakMBBhukQ6vSCVMcCso+seL6V wbIQpJ2iyM9Xo6ApQiGr0KV2gvr6/OH4efBRWKQ/OrAaazenErOO91z5AxYZ/4WOzy9pDxkmWLf uTKCzwSzfd3Rp+4ucwDeS0Ll8D/Xp50o06upEzDwlEWO7aX0fmT8MpUaxz1ostJ+3K2cH861IZZ KV8K6hRLvDWHf4LubYR4PNcoeTwGlGtAaKLN6ylmFsJa+fcGj7dVtijmk94XOw7GC6Bc266pART QO+QSrex42mCZfEa1ymT+iM2BKVLKQZ85r7LJqqbD6VnOWV+/MM1xXOQNWgvgnOLF64YNQAxLL/ wdUVyFinaxBHpcyfiu5Fild3PEgPCKefMf+bNrPzf1TJe9BAzHQEqFsCelC1uG1lHrjnhUnrASl kDQVWOPGO0QKUSfpaad0KMO9lMswPGYNVCRPTIXgnKzPZGd4oTaRJVCZgBNZmkAA7Vak5sOcIzS mJf6LmGSjr5RlgO X-Google-Smtp-Source: AGHT+IEvrdFD9FgeW/bA4hUzp/Jbiem9O8wCDG3yvb5HD0CZ4A7m/Ceg6xhg7uyFT48QS210VBjCJA== X-Received: by 2002:a05:6402:2714:b0:647:8d63:d8b4 with SMTP id 4fb4d7f45d1cf-6491a1dc13bmr6927676a12.6.1765207298136; Mon, 08 Dec 2025 07:21:38 -0800 (PST) Received: from localhost.localdomain (host86-162-200-138.range86-162.btcentralplus.com. [86.162.200.138]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-647b412deddsm11547484a12.31.2025.12.08.07.21.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 08 Dec 2025 07:21:37 -0800 (PST) From: Biju X-Google-Original-From: Biju To: =?UTF-8?q?Uwe=20Kleine-K=C3=B6nig?= , Geert Uytterhoeven , Magnus Damm Cc: Biju Das , linux-pwm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-renesas-soc@vger.kernel.org, Prabhakar Mahadev Lad , Biju Das , Tommaso Merciai Subject: [PATCH v4 3/9] pwm: rzg2l-gpt: Add info variable to struct rzg2l_gpt_chip Date: Mon, 8 Dec 2025 15:21:20 +0000 Message-ID: <20251208152133.269316-4-biju.das.jz@bp.renesas.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251208152133.269316-1-biju.das.jz@bp.renesas.com> References: <20251208152133.269316-1-biju.das.jz@bp.renesas.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" From: Biju Das RZ/G3E GPT IP is similar to the one found on RZ/G2L GPT, but there are some differences. The field width of prescalar on RZ/G3E is 4 whereas on RZ/G2L it is 3. Add rzg2l_gpt_info variable to handle this differences. Reviewed-by: Tommaso Merciai Signed-off-by: Biju Das --- v3->v4: * Dropped field_{get,prep} as mainline now support it. * Updated commit description. * Retained RZG2L_GTCR_TPCS bit definitons * Replaced gtcr_tpcs_mask->gtcr_tpcs v2->v3: * No change. v1->v2: * Collected tag. --- drivers/pwm/pwm-rzg2l-gpt.c | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/drivers/pwm/pwm-rzg2l-gpt.c b/drivers/pwm/pwm-rzg2l-gpt.c index 2f424a7b05cc..5a8e5a3eb1b1 100644 --- a/drivers/pwm/pwm-rzg2l-gpt.c +++ b/drivers/pwm/pwm-rzg2l-gpt.c @@ -77,9 +77,14 @@ #define RZG2L_MAX_SCALE_FACTOR 1024 #define RZG2L_MAX_TICKS ((u64)U32_MAX * RZG2L_MAX_SCALE_FACTOR) =20 +struct rzg2l_gpt_info { + u32 gtcr_tpcs; +}; + struct rzg2l_gpt_chip { void __iomem *mmio; struct mutex lock; /* lock to protect shared channel resources */ + const struct rzg2l_gpt_info *info; unsigned long rate_khz; u32 period_ticks[RZG2L_MAX_HW_CHANNELS]; u32 channel_request_count[RZG2L_MAX_HW_CHANNELS]; @@ -332,7 +337,7 @@ static int rzg2l_gpt_read_waveform(struct pwm_chip *chi= p, =20 guard(mutex)(&rzg2l_gpt->lock); if (rzg2l_gpt_is_ch_enabled(rzg2l_gpt, pwm->hwpwm, >cr)) { - wfhw->prescale =3D FIELD_GET(RZG2L_GTCR_TPCS, gtcr); + wfhw->prescale =3D field_get(rzg2l_gpt->info->gtcr_tpcs, gtcr); wfhw->gtpr =3D rzg2l_gpt_read(rzg2l_gpt, RZG2L_GTPR(ch)); wfhw->gtccr =3D rzg2l_gpt_read(rzg2l_gpt, RZG2L_GTCCR(ch, sub_ch)); if (wfhw->gtccr > wfhw->gtpr) @@ -372,8 +377,8 @@ static int rzg2l_gpt_write_waveform(struct pwm_chip *ch= ip, rzg2l_gpt_write(rzg2l_gpt, RZG2L_GTUDDTYC(ch), RZG2L_GTUDDTYC_UP_COUNTIN= G); =20 /* Select count clock */ - rzg2l_gpt_modify(rzg2l_gpt, RZG2L_GTCR(ch), RZG2L_GTCR_TPCS, - FIELD_PREP(RZG2L_GTCR_TPCS, wfhw->prescale)); + rzg2l_gpt_modify(rzg2l_gpt, RZG2L_GTCR(ch), rzg2l_gpt->info->gtcr_tpcs, + field_prep(rzg2l_gpt->info->gtcr_tpcs, wfhw->prescale)); =20 /* Set period */ rzg2l_gpt_write(rzg2l_gpt, RZG2L_GTPR(ch), wfhw->gtpr); @@ -438,6 +443,8 @@ static int rzg2l_gpt_probe(struct platform_device *pdev) if (IS_ERR(rzg2l_gpt->mmio)) return PTR_ERR(rzg2l_gpt->mmio); =20 + rzg2l_gpt->info =3D of_device_get_match_data(dev); + rstc =3D devm_reset_control_get_exclusive_deasserted(dev, NULL); if (IS_ERR(rstc)) return dev_err_probe(dev, PTR_ERR(rstc), "Cannot deassert reset control\= n"); @@ -480,8 +487,12 @@ static int rzg2l_gpt_probe(struct platform_device *pde= v) return 0; } =20 +static const struct rzg2l_gpt_info rzg2l_data =3D { + .gtcr_tpcs =3D RZG2L_GTCR_TPCS, +}; + static const struct of_device_id rzg2l_gpt_of_table[] =3D { - { .compatible =3D "renesas,rzg2l-gpt", }, + { .compatible =3D "renesas,rzg2l-gpt", .data =3D &rzg2l_data }, { /* Sentinel */ } }; MODULE_DEVICE_TABLE(of, rzg2l_gpt_of_table); --=20 2.43.0