LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
From: Sven Peter <sven@svenpeter.dev>
To: Michael Ellerman <mpe@ellerman.id.au>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Paul Mackerras <paulus@samba.org>,
	Olof Johansson <olof@lixom.net>
Cc: Sven Peter <sven@svenpeter.dev>, Arnd Bergmann <arnd@arndb.de>,
	Hector Martin <marcan@marcan.st>,
	Mohamed Mediouni <mohamed.mediouni@caramail.com>,
	Stan Skowronek <stan@corellium.com>,
	Mark Kettenis <mark.kettenis@xs4all.nl>,
	Alyssa Rosenzweig <alyssa@rosenzweig.io>,
	linux-arm-kernel@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org, linux-i2c@vger.kernel.org,
	linux-kernel@vger.kernel.org
Subject: [PATCH 07/10] i2c: pasemi: Allow to configure bus frequency
Date: Sun, 26 Sep 2021 11:58:44 +0200	[thread overview]
Message-ID: <20210926095847.38261-8-sven@svenpeter.dev> (raw)
In-Reply-To: <20210926095847.38261-1-sven@svenpeter.dev>

Right now the bus frequency has always been hardcoded as
100 KHz with the specific reference clock used in the PASemi
PCI controllers. Make this configurable to prepare for the
platform driver.

Signed-off-by: Sven Peter <sven@svenpeter.dev>
---
 drivers/i2c/busses/i2c-pasemi-core.c | 8 +++-----
 drivers/i2c/busses/i2c-pasemi-core.h | 1 +
 drivers/i2c/busses/i2c-pasemi-pci.c  | 4 ++++
 3 files changed, 8 insertions(+), 5 deletions(-)

diff --git a/drivers/i2c/busses/i2c-pasemi-core.c b/drivers/i2c/busses/i2c-pasemi-core.c
index 7c6715f5dbb8..a39e3258b162 100644
--- a/drivers/i2c/busses/i2c-pasemi-core.c
+++ b/drivers/i2c/busses/i2c-pasemi-core.c
@@ -39,9 +39,6 @@
 #define CTL_MTR		0x00000200
 #define CTL_CLK_M	0x000000ff
 
-#define CLK_100K_DIV	84
-#define CLK_400K_DIV	21
-
 static inline void reg_write(struct pasemi_smbus *smbus, int reg, int val)
 {
 	dev_dbg(smbus->dev, "smbus write reg %lx val %08x\n",
@@ -63,8 +60,9 @@ static inline int reg_read(struct pasemi_smbus *smbus, int reg)
 
 static void pasemi_reset(struct pasemi_smbus *smbus)
 {
-	reg_write(smbus, REG_CTL, (CTL_MTR | CTL_MRR |
-		  (CLK_100K_DIV & CTL_CLK_M)));
+	u32 val = (CTL_MTR | CTL_MRR | (smbus->clk_div & CTL_CLK_M));
+
+	reg_write(smbus, REG_CTL, val);
 }
 
 static void pasemi_smb_clear(struct pasemi_smbus *smbus)
diff --git a/drivers/i2c/busses/i2c-pasemi-core.h b/drivers/i2c/busses/i2c-pasemi-core.h
index 7acc33de6ce1..30a7990825ef 100644
--- a/drivers/i2c/busses/i2c-pasemi-core.h
+++ b/drivers/i2c/busses/i2c-pasemi-core.h
@@ -14,6 +14,7 @@ struct pasemi_smbus {
 	void __iomem		*ioaddr;
 	unsigned long		 base;
 	int			 size;
+	unsigned int		 clk_div;
 };
 
 int pasemi_i2c_common_probe(struct pasemi_smbus *smbus);
diff --git a/drivers/i2c/busses/i2c-pasemi-pci.c b/drivers/i2c/busses/i2c-pasemi-pci.c
index 9a19df31866b..7405e0b48514 100644
--- a/drivers/i2c/busses/i2c-pasemi-pci.c
+++ b/drivers/i2c/busses/i2c-pasemi-pci.c
@@ -17,6 +17,9 @@
 
 #include "i2c-pasemi-core.h"
 
+#define CLK_100K_DIV	84
+#define CLK_400K_DIV	21
+
 static struct pci_driver pasemi_smb_pci_driver;
 
 static int pasemi_smb_pci_probe(struct pci_dev *dev,
@@ -35,6 +38,7 @@ static int pasemi_smb_pci_probe(struct pci_dev *dev,
 	smbus->dev = &dev->dev;
 	smbus->base = pci_resource_start(dev, 0);
 	smbus->size = pci_resource_len(dev, 0);
+	smbus->clk_div = CLK_100K_DIV;
 
 	if (!request_region(smbus->base, smbus->size,
 			    pasemi_smb_pci_driver.name)) {
-- 
2.25.1


  parent reply	other threads:[~2021-09-26 10:00 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-09-26  9:58 [PATCH 00/10] Add Apple M1 support to PASemi i2c driver Sven Peter
2021-09-26  9:58 ` [PATCH 01/10] dt-bindings: i2c: Add Apple I2C controller bindings Sven Peter
2021-10-04 18:01   ` Rob Herring
2021-09-26  9:58 ` [PATCH 02/10] i2c: pasemi: Use io{read,write}32 Sven Peter
2021-09-27  7:39   ` Arnd Bergmann
2021-09-28 15:48     ` Sven Peter
2021-09-26  9:58 ` [PATCH 03/10] i2c: pasemi: Remove usage of pci_dev Sven Peter
2021-09-26  9:58 ` [PATCH 04/10] i2c: pasemi: Split off common probing code Sven Peter
2021-09-26  9:58 ` [PATCH 05/10] i2c: pasemi: Split pci driver to its own file Sven Peter
2021-09-26  9:58 ` [PATCH 06/10] i2c: pasemi: Move common reset code to own function Sven Peter
2021-09-26  9:58 ` Sven Peter [this message]
2021-09-26  9:58 ` [PATCH 08/10] i2c: pasemi: Refactor _probe to use devm_* Sven Peter
2021-09-26  9:58 ` [PATCH 09/10] i2c: pasemi: Add Apple platform driver Sven Peter
2021-09-29 20:33   ` Wolfram Sang
2021-10-03 14:37     ` Sven Peter
2021-09-26  9:58 ` [PATCH 10/10] i2c: pasemi: Set enable bit for Apple variant Sven Peter
2021-09-27  7:42 ` [PATCH 00/10] Add Apple M1 support to PASemi i2c driver Arnd Bergmann
2021-09-29 20:35   ` Wolfram Sang

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=20210926095847.38261-8-sven@svenpeter.dev \
    --to=sven@svenpeter.dev \
    --cc=alyssa@rosenzweig.io \
    --cc=arnd@arndb.de \
    --cc=benh@kernel.crashing.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-i2c@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=marcan@marcan.st \
    --cc=mark.kettenis@xs4all.nl \
    --cc=mohamed.mediouni@caramail.com \
    --cc=mpe@ellerman.id.au \
    --cc=olof@lixom.net \
    --cc=paulus@samba.org \
    --cc=stan@corellium.com \
    --subject='Re: [PATCH 07/10] i2c: pasemi: Allow to configure bus frequency' \
    /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

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).