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>,
Christian Zigotzky <chzigotzky@xenosoft.de>,
Wolfram Sang <wsa@kernel.org>
Cc: Arnd Bergmann <arnd@arndb.de>, Sven Peter <sven@svenpeter.dev>,
Hector Martin <marcan@marcan.st>,
linux-kernel@vger.kernel.org, linux-i2c@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
Mohamed Mediouni <mohamed.mediouni@caramail.com>,
Stan Skowronek <stan@corellium.com>,
linuxppc-dev@lists.ozlabs.org,
Alyssa Rosenzweig <alyssa@rosenzweig.io>,
Mark Kettenis <mark.kettenis@xs4all.nl>
Subject: [PATCH v2 11/11] i2c: pasemi: Set enable bit for Apple variant
Date: Fri, 8 Oct 2021 18:35:32 +0200 [thread overview]
Message-ID: <20211008163532.75569-12-sven@svenpeter.dev> (raw)
In-Reply-To: <20211008163532.75569-1-sven@svenpeter.dev>
Some later revisions after the original PASemi I2C controller introduce
what likely is an enable bit to the CTL register. Without setting it the
actual i2c transmission is never started.
Reviewed-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Sven Peter <sven@svenpeter.dev>
---
v1 -> v2: no changes
drivers/i2c/busses/i2c-pasemi-core.c | 8 ++++++++
drivers/i2c/busses/i2c-pasemi-core.h | 3 +++
drivers/i2c/busses/i2c-pasemi-pci.c | 6 ++++++
3 files changed, 17 insertions(+)
diff --git a/drivers/i2c/busses/i2c-pasemi-core.c b/drivers/i2c/busses/i2c-pasemi-core.c
index 3d87b64dd9f7..4e161a4089d8 100644
--- a/drivers/i2c/busses/i2c-pasemi-core.c
+++ b/drivers/i2c/busses/i2c-pasemi-core.c
@@ -22,6 +22,7 @@
#define REG_MRXFIFO 0x04
#define REG_SMSTA 0x14
#define REG_CTL 0x1c
+#define REG_REV 0x28
/* Register defs */
#define MTXFIFO_READ 0x00000400
@@ -37,6 +38,7 @@
#define CTL_MRR 0x00000400
#define CTL_MTR 0x00000200
+#define CTL_EN 0x00000800
#define CTL_CLK_M 0x000000ff
static inline void reg_write(struct pasemi_smbus *smbus, int reg, int val)
@@ -60,6 +62,9 @@ static void pasemi_reset(struct pasemi_smbus *smbus)
{
u32 val = (CTL_MTR | CTL_MRR | (smbus->clk_div & CTL_CLK_M));
+ if (smbus->hw_rev >= 6)
+ val |= CTL_EN;
+
reg_write(smbus, REG_CTL, val);
}
@@ -335,6 +340,9 @@ int pasemi_i2c_common_probe(struct pasemi_smbus *smbus)
/* set up the sysfs linkage to our parent device */
smbus->adapter.dev.parent = smbus->dev;
+ if (smbus->hw_rev != PASEMI_HW_REV_PCI)
+ smbus->hw_rev = reg_read(smbus, REG_REV);
+
pasemi_reset(smbus);
error = devm_i2c_add_adapter(smbus->dev, &smbus->adapter);
diff --git a/drivers/i2c/busses/i2c-pasemi-core.h b/drivers/i2c/busses/i2c-pasemi-core.h
index aca4e2da9089..4655124a37f3 100644
--- a/drivers/i2c/busses/i2c-pasemi-core.h
+++ b/drivers/i2c/busses/i2c-pasemi-core.h
@@ -8,11 +8,14 @@
#include <linux/io.h>
#include <linux/kernel.h>
+#define PASEMI_HW_REV_PCI -1
+
struct pasemi_smbus {
struct device *dev;
struct i2c_adapter adapter;
void __iomem *ioaddr;
unsigned int clk_div;
+ int hw_rev;
};
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 4251e7b9f177..1ab1f28744fb 100644
--- a/drivers/i2c/busses/i2c-pasemi-pci.c
+++ b/drivers/i2c/busses/i2c-pasemi-pci.c
@@ -42,6 +42,12 @@ static int pasemi_smb_pci_probe(struct pci_dev *dev,
size = pci_resource_len(dev, 0);
smbus->clk_div = CLK_100K_DIV;
+ /*
+ * The original PASemi PCI controllers don't have a register for
+ * their HW revision.
+ */
+ smbus->hw_rev = PASEMI_HW_REV_PCI;
+
if (!devm_request_region(&dev->dev, base, size,
pasemi_smb_pci_driver.name))
return -EBUSY;
--
2.25.1
next prev parent reply other threads:[~2021-10-08 16:44 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-10-08 16:35 [PATCH v2 00/11] Add Apple M1 support to PASemi i2c driver Sven Peter
2021-10-08 16:35 ` [PATCH v2 01/11] dt-bindings: i2c: Add Apple I2C controller bindings Sven Peter
2021-10-08 16:35 ` [PATCH v2 02/11] i2c: pasemi: Use io{read,write}32 Sven Peter
2021-10-08 16:35 ` [PATCH v2 03/11] i2c: pasemi: Use dev_name instead of port number Sven Peter
2021-10-08 16:35 ` [PATCH v2 04/11] i2c: pasemi: Remove usage of pci_dev Sven Peter
2021-10-08 16:35 ` [PATCH v2 05/11] i2c: pasemi: Split off common probing code Sven Peter
2021-10-08 16:35 ` [PATCH v2 06/11] i2c: pasemi: Split pci driver to its own file Sven Peter
2021-10-08 16:35 ` [PATCH v2 07/11] i2c: pasemi: Move common reset code to own function Sven Peter
2021-10-08 16:35 ` [PATCH v2 08/11] i2c: pasemi: Allow to configure bus frequency Sven Peter
2021-10-08 16:35 ` [PATCH v2 09/11] i2c: pasemi: Refactor _probe to use devm_* Sven Peter
2021-10-08 16:35 ` [PATCH v2 10/11] i2c: pasemi: Add Apple platform driver Sven Peter
2021-10-09 10:09 ` Wolfram Sang
2021-10-09 11:29 ` Sven Peter
2021-10-08 16:35 ` Sven Peter [this message]
2021-10-08 20:49 ` [PATCH v2 00/11] Add Apple M1 support to PASemi i2c driver Olof Johansson
2021-10-09 10:10 ` Wolfram Sang
2021-10-09 11:30 ` Sven Peter
2021-10-09 13:57 ` Christian Zigotzky
2021-10-10 13:17 ` Sven Peter
2021-10-11 8:54 ` Wolfram Sang
2021-10-11 9:23 ` Hector Martin
2021-10-11 9:37 ` Wolfram Sang
2021-10-13 8:06 ` Christian Zigotzky
2021-10-11 10:04 ` 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=20211008163532.75569-12-sven@svenpeter.dev \
--to=sven@svenpeter.dev \
--cc=alyssa@rosenzweig.io \
--cc=arnd@arndb.de \
--cc=benh@kernel.crashing.org \
--cc=chzigotzky@xenosoft.de \
--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 \
--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 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).