From: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
To: Wolfram Sang <wsa@the-dreams.de>, linux-i2c@vger.kernel.org
Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
Kukjin Kim <kgene@kernel.org>,
Krzysztof Kozlowski <krzk@kernel.org>
Subject: [PATCH v1 14/40] i2c: exynos5: Use generic definitions for bus frequencies
Date: Mon, 24 Feb 2020 17:15:04 +0200 [thread overview]
Message-ID: <20200224151530.31713-14-andriy.shevchenko@linux.intel.com> (raw)
In-Reply-To: <20200224151530.31713-1-andriy.shevchenko@linux.intel.com>
Since we have generic definitions for bus frequencies, let's use them.
Cc: Kukjin Kim <kgene@kernel.org>
Cc: Krzysztof Kozlowski <krzk@kernel.org>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
drivers/i2c/busses/i2c-exynos5.c | 18 +++++++-----------
1 file changed, 7 insertions(+), 11 deletions(-)
diff --git a/drivers/i2c/busses/i2c-exynos5.c b/drivers/i2c/busses/i2c-exynos5.c
index e7514c16b756..82e580615d87 100644
--- a/drivers/i2c/busses/i2c-exynos5.c
+++ b/drivers/i2c/busses/i2c-exynos5.c
@@ -164,13 +164,6 @@
#define HSI2C_MASTER_ID(x) ((x & 0xff) << 24)
#define MASTER_ID(x) ((x & 0x7) + 0x08)
-/*
- * Controller operating frequency, timing values for operation
- * are calculated against this frequency
- */
-#define HSI2C_HS_TX_CLOCK 1000000
-#define HSI2C_FS_TX_CLOCK 100000
-
#define EXYNOS5_I2C_TIMEOUT (msecs_to_jiffies(100))
enum i2c_type_exynos {
@@ -264,6 +257,9 @@ static void exynos5_i2c_clr_pend_irq(struct exynos5_i2c *i2c)
* exynos5_i2c_set_timing: updates the registers with appropriate
* timing values calculated
*
+ * Controller operating frequency, timing values for operation
+ * are calculated against either 100kHz or 1MHz frequency.
+ *
* Returns 0 on success, -EINVAL if the cycle length cannot
* be calculated.
*/
@@ -281,7 +277,7 @@ static int exynos5_i2c_set_timing(struct exynos5_i2c *i2c, bool hs_timings)
unsigned int t_ftl_cycle;
unsigned int clkin = clk_get_rate(i2c->clk);
unsigned int op_clk = hs_timings ? i2c->op_clock :
- (i2c->op_clock >= HSI2C_HS_TX_CLOCK) ? HSI2C_FS_TX_CLOCK :
+ (i2c->op_clock >= I2C_FAST_MODE_PLUS_FREQ) ? I2C_STANDARD_MODE_FREQ :
i2c->op_clock;
int div, clk_cycle, temp;
@@ -353,7 +349,7 @@ static int exynos5_hsi2c_clock_setup(struct exynos5_i2c *i2c)
/* always set Fast Speed timings */
int ret = exynos5_i2c_set_timing(i2c, false);
- if (ret < 0 || i2c->op_clock < HSI2C_HS_TX_CLOCK)
+ if (ret < 0 || i2c->op_clock < I2C_FAST_MODE_PLUS_FREQ)
return ret;
return exynos5_i2c_set_timing(i2c, true);
@@ -376,7 +372,7 @@ static void exynos5_i2c_init(struct exynos5_i2c *i2c)
i2c->regs + HSI2C_CTL);
writel(HSI2C_TRAILING_COUNT, i2c->regs + HSI2C_TRAILIG_CTL);
- if (i2c->op_clock >= HSI2C_HS_TX_CLOCK) {
+ if (i2c->op_clock >= I2C_FAST_MODE_PLUS_FREQ) {
writel(HSI2C_MASTER_ID(MASTER_ID(i2c->adap.nr)),
i2c->regs + HSI2C_ADDR);
i2c_conf |= HSI2C_HS_MODE;
@@ -748,7 +744,7 @@ static int exynos5_i2c_probe(struct platform_device *pdev)
return -ENOMEM;
if (of_property_read_u32(np, "clock-frequency", &i2c->op_clock))
- i2c->op_clock = HSI2C_FS_TX_CLOCK;
+ i2c->op_clock = I2C_STANDARD_MODE_FREQ;
strlcpy(i2c->adap.name, "exynos5-i2c", sizeof(i2c->adap.name));
i2c->adap.owner = THIS_MODULE;
--
2.25.0
next prev parent reply other threads:[~2020-02-24 15:15 UTC|newest]
Thread overview: 68+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-02-24 15:14 [PATCH v1 01/40] i2c: qup: Move bus frequency definitions to i2c.h Andy Shevchenko
2020-02-24 15:14 ` [PATCH v1 02/40] i2c: algo: Use generic definitions for bus frequencies Andy Shevchenko
2020-02-24 15:14 ` [PATCH v1 03/40] i2c: core: " Andy Shevchenko
2020-02-24 16:28 ` Mika Westerberg
2020-02-24 15:14 ` [PATCH v1 04/40] i2c: altera: " Andy Shevchenko
2020-02-25 7:30 ` Jarkko Nikula
2020-02-24 15:14 ` [PATCH v1 05/40] i2c: amd-mp2: " Andy Shevchenko
2020-02-26 17:58 ` Elie Morisse
2020-02-27 5:06 ` Shah, Nehal-bakulchandra
2020-02-24 15:14 ` [PATCH v1 06/40] i2c: aspeed: " Andy Shevchenko
2020-02-26 3:54 ` Brendan Higgins
2020-02-24 15:14 ` [PATCH v1 07/40] i2c: axxia: " Andy Shevchenko
2020-02-24 15:14 ` [PATCH v1 08/40] i2c: bcm-iproc: " Andy Shevchenko
2020-02-24 17:29 ` Scott Branden
2020-02-24 15:14 ` [PATCH v1 09/40] i2c: bcm-kona: " Andy Shevchenko
2020-02-24 17:29 ` Scott Branden
2020-02-24 15:15 ` [PATCH v1 10/40] i2c: cadence: " Andy Shevchenko
2020-02-24 15:15 ` [PATCH v1 11/40] i2c: designware: " Andy Shevchenko
2020-02-24 16:30 ` Mika Westerberg
2020-02-25 7:30 ` Jarkko Nikula
2020-02-24 15:15 ` [PATCH v1 12/40] i2c: digicolor: " Andy Shevchenko
2020-02-24 18:25 ` Baruch Siach
2020-02-24 15:15 ` [PATCH v1 13/40] i2c: diolan-u2c: " Andy Shevchenko
2020-02-25 17:36 ` Guenter Roeck
2020-02-24 15:15 ` Andy Shevchenko [this message]
2020-02-24 15:15 ` [PATCH v1 15/40] i2c: hix5hd2: " Andy Shevchenko
2020-02-24 15:15 ` [PATCH v1 16/40] i2c: img-scb: " Andy Shevchenko
2020-02-24 15:15 ` [PATCH v1 17/40] i2c: imx-lpi2c: " Andy Shevchenko
2020-02-24 15:15 ` [PATCH v1 18/40] i2c: imx: " Andy Shevchenko
2020-02-25 8:18 ` Oleksij Rempel
2020-02-24 15:15 ` [PATCH v1 19/40] i2c: lpc2k: " Andy Shevchenko
2020-02-24 15:35 ` Vladimir Zapolskiy
2020-02-24 16:01 ` Andy Shevchenko
2020-02-24 15:15 ` [PATCH v1 20/40] i2c: mt65xx: " Andy Shevchenko
2020-02-24 15:15 ` [PATCH v1 21/40] i2c: mv64xxx: " Andy Shevchenko
2020-03-13 20:28 ` Gregory CLEMENT
2020-02-24 15:15 ` [PATCH v1 22/40] i2c: mxs: " Andy Shevchenko
2020-02-24 15:15 ` [PATCH v1 23/40] i2c: nomadik: " Andy Shevchenko
2020-02-25 21:57 ` Linus Walleij
2020-02-24 15:15 ` [PATCH v1 24/40] i2c: owl: " Andy Shevchenko
2020-02-24 15:27 ` Manivannan Sadhasivam
2020-02-24 15:15 ` [PATCH v1 25/40] i2c: rcar: " Andy Shevchenko
2020-02-24 15:15 ` [PATCH v1 26/40] i2c: riic: " Andy Shevchenko
2020-02-24 16:48 ` Chris Brandt
2020-02-24 15:15 ` [PATCH v1 27/40] i2c: rk3x: " Andy Shevchenko
2020-02-24 15:15 ` [PATCH v1 28/40] i2c: s3c2410: " Andy Shevchenko
2020-02-24 15:15 ` [PATCH v1 29/40] i2c: sh_mobile: " Andy Shevchenko
2020-02-24 15:15 ` [PATCH v1 30/40] i2c: sirf: " Andy Shevchenko
2020-02-24 15:15 ` [PATCH v1 31/40] i2c: spdr: " Andy Shevchenko
2020-02-25 0:49 ` Baolin Wang
2020-02-25 10:38 ` Andy Shevchenko
2020-02-24 15:15 ` [PATCH v1 32/40] i2c: stm32f4: " Andy Shevchenko
2020-03-02 8:39 ` Pierre Yves MORDRET
2020-02-24 15:15 ` [PATCH v1 33/40] i2c: stm32f7: " Andy Shevchenko
2020-03-02 8:40 ` Pierre Yves MORDRET
2020-02-24 15:15 ` [PATCH v1 34/40] i2c: stu300: " Andy Shevchenko
2020-02-25 21:57 ` Linus Walleij
2020-02-24 15:15 ` [PATCH v1 35/40] i2c: st: " Andy Shevchenko
2020-02-24 15:15 ` [PATCH v1 36/40] i2c: synquacer: " Andy Shevchenko
2020-02-24 15:18 ` Ard Biesheuvel
2020-02-24 15:15 ` [PATCH v1 37/40] i2c: tegra: " Andy Shevchenko
2020-02-24 15:15 ` [PATCH v1 38/40] i2c: uniphier-f: " Andy Shevchenko
2020-02-24 15:15 ` [PATCH v1 39/40] i2c: uniphier: " Andy Shevchenko
2020-02-24 15:15 ` [PATCH v1 40/40] i2c: xlp9xx: " Andy Shevchenko
2020-02-25 10:22 ` [PATCH v1 01/40] i2c: qup: Move bus frequency definitions to i2c.h Wolfram Sang
2020-02-25 10:47 ` Andy Shevchenko
2020-02-25 11:44 ` Wolfram Sang
2020-02-25 11:56 ` Andy Shevchenko
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=20200224151530.31713-14-andriy.shevchenko@linux.intel.com \
--to=andriy.shevchenko@linux.intel.com \
--cc=kgene@kernel.org \
--cc=krzk@kernel.org \
--cc=linux-i2c@vger.kernel.org \
--cc=wsa@the-dreams.de \
/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).