All of lore.kernel.org
 help / color / mirror / Atom feed
From: Yicong Yang <yangyicong@hisilicon.com>
To: Andy Shevchenko <andy.shevchenko@gmail.com>,
	Wolfram Sang <wsa@kernel.org>
Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	linux-i2c <linux-i2c@vger.kernel.org>,
	Sergey Semin <Sergey.Semin@baikalelectronics.ru>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Dmitry Osipenko <digetx@gmail.com>,
	"Thierry Reding" <treding@nvidia.com>,
	Jarkko Nikula <jarkko.nikula@linux.intel.com>,
	Russell King <rmk+kernel@armlinux.org.uk>,
	Barry Song <song.bao.hua@hisilicon.com>,
	John Garry <john.garry@huawei.com>,
	"Mika Westerberg" <mika.westerberg@linux.intel.com>,
	<prime.zeng@huawei.com>, Linuxarm <linuxarm@huawei.com>
Subject: Re: [PATCH v7 2/5] i2c: core: add api to provide frequency mode strings
Date: Fri, 9 Apr 2021 21:49:03 +0800	[thread overview]
Message-ID: <716b2bca-9d27-529e-93ab-3e6aa75bf948@hisilicon.com> (raw)
In-Reply-To: <CAHp75VekZKo-45Pc7mp9Pfwzx=jS7L2SBhb564acWkuAo5cPAQ@mail.gmail.com>



On 2021/4/9 19:40, Andy Shevchenko wrote:
> On Fri, Apr 9, 2021 at 2:37 PM Wolfram Sang <wsa@kernel.org> wrote:
>>
>>
>>> Can we add this later if needed?
>>> Because in such case additionally printing bus_freq_hz will be fine, no?
>>
>> Yes, we can do that.
>>
>>> But putting max to each frequency representation in the list of strings sounds
>>> good to me.
>>
>> It is not important to me if we are going to change that later anyhow.
>> I'll leave it to you guys.
> 
> Thanks, I think the series is okay to go as is.
> 

sorry for the late reply. we can have this series applied if possible,
or you may apply the changed patch below (please let me know if you
want the whole series updated).
I didn't realize this, sorry. our two users don't have this situation.

thanks Wolfram and Andy!

Yicong.



From 14da3be8d85536c16adbc4006fc12c6837ef7474 Mon Sep 17 00:00:00 2001
From: Yicong Yang <yangyicong@hisilicon.com>
Date: Sat, 27 Mar 2021 11:48:25 +0800
Subject: [PATCH] i2c: core: add api to provide frequency mode strings

Some I2C drivers like Designware and HiSilicon will print the
bus frequency mode information, so add a public one that everyone
can make use of.

Tested-by: Jarkko Nikula <jarkko.nikula@linux.intel.com>
Reviewed-by: Jarkko Nikula <jarkko.nikula@linux.intel.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Yicong Yang <yangyicong@hisilicon.com>
---
 drivers/i2c/i2c-core-base.c | 19 +++++++++++++++++++
 include/linux/i2c.h         |  3 +++
 2 files changed, 22 insertions(+)

diff --git a/drivers/i2c/i2c-core-base.c b/drivers/i2c/i2c-core-base.c
index de9402c..53836b5 100644
--- a/drivers/i2c/i2c-core-base.c
+++ b/drivers/i2c/i2c-core-base.c
@@ -76,6 +76,25 @@ void i2c_transfer_trace_unreg(void)
 	static_branch_dec(&i2c_trace_msg_key);
 }

+const char *i2c_freq_mode_string(u32 bus_freq_hz)
+{
+	if (bus_freq_hz <= I2C_MAX_STANDARD_MODE_FREQ)
+		return "Standard Mode (max 100 kHz)";
+	else if (bus_freq_hz <= I2C_MAX_FAST_MODE_FREQ)
+		return "Fast Mode (max 400 kHz)";
+	else if (bus_freq_hz <= I2C_MAX_FAST_MODE_PLUS_FREQ)
+		return "Fast Mode Plus (max 1.0 MHz)";
+	else if (bus_freq_hz <= I2C_MAX_TURBO_MODE_FREQ)
+		return "Turbo Mode (max 1.4 MHz)";
+	else if (bus_freq_hz <= I2C_MAX_HIGH_SPEED_MODE_FREQ)
+		return "High Speed Mode (max 3.4 MHz)";
+	else if (bus_freq_hz <= I2C_MAX_ULTRA_FAST_MODE_FREQ)
+		return "Ultra Fast Mode (max 5.0 MHz)";
+	else
+		return "Unknown Mode";
+}
+EXPORT_SYMBOL_GPL(i2c_freq_mode_string);
+
 const struct i2c_device_id *i2c_match_id(const struct i2c_device_id *id,
 						const struct i2c_client *client)
 {
diff --git a/include/linux/i2c.h b/include/linux/i2c.h
index 10bd0b0..0813be1 100644
--- a/include/linux/i2c.h
+++ b/include/linux/i2c.h
@@ -51,6 +51,9 @@ struct module;
 struct property_entry;

 #if IS_ENABLED(CONFIG_I2C)
+/* Return the Frequency mode string based on the bus frequency */
+const char *i2c_freq_mode_string(u32 bus_freq_hz);
+
 /*
  * The master routines are the ones normally used to transmit data to devices
  * on a bus (or read from them). Apart from two basic transfer functions to
-- 
2.8.1






  reply	other threads:[~2021-04-09 13:49 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-04-08 11:17 [PATCH v7 0/5] Add support for HiSilicon I2C controller Yicong Yang
2021-04-08 11:17 ` [PATCH v7 1/5] i2c: core: add managed function for adding i2c adapters Yicong Yang
2021-04-08 11:17 ` [PATCH v7 2/5] i2c: core: add api to provide frequency mode strings Yicong Yang
2021-04-08 20:55   ` Wolfram Sang
2021-04-09 10:36     ` Andy Shevchenko
2021-04-09 11:37       ` Wolfram Sang
2021-04-09 11:40         ` Andy Shevchenko
2021-04-09 13:49           ` Yicong Yang [this message]
2021-04-08 11:17 ` [PATCH v7 3/5] i2c: add support for HiSilicon I2C controller Yicong Yang
2021-04-08 11:17 ` [PATCH v7 4/5] MAINTAINERS: Add maintainer for HiSilicon I2C driver Yicong Yang
2021-04-08 20:57   ` Wolfram Sang
2021-04-08 11:17 ` [PATCH v7 5/5] i2c: designware: Switch over to i2c_freq_mode_string() Yicong Yang

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=716b2bca-9d27-529e-93ab-3e6aa75bf948@hisilicon.com \
    --to=yangyicong@hisilicon.com \
    --cc=Sergey.Semin@baikalelectronics.ru \
    --cc=andriy.shevchenko@linux.intel.com \
    --cc=andy.shevchenko@gmail.com \
    --cc=digetx@gmail.com \
    --cc=jarkko.nikula@linux.intel.com \
    --cc=john.garry@huawei.com \
    --cc=linux-i2c@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linuxarm@huawei.com \
    --cc=mika.westerberg@linux.intel.com \
    --cc=prime.zeng@huawei.com \
    --cc=rmk+kernel@armlinux.org.uk \
    --cc=song.bao.hua@hisilicon.com \
    --cc=treding@nvidia.com \
    --cc=wsa@kernel.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.