From: claudiu beznea <claudiu.beznea@tuxon.dev>
To: Biju Das <biju.das.jz@bp.renesas.com>,
Chris Brandt <Chris.Brandt@renesas.com>,
"andi.shyti@kernel.org" <andi.shyti@kernel.org>,
"robh@kernel.org" <robh@kernel.org>,
"krzk+dt@kernel.org" <krzk+dt@kernel.org>,
"conor+dt@kernel.org" <conor+dt@kernel.org>,
"geert+renesas@glider.be" <geert+renesas@glider.be>,
"magnus.damm@gmail.com" <magnus.damm@gmail.com>,
"mturquette@baylibre.com" <mturquette@baylibre.com>,
"sboyd@kernel.org" <sboyd@kernel.org>,
"p.zabel@pengutronix.de" <p.zabel@pengutronix.de>,
"wsa+renesas@sang-engineering.com"
<wsa+renesas@sang-engineering.com>
Cc: "linux-renesas-soc@vger.kernel.org"
<linux-renesas-soc@vger.kernel.org>,
"linux-i2c@vger.kernel.org" <linux-i2c@vger.kernel.org>,
"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"linux-clk@vger.kernel.org" <linux-clk@vger.kernel.org>,
Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com>
Subject: Re: [PATCH v2 07/12] i2c: riic: Define individual arrays to describe the register offsets
Date: Fri, 28 Jun 2024 11:02:50 +0300 [thread overview]
Message-ID: <2f162986-33c5-4d80-958c-4f857adaad20@tuxon.dev> (raw)
In-Reply-To: <TY3PR01MB1134603F92C72D9B6C6C3733C86D02@TY3PR01MB11346.jpnprd01.prod.outlook.com>
On 28.06.2024 10:55, Biju Das wrote:
> Hi Claudiu,
>
>> -----Original Message-----
>> From: claudiu beznea <claudiu.beznea@tuxon.dev>
>> Sent: Friday, June 28, 2024 8:32 AM
>> Subject: Re: [PATCH v2 07/12] i2c: riic: Define individual arrays to describe the register offsets
>>
>> Hi, Biju,
>>
>> On 28.06.2024 08:59, Biju Das wrote:
>>> Hi Claudiu,
>>>
>>>> -----Original Message-----
>>>> From: Claudiu <claudiu.beznea@tuxon.dev>
>>>> Sent: Tuesday, June 25, 2024 1:14 PM
>>>> Subject: [PATCH v2 07/12] i2c: riic: Define individual arrays to
>>>> describe the register offsets
>>>>
>>>> From: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com>
>>>>
>>>> Define individual arrays to describe the register offsets. In this
>>>> way we can describe different IP variants that share the same
>>>> register offsets but have differences in other characteristics. Commit prepares for the addition
>> of fast mode plus.
>>>>
>>>> Signed-off-by: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com>
>>>> ---
>>>>
>>>> Changes in v2:
>>>> - none
>>>>
>>>> drivers/i2c/busses/i2c-riic.c | 58
>>>> +++++++++++++++++++----------------
>>>> 1 file changed, 31 insertions(+), 27 deletions(-)
>>>>
>>>> diff --git a/drivers/i2c/busses/i2c-riic.c
>>>> b/drivers/i2c/busses/i2c-riic.c index
>>>> 9fe007609076..8ffbead95492 100644
>>>> --- a/drivers/i2c/busses/i2c-riic.c
>>>> +++ b/drivers/i2c/busses/i2c-riic.c
>>>> @@ -91,7 +91,7 @@ enum riic_reg_list { };
>>>>
>>>> struct riic_of_data {
>>>> - u8 regs[RIIC_REG_END];
>>>> + const u8 *regs;
>>>
>>>
>>> Since you are touching this part, can we drop struct and Use u8* as
>>> device_data instead?
>>
>> Patch 09/12 "i2c: riic: Add support for fast mode plus" adds a new member to struct riic_of_data.
>> That new member is needed to differentiate b/w hardware versions supporting fast mode plus based on
>> compatible.
>
> Are we sure RZ/A does not support fast mode plus?
From commit description of patch 09/12:
Fast mode plus is available on most of the IP variants that RIIC driver
is working with. The exception is (according to HW manuals of the SoCs
where this IP is available) the Renesas RZ/A1H. For this, patch
introduces the struct riic_of_data::fast_mode_plus.
I checked the manuals of all the SoCs where this driver is used.
I haven't checked the H/W manual?
On the manual I've downloaded from Renesas web site the FMPE bit of
RIICnFER is not available on RZ/A1H.
Thank you,
Claudiu Beznea
> If it does not, then it make sense to keep the patch as it is.
>
> Cheers,
> Biju
>
>>
>> Keeping struct riic_of_data is necessary (unless I misunderstood your proposal).
>>
>> Thank you,
>> Claudiu Beznea
>>
>>>
>>> ie, replace const struct riic_of_data *info->const u8 *regs in struct
>>> riic_dev and use .data = riic_rz_xx_regs in of_match_table?
>>>
>>> Cheers,
>>> Biju
>>>> };
>>>>
>>>> struct riic_dev {
>>>> @@ -531,36 +531,40 @@ static void riic_i2c_remove(struct platform_device *pdev)
>>>> pm_runtime_dont_use_autosuspend(dev);
>>>> }
>>>>
>>>> +static const u8 riic_rz_a_regs[RIIC_REG_END] = {
>>>> + [RIIC_ICCR1] = 0x00,
>>>> + [RIIC_ICCR2] = 0x04,
>>>> + [RIIC_ICMR1] = 0x08,
>>>> + [RIIC_ICMR3] = 0x10,
>>>> + [RIIC_ICSER] = 0x18,
>>>> + [RIIC_ICIER] = 0x1c,
>>>> + [RIIC_ICSR2] = 0x24,
>>>> + [RIIC_ICBRL] = 0x34,
>>>> + [RIIC_ICBRH] = 0x38,
>>>> + [RIIC_ICDRT] = 0x3c,
>>>> + [RIIC_ICDRR] = 0x40,
>>>> +};
>>>> +
>>>> static const struct riic_of_data riic_rz_a_info = {
>>>> - .regs = {
>>>> - [RIIC_ICCR1] = 0x00,
>>>> - [RIIC_ICCR2] = 0x04,
>>>> - [RIIC_ICMR1] = 0x08,
>>>> - [RIIC_ICMR3] = 0x10,
>>>> - [RIIC_ICSER] = 0x18,
>>>> - [RIIC_ICIER] = 0x1c,
>>>> - [RIIC_ICSR2] = 0x24,
>>>> - [RIIC_ICBRL] = 0x34,
>>>> - [RIIC_ICBRH] = 0x38,
>>>> - [RIIC_ICDRT] = 0x3c,
>>>> - [RIIC_ICDRR] = 0x40,
>>>> - },
>>>> + .regs = riic_rz_a_regs,
>>>> +};
>>>> +
>>>> +static const u8 riic_rz_v2h_regs[RIIC_REG_END] = {
>>>> + [RIIC_ICCR1] = 0x00,
>>>> + [RIIC_ICCR2] = 0x01,
>>>> + [RIIC_ICMR1] = 0x02,
>>>> + [RIIC_ICMR3] = 0x04,
>>>> + [RIIC_ICSER] = 0x06,
>>>> + [RIIC_ICIER] = 0x07,
>>>> + [RIIC_ICSR2] = 0x09,
>>>> + [RIIC_ICBRL] = 0x10,
>>>> + [RIIC_ICBRH] = 0x11,
>>>> + [RIIC_ICDRT] = 0x12,
>>>> + [RIIC_ICDRR] = 0x13,
>>>> };
>>>>
>>>> static const struct riic_of_data riic_rz_v2h_info = {
>>>> - .regs = {
>>>> - [RIIC_ICCR1] = 0x00,
>>>> - [RIIC_ICCR2] = 0x01,
>>>> - [RIIC_ICMR1] = 0x02,
>>>> - [RIIC_ICMR3] = 0x04,
>>>> - [RIIC_ICSER] = 0x06,
>>>> - [RIIC_ICIER] = 0x07,
>>>> - [RIIC_ICSR2] = 0x09,
>>>> - [RIIC_ICBRL] = 0x10,
>>>> - [RIIC_ICBRH] = 0x11,
>>>> - [RIIC_ICDRT] = 0x12,
>>>> - [RIIC_ICDRR] = 0x13,
>>>> - },
>>>> + .regs = riic_rz_v2h_regs,
>>>> };
>>>>
>>>> static int riic_i2c_suspend(struct device *dev)
>>>> --
>>>> 2.39.2
>>>>
>>>
next prev parent reply other threads:[~2024-06-28 8:02 UTC|newest]
Thread overview: 59+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-06-25 12:13 [PATCH v2 00/12] i2c: riic: Add support for Renesas RZ/G3S Claudiu
2024-06-25 12:13 ` [PATCH v2 01/12] clk: renesas: r9a08g045: Add clock, reset and power domain support for I2C Claudiu
2024-06-26 12:19 ` Geert Uytterhoeven
2024-06-25 12:13 ` [PATCH v2 02/12] i2c: riic: Use temporary variable for struct device Claudiu
2024-07-04 22:30 ` Andi Shyti
2024-07-08 5:13 ` claudiu beznea
2024-06-25 12:13 ` [PATCH v2 03/12] i2c: riic: Call pm_runtime_get_sync() when need to access registers Claudiu
2024-07-04 22:32 ` Andi Shyti
2024-06-25 12:13 ` [PATCH v2 04/12] i2c: riic: Use pm_runtime_resume_and_get() Claudiu
2024-06-25 15:53 ` Biju Das
2024-06-26 6:13 ` claudiu beznea
2024-06-26 6:23 ` Biju Das
2024-06-26 6:30 ` claudiu beznea
2024-06-27 19:21 ` Andi Shyti
2024-06-26 7:10 ` Geert Uytterhoeven
2024-06-26 8:15 ` Biju Das
2024-07-04 22:42 ` Andi Shyti
2024-07-05 7:19 ` Geert Uytterhoeven
2024-07-05 12:14 ` Andi Shyti
2024-07-08 5:19 ` claudiu beznea
2024-07-08 5:36 ` Biju Das
2024-07-08 9:33 ` Biju Das
2024-06-25 12:13 ` [PATCH v2 05/12] i2c: riic: Enable runtime PM autosuspend support Claudiu
2024-06-25 12:13 ` [PATCH v2 06/12] i2c: riic: Add suspend/resume support Claudiu
2024-06-25 12:13 ` [PATCH v2 07/12] i2c: riic: Define individual arrays to describe the register offsets Claudiu
2024-06-28 5:59 ` Biju Das
2024-06-28 7:32 ` claudiu beznea
2024-06-28 7:55 ` Biju Das
2024-06-28 8:02 ` claudiu beznea [this message]
2024-06-28 8:04 ` claudiu beznea
2024-06-28 8:09 ` Biju Das
2024-06-28 8:12 ` claudiu beznea
2024-06-28 8:24 ` Biju Das
2024-06-28 8:29 ` Biju Das
2024-06-28 10:25 ` claudiu beznea
2024-06-28 10:49 ` Biju Das
2024-06-28 11:24 ` claudiu beznea
2024-06-28 11:29 ` Biju Das
2024-06-28 15:05 ` Biju Das
2024-06-28 9:13 ` Geert Uytterhoeven
2024-06-28 10:28 ` claudiu beznea
2024-06-28 11:39 ` Geert Uytterhoeven
2024-06-29 11:11 ` claudiu beznea
2024-08-19 19:56 ` Andi Shyti
2024-06-28 9:08 ` Geert Uytterhoeven
2024-06-28 9:13 ` Biju Das
2024-06-25 12:13 ` [PATCH v2 08/12] dt-bindings: i2c: renesas,riic: Document the R9A08G045 support Claudiu
2024-06-25 16:28 ` Conor Dooley
2024-06-25 12:13 ` [PATCH v2 09/12] i2c: riic: Add support for fast mode plus Claudiu
2024-06-28 9:22 ` Geert Uytterhoeven
2024-06-28 10:06 ` claudiu beznea
2024-07-10 14:20 ` claudiu beznea
2024-07-11 7:53 ` Geert Uytterhoeven
2024-07-11 10:55 ` claudiu beznea
2024-06-29 5:38 ` Biju Das
2024-06-29 11:13 ` claudiu beznea
2024-06-25 12:13 ` [PATCH v2 10/12] arm64: dts: renesas: r9a08g045: Add I2C nodes Claudiu
2024-06-25 12:13 ` [PATCH v2 11/12] arm64: dts: renesas: rzg3s-smarc: Enable i2c0 node Claudiu
2024-06-25 12:13 ` [PATCH v2 12/12] arm64: dts: renesas: rzg3s-smarc-som: Enable i2c1 node Claudiu
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=2f162986-33c5-4d80-958c-4f857adaad20@tuxon.dev \
--to=claudiu.beznea@tuxon.dev \
--cc=Chris.Brandt@renesas.com \
--cc=andi.shyti@kernel.org \
--cc=biju.das.jz@bp.renesas.com \
--cc=claudiu.beznea.uj@bp.renesas.com \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=geert+renesas@glider.be \
--cc=krzk+dt@kernel.org \
--cc=linux-clk@vger.kernel.org \
--cc=linux-i2c@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-renesas-soc@vger.kernel.org \
--cc=magnus.damm@gmail.com \
--cc=mturquette@baylibre.com \
--cc=p.zabel@pengutronix.de \
--cc=robh@kernel.org \
--cc=sboyd@kernel.org \
--cc=wsa+renesas@sang-engineering.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).