All of lore.kernel.org
 help / color / mirror / Atom feed
* [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.