From: Tyrone Ting <warp5tw@gmail.com>
To: avifishman70@gmail.com, tmaimon77@gmail.com,
tali.perry1@gmail.com, venture@google.com, yuenn@google.com,
benjaminfair@google.com, robh+dt@kernel.org,
krzysztof.kozlowski@canonical.com, semen.protsenko@linaro.org,
yangyicong@hisilicon.com, wsa@kernel.org, jie.deng@intel.com,
sven@svenpeter.dev, bence98@sch.bme.hu, lukas.bulwahn@gmail.com,
arnd@arndb.de, olof@lixom.net, andriy.shevchenko@linux.intel.com,
warp5tw@gmail.com, tali.perry@nuvoton.com,
Avi.Fishman@nuvoton.com, tomer.maimon@nuvoton.com,
KWLIU@nuvoton.com, JJLIU0@nuvoton.com, kfting@nuvoton.com
Cc: openbmc@lists.ozlabs.org, linux-i2c@vger.kernel.org,
devicetree@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: [PATCH v1 6/6] i2c: npcm: Support NPCM845
Date: Mon, 7 Feb 2022 14:33:38 +0800 [thread overview]
Message-ID: <20220207063338.6570-7-warp5tw@gmail.com> (raw)
In-Reply-To: <20220207063338.6570-1-warp5tw@gmail.com>
From: Tyrone Ting <kfting@nuvoton.com>
NPCM8XX uses a similar i2c module as NPCM7XX.
The only difference is that the internal HW FIFO
is larger.
Related Makefile and Kconfig files are modified
to support as well.
Fixes: 56a1485b102e ("i2c: npcm7xx: Add Nuvoton NPCM I2C controller driver")
Signed-off-by: Tyrone Ting <kfting@nuvoton.com>
Signed-off-by: Tali Perry <tali.perry1@gmail.com>
---
drivers/i2c/busses/Kconfig | 8 ++++----
drivers/i2c/busses/Makefile | 2 +-
drivers/i2c/busses/i2c-npcm7xx.c | 29 +++++++++++++++++++++++++++++
3 files changed, 34 insertions(+), 5 deletions(-)
diff --git a/drivers/i2c/busses/Kconfig b/drivers/i2c/busses/Kconfig
index 42da31c1ab70..ab9ee2de5e00 100644
--- a/drivers/i2c/busses/Kconfig
+++ b/drivers/i2c/busses/Kconfig
@@ -817,13 +817,13 @@ config I2C_NOMADIK
I2C interface from ST-Ericsson's Nomadik and Ux500 architectures,
as well as the STA2X11 PCIe I/O HUB.
-config I2C_NPCM7XX
+config I2C_NPCM
tristate "Nuvoton I2C Controller"
- depends on ARCH_NPCM7XX || COMPILE_TEST
+ depends on ARCH_NPCM || COMPILE_TEST
help
If you say yes to this option, support will be included for the
- Nuvoton I2C controller, which is available on the NPCM7xx BMC
- controller.
+ Nuvoton I2C controller, which is available on the NPCM BMC
+ controllers.
Driver can also support slave mode (select I2C_SLAVE).
config I2C_OCORES
diff --git a/drivers/i2c/busses/Makefile b/drivers/i2c/busses/Makefile
index 1d00dce77098..01fdf74a5565 100644
--- a/drivers/i2c/busses/Makefile
+++ b/drivers/i2c/busses/Makefile
@@ -80,7 +80,7 @@ obj-$(CONFIG_I2C_MT7621) += i2c-mt7621.o
obj-$(CONFIG_I2C_MV64XXX) += i2c-mv64xxx.o
obj-$(CONFIG_I2C_MXS) += i2c-mxs.o
obj-$(CONFIG_I2C_NOMADIK) += i2c-nomadik.o
-obj-$(CONFIG_I2C_NPCM7XX) += i2c-npcm7xx.o
+obj-$(CONFIG_I2C_NPCM) += i2c-npcm7xx.o
obj-$(CONFIG_I2C_OCORES) += i2c-ocores.o
obj-$(CONFIG_I2C_OMAP) += i2c-omap.o
obj-$(CONFIG_I2C_OWL) += i2c-owl.o
diff --git a/drivers/i2c/busses/i2c-npcm7xx.c b/drivers/i2c/busses/i2c-npcm7xx.c
index 0af97f179af2..4e0148ccc215 100644
--- a/drivers/i2c/busses/i2c-npcm7xx.c
+++ b/drivers/i2c/busses/i2c-npcm7xx.c
@@ -91,7 +91,11 @@ enum i2c_addr {
/* init register and default value required to enable module */
#define NPCM_I2CSEGCTL 0xE4
+#ifdef CONFIG_ARCH_NPCM7XX
#define NPCM_I2CSEGCTL_INIT_VAL 0x0333F000
+#else
+#define NPCM_I2CSEGCTL_INIT_VAL 0x9333F000
+#endif
/* Common regs */
#define NPCM_I2CSDA 0x00
@@ -229,7 +233,11 @@ static const int npcm_i2caddr[I2C_NUM_OWN_ADDR] = {
#define NPCM_I2CFIF_CTS_SLVRSTR BIT(7)
/* NPCM_I2CTXF_CTL reg fields */
+#ifdef CONFIG_ARCH_NPCM7XX
#define NPCM_I2CTXF_CTL_TX_THR GENMASK(4, 0)
+#else
+#define NPCM_I2CTXF_CTL_TX_THR GENMASK(5, 0)
+#endif /*CONFIG_ARCH_NPCM7XX*/
#define NPCM_I2CTXF_CTL_THR_TXIE BIT(6)
/* NPCM_I2CT_OUT reg fields */
@@ -238,22 +246,42 @@ static const int npcm_i2caddr[I2C_NUM_OWN_ADDR] = {
#define NPCM_I2CT_OUT_T_OUTST BIT(7)
/* NPCM_I2CTXF_STS reg fields */
+#ifdef CONFIG_ARCH_NPCM7XX
#define NPCM_I2CTXF_STS_TX_BYTES GENMASK(4, 0)
+#else
+#define NPCM_I2CTXF_STS_TX_BYTES GENMASK(5, 0)
+#endif /*CONFIG_ARCH_NPCM7XX*/
#define NPCM_I2CTXF_STS_TX_THST BIT(6)
/* NPCM_I2CRXF_STS reg fields */
+#ifdef CONFIG_ARCH_NPCM7XX
#define NPCM_I2CRXF_STS_RX_BYTES GENMASK(4, 0)
+#else
+#define NPCM_I2CRXF_STS_RX_BYTES GENMASK(5, 0)
+#endif /*CONFIG_ARCH_NPCM7XX*/
#define NPCM_I2CRXF_STS_RX_THST BIT(6)
/* NPCM_I2CFIF_CTL reg fields */
#define NPCM_I2CFIF_CTL_FIFO_EN BIT(4)
/* NPCM_I2CRXF_CTL reg fields */
+#ifdef CONFIG_ARCH_NPCM7XX
#define NPCM_I2CRXF_CTL_RX_THR GENMASK(4, 0)
+#else
+#define NPCM_I2CRXF_CTL_RX_THR GENMASK(5, 0)
+#endif /*CONFIG_ARCH_NPCM7XX*/
+#ifdef CONFIG_ARCH_NPCM7XX
#define NPCM_I2CRXF_CTL_LAST_PEC BIT(5)
+#else
+#define NPCM_I2CRXF_CTL_LAST_PEC BIT(7)
+#endif /*CONFIG_ARCH_NPCM7XX*/
#define NPCM_I2CRXF_CTL_THR_RXIE BIT(6)
+#ifdef CONFIG_ARCH_NPCM7XX
#define I2C_HW_FIFO_SIZE 16
+#else
+#define I2C_HW_FIFO_SIZE 32
+#endif /* CONFIG_ARCH_NPCM7XX */
/* I2C_VER reg fields */
#define I2C_VER_VERSION GENMASK(6, 0)
@@ -2356,6 +2384,7 @@ static int npcm_i2c_remove_bus(struct platform_device *pdev)
static const struct of_device_id npcm_i2c_bus_of_table[] = {
{ .compatible = "nuvoton,npcm750-i2c", },
+ { .compatible = "nuvoton,npcm845-i2c", },
{}
};
MODULE_DEVICE_TABLE(of, npcm_i2c_bus_of_table);
--
2.17.1
WARNING: multiple messages have this Message-ID (diff)
From: Tyrone Ting <warp5tw@gmail.com>
To: avifishman70@gmail.com, tmaimon77@gmail.com,
tali.perry1@gmail.com, venture@google.com, yuenn@google.com,
benjaminfair@google.com, robh+dt@kernel.org,
krzysztof.kozlowski@canonical.com, semen.protsenko@linaro.org,
yangyicong@hisilicon.com, wsa@kernel.org, jie.deng@intel.com,
sven@svenpeter.dev, bence98@sch.bme.hu, lukas.bulwahn@gmail.com,
arnd@arndb.de, olof@lixom.net, andriy.shevchenko@linux.intel.com,
warp5tw@gmail.com, tali.perry@nuvoton.com,
Avi.Fishman@nuvoton.com, tomer.maimon@nuvoton.com,
KWLIU@nuvoton.com, JJLIU0@nuvoton.com, kfting@nuvoton.com
Cc: devicetree@vger.kernel.org, openbmc@lists.ozlabs.org,
linux-i2c@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: [PATCH v1 6/6] i2c: npcm: Support NPCM845
Date: Mon, 7 Feb 2022 14:33:38 +0800 [thread overview]
Message-ID: <20220207063338.6570-7-warp5tw@gmail.com> (raw)
In-Reply-To: <20220207063338.6570-1-warp5tw@gmail.com>
From: Tyrone Ting <kfting@nuvoton.com>
NPCM8XX uses a similar i2c module as NPCM7XX.
The only difference is that the internal HW FIFO
is larger.
Related Makefile and Kconfig files are modified
to support as well.
Fixes: 56a1485b102e ("i2c: npcm7xx: Add Nuvoton NPCM I2C controller driver")
Signed-off-by: Tyrone Ting <kfting@nuvoton.com>
Signed-off-by: Tali Perry <tali.perry1@gmail.com>
---
drivers/i2c/busses/Kconfig | 8 ++++----
drivers/i2c/busses/Makefile | 2 +-
drivers/i2c/busses/i2c-npcm7xx.c | 29 +++++++++++++++++++++++++++++
3 files changed, 34 insertions(+), 5 deletions(-)
diff --git a/drivers/i2c/busses/Kconfig b/drivers/i2c/busses/Kconfig
index 42da31c1ab70..ab9ee2de5e00 100644
--- a/drivers/i2c/busses/Kconfig
+++ b/drivers/i2c/busses/Kconfig
@@ -817,13 +817,13 @@ config I2C_NOMADIK
I2C interface from ST-Ericsson's Nomadik and Ux500 architectures,
as well as the STA2X11 PCIe I/O HUB.
-config I2C_NPCM7XX
+config I2C_NPCM
tristate "Nuvoton I2C Controller"
- depends on ARCH_NPCM7XX || COMPILE_TEST
+ depends on ARCH_NPCM || COMPILE_TEST
help
If you say yes to this option, support will be included for the
- Nuvoton I2C controller, which is available on the NPCM7xx BMC
- controller.
+ Nuvoton I2C controller, which is available on the NPCM BMC
+ controllers.
Driver can also support slave mode (select I2C_SLAVE).
config I2C_OCORES
diff --git a/drivers/i2c/busses/Makefile b/drivers/i2c/busses/Makefile
index 1d00dce77098..01fdf74a5565 100644
--- a/drivers/i2c/busses/Makefile
+++ b/drivers/i2c/busses/Makefile
@@ -80,7 +80,7 @@ obj-$(CONFIG_I2C_MT7621) += i2c-mt7621.o
obj-$(CONFIG_I2C_MV64XXX) += i2c-mv64xxx.o
obj-$(CONFIG_I2C_MXS) += i2c-mxs.o
obj-$(CONFIG_I2C_NOMADIK) += i2c-nomadik.o
-obj-$(CONFIG_I2C_NPCM7XX) += i2c-npcm7xx.o
+obj-$(CONFIG_I2C_NPCM) += i2c-npcm7xx.o
obj-$(CONFIG_I2C_OCORES) += i2c-ocores.o
obj-$(CONFIG_I2C_OMAP) += i2c-omap.o
obj-$(CONFIG_I2C_OWL) += i2c-owl.o
diff --git a/drivers/i2c/busses/i2c-npcm7xx.c b/drivers/i2c/busses/i2c-npcm7xx.c
index 0af97f179af2..4e0148ccc215 100644
--- a/drivers/i2c/busses/i2c-npcm7xx.c
+++ b/drivers/i2c/busses/i2c-npcm7xx.c
@@ -91,7 +91,11 @@ enum i2c_addr {
/* init register and default value required to enable module */
#define NPCM_I2CSEGCTL 0xE4
+#ifdef CONFIG_ARCH_NPCM7XX
#define NPCM_I2CSEGCTL_INIT_VAL 0x0333F000
+#else
+#define NPCM_I2CSEGCTL_INIT_VAL 0x9333F000
+#endif
/* Common regs */
#define NPCM_I2CSDA 0x00
@@ -229,7 +233,11 @@ static const int npcm_i2caddr[I2C_NUM_OWN_ADDR] = {
#define NPCM_I2CFIF_CTS_SLVRSTR BIT(7)
/* NPCM_I2CTXF_CTL reg fields */
+#ifdef CONFIG_ARCH_NPCM7XX
#define NPCM_I2CTXF_CTL_TX_THR GENMASK(4, 0)
+#else
+#define NPCM_I2CTXF_CTL_TX_THR GENMASK(5, 0)
+#endif /*CONFIG_ARCH_NPCM7XX*/
#define NPCM_I2CTXF_CTL_THR_TXIE BIT(6)
/* NPCM_I2CT_OUT reg fields */
@@ -238,22 +246,42 @@ static const int npcm_i2caddr[I2C_NUM_OWN_ADDR] = {
#define NPCM_I2CT_OUT_T_OUTST BIT(7)
/* NPCM_I2CTXF_STS reg fields */
+#ifdef CONFIG_ARCH_NPCM7XX
#define NPCM_I2CTXF_STS_TX_BYTES GENMASK(4, 0)
+#else
+#define NPCM_I2CTXF_STS_TX_BYTES GENMASK(5, 0)
+#endif /*CONFIG_ARCH_NPCM7XX*/
#define NPCM_I2CTXF_STS_TX_THST BIT(6)
/* NPCM_I2CRXF_STS reg fields */
+#ifdef CONFIG_ARCH_NPCM7XX
#define NPCM_I2CRXF_STS_RX_BYTES GENMASK(4, 0)
+#else
+#define NPCM_I2CRXF_STS_RX_BYTES GENMASK(5, 0)
+#endif /*CONFIG_ARCH_NPCM7XX*/
#define NPCM_I2CRXF_STS_RX_THST BIT(6)
/* NPCM_I2CFIF_CTL reg fields */
#define NPCM_I2CFIF_CTL_FIFO_EN BIT(4)
/* NPCM_I2CRXF_CTL reg fields */
+#ifdef CONFIG_ARCH_NPCM7XX
#define NPCM_I2CRXF_CTL_RX_THR GENMASK(4, 0)
+#else
+#define NPCM_I2CRXF_CTL_RX_THR GENMASK(5, 0)
+#endif /*CONFIG_ARCH_NPCM7XX*/
+#ifdef CONFIG_ARCH_NPCM7XX
#define NPCM_I2CRXF_CTL_LAST_PEC BIT(5)
+#else
+#define NPCM_I2CRXF_CTL_LAST_PEC BIT(7)
+#endif /*CONFIG_ARCH_NPCM7XX*/
#define NPCM_I2CRXF_CTL_THR_RXIE BIT(6)
+#ifdef CONFIG_ARCH_NPCM7XX
#define I2C_HW_FIFO_SIZE 16
+#else
+#define I2C_HW_FIFO_SIZE 32
+#endif /* CONFIG_ARCH_NPCM7XX */
/* I2C_VER reg fields */
#define I2C_VER_VERSION GENMASK(6, 0)
@@ -2356,6 +2384,7 @@ static int npcm_i2c_remove_bus(struct platform_device *pdev)
static const struct of_device_id npcm_i2c_bus_of_table[] = {
{ .compatible = "nuvoton,npcm750-i2c", },
+ { .compatible = "nuvoton,npcm845-i2c", },
{}
};
MODULE_DEVICE_TABLE(of, npcm_i2c_bus_of_table);
--
2.17.1
next prev parent reply other threads:[~2022-02-07 6:56 UTC|newest]
Thread overview: 61+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-02-07 6:33 [PATCH v1 0/6] i2c: npcm: Bug fixes timeout, spurious interrupts Tyrone Ting
2022-02-07 6:33 ` Tyrone Ting
2022-02-07 6:33 ` [PATCH v1 1/6] dt-bindings: i2c: npcm: support NPCM845 Tyrone Ting
2022-02-07 6:33 ` Tyrone Ting
2022-02-07 11:21 ` Jonathan Neuschäfer
2022-02-07 11:21 ` Jonathan Neuschäfer
2022-02-07 11:27 ` Krzysztof Kozlowski
2022-02-07 11:27 ` Krzysztof Kozlowski
2022-02-07 14:22 ` Rob Herring
2022-02-07 14:22 ` Rob Herring
2022-02-08 8:44 ` warp5tw
2022-02-08 9:03 ` warp5tw
2022-02-08 9:03 ` warp5tw
2022-02-11 16:14 ` Rob Herring
2022-02-11 16:14 ` Rob Herring
2022-02-12 3:19 ` warp5tw
2022-02-12 3:19 ` warp5tw
2022-02-07 6:33 ` [PATCH v1 2/6] i2c: npcm: Fix timeout calculation Tyrone Ting
2022-02-07 6:33 ` Tyrone Ting
2022-02-07 11:21 ` Krzysztof Kozlowski
2022-02-07 11:21 ` Krzysztof Kozlowski
2022-02-07 11:27 ` Jonathan Neuschäfer
2022-02-07 11:27 ` Jonathan Neuschäfer
2022-02-08 9:09 ` warp5tw
2022-02-08 9:09 ` warp5tw
2022-02-07 6:33 ` [PATCH v1 3/6] i2c: npcm: Add tx complete counter Tyrone Ting
2022-02-07 6:33 ` Tyrone Ting
2022-02-07 6:33 ` [PATCH v1 4/6] i2c: npcm: Handle spurious interrupts Tyrone Ting
2022-02-07 6:33 ` Tyrone Ting
2022-02-07 11:40 ` Jonathan Neuschäfer
2022-02-07 11:40 ` Jonathan Neuschäfer
2022-02-08 9:19 ` warp5tw
2022-02-08 9:19 ` warp5tw
2022-02-07 6:33 ` [PATCH v1 5/6] i2c: npcm: Remove own slave addresses 2:10 Tyrone Ting
2022-02-07 6:33 ` Tyrone Ting
2022-02-07 6:33 ` Tyrone Ting [this message]
2022-02-07 6:33 ` [PATCH v1 6/6] i2c: npcm: Support NPCM845 Tyrone Ting
2022-02-07 12:00 ` Jonathan Neuschäfer
2022-02-07 12:00 ` Jonathan Neuschäfer
2022-02-07 15:26 ` Krzysztof Kozlowski
2022-02-07 15:26 ` Krzysztof Kozlowski
2022-02-08 7:11 ` tali.perry
2022-02-08 7:11 ` tali.perry
2022-02-08 7:14 ` Tali Perry
2022-02-08 7:14 ` Tali Perry
2022-02-08 7:59 ` Krzysztof Kozlowski
2022-02-08 7:59 ` Krzysztof Kozlowski
2022-02-08 8:51 ` Tali Perry
2022-02-08 8:51 ` Tali Perry
2022-02-08 8:56 ` Krzysztof Kozlowski
2022-02-08 8:56 ` Krzysztof Kozlowski
2022-02-07 12:34 ` kernel test robot
2022-02-07 12:34 ` kernel test robot
2022-02-08 9:22 ` Tali Perry
2022-02-08 9:22 ` Tali Perry
2022-02-08 9:29 ` Krzysztof Kozlowski
2022-02-08 9:29 ` Krzysztof Kozlowski
2022-02-08 9:31 ` Avi Fishman
2022-02-08 9:31 ` Avi Fishman
2022-02-08 9:39 ` Krzysztof Kozlowski
2022-02-08 9:39 ` Krzysztof Kozlowski
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=20220207063338.6570-7-warp5tw@gmail.com \
--to=warp5tw@gmail.com \
--cc=Avi.Fishman@nuvoton.com \
--cc=JJLIU0@nuvoton.com \
--cc=KWLIU@nuvoton.com \
--cc=andriy.shevchenko@linux.intel.com \
--cc=arnd@arndb.de \
--cc=avifishman70@gmail.com \
--cc=bence98@sch.bme.hu \
--cc=benjaminfair@google.com \
--cc=devicetree@vger.kernel.org \
--cc=jie.deng@intel.com \
--cc=kfting@nuvoton.com \
--cc=krzysztof.kozlowski@canonical.com \
--cc=linux-i2c@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=lukas.bulwahn@gmail.com \
--cc=olof@lixom.net \
--cc=openbmc@lists.ozlabs.org \
--cc=robh+dt@kernel.org \
--cc=semen.protsenko@linaro.org \
--cc=sven@svenpeter.dev \
--cc=tali.perry1@gmail.com \
--cc=tali.perry@nuvoton.com \
--cc=tmaimon77@gmail.com \
--cc=tomer.maimon@nuvoton.com \
--cc=venture@google.com \
--cc=wsa@kernel.org \
--cc=yangyicong@hisilicon.com \
--cc=yuenn@google.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 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.