* [RFT PATCH 0/4] Add support for PECI Nuvoton
@ 2023-06-16 19:34 Iwona Winiarska
2023-06-16 19:34 ` [RFT PATCH 1/4] dt-bindings: Add bindings for peci-npcm Iwona Winiarska
` (4 more replies)
0 siblings, 5 replies; 11+ messages in thread
From: Iwona Winiarska @ 2023-06-16 19:34 UTC (permalink / raw)
To: openbmc, Tomer Maimon, kfting; +Cc: Iwona Winiarska
Hi!
This series is based on patches that were sent by Tomer Maimon from
Nuvoton [1].
Similar to Aspeed driver, I removed vendor-specific properties that
were not used (as in, default values were used in all of the available
DTS files). If there is a use-case for such properties, they can be
added in a separate series.
I wasn't able to test it on a real hardware so I would like to ask for
help to test it on Nuvoton systems.
Thanks
-Iwona
[1] https://lore.kernel.org/openbmc/CAP6Zq1jnbQ8k9VEyf9WgVq5DRrEzf5V6kaYP30S7g9BV9jKtaQ@mail.gmail.com/
Iwona Winiarska (2):
ARM: dts: nuvoton: Add PECI controller node
arm64: dts: nuvoton: Add PECI controller node
Tomer Maimon (2):
dt-bindings: Add bindings for peci-npcm
peci: Add peci-npcm controller driver
.../devicetree/bindings/peci/peci-npcm.yaml | 56 ++++
arch/arm/boot/dts/nuvoton-common-npcm7xx.dtsi | 9 +
.../dts/nuvoton/nuvoton-common-npcm8xx.dtsi | 9 +
drivers/peci/controller/Kconfig | 16 +
drivers/peci/controller/Makefile | 1 +
drivers/peci/controller/peci-npcm.c | 298 ++++++++++++++++++
6 files changed, 389 insertions(+)
create mode 100644 Documentation/devicetree/bindings/peci/peci-npcm.yaml
create mode 100644 drivers/peci/controller/peci-npcm.c
--
2.40.1
^ permalink raw reply [flat|nested] 11+ messages in thread
* [RFT PATCH 1/4] dt-bindings: Add bindings for peci-npcm
2023-06-16 19:34 [RFT PATCH 0/4] Add support for PECI Nuvoton Iwona Winiarska
@ 2023-06-16 19:34 ` Iwona Winiarska
2023-06-17 7:48 ` Krzysztof Kozlowski
2023-06-16 19:34 ` [RFT PATCH 2/4] peci: Add peci-npcm controller driver Iwona Winiarska
` (3 subsequent siblings)
4 siblings, 1 reply; 11+ messages in thread
From: Iwona Winiarska @ 2023-06-16 19:34 UTC (permalink / raw)
To: openbmc, Tomer Maimon, kfting; +Cc: Iwona Winiarska
From: Tomer Maimon <tmaimon77@gmail.com>
Add device tree bindings for the peci-npcm controller driver.
Signed-off-by: Tomer Maimon <tmaimon77@gmail.com>
Signed-off-by: kfting <warp5tw@gmail.com>
Co-developed-by: Iwona Winiarska <iwona.winiarska@intel.com>
Signed-off-by: Iwona Winiarska <iwona.winiarska@intel.com>
---
.../devicetree/bindings/peci/peci-npcm.yaml | 56 +++++++++++++++++++
1 file changed, 56 insertions(+)
create mode 100644 Documentation/devicetree/bindings/peci/peci-npcm.yaml
diff --git a/Documentation/devicetree/bindings/peci/peci-npcm.yaml b/Documentation/devicetree/bindings/peci/peci-npcm.yaml
new file mode 100644
index 000000000000..6eafa9ccaa54
--- /dev/null
+++ b/Documentation/devicetree/bindings/peci/peci-npcm.yaml
@@ -0,0 +1,56 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/peci/peci-npcm.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Nuvoton PECI Bus
+
+maintainers:
+ - Tomer Maimon <tmaimon77@gmail.com>
+
+allOf:
+ - $ref: peci-controller.yaml#
+
+properties:
+ compatible:
+ enum:
+ - nuvoton,npcm750-peci
+ - nuvoton,npcm845-peci
+
+ reg:
+ maxItems: 1
+
+ interrupts:
+ maxItems: 1
+
+ clocks:
+ description:
+ Clock source for PECI controller. Should reference the APB clock.
+ maxItems: 1
+
+ cmd-timeout-ms:
+ minimum: 1
+ maximum: 1000
+ default: 1000
+
+required:
+ - compatible
+ - reg
+ - interrupts
+ - clocks
+
+additionalProperties: false
+
+examples:
+ - |
+ #include <dt-bindings/clock/nuvoton,npcm7xx-clock.h>
+ #include <dt-bindings/interrupt-controller/arm-gic.h>
+ peci-controller@f0100000 {
+ compatible = "nuvoton,npcm750-peci";
+ reg = <0xf0100000 0x200>;
+ interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&clk NPCM7XX_CLK_APB3>;
+ cmd-timeout-ms = <1000>;
+ };
+...
--
2.40.1
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [RFT PATCH 2/4] peci: Add peci-npcm controller driver
2023-06-16 19:34 [RFT PATCH 0/4] Add support for PECI Nuvoton Iwona Winiarska
2023-06-16 19:34 ` [RFT PATCH 1/4] dt-bindings: Add bindings for peci-npcm Iwona Winiarska
@ 2023-06-16 19:34 ` Iwona Winiarska
2023-06-17 7:49 ` Krzysztof Kozlowski
2023-06-16 19:34 ` [RFT PATCH 3/4] ARM: dts: nuvoton: Add PECI controller node Iwona Winiarska
` (2 subsequent siblings)
4 siblings, 1 reply; 11+ messages in thread
From: Iwona Winiarska @ 2023-06-16 19:34 UTC (permalink / raw)
To: openbmc, Tomer Maimon, kfting; +Cc: Iwona Winiarska
From: Tomer Maimon <tmaimon77@gmail.com>
Add support for Nuvoton NPCM BMC hardware to the Platform Environment
Control Interface (PECI) subsystem.
Signed-off-by: Tomer Maimon <tmaimon77@gmail.com>
Signed-off-by: kfting <warp5tw@gmail.com>
Co-developed-by: Iwona Winiarska <iwona.winiarska@intel.com>
Signed-off-by: Iwona Winiarska <iwona.winiarska@intel.com>
---
drivers/peci/controller/Kconfig | 16 ++
drivers/peci/controller/Makefile | 1 +
drivers/peci/controller/peci-npcm.c | 298 ++++++++++++++++++++++++++++
3 files changed, 315 insertions(+)
create mode 100644 drivers/peci/controller/peci-npcm.c
diff --git a/drivers/peci/controller/Kconfig b/drivers/peci/controller/Kconfig
index 2fc5e2abb74a..4f9c245ad042 100644
--- a/drivers/peci/controller/Kconfig
+++ b/drivers/peci/controller/Kconfig
@@ -16,3 +16,19 @@ config PECI_ASPEED
This driver can also be built as a module. If so, the module will
be called peci-aspeed.
+
+config PECI_NPCM
+ tristate "Nuvoton NPCM PECI support"
+ depends on ARCH_NPCM || COMPILE_TEST
+ depends on OF
+ select REGMAP_MMIO
+ help
+ This option enables PECI controller driver for Nuvoton NPCM7XX
+ and NPCM8XX SoCs. It allows BMC to discover devices connected
+ to it and communicate with them using PECI protocol.
+
+ Say Y here if you want support for the Platform Environment Control
+ Interface (PECI) bus adapter driver on the Nuvoton NPCM SoCs.
+
+ This support is also available as a module. If so, the module
+ will be called peci-npcm.
diff --git a/drivers/peci/controller/Makefile b/drivers/peci/controller/Makefile
index 022c28ef1bf0..e247449bb423 100644
--- a/drivers/peci/controller/Makefile
+++ b/drivers/peci/controller/Makefile
@@ -1,3 +1,4 @@
# SPDX-License-Identifier: GPL-2.0-only
obj-$(CONFIG_PECI_ASPEED) += peci-aspeed.o
+obj-$(CONFIG_PECI_NPCM) += peci-npcm.o
diff --git a/drivers/peci/controller/peci-npcm.c b/drivers/peci/controller/peci-npcm.c
new file mode 100644
index 000000000000..3647e3628a17
--- /dev/null
+++ b/drivers/peci/controller/peci-npcm.c
@@ -0,0 +1,298 @@
+// SPDX-License-Identifier: GPL-2.0
+// Copyright (c) 2019 Nuvoton Technology corporation.
+
+#include <linux/bitfield.h>
+#include <linux/clk.h>
+#include <linux/interrupt.h>
+#include <linux/jiffies.h>
+#include <linux/module.h>
+#include <linux/of.h>
+#include <linux/peci.h>
+#include <linux/platform_device.h>
+#include <linux/regmap.h>
+#include <linux/reset.h>
+
+/* NPCM GCR module */
+#define NPCM_INTCR3_OFFSET 0x9C
+#define NPCM_INTCR3_PECIVSEL BIT(19)
+
+/* NPCM PECI Registers */
+#define NPCM_PECI_CTL_STS 0x00
+#define NPCM_PECI_RD_LENGTH 0x04
+#define NPCM_PECI_ADDR 0x08
+#define NPCM_PECI_CMD 0x0C
+#define NPCM_PECI_CTL2 0x10
+#define NPCM_PECI_WR_LENGTH 0x1C
+#define NPCM_PECI_PDDR 0x2C
+#define NPCM_PECI_DAT_INOUT(n) (0x100 + ((n) * 4))
+
+#define NPCM_PECI_MAX_REG 0x200
+
+/* NPCM_PECI_CTL_STS - 0x00 : Control Register */
+#define NPCM_PECI_CTRL_DONE_INT_EN BIT(6)
+#define NPCM_PECI_CTRL_ABRT_ERR BIT(4)
+#define NPCM_PECI_CTRL_CRC_ERR BIT(3)
+#define NPCM_PECI_CTRL_DONE BIT(1)
+#define NPCM_PECI_CTRL_START_BUSY BIT(0)
+
+/* NPCM_PECI_RD_LENGTH - 0x04 : Command Register */
+#define NPCM_PECI_RD_LEN_MASK GENMASK(6, 0)
+
+/* NPCM_PECI_CMD - 0x10 : Command Register */
+#define NPCM_PECI_CTL2_MASK GENMASK(7, 6)
+
+/* NPCM_PECI_WR_LENGTH - 0x1C : Command Register */
+#define NPCM_PECI_WR_LEN_MASK GENMASK(6, 0)
+
+/* NPCM_PECI_PDDR - 0x2C : Command Register */
+#define NPCM_PECI_PDDR_MASK GENMASK(4, 0)
+
+#define NPCM_PECI_INT_MASK (NPCM_PECI_CTRL_ABRT_ERR | \
+ NPCM_PECI_CTRL_CRC_ERR | \
+ NPCM_PECI_CTRL_DONE)
+
+#define NPCM_PECI_IDLE_CHECK_TIMEOUT_USEC (50 * USEC_PER_MSEC)
+#define NPCM_PECI_IDLE_CHECK_INTERVAL_USEC (10 * USEC_PER_MSEC)
+#define NPCM_PECI_CMD_TIMEOUT_MS_DEFAULT 1000
+#define NPCM_PECI_CMD_TIMEOUT_MS_MAX 60000
+#define NPCM_PECI_HOST_NEG_BIT_RATE_DEFAULT 15
+#define NPCM_PECI_PULL_DOWN_DEFAULT 0
+
+struct npcm_peci {
+ u32 cmd_timeout_ms;
+ struct completion xfer_complete;
+ struct regmap *regmap;
+ u32 status;
+ spinlock_t lock; /* to sync completion status handling */
+ struct peci_controller *controller;
+ struct device *dev;
+ struct clk *clk;
+ int irq;
+};
+
+static int npcm_peci_xfer(struct peci_controller *controller, u8 addr, struct peci_request *req)
+{
+ struct npcm_peci *priv = dev_get_drvdata(controller->dev.parent);
+ unsigned long timeout = msecs_to_jiffies(priv->cmd_timeout_ms);
+ unsigned int msg_rd;
+ u32 cmd_sts;
+ int i, ret;
+
+ /* Check command sts and bus idle state */
+ ret = regmap_read_poll_timeout(priv->regmap, NPCM_PECI_CTL_STS, cmd_sts,
+ !(cmd_sts & NPCM_PECI_CTRL_START_BUSY),
+ NPCM_PECI_IDLE_CHECK_INTERVAL_USEC,
+ NPCM_PECI_IDLE_CHECK_TIMEOUT_USEC);
+ if (ret)
+ return ret; /* -ETIMEDOUT */
+
+ spin_lock_irq(&priv->lock);
+ reinit_completion(&priv->xfer_complete);
+
+ regmap_write(priv->regmap, NPCM_PECI_ADDR, addr);
+ regmap_write(priv->regmap, NPCM_PECI_RD_LENGTH, NPCM_PECI_WR_LEN_MASK & req->rx.len);
+ regmap_write(priv->regmap, NPCM_PECI_WR_LENGTH, NPCM_PECI_WR_LEN_MASK & req->tx.len);
+
+ if (req->tx.len) {
+ regmap_write(priv->regmap, NPCM_PECI_CMD, req->tx.buf[0]);
+
+ for (i = 0; i < (req->tx.len - 1); i++)
+ regmap_write(priv->regmap, NPCM_PECI_DAT_INOUT(i), req->tx.buf[i + 1]);
+ }
+
+#if IS_ENABLED(CONFIG_DYNAMIC_DEBUG)
+ dev_dbg(priv->dev, "addr : %#02x, tx.len : %#02x, rx.len : %#02x\n",
+ addr, req->tx.len, req->rx.len);
+ print_hex_dump_bytes("TX : ", DUMP_PREFIX_NONE, req->tx.buf, req->tx.len);
+#endif
+
+ priv->status = 0;
+ regmap_update_bits(priv->regmap, NPCM_PECI_CTL_STS, NPCM_PECI_CTRL_START_BUSY,
+ NPCM_PECI_CTRL_START_BUSY);
+
+ spin_unlock_irq(&priv->lock);
+
+ ret = wait_for_completion_interruptible_timeout(&priv->xfer_complete, timeout);
+ if (ret < 0)
+ return ret;
+
+ if (ret == 0) {
+ dev_dbg(priv->dev, "timeout waiting for a response\n");
+ return -ETIMEDOUT;
+ }
+
+ spin_lock_irq(&priv->lock);
+
+ if (priv->status != NPCM_PECI_CTRL_DONE) {
+ spin_unlock_irq(&priv->lock);
+ dev_dbg(priv->dev, "no valid response, status: %#02x\n", priv->status);
+ return -EIO;
+ }
+
+ regmap_write(priv->regmap, NPCM_PECI_CMD, 0);
+
+ for (i = 0; i < req->rx.len; i++) {
+ regmap_read(priv->regmap, NPCM_PECI_DAT_INOUT(i), &msg_rd);
+ req->rx.buf[i] = (u8)msg_rd;
+ }
+
+ spin_unlock_irq(&priv->lock);
+
+#if IS_ENABLED(CONFIG_DYNAMIC_DEBUG)
+ print_hex_dump_bytes("RX : ", DUMP_PREFIX_NONE, req->rx.buf, req->rx.len);
+#endif
+ return 0;
+}
+
+static irqreturn_t npcm_peci_irq_handler(int irq, void *arg)
+{
+ struct npcm_peci *priv = arg;
+ u32 status_ack = 0;
+ u32 status;
+
+ spin_lock(&priv->lock);
+ regmap_read(priv->regmap, NPCM_PECI_CTL_STS, &status);
+ priv->status |= (status & NPCM_PECI_INT_MASK);
+
+ if (status & NPCM_PECI_CTRL_CRC_ERR)
+ status_ack |= NPCM_PECI_CTRL_CRC_ERR;
+
+ if (status & NPCM_PECI_CTRL_ABRT_ERR)
+ status_ack |= NPCM_PECI_CTRL_ABRT_ERR;
+
+ /*
+ * All commands should be ended up with a NPCM_PECI_CTRL_DONE
+ * bit set even in an error case.
+ */
+ if (status & NPCM_PECI_CTRL_DONE) {
+ status_ack |= NPCM_PECI_CTRL_DONE;
+ complete(&priv->xfer_complete);
+ }
+
+ regmap_write_bits(priv->regmap, NPCM_PECI_CTL_STS, NPCM_PECI_INT_MASK, status_ack);
+
+ spin_unlock(&priv->lock);
+ return IRQ_HANDLED;
+}
+
+static int npcm_peci_init_ctrl(struct npcm_peci *priv)
+{
+ u32 cmd_sts;
+ int ret;
+
+ priv->clk = devm_clk_get_enabled(priv->dev, NULL);
+ if (IS_ERR(priv->clk)) {
+ dev_err(priv->dev, "failed to get ref clock\n");
+ return PTR_ERR(priv->clk);
+ }
+
+ ret = device_property_read_u32(priv->dev, "cmd-timeout-ms", &priv->cmd_timeout_ms);
+ if (ret) {
+ priv->cmd_timeout_ms = NPCM_PECI_CMD_TIMEOUT_MS_DEFAULT;
+ } else if (priv->cmd_timeout_ms > NPCM_PECI_CMD_TIMEOUT_MS_MAX ||
+ priv->cmd_timeout_ms == 0) {
+ dev_warn(priv->dev, "invalid cmd-timeout-ms: %u, falling back to: %u\n",
+ priv->cmd_timeout_ms, NPCM_PECI_CMD_TIMEOUT_MS_DEFAULT);
+
+ priv->cmd_timeout_ms = NPCM_PECI_CMD_TIMEOUT_MS_DEFAULT;
+ }
+
+ regmap_update_bits(priv->regmap, NPCM_PECI_CTL2, NPCM_PECI_CTL2_MASK,
+ NPCM_PECI_PULL_DOWN_DEFAULT << 6);
+
+ regmap_update_bits(priv->regmap, NPCM_PECI_PDDR, NPCM_PECI_PDDR_MASK,
+ NPCM_PECI_HOST_NEG_BIT_RATE_DEFAULT);
+
+ ret = regmap_read_poll_timeout(priv->regmap, NPCM_PECI_CTL_STS, cmd_sts,
+ !(cmd_sts & NPCM_PECI_CTRL_START_BUSY),
+ NPCM_PECI_IDLE_CHECK_INTERVAL_USEC,
+ NPCM_PECI_IDLE_CHECK_TIMEOUT_USEC);
+ if (ret)
+ return ret; /* -ETIMEDOUT */
+
+ /* PECI interrupt enable */
+ regmap_update_bits(priv->regmap, NPCM_PECI_CTL_STS, NPCM_PECI_CTRL_DONE_INT_EN,
+ NPCM_PECI_CTRL_DONE_INT_EN);
+
+ return 0;
+}
+
+static const struct regmap_config npcm_peci_regmap_config = {
+ .reg_bits = 8,
+ .val_bits = 8,
+ .max_register = NPCM_PECI_MAX_REG,
+ .fast_io = true,
+};
+
+static struct peci_controller_ops npcm_ops = {
+ .xfer = npcm_peci_xfer,
+};
+
+static int npcm_peci_probe(struct platform_device *pdev)
+{
+ struct peci_controller *controller;
+ struct npcm_peci *priv;
+ void __iomem *base;
+ int ret;
+
+ priv = devm_kzalloc(&pdev->dev, sizeof(*priv), GFP_KERNEL);
+ if (!priv)
+ return -ENOMEM;
+
+ priv->dev = &pdev->dev;
+ dev_set_drvdata(&pdev->dev, priv);
+
+ base = devm_platform_ioremap_resource(pdev, 0);
+ if (IS_ERR(base))
+ return PTR_ERR(base);
+
+ priv->regmap = devm_regmap_init_mmio(&pdev->dev, base, &npcm_peci_regmap_config);
+ if (IS_ERR(priv->regmap))
+ return PTR_ERR(priv->regmap);
+
+ priv->irq = platform_get_irq(pdev, 0);
+ if (priv->irq < 0)
+ return priv->irq;
+
+ ret = devm_request_irq(&pdev->dev, priv->irq, npcm_peci_irq_handler,
+ 0, "peci-npcm-irq", priv);
+ if (ret)
+ return ret;
+
+ init_completion(&priv->xfer_complete);
+ spin_lock_init(&priv->lock);
+
+ ret = npcm_peci_init_ctrl(priv);
+ if (ret)
+ return ret;
+
+ controller = devm_peci_controller_add(priv->dev, &npcm_ops);
+ if (IS_ERR(controller))
+ return dev_err_probe(priv->dev, PTR_ERR(controller),
+ "failed to add npcm peci controller\n");
+
+ priv->controller = controller;
+
+ return 0;
+}
+
+static const struct of_device_id npcm_peci_of_table[] = {
+ { .compatible = "nuvoton,npcm750-peci", },
+ { .compatible = "nuvoton,npcm845-peci", },
+ { }
+};
+MODULE_DEVICE_TABLE(of, npcm_peci_of_table);
+
+static struct platform_driver npcm_peci_driver = {
+ .probe = npcm_peci_probe,
+ .driver = {
+ .name = KBUILD_MODNAME,
+ .of_match_table = npcm_peci_of_table,
+ },
+};
+module_platform_driver(npcm_peci_driver);
+
+MODULE_AUTHOR("Tomer Maimon <tomer.maimon@nuvoton.com>");
+MODULE_DESCRIPTION("NPCM PECI driver");
+MODULE_LICENSE("GPL");
+MODULE_IMPORT_NS(PECI);
--
2.40.1
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [RFT PATCH 3/4] ARM: dts: nuvoton: Add PECI controller node
2023-06-16 19:34 [RFT PATCH 0/4] Add support for PECI Nuvoton Iwona Winiarska
2023-06-16 19:34 ` [RFT PATCH 1/4] dt-bindings: Add bindings for peci-npcm Iwona Winiarska
2023-06-16 19:34 ` [RFT PATCH 2/4] peci: Add peci-npcm controller driver Iwona Winiarska
@ 2023-06-16 19:34 ` Iwona Winiarska
2023-06-16 19:34 ` [RFT PATCH 4/4] arm64: " Iwona Winiarska
2023-06-18 10:10 ` [RFT PATCH 0/4] Add support for PECI Nuvoton Tomer Maimon
4 siblings, 0 replies; 11+ messages in thread
From: Iwona Winiarska @ 2023-06-16 19:34 UTC (permalink / raw)
To: openbmc, Tomer Maimon, kfting; +Cc: Iwona Winiarska
Add PECI controller node with all required information.
Signed-off-by: Iwona Winiarska <iwona.winiarska@intel.com>
---
arch/arm/boot/dts/nuvoton-common-npcm7xx.dtsi | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/arch/arm/boot/dts/nuvoton-common-npcm7xx.dtsi b/arch/arm/boot/dts/nuvoton-common-npcm7xx.dtsi
index c7b5ef15b716..cccc33441050 100644
--- a/arch/arm/boot/dts/nuvoton-common-npcm7xx.dtsi
+++ b/arch/arm/boot/dts/nuvoton-common-npcm7xx.dtsi
@@ -220,6 +220,15 @@ kcs3: kcs3@0 {
};
};
+ peci0: peci-controller@f0100000 {
+ compatible = "nuvoton,npcm750-peci";
+ reg = <0xf0100000 0x200>;
+ interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&clk NPCM7XX_CLK_APB3>;
+ cmd-timeout-ms = <1000>;
+ status = "disabled";
+ };
+
spi0: spi@200000 {
compatible = "nuvoton,npcm750-pspi";
reg = <0x200000 0x1000>;
--
2.40.1
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [RFT PATCH 4/4] arm64: dts: nuvoton: Add PECI controller node
2023-06-16 19:34 [RFT PATCH 0/4] Add support for PECI Nuvoton Iwona Winiarska
` (2 preceding siblings ...)
2023-06-16 19:34 ` [RFT PATCH 3/4] ARM: dts: nuvoton: Add PECI controller node Iwona Winiarska
@ 2023-06-16 19:34 ` Iwona Winiarska
2023-06-18 10:10 ` [RFT PATCH 0/4] Add support for PECI Nuvoton Tomer Maimon
4 siblings, 0 replies; 11+ messages in thread
From: Iwona Winiarska @ 2023-06-16 19:34 UTC (permalink / raw)
To: openbmc, Tomer Maimon, kfting; +Cc: Iwona Winiarska
Add PECI controller node with all required information.
Signed-off-by: Iwona Winiarska <iwona.winiarska@intel.com>
---
arch/arm64/boot/dts/nuvoton/nuvoton-common-npcm8xx.dtsi | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/arch/arm64/boot/dts/nuvoton/nuvoton-common-npcm8xx.dtsi b/arch/arm64/boot/dts/nuvoton/nuvoton-common-npcm8xx.dtsi
index aa7aac8c3774..b8326bbe9fde 100644
--- a/arch/arm64/boot/dts/nuvoton/nuvoton-common-npcm8xx.dtsi
+++ b/arch/arm64/boot/dts/nuvoton/nuvoton-common-npcm8xx.dtsi
@@ -68,6 +68,15 @@ apb {
ranges = <0x0 0x0 0xf0000000 0x00300000>,
<0xfff00000 0x0 0xfff00000 0x00016000>;
+ peci0: peci-controller@100000 {
+ compatible = "nuvoton,npcm845-peci";
+ reg = <0x100000 0x1000>;
+ interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&clk NPCM8XX_CLK_APB3>;
+ cmd-timeout-ms = <1000>;
+ status = "disabled";
+ };
+
timer0: timer@8000 {
compatible = "nuvoton,npcm845-timer";
interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
--
2.40.1
^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [RFT PATCH 1/4] dt-bindings: Add bindings for peci-npcm
2023-06-16 19:34 ` [RFT PATCH 1/4] dt-bindings: Add bindings for peci-npcm Iwona Winiarska
@ 2023-06-17 7:48 ` Krzysztof Kozlowski
2023-06-17 21:21 ` Winiarska, Iwona
0 siblings, 1 reply; 11+ messages in thread
From: Krzysztof Kozlowski @ 2023-06-17 7:48 UTC (permalink / raw)
To: Iwona Winiarska, openbmc, Tomer Maimon, kfting
On 16/06/2023 21:34, Iwona Winiarska wrote:
> From: Tomer Maimon <tmaimon77@gmail.com>
>
> Add device tree bindings for the peci-npcm controller driver.
>
> Signed-off-by: Tomer Maimon <tmaimon77@gmail.com>
> Signed-off-by: kfting <warp5tw@gmail.com>
> Co-developed-by: Iwona Winiarska <iwona.winiarska@intel.com>
> Signed-off-by: Iwona Winiarska <iwona.winiarska@intel.com>
Please use scripts/get_maintainers.pl to get a list of necessary people
and lists to CC. It might happen, that command when run on an older
kernel, gives you outdated entries. Therefore please be sure you base
your patches on recent Linux kernel.
You missed at least DT list (maybe more), so this won't be tested by our
tools. Performing review on untested code might be a waste of time, thus
I will skip this patch entirely till you follow the process allowing the
patch to be tested.
Please kindly resend and include all necessary To/Cc entries.
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [RFT PATCH 2/4] peci: Add peci-npcm controller driver
2023-06-16 19:34 ` [RFT PATCH 2/4] peci: Add peci-npcm controller driver Iwona Winiarska
@ 2023-06-17 7:49 ` Krzysztof Kozlowski
0 siblings, 0 replies; 11+ messages in thread
From: Krzysztof Kozlowski @ 2023-06-17 7:49 UTC (permalink / raw)
To: Iwona Winiarska, openbmc, Tomer Maimon, kfting
On 16/06/2023 21:34, Iwona Winiarska wrote:
> From: Tomer Maimon <tmaimon77@gmail.com>
>
> Add support for Nuvoton NPCM BMC hardware to the Platform Environment
> Control Interface (PECI) subsystem.
>
> Signed-off-by: Tomer Maimon <tmaimon77@gmail.com>
> Signed-off-by: kfting <warp5tw@gmail.com>
> Co-developed-by: Iwona Winiarska <iwona.winiarska@intel.com>
> Signed-off-by: Iwona Winiarska <iwona.winiarska@intel.com>
...
> +
> + return 0;
> +}
> +
> +static const struct of_device_id npcm_peci_of_table[] = {
> + { .compatible = "nuvoton,npcm750-peci", },
> + { .compatible = "nuvoton,npcm845-peci", },
So they are compatible? Binding did not say that.
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [RFT PATCH 1/4] dt-bindings: Add bindings for peci-npcm
2023-06-17 7:48 ` Krzysztof Kozlowski
@ 2023-06-17 21:21 ` Winiarska, Iwona
2023-06-18 7:53 ` Krzysztof Kozlowski
0 siblings, 1 reply; 11+ messages in thread
From: Winiarska, Iwona @ 2023-06-17 21:21 UTC (permalink / raw)
To: tmaimon77, openbmc, warp5tw, krzk
On Sat, 2023-06-17 at 09:48 +0200, Krzysztof Kozlowski wrote:
> On 16/06/2023 21:34, Iwona Winiarska wrote:
> > From: Tomer Maimon <tmaimon77@gmail.com>
> >
> > Add device tree bindings for the peci-npcm controller driver.
> >
> > Signed-off-by: Tomer Maimon <tmaimon77@gmail.com>
> > Signed-off-by: kfting <warp5tw@gmail.com>
> > Co-developed-by: Iwona Winiarska <iwona.winiarska@intel.com>
> > Signed-off-by: Iwona Winiarska <iwona.winiarska@intel.com>
>
> Please use scripts/get_maintainers.pl to get a list of necessary people
> and lists to CC. It might happen, that command when run on an older
> kernel, gives you outdated entries. Therefore please be sure you base
> your patches on recent Linux kernel.
>
> You missed at least DT list (maybe more), so this won't be tested by our
> tools. Performing review on untested code might be a waste of time, thus
> I will skip this patch entirely till you follow the process allowing the
> patch to be tested.
That was the idea behind marking it as "RFT", adding a note that "I wasn't able
to test it on a real hardware so I would like to ask for help to test it on
Nuvoton systems." in the cover letter, and sending it exclusively to OpenBMC
mailinglist - to avoid wasting time on review before someone has a chance to run
it on Nuvoton hardware.
-Iwona
>
> Please kindly resend and include all necessary To/Cc entries.
>
>
> Best regards,
> Krzysztof
>
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [RFT PATCH 1/4] dt-bindings: Add bindings for peci-npcm
2023-06-17 21:21 ` Winiarska, Iwona
@ 2023-06-18 7:53 ` Krzysztof Kozlowski
0 siblings, 0 replies; 11+ messages in thread
From: Krzysztof Kozlowski @ 2023-06-18 7:53 UTC (permalink / raw)
To: Winiarska, Iwona, tmaimon77, openbmc, warp5tw
On 17/06/2023 23:21, Winiarska, Iwona wrote:
> On Sat, 2023-06-17 at 09:48 +0200, Krzysztof Kozlowski wrote:
>> On 16/06/2023 21:34, Iwona Winiarska wrote:
>>> From: Tomer Maimon <tmaimon77@gmail.com>
>>>
>>> Add device tree bindings for the peci-npcm controller driver.
>>>
>>> Signed-off-by: Tomer Maimon <tmaimon77@gmail.com>
>>> Signed-off-by: kfting <warp5tw@gmail.com>
>>> Co-developed-by: Iwona Winiarska <iwona.winiarska@intel.com>
>>> Signed-off-by: Iwona Winiarska <iwona.winiarska@intel.com>
>>
>> Please use scripts/get_maintainers.pl to get a list of necessary people
>> and lists to CC. It might happen, that command when run on an older
>> kernel, gives you outdated entries. Therefore please be sure you base
>> your patches on recent Linux kernel.
>>
>> You missed at least DT list (maybe more), so this won't be tested by our
>> tools. Performing review on untested code might be a waste of time, thus
>> I will skip this patch entirely till you follow the process allowing the
>> patch to be tested.
>
> That was the idea behind marking it as "RFT", adding a note that "I wasn't able
> to test it on a real hardware so I would like to ask for help to test it on
> Nuvoton systems."
Which does not explain sending patch incorrect patch or patch which
automation cannot test.
> in the cover letter, and sending it exclusively to OpenBMC
> mailinglist - to avoid wasting time on review before someone has a chance to run
> it on Nuvoton hardware.
Usually such patches after receiving tested tags are immediately
applied, so in that case your patch would be applied without review and
our automation testing.
Anyway, fine, to be clear it cannot be applied:
NAK, patch is not correct
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [RFT PATCH 0/4] Add support for PECI Nuvoton
2023-06-16 19:34 [RFT PATCH 0/4] Add support for PECI Nuvoton Iwona Winiarska
` (3 preceding siblings ...)
2023-06-16 19:34 ` [RFT PATCH 4/4] arm64: " Iwona Winiarska
@ 2023-06-18 10:10 ` Tomer Maimon
2023-06-19 13:38 ` Tomer Maimon
4 siblings, 1 reply; 11+ messages in thread
From: Tomer Maimon @ 2023-06-18 10:10 UTC (permalink / raw)
To: Iwona Winiarska; +Cc: openbmc, kfting
Hi Iwona,
Thanks a lot for upstream Nuvoton PECI driver.
We will test the driver in a day or two and let you know.
Best regards,
Tomer
On Fri, 16 Jun 2023 at 22:35, Iwona Winiarska <iwona.winiarska@intel.com> wrote:
>
> Hi!
>
> This series is based on patches that were sent by Tomer Maimon from
> Nuvoton [1].
> Similar to Aspeed driver, I removed vendor-specific properties that
> were not used (as in, default values were used in all of the available
> DTS files). If there is a use-case for such properties, they can be
> added in a separate series.
> I wasn't able to test it on a real hardware so I would like to ask for
> help to test it on Nuvoton systems.
>
> Thanks
> -Iwona
>
> [1] https://lore.kernel.org/openbmc/CAP6Zq1jnbQ8k9VEyf9WgVq5DRrEzf5V6kaYP30S7g9BV9jKtaQ@mail.gmail.com/
>
> Iwona Winiarska (2):
> ARM: dts: nuvoton: Add PECI controller node
> arm64: dts: nuvoton: Add PECI controller node
>
> Tomer Maimon (2):
> dt-bindings: Add bindings for peci-npcm
> peci: Add peci-npcm controller driver
>
> .../devicetree/bindings/peci/peci-npcm.yaml | 56 ++++
> arch/arm/boot/dts/nuvoton-common-npcm7xx.dtsi | 9 +
> .../dts/nuvoton/nuvoton-common-npcm8xx.dtsi | 9 +
> drivers/peci/controller/Kconfig | 16 +
> drivers/peci/controller/Makefile | 1 +
> drivers/peci/controller/peci-npcm.c | 298 ++++++++++++++++++
> 6 files changed, 389 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/peci/peci-npcm.yaml
> create mode 100644 drivers/peci/controller/peci-npcm.c
>
> --
> 2.40.1
>
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [RFT PATCH 0/4] Add support for PECI Nuvoton
2023-06-18 10:10 ` [RFT PATCH 0/4] Add support for PECI Nuvoton Tomer Maimon
@ 2023-06-19 13:38 ` Tomer Maimon
0 siblings, 0 replies; 11+ messages in thread
From: Tomer Maimon @ 2023-06-19 13:38 UTC (permalink / raw)
To: Iwona Winiarska; +Cc: openbmc, kfting
Hi Iwona,
The PECI driver has been tested on the NPCM750 Olympus system.
Please let me know if you need anything else.
Best regards,
Tomer
On Sun, 18 Jun 2023 at 13:10, Tomer Maimon <tmaimon77@gmail.com> wrote:
>
> Hi Iwona,
>
> Thanks a lot for upstream Nuvoton PECI driver.
>
> We will test the driver in a day or two and let you know.
>
> Best regards,
>
> Tomer
>
> On Fri, 16 Jun 2023 at 22:35, Iwona Winiarska <iwona.winiarska@intel.com> wrote:
> >
> > Hi!
> >
> > This series is based on patches that were sent by Tomer Maimon from
> > Nuvoton [1].
> > Similar to Aspeed driver, I removed vendor-specific properties that
> > were not used (as in, default values were used in all of the available
> > DTS files). If there is a use-case for such properties, they can be
> > added in a separate series.
> > I wasn't able to test it on a real hardware so I would like to ask for
> > help to test it on Nuvoton systems.
> >
> > Thanks
> > -Iwona
> >
> > [1] https://lore.kernel.org/openbmc/CAP6Zq1jnbQ8k9VEyf9WgVq5DRrEzf5V6kaYP30S7g9BV9jKtaQ@mail.gmail.com/
> >
> > Iwona Winiarska (2):
> > ARM: dts: nuvoton: Add PECI controller node
> > arm64: dts: nuvoton: Add PECI controller node
> >
> > Tomer Maimon (2):
> > dt-bindings: Add bindings for peci-npcm
> > peci: Add peci-npcm controller driver
> >
> > .../devicetree/bindings/peci/peci-npcm.yaml | 56 ++++
> > arch/arm/boot/dts/nuvoton-common-npcm7xx.dtsi | 9 +
> > .../dts/nuvoton/nuvoton-common-npcm8xx.dtsi | 9 +
> > drivers/peci/controller/Kconfig | 16 +
> > drivers/peci/controller/Makefile | 1 +
> > drivers/peci/controller/peci-npcm.c | 298 ++++++++++++++++++
> > 6 files changed, 389 insertions(+)
> > create mode 100644 Documentation/devicetree/bindings/peci/peci-npcm.yaml
> > create mode 100644 drivers/peci/controller/peci-npcm.c
> >
> > --
> > 2.40.1
> >
^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2023-06-19 13:39 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-06-16 19:34 [RFT PATCH 0/4] Add support for PECI Nuvoton Iwona Winiarska
2023-06-16 19:34 ` [RFT PATCH 1/4] dt-bindings: Add bindings for peci-npcm Iwona Winiarska
2023-06-17 7:48 ` Krzysztof Kozlowski
2023-06-17 21:21 ` Winiarska, Iwona
2023-06-18 7:53 ` Krzysztof Kozlowski
2023-06-16 19:34 ` [RFT PATCH 2/4] peci: Add peci-npcm controller driver Iwona Winiarska
2023-06-17 7:49 ` Krzysztof Kozlowski
2023-06-16 19:34 ` [RFT PATCH 3/4] ARM: dts: nuvoton: Add PECI controller node Iwona Winiarska
2023-06-16 19:34 ` [RFT PATCH 4/4] arm64: " Iwona Winiarska
2023-06-18 10:10 ` [RFT PATCH 0/4] Add support for PECI Nuvoton Tomer Maimon
2023-06-19 13:38 ` Tomer Maimon
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.