linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v4 0/2] spi: loongson: add bus driver for the loongson spi
@ 2023-03-28 11:22 Yinbo Zhu
  2023-03-28 11:22 ` [PATCH v4 1/2] dt-bindings: spi: add " Yinbo Zhu
                   ` (2 more replies)
  0 siblings, 3 replies; 17+ messages in thread
From: Yinbo Zhu @ 2023-03-28 11:22 UTC (permalink / raw)
  To: Mark Brown, Rob Herring, Krzysztof Kozlowski, linux-spi,
	devicetree, linux-kernel
  Cc: Jianmin Lv, wanghongliang, Liu Peibao, loongson-kernel, Yinbo Zhu

Loongson platform support spi hardware controller and this series patch
was to add spi driver and binding support.

Change in v2:
		1. This [PATCH v2 1/2] dt-bindings patch need depend on clk patch:
	 	   https://
		   lore.kernel.org/all/20230307115022.12846-1-zhuyinbo@loongson.cn/
		2. Remove the clock-names in spi yaml file.
		3. Add "loongson,ls7a-spi" compatible in spi yaml file.
		4. Add an || COMPILE_TEST and drop && PCI then add some CONFIG_PCI
		   macro to limit some pci code.
		5. Make the spi driver top code comment block that use C++ style.
		6. Drop spi->max_speed_hz.
		7. Add a spin_lock for loongson_spi_setup.
		8. Add a timeout and cpu_relax() in loongson_spi_write_read_8bit.
		9. Add spi_transfer_one and drop transfer and rework entire spi
		   driver that include some necessary changes.
		10. Use module_init replace subsys_initcall.
		11. About PM interface that I don't find any issue so I don't add
		    any changes.
Change in v3:
		1. This [PATCH v3 1/2] dt-bindings patch need depend on clk patch:
		   https://
		   lore.kernel.org/all/20230323025229.2971-1-zhuyinbo@loongson.cn/
		2. Drop the unused blank line in loongson,ls-spi.yaml file.
		3. Replace clock minItems with clock maxItems in yaml file.
		4. Separate spi driver into platform module, pci module and core
		   module.
		5. Replace DIV_ROUND_UP with DIV_ROUND_UP_ULL to fix compile error
		   "undefined reference to `__aeabi_uldivmod'" and  "__udivdi3 undefined"
		   that reported by test robot.
		6. Remove the spin lock.
		7. Clear the loongson_spi->hz and loongson_spi->mode in setup to fixup
		   the issue that multiple spi device transfer that maybe cause spi was
		   be misconfigured.
Change in v4:
		1. This [PATCH v4 1/2] dt-bindings patch need depend on clk patch:
		   https://
		   lore.kernel.org/all/20230323025229.2971-1-zhuyinbo@loongson.cn/
		2. Add "#include <linux/io.h>" in spi-loongson-core.c for fix the compile
		   issue which devm_ioremap no declaration.
		3. Add "EXPORT_SYMBOL_GPL(loongson_spi_dev_pm_ops)" in
		   spi-loongson-core.c for fix the compile issue which
		   loongson_spi_dev_pm_ops undefined.

Yinbo Zhu (2):
  dt-bindings: spi: add loongson spi
  spi: loongson: add bus driver for the loongson spi controller

 .../bindings/spi/loongson,ls-spi.yaml         |  43 +++
 MAINTAINERS                                   |  10 +
 drivers/spi/Kconfig                           |  31 ++
 drivers/spi/Makefile                          |   3 +
 drivers/spi/spi-loongson-core.c               | 304 ++++++++++++++++++
 drivers/spi/spi-loongson-pci.c                |  89 +++++
 drivers/spi/spi-loongson-plat.c               |  66 ++++
 drivers/spi/spi-loongson.h                    |  41 +++
 8 files changed, 587 insertions(+)

-- 
2.20.1


^ permalink raw reply	[flat|nested] 17+ messages in thread

* [PATCH v4 1/2] dt-bindings: spi: add loongson spi
  2023-03-28 11:22 [PATCH v4 0/2] spi: loongson: add bus driver for the loongson spi Yinbo Zhu
@ 2023-03-28 11:22 ` Yinbo Zhu
  2023-03-28 11:30   ` zhuyinbo
                     ` (2 more replies)
  2023-03-28 11:22 ` [PATCH v4 2/2] spi: loongson: add bus driver for the loongson spi controller Yinbo Zhu
  2023-03-28 11:35 ` [PATCH v4 0/2] spi: loongson: add bus driver for the loongson spi Andi Shyti
  2 siblings, 3 replies; 17+ messages in thread
From: Yinbo Zhu @ 2023-03-28 11:22 UTC (permalink / raw)
  To: Mark Brown, Rob Herring, Krzysztof Kozlowski, linux-spi,
	devicetree, linux-kernel
  Cc: Jianmin Lv, wanghongliang, Liu Peibao, loongson-kernel, Yinbo Zhu

Add the Loongson platform spi binding with DT schema format using
json-schema.

Signed-off-by: Yinbo Zhu <zhuyinbo@loongson.cn>
---
 .../bindings/spi/loongson,ls-spi.yaml         | 43 +++++++++++++++++++
 MAINTAINERS                                   |  6 +++
 2 files changed, 49 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/spi/loongson,ls-spi.yaml

diff --git a/Documentation/devicetree/bindings/spi/loongson,ls-spi.yaml b/Documentation/devicetree/bindings/spi/loongson,ls-spi.yaml
new file mode 100644
index 000000000000..ee80049b1258
--- /dev/null
+++ b/Documentation/devicetree/bindings/spi/loongson,ls-spi.yaml
@@ -0,0 +1,43 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/spi/loongson,ls-spi.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Loongson SPI controller
+
+maintainers:
+  - Yinbo Zhu <zhuyinbo@loongson.cn>
+
+allOf:
+  - $ref: /schemas/spi/spi-controller.yaml#
+
+properties:
+  compatible:
+    enum:
+      - loongson,ls2k-spi
+      - loongson,ls7a-spi
+
+  reg:
+    maxItems: 1
+
+  clocks:
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
+  - clocks
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/loongson,ls2k-clk.h>
+    spi0: spi@1fff0220{
+        compatible = "loongson,ls2k-spi";
+        reg = <0x1fff0220 0x10>;
+        clocks = <&clk LOONGSON2_BOOT_CLK>;
+        #address-cells = <1>;
+        #size-cells = <0>;
+    };
diff --git a/MAINTAINERS b/MAINTAINERS
index 25a0981c74b6..9bc2158c735d 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -12157,6 +12157,12 @@ S:	Maintained
 F:	Documentation/devicetree/bindings/clock/loongson,ls2k-clk.yaml
 F:	include/dt-bindings/clock/loongson,ls2k-clk.h
 
+LOONGSON SPI DRIVER
+M:	Yinbo Zhu <zhuyinbo@loongson.cn>
+L:	linux-spi@vger.kernel.org
+S:	Maintained
+F:	Documentation/devicetree/bindings/spi/loongson,ls-spi.yaml
+
 LSILOGIC MPT FUSION DRIVERS (FC/SAS/SPI)
 M:	Sathya Prakash <sathya.prakash@broadcom.com>
 M:	Sreekanth Reddy <sreekanth.reddy@broadcom.com>
-- 
2.20.1


^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH v4 2/2] spi: loongson: add bus driver for the loongson spi controller
  2023-03-28 11:22 [PATCH v4 0/2] spi: loongson: add bus driver for the loongson spi Yinbo Zhu
  2023-03-28 11:22 ` [PATCH v4 1/2] dt-bindings: spi: add " Yinbo Zhu
@ 2023-03-28 11:22 ` Yinbo Zhu
  2023-03-28 11:35 ` [PATCH v4 0/2] spi: loongson: add bus driver for the loongson spi Andi Shyti
  2 siblings, 0 replies; 17+ messages in thread
From: Yinbo Zhu @ 2023-03-28 11:22 UTC (permalink / raw)
  To: Mark Brown, Rob Herring, Krzysztof Kozlowski, linux-spi,
	devicetree, linux-kernel
  Cc: Jianmin Lv, wanghongliang, Liu Peibao, loongson-kernel, Yinbo Zhu

This bus driver supports the Loongson spi hardware controller in the
Loongson platforms and supports to use DTS and PCI framework to
register spi device resources.

Signed-off-by: Yinbo Zhu <zhuyinbo@loongson.cn>
---
 MAINTAINERS                     |   4 +
 drivers/spi/Kconfig             |  31 ++++
 drivers/spi/Makefile            |   3 +
 drivers/spi/spi-loongson-core.c | 304 ++++++++++++++++++++++++++++++++
 drivers/spi/spi-loongson-pci.c  |  89 ++++++++++
 drivers/spi/spi-loongson-plat.c |  66 +++++++
 drivers/spi/spi-loongson.h      |  41 +++++
 7 files changed, 538 insertions(+)
 create mode 100644 drivers/spi/spi-loongson-core.c
 create mode 100644 drivers/spi/spi-loongson-pci.c
 create mode 100644 drivers/spi/spi-loongson-plat.c
 create mode 100644 drivers/spi/spi-loongson.h

diff --git a/MAINTAINERS b/MAINTAINERS
index 9bc2158c735d..f2b1ad2c785a 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -12162,6 +12162,10 @@ M:	Yinbo Zhu <zhuyinbo@loongson.cn>
 L:	linux-spi@vger.kernel.org
 S:	Maintained
 F:	Documentation/devicetree/bindings/spi/loongson,ls-spi.yaml
+F:	drivers/spi/spi-loongson-core.c
+F:	drivers/spi/spi-loongson-pci.c
+F:	drivers/spi/spi-loongson-plat.c
+F:	drivers/spi/spi-loongson.h
 
 LSILOGIC MPT FUSION DRIVERS (FC/SAS/SPI)
 M:	Sathya Prakash <sathya.prakash@broadcom.com>
diff --git a/drivers/spi/Kconfig b/drivers/spi/Kconfig
index cbf60b6a931c..87f87ee35d27 100644
--- a/drivers/spi/Kconfig
+++ b/drivers/spi/Kconfig
@@ -509,6 +509,37 @@ config SPI_LM70_LLP
 	  which interfaces to an LM70 temperature sensor using
 	  a parallel port.
 
+config SPI_LOONGSON_CORE
+	tristate "Loongson SPI Controller Core Driver Support"
+	depends on LOONGARCH || COMPILE_TEST
+	help
+	  This core driver supports the Loongson spi hardware controller in
+	  the Loongson platforms.
+	  Say Y or M here if you want to use the SPI controller on
+	  Loongson platform.
+
+config SPI_LOONGSON_PCI
+	tristate "Loongson SPI Controller PCI Driver Support"
+	select SPI_LOONGSON_CORE
+	depends on PCI && (LOONGARCH || COMPILE_TEST)
+	help
+	  This bus driver supports the Loongson spi hardware controller in
+	  the Loongson platforms and supports to use PCI framework to
+	  register spi device resources.
+	  Say Y or M here if you want to use the SPI controller on
+	  Loongson platform.
+
+config SPI_LOONGSON_PLATFORM
+	tristate "Loongson SPI Controller Platform Driver Support"
+	select SPI_LOONGSON_CORE
+	depends on OF && (LOONGARCH || COMPILE_TEST)
+	help
+	  This bus driver supports the Loongson spi hardware controller in
+	  the Loongson platforms and supports to use DTS framework to
+	  register spi device resources.
+	  Say Y or M here if you want to use the SPI controller on
+	  Loongson platform.
+
 config SPI_LP8841_RTC
 	tristate "ICP DAS LP-8841 SPI Controller for RTC"
 	depends on MACH_PXA27X_DT || COMPILE_TEST
diff --git a/drivers/spi/Makefile b/drivers/spi/Makefile
index d87cf75bee6a..a4931aa64476 100644
--- a/drivers/spi/Makefile
+++ b/drivers/spi/Makefile
@@ -70,6 +70,9 @@ obj-$(CONFIG_SPI_INTEL_PLATFORM)	+= spi-intel-platform.o
 obj-$(CONFIG_SPI_LANTIQ_SSC)		+= spi-lantiq-ssc.o
 obj-$(CONFIG_SPI_JCORE)			+= spi-jcore.o
 obj-$(CONFIG_SPI_LM70_LLP)		+= spi-lm70llp.o
+obj-$(CONFIG_SPI_LOONGSON_CORE)		+= spi-loongson-core.o
+obj-$(CONFIG_SPI_LOONGSON_PCI)		+= spi-loongson-pci.o
+obj-$(CONFIG_SPI_LOONGSON_PLATFORM)	+= spi-loongson-plat.o
 obj-$(CONFIG_SPI_LP8841_RTC)		+= spi-lp8841-rtc.o
 obj-$(CONFIG_SPI_MESON_SPICC)		+= spi-meson-spicc.o
 obj-$(CONFIG_SPI_MESON_SPIFC)		+= spi-meson-spifc.o
diff --git a/drivers/spi/spi-loongson-core.c b/drivers/spi/spi-loongson-core.c
new file mode 100644
index 000000000000..2e52e8048e3f
--- /dev/null
+++ b/drivers/spi/spi-loongson-core.c
@@ -0,0 +1,304 @@
+// SPDX-License-Identifier: GPL-2.0+
+// Loongson SPI Support
+// Copyright (C) 2023 Loongson Technology Corporation Limited
+
+#include <linux/init.h>
+#include <linux/module.h>
+#include <linux/kernel.h>
+#include <linux/interrupt.h>
+#include <linux/delay.h>
+#include <linux/err.h>
+#include <linux/spi/spi.h>
+#include <linux/clk.h>
+#include <linux/io.h>
+
+#include "spi-loongson.h"
+
+static inline void loongson_spi_write_reg(struct loongson_spi *spi, unsigned char reg,
+					  unsigned char data)
+{
+	writeb(data, spi->base + reg);
+}
+
+static inline char loongson_spi_read_reg(struct loongson_spi *spi, unsigned char reg)
+{
+	return readb(spi->base + reg);
+}
+
+static void loongson_spi_set_cs(struct spi_device *spi, bool val)
+{
+	int cs;
+	struct loongson_spi *loongson_spi = spi_master_get_devdata(spi->master);
+
+	if (loongson_spi->mode & SPI_NO_CS)
+		loongson_spi_write_reg(loongson_spi, LOONGSON_SPI_SFCS_REG, 0);
+	else {
+		cs = loongson_spi_read_reg(loongson_spi, LOONGSON_SPI_SFCS_REG)
+					   & ~(0x11 << spi->chip_select);
+		loongson_spi_write_reg(loongson_spi,
+				       LOONGSON_SPI_SFCS_REG,
+				       (val ? (0x11 << spi->chip_select) :
+				       (0x1 << spi->chip_select)) | cs);
+	}
+}
+
+static int loongson_spi_update_state(struct loongson_spi *loongson_spi,
+				     struct spi_device *spi, struct spi_transfer *t)
+{
+	unsigned int hz;
+	unsigned int div, div_tmp;
+	unsigned int bit;
+	unsigned char val;
+	const char rdiv[12] = {0, 1, 4, 2, 3, 5, 6, 7, 8, 9, 10, 11};
+
+	if (t)
+		hz = t->speed_hz;
+
+	if ((hz && loongson_spi->hz != hz) ||
+	    ((spi->mode ^ loongson_spi->mode) & (SPI_CPOL | SPI_CPHA))) {
+		div = DIV_ROUND_UP_ULL(loongson_spi->clk_rate, hz);
+		if (div < 2)
+			div = 2;
+		if (div > 4096)
+			div = 4096;
+
+		bit = fls(div) - 1;
+		if ((1<<bit) == div)
+			bit--;
+		div_tmp = rdiv[bit];
+		dev_dbg(&spi->dev, "clk_rate = %llu hz = %d div_tmp = %d bit = %d\n",
+			loongson_spi->clk_rate, hz, div_tmp, bit);
+
+		loongson_spi->hz = hz;
+		loongson_spi->spcr = div_tmp & 3;
+		loongson_spi->sper = (div_tmp >> 2) & 3;
+		val = loongson_spi_read_reg(loongson_spi, LOONGSON_SPI_SPCR_REG);
+		val &= ~0xc;
+		if (spi->mode & SPI_CPOL)
+			val |= 8;
+		if (spi->mode & SPI_CPHA)
+			val |= 4;
+
+		loongson_spi_write_reg(loongson_spi, LOONGSON_SPI_SPCR_REG, (val & ~3) |
+				       loongson_spi->spcr);
+		val = loongson_spi_read_reg(loongson_spi, LOONGSON_SPI_SPER_REG);
+		loongson_spi_write_reg(loongson_spi, LOONGSON_SPI_SPER_REG, (val & ~3) |
+				       loongson_spi->sper);
+		loongson_spi->mode &= SPI_NO_CS;
+		loongson_spi->mode |= spi->mode;
+	}
+
+	return 0;
+}
+
+static int loongson_spi_setup(struct spi_device *spi)
+{
+	struct loongson_spi *loongson_spi;
+
+	loongson_spi = spi_master_get_devdata(spi->master);
+	if (spi->bits_per_word % 8)
+		return -EINVAL;
+
+	if (spi->chip_select >= spi->master->num_chipselect)
+		return -EINVAL;
+
+	loongson_spi->hz = 0;
+	loongson_spi->mode &= SPI_NO_CS;
+	loongson_spi_set_cs(spi, 1);
+
+	return 0;
+}
+
+static int loongson_spi_write_read_8bit(struct spi_device *spi, const u8 **tx_buf,
+					u8 **rx_buf, unsigned int num)
+{
+	struct loongson_spi *loongson_spi = spi_master_get_devdata(spi->master);
+	unsigned long timeout = jiffies + SPI_COMPLETION_TIMEOUT;
+
+	if (tx_buf && *tx_buf) {
+		loongson_spi_write_reg(loongson_spi, LOONGSON_SPI_FIFO_REG, *((*tx_buf)++));
+		while ((loongson_spi_read_reg(loongson_spi, LOONGSON_SPI_SPSR_REG) & 0x1) == 1 &&
+			time_after(timeout, jiffies))
+			cpu_relax();
+	} else {
+		loongson_spi_write_reg(loongson_spi, LOONGSON_SPI_FIFO_REG, 0);
+		while ((loongson_spi_read_reg(loongson_spi, LOONGSON_SPI_SPSR_REG) & 0x1) == 1 &&
+			time_after(timeout, jiffies))
+			cpu_relax();
+	}
+
+	if (rx_buf && *rx_buf)
+		*(*rx_buf)++ = loongson_spi_read_reg(loongson_spi, LOONGSON_SPI_FIFO_REG);
+	else
+		loongson_spi_read_reg(loongson_spi, LOONGSON_SPI_FIFO_REG);
+
+	return 0;
+}
+
+static unsigned int loongson_spi_write_read(struct spi_device *spi, struct spi_transfer *xfer)
+{
+	unsigned int count;
+	const u8 *tx = xfer->tx_buf;
+	u8 *rx = xfer->rx_buf;
+
+	count = xfer->len;
+
+	do {
+		if (loongson_spi_write_read_8bit(spi, &tx, &rx, count) < 0)
+			goto out;
+		count--;
+	} while (count);
+
+out:
+	return xfer->len - count;
+}
+
+static int loongson_spi_prepare_message(struct spi_controller *ctlr, struct spi_message *m)
+{
+	struct loongson_spi *loongson_spi = spi_controller_get_devdata(ctlr);
+
+	loongson_spi->para = loongson_spi_read_reg(loongson_spi, LOONGSON_SPI_PARA_REG);
+	loongson_spi_write_reg(loongson_spi, LOONGSON_SPI_PARA_REG, loongson_spi->para & ~1);
+
+	return 0;
+}
+
+static int loongson_spi_transfer_one(struct spi_controller *ctrl, struct spi_device *spi,
+				     struct spi_transfer *xfer)
+{
+	struct loongson_spi *loongson_spi = spi_master_get_devdata(spi->master);
+
+	loongson_spi_update_state(loongson_spi, spi, xfer);
+	if (xfer->len)
+		xfer->len = loongson_spi_write_read(spi, xfer);
+
+	return 0;
+}
+
+static int loongson_spi_unprepare_message(struct spi_controller *ctrl, struct spi_message *m)
+{
+	struct loongson_spi *loongson_spi = spi_controller_get_devdata(ctrl);
+
+	loongson_spi_write_reg(loongson_spi, LOONGSON_SPI_PARA_REG, loongson_spi->para);
+
+	return 0;
+}
+
+static void loongson_spi_reginit(struct loongson_spi *loongson_spi_dev)
+{
+	unsigned char val;
+
+	val = loongson_spi_read_reg(loongson_spi_dev, LOONGSON_SPI_SPCR_REG);
+	val &= ~LOONGSON_SPI_SPCR_SPE;
+	loongson_spi_write_reg(loongson_spi_dev, LOONGSON_SPI_SPCR_REG, val);
+
+	loongson_spi_write_reg(loongson_spi_dev, LOONGSON_SPI_SPSR_REG,
+			       (LOONGSON_SPI_SPSR_SPIF | LOONGSON_SPI_SPSR_WCOL));
+
+	val = loongson_spi_read_reg(loongson_spi_dev, LOONGSON_SPI_SPCR_REG);
+	val |= LOONGSON_SPI_SPCR_SPE;
+	loongson_spi_write_reg(loongson_spi_dev, LOONGSON_SPI_SPCR_REG, val);
+}
+
+int loongson_spi_init_master(struct device *dev, struct resource *res)
+{
+	struct spi_master *master;
+	struct loongson_spi *spi;
+	struct clk *clk;
+	int ret;
+
+	master = spi_alloc_master(dev, sizeof(struct loongson_spi));
+	if (master == NULL) {
+		dev_dbg(dev, "master allocation failed\n");
+		return -ENOMEM;
+	}
+
+	master->mode_bits = SPI_CPOL | SPI_CPHA | SPI_CS_HIGH;
+	master->setup = loongson_spi_setup;
+	master->prepare_message = loongson_spi_prepare_message;
+	master->transfer_one = loongson_spi_transfer_one;
+	master->unprepare_message = loongson_spi_unprepare_message;
+	master->set_cs = loongson_spi_set_cs;
+	master->num_chipselect = 4;
+	master->dev.of_node = of_node_get(dev->of_node);
+	dev_set_drvdata(dev, master);
+
+	spi = spi_master_get_devdata(master);
+
+	spi->master = master;
+
+	spi->base = devm_ioremap(dev, res->start, resource_size(res));
+	if (spi->base == NULL) {
+		dev_err(dev, "cannot map io\n");
+		ret = -ENXIO;
+		goto free_master;
+	}
+
+	clk = devm_clk_get(dev, NULL);
+	if (!IS_ERR(clk))
+		spi->clk_rate = clk_get_rate(clk);
+
+	loongson_spi_reginit(spi);
+
+	spi->mode = 0;
+	if (of_get_property(dev->of_node, "spi-nocs", NULL))
+		spi->mode |= SPI_NO_CS;
+
+	ret = spi_register_master(master);
+	if (ret < 0)
+		goto free_master;
+
+	return ret;
+
+free_master:
+	kfree(master);
+	spi_master_put(master);
+
+	return ret;
+}
+EXPORT_SYMBOL_GPL(loongson_spi_init_master);
+
+static int __maybe_unused loongson_spi_suspend(struct device *dev)
+{
+	struct loongson_spi *loongson_spi;
+	struct spi_master *master;
+
+	master = dev_get_drvdata(dev);
+	loongson_spi = spi_master_get_devdata(master);
+
+	loongson_spi->spcr = loongson_spi_read_reg(loongson_spi, LOONGSON_SPI_SPCR_REG);
+	loongson_spi->sper = loongson_spi_read_reg(loongson_spi, LOONGSON_SPI_SPER_REG);
+	loongson_spi->spsr = loongson_spi_read_reg(loongson_spi, LOONGSON_SPI_SPSR_REG);
+	loongson_spi->para = loongson_spi_read_reg(loongson_spi, LOONGSON_SPI_PARA_REG);
+	loongson_spi->sfcs = loongson_spi_read_reg(loongson_spi, LOONGSON_SPI_SFCS_REG);
+	loongson_spi->timi = loongson_spi_read_reg(loongson_spi, LOONGSON_SPI_TIMI_REG);
+
+	return 0;
+}
+
+static int __maybe_unused loongson_spi_resume(struct device *dev)
+{
+	struct loongson_spi *loongson_spi;
+	struct spi_master *master;
+
+	master = dev_get_drvdata(dev);
+	loongson_spi = spi_master_get_devdata(master);
+
+	loongson_spi_write_reg(loongson_spi, LOONGSON_SPI_SPCR_REG, loongson_spi->spcr);
+	loongson_spi_write_reg(loongson_spi, LOONGSON_SPI_SPER_REG, loongson_spi->sper);
+	loongson_spi_write_reg(loongson_spi, LOONGSON_SPI_SPSR_REG, loongson_spi->spsr);
+	loongson_spi_write_reg(loongson_spi, LOONGSON_SPI_PARA_REG, loongson_spi->para);
+	loongson_spi_write_reg(loongson_spi, LOONGSON_SPI_SFCS_REG, loongson_spi->sfcs);
+	loongson_spi_write_reg(loongson_spi, LOONGSON_SPI_TIMI_REG, loongson_spi->timi);
+
+	return 0;
+}
+
+const struct dev_pm_ops loongson_spi_dev_pm_ops = {
+	.suspend = loongson_spi_suspend,
+	.resume = loongson_spi_resume,
+};
+EXPORT_SYMBOL_GPL(loongson_spi_dev_pm_ops);
+
+MODULE_DESCRIPTION("Loongson spi core driver");
+MODULE_LICENSE("GPL");
diff --git a/drivers/spi/spi-loongson-pci.c b/drivers/spi/spi-loongson-pci.c
new file mode 100644
index 000000000000..b811de769ecb
--- /dev/null
+++ b/drivers/spi/spi-loongson-pci.c
@@ -0,0 +1,89 @@
+// SPDX-License-Identifier: GPL-2.0+
+// PCI interface driver for Loongson SPI Support
+// Copyright (C) 2023 Loongson Technology Corporation Limited
+
+#include <linux/pci.h>
+
+#include "spi-loongson.h"
+
+static int loongson_spi_pci_register(struct pci_dev *pdev,
+			const struct pci_device_id *ent)
+{
+	int ret;
+	unsigned char v8;
+	struct resource res[2];
+	struct device *dev = &pdev->dev;
+
+	ret = pci_enable_device(pdev);
+	if (ret < 0) {
+		dev_err(dev, "cannot enable pci device\n");
+		goto err_out;
+	}
+
+	ret = pci_request_region(pdev, 0, "loongson-spi io");
+	if (ret < 0) {
+		dev_err(dev, "cannot request region 0.\n");
+		goto err_out;
+	}
+
+	res[0].start = pci_resource_start(pdev, 0);
+	res[0].end = pci_resource_end(pdev, 0);
+	ret = pci_read_config_byte(pdev, PCI_INTERRUPT_LINE, &v8);
+
+	if (ret == PCIBIOS_SUCCESSFUL) {
+		res[1].start = v8;
+		res[1].end = v8;
+	}
+
+	ret = loongson_spi_init_master(dev, res);
+	if (ret)
+		dev_err(dev, "failed to initialize master\n");
+
+err_out:
+	return ret;
+}
+
+static void loongson_spi_pci_unregister(struct pci_dev *pdev)
+{
+	pci_release_region(pdev, 0);
+}
+
+static struct pci_device_id loongson_spi_devices[] = {
+	{PCI_DEVICE(0x14, 0x7a0b)},
+	{PCI_DEVICE(0x14, 0x7a1b)},
+	{0, 0, 0, 0, 0, 0, 0}
+};
+MODULE_DEVICE_TABLE(pci, loongson_spi_devices);
+
+static struct pci_driver loongson_spi_pci_driver = {
+	.name       = "loongson-spi-pci",
+	.id_table   = loongson_spi_devices,
+	.probe      = loongson_spi_pci_register,
+	.remove     = loongson_spi_pci_unregister,
+	.driver	= {
+		.bus = &pci_bus_type,
+		.pm = &loongson_spi_dev_pm_ops,
+	},
+};
+
+static int __init loongson_spi_pci_init(void)
+{
+	int ret;
+
+	ret = pci_register_driver(&loongson_spi_pci_driver);
+	if (ret)
+		return ret;
+
+	return 0;
+}
+
+static void __exit loongson_spi_pci_exit(void)
+{
+	pci_unregister_driver(&loongson_spi_pci_driver);
+}
+
+module_init(loongson_spi_pci_init);
+module_exit(loongson_spi_pci_exit);
+
+MODULE_DESCRIPTION("Loongson spi pci driver");
+MODULE_LICENSE("GPL");
diff --git a/drivers/spi/spi-loongson-plat.c b/drivers/spi/spi-loongson-plat.c
new file mode 100644
index 000000000000..8f4aa70168f3
--- /dev/null
+++ b/drivers/spi/spi-loongson-plat.c
@@ -0,0 +1,66 @@
+// SPDX-License-Identifier: GPL-2.0+
+// Platform driver for Loongson SPI Support
+// Copyright (C) 2023 Loongson Technology Corporation Limited
+
+#include <linux/platform_device.h>
+#include <linux/of.h>
+
+#include "spi-loongson.h"
+
+static int loongson_spi_platform_probe(struct platform_device *pdev)
+{
+	struct device *dev = &pdev->dev;
+	struct resource *res;
+	int ret;
+
+	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
+	if (res == NULL) {
+		dev_err(dev, "cannot get io resource memory\n");
+		return -ENOENT;
+	}
+
+	ret = loongson_spi_init_master(dev, res);
+	if (ret)
+		dev_err(dev, "failed to initialize master\n");
+
+	return ret;
+}
+
+static const struct of_device_id loongson_spi_id_table[] = {
+	{ .compatible = "loongson,ls2k-spi", },
+	{ }
+};
+MODULE_DEVICE_TABLE(of, loongson_spi_id_table);
+
+static struct platform_driver loongson_spi_plat_driver = {
+	.probe = loongson_spi_platform_probe,
+	.driver	= {
+		.name	= "loongson-spi",
+		.owner	= THIS_MODULE,
+		.bus = &platform_bus_type,
+		.pm = &loongson_spi_dev_pm_ops,
+		.of_match_table = loongson_spi_id_table,
+	},
+};
+
+static int __init loongson_spi_plat_init(void)
+{
+	int ret;
+
+	ret = platform_driver_register(&loongson_spi_plat_driver);
+	if (ret)
+		return ret;
+
+	return 0;
+}
+
+static void __exit loongson_spi_plat_exit(void)
+{
+	platform_driver_unregister(&loongson_spi_plat_driver);
+}
+
+module_init(loongson_spi_plat_init);
+module_exit(loongson_spi_plat_exit);
+
+MODULE_DESCRIPTION("Loongson spi platform driver");
+MODULE_LICENSE("GPL");
diff --git a/drivers/spi/spi-loongson.h b/drivers/spi/spi-loongson.h
new file mode 100644
index 000000000000..44818340188d
--- /dev/null
+++ b/drivers/spi/spi-loongson.h
@@ -0,0 +1,41 @@
+/* SPDX-License-Identifier: GPL-2.0+ */
+/* Header File for Loongson SPI Driver. */
+/* Copyright (C) 2023 Loongson Technology Corporation Limited */
+
+#ifndef __LINUX_SPI_LOONGSON_H
+#define __LINUX_SPI_LOONGSON_H
+
+#define	LOONGSON_SPI_SPCR_REG	0x00
+#define	LOONGSON_SPI_SPSR_REG	0x01
+#define	LOONGSON_SPI_FIFO_REG	0x02
+#define	LOONGSON_SPI_SPER_REG	0x03
+#define	LOONGSON_SPI_PARA_REG	0x04
+#define	LOONGSON_SPI_SFCS_REG	0x05
+#define	LOONGSON_SPI_TIMI_REG	0x06
+
+/* Bits definition for Loongson SPI register */
+#define	LOONGSON_SPI_PARA_MEM_EN	BIT(0)
+#define	LOONGSON_SPI_SPSR_SPIF	BIT(7)
+#define	LOONGSON_SPI_SPSR_WCOL	BIT(6)
+#define	LOONGSON_SPI_SPCR_SPE	BIT(6)
+
+#define SPI_COMPLETION_TIMEOUT	msecs_to_jiffies(2000)
+
+struct loongson_spi {
+	struct	spi_master	*master;
+	void __iomem		*base;
+	int			cs_active;
+	unsigned int		hz;
+	unsigned char		spcr;
+	unsigned char		sper;
+	unsigned char		spsr;
+	unsigned char		para;
+	unsigned char		sfcs;
+	unsigned char		timi;
+	unsigned int		mode;
+	u64			clk_rate;
+};
+
+extern int loongson_spi_init_master(struct device *dev, struct resource *res);
+extern const struct dev_pm_ops loongson_spi_dev_pm_ops;
+#endif /* __LINUX_SPI_LOONGSON_H */
-- 
2.20.1


^ permalink raw reply related	[flat|nested] 17+ messages in thread

* Re: [PATCH v4 1/2] dt-bindings: spi: add loongson spi
  2023-03-28 11:22 ` [PATCH v4 1/2] dt-bindings: spi: add " Yinbo Zhu
@ 2023-03-28 11:30   ` zhuyinbo
  2023-03-28 12:57   ` Rob Herring
  2023-03-29  8:06   ` Krzysztof Kozlowski
  2 siblings, 0 replies; 17+ messages in thread
From: zhuyinbo @ 2023-03-28 11:30 UTC (permalink / raw)
  To: Mark Brown, Rob Herring, Krzysztof Kozlowski, linux-spi,
	devicetree, linux-kernel
  Cc: Jianmin Lv, wanghongliang, Liu Peibao, loongson-kernel, zhuyinbo

This patch need depend on
https://lore.kernel.org/all/20230323025229.2971-1-zhuyinbo@loongson.cn/
then the spi yaml file will build successful, if no this clock patch 
that spi yaml will build fail, so please test it that base on above 
clock patch.
在 2023/3/28 下午7:22, Yinbo Zhu 写道:
> Add the Loongson platform spi binding with DT schema format using
> json-schema.
> 
> Signed-off-by: Yinbo Zhu <zhuyinbo@loongson.cn>
> ---
>   .../bindings/spi/loongson,ls-spi.yaml         | 43 +++++++++++++++++++
>   MAINTAINERS                                   |  6 +++
>   2 files changed, 49 insertions(+)
>   create mode 100644 Documentation/devicetree/bindings/spi/loongson,ls-spi.yaml
> 
> diff --git a/Documentation/devicetree/bindings/spi/loongson,ls-spi.yaml b/Documentation/devicetree/bindings/spi/loongson,ls-spi.yaml
> new file mode 100644
> index 000000000000..ee80049b1258
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/spi/loongson,ls-spi.yaml
> @@ -0,0 +1,43 @@
> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/spi/loongson,ls-spi.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Loongson SPI controller
> +
> +maintainers:
> +  - Yinbo Zhu <zhuyinbo@loongson.cn>
> +
> +allOf:
> +  - $ref: /schemas/spi/spi-controller.yaml#
> +
> +properties:
> +  compatible:
> +    enum:
> +      - loongson,ls2k-spi
> +      - loongson,ls7a-spi
> +
> +  reg:
> +    maxItems: 1
> +
> +  clocks:
> +    maxItems: 1
> +
> +required:
> +  - compatible
> +  - reg
> +  - clocks
> +
> +unevaluatedProperties: false
> +
> +examples:
> +  - |
> +    #include <dt-bindings/clock/loongson,ls2k-clk.h>
> +    spi0: spi@1fff0220{
> +        compatible = "loongson,ls2k-spi";
> +        reg = <0x1fff0220 0x10>;
> +        clocks = <&clk LOONGSON2_BOOT_CLK>;
> +        #address-cells = <1>;
> +        #size-cells = <0>;
> +    };
> diff --git a/MAINTAINERS b/MAINTAINERS
> index 25a0981c74b6..9bc2158c735d 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -12157,6 +12157,12 @@ S:	Maintained
>   F:	Documentation/devicetree/bindings/clock/loongson,ls2k-clk.yaml
>   F:	include/dt-bindings/clock/loongson,ls2k-clk.h
>   
> +LOONGSON SPI DRIVER
> +M:	Yinbo Zhu <zhuyinbo@loongson.cn>
> +L:	linux-spi@vger.kernel.org
> +S:	Maintained
> +F:	Documentation/devicetree/bindings/spi/loongson,ls-spi.yaml
> +
>   LSILOGIC MPT FUSION DRIVERS (FC/SAS/SPI)
>   M:	Sathya Prakash <sathya.prakash@broadcom.com>
>   M:	Sreekanth Reddy <sreekanth.reddy@broadcom.com>
> 


^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH v4 0/2] spi: loongson: add bus driver for the loongson spi
  2023-03-28 11:22 [PATCH v4 0/2] spi: loongson: add bus driver for the loongson spi Yinbo Zhu
  2023-03-28 11:22 ` [PATCH v4 1/2] dt-bindings: spi: add " Yinbo Zhu
  2023-03-28 11:22 ` [PATCH v4 2/2] spi: loongson: add bus driver for the loongson spi controller Yinbo Zhu
@ 2023-03-28 11:35 ` Andi Shyti
  2023-03-28 11:53   ` zhuyinbo
  2 siblings, 1 reply; 17+ messages in thread
From: Andi Shyti @ 2023-03-28 11:35 UTC (permalink / raw)
  To: Yinbo Zhu
  Cc: Mark Brown, Rob Herring, Krzysztof Kozlowski, linux-spi,
	devicetree, linux-kernel, Jianmin Lv, wanghongliang, Liu Peibao,
	loongson-kernel

Hi Yinbo,

before submitting the patches for review... can you please run
checkpatch.pl on them?

Thanks,
Andi

On Tue, Mar 28, 2023 at 07:22:08PM +0800, Yinbo Zhu wrote:
> Loongson platform support spi hardware controller and this series patch
> was to add spi driver and binding support.
> 
> Change in v2:
> 		1. This [PATCH v2 1/2] dt-bindings patch need depend on clk patch:
> 	 	   https://
> 		   lore.kernel.org/all/20230307115022.12846-1-zhuyinbo@loongson.cn/
> 		2. Remove the clock-names in spi yaml file.
> 		3. Add "loongson,ls7a-spi" compatible in spi yaml file.
> 		4. Add an || COMPILE_TEST and drop && PCI then add some CONFIG_PCI
> 		   macro to limit some pci code.
> 		5. Make the spi driver top code comment block that use C++ style.
> 		6. Drop spi->max_speed_hz.
> 		7. Add a spin_lock for loongson_spi_setup.
> 		8. Add a timeout and cpu_relax() in loongson_spi_write_read_8bit.
> 		9. Add spi_transfer_one and drop transfer and rework entire spi
> 		   driver that include some necessary changes.
> 		10. Use module_init replace subsys_initcall.
> 		11. About PM interface that I don't find any issue so I don't add
> 		    any changes.
> Change in v3:
> 		1. This [PATCH v3 1/2] dt-bindings patch need depend on clk patch:
> 		   https://
> 		   lore.kernel.org/all/20230323025229.2971-1-zhuyinbo@loongson.cn/
> 		2. Drop the unused blank line in loongson,ls-spi.yaml file.
> 		3. Replace clock minItems with clock maxItems in yaml file.
> 		4. Separate spi driver into platform module, pci module and core
> 		   module.
> 		5. Replace DIV_ROUND_UP with DIV_ROUND_UP_ULL to fix compile error
> 		   "undefined reference to `__aeabi_uldivmod'" and  "__udivdi3 undefined"
> 		   that reported by test robot.
> 		6. Remove the spin lock.
> 		7. Clear the loongson_spi->hz and loongson_spi->mode in setup to fixup
> 		   the issue that multiple spi device transfer that maybe cause spi was
> 		   be misconfigured.
> Change in v4:
> 		1. This [PATCH v4 1/2] dt-bindings patch need depend on clk patch:
> 		   https://
> 		   lore.kernel.org/all/20230323025229.2971-1-zhuyinbo@loongson.cn/
> 		2. Add "#include <linux/io.h>" in spi-loongson-core.c for fix the compile
> 		   issue which devm_ioremap no declaration.
> 		3. Add "EXPORT_SYMBOL_GPL(loongson_spi_dev_pm_ops)" in
> 		   spi-loongson-core.c for fix the compile issue which
> 		   loongson_spi_dev_pm_ops undefined.
> 
> Yinbo Zhu (2):
>   dt-bindings: spi: add loongson spi
>   spi: loongson: add bus driver for the loongson spi controller
> 
>  .../bindings/spi/loongson,ls-spi.yaml         |  43 +++
>  MAINTAINERS                                   |  10 +
>  drivers/spi/Kconfig                           |  31 ++
>  drivers/spi/Makefile                          |   3 +
>  drivers/spi/spi-loongson-core.c               | 304 ++++++++++++++++++
>  drivers/spi/spi-loongson-pci.c                |  89 +++++
>  drivers/spi/spi-loongson-plat.c               |  66 ++++
>  drivers/spi/spi-loongson.h                    |  41 +++
>  8 files changed, 587 insertions(+)
> 
> -- 
> 2.20.1
> 

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH v4 0/2] spi: loongson: add bus driver for the loongson spi
  2023-03-28 11:35 ` [PATCH v4 0/2] spi: loongson: add bus driver for the loongson spi Andi Shyti
@ 2023-03-28 11:53   ` zhuyinbo
  2023-03-29  8:07     ` Krzysztof Kozlowski
  0 siblings, 1 reply; 17+ messages in thread
From: zhuyinbo @ 2023-03-28 11:53 UTC (permalink / raw)
  To: Andi Shyti
  Cc: Mark Brown, Rob Herring, Krzysztof Kozlowski, linux-spi,
	devicetree, linux-kernel, Jianmin Lv, wanghongliang, Liu Peibao,
	loongson-kernel, zhuyinbo



在 2023/3/28 下午7:35, Andi Shyti 写道:
> Hi Yinbo,
> 
> before submitting the patches for review... can you please run
> checkpatch.pl on them?
yes, I had used checkpatch.pl to check and no any errors and warnings.

user@user-pc:~/workspace/test/code/www.kernel.org/linux$ 
./scripts/checkpatch.pl *.patch
-----------------------
0000-cover-letter.patch
-----------------------
total: 0 errors, 0 warnings, 0 lines checked

0000-cover-letter.patch has no obvious style problems and is ready for 
submission.
-------------------------------------------
0001-dt-bindings-spi-add-loongson-spi.patch
-------------------------------------------
Traceback (most recent call last):
   File "scripts/spdxcheck.py", line 6, in <module>
     from ply import lex, yacc
ModuleNotFoundError: No module named 'ply'
total: 0 errors, 0 warnings, 55 lines checked

0001-dt-bindings-spi-add-loongson-spi.patch has no obvious style 
problems and is ready for submission.
---------------------------------------------------------------
0002-spi-loongson-add-bus-driver-for-the-loongson-spi-con.patch
---------------------------------------------------------------
Traceback (most recent call last):
   File "scripts/spdxcheck.py", line 6, in <module>
     from ply import lex, yacc
ModuleNotFoundError: No module named 'ply'
Traceback (most recent call last):
   File "scripts/spdxcheck.py", line 6, in <module>
     from ply import lex, yacc
ModuleNotFoundError: No module named 'ply'
Traceback (most recent call last):
   File "scripts/spdxcheck.py", line 6, in <module>
     from ply import lex, yacc
ModuleNotFoundError: No module named 'ply'
Traceback (most recent call last):
   File "scripts/spdxcheck.py", line 6, in <module>
     from ply import lex, yacc
ModuleNotFoundError: No module named 'ply'
total: 0 errors, 0 warnings, 556 lines checked

0002-spi-loongson-add-bus-driver-for-the-loongson-spi-con.patch has no 
obvious style problems and is ready for submission.
user@user-pc:~/workspace/test/code/www.kernel.org/linux$
> 
> Thanks,
> Andi
> 
> On Tue, Mar 28, 2023 at 07:22:08PM +0800, Yinbo Zhu wrote:
>> Loongson platform support spi hardware controller and this series patch
>> was to add spi driver and binding support.
>>
>> Change in v2:
>> 		1. This [PATCH v2 1/2] dt-bindings patch need depend on clk patch:
>> 	 	   https://
>> 		   lore.kernel.org/all/20230307115022.12846-1-zhuyinbo@loongson.cn/
>> 		2. Remove the clock-names in spi yaml file.
>> 		3. Add "loongson,ls7a-spi" compatible in spi yaml file.
>> 		4. Add an || COMPILE_TEST and drop && PCI then add some CONFIG_PCI
>> 		   macro to limit some pci code.
>> 		5. Make the spi driver top code comment block that use C++ style.
>> 		6. Drop spi->max_speed_hz.
>> 		7. Add a spin_lock for loongson_spi_setup.
>> 		8. Add a timeout and cpu_relax() in loongson_spi_write_read_8bit.
>> 		9. Add spi_transfer_one and drop transfer and rework entire spi
>> 		   driver that include some necessary changes.
>> 		10. Use module_init replace subsys_initcall.
>> 		11. About PM interface that I don't find any issue so I don't add
>> 		    any changes.
>> Change in v3:
>> 		1. This [PATCH v3 1/2] dt-bindings patch need depend on clk patch:
>> 		   https://
>> 		   lore.kernel.org/all/20230323025229.2971-1-zhuyinbo@loongson.cn/
>> 		2. Drop the unused blank line in loongson,ls-spi.yaml file.
>> 		3. Replace clock minItems with clock maxItems in yaml file.
>> 		4. Separate spi driver into platform module, pci module and core
>> 		   module.
>> 		5. Replace DIV_ROUND_UP with DIV_ROUND_UP_ULL to fix compile error
>> 		   "undefined reference to `__aeabi_uldivmod'" and  "__udivdi3 undefined"
>> 		   that reported by test robot.
>> 		6. Remove the spin lock.
>> 		7. Clear the loongson_spi->hz and loongson_spi->mode in setup to fixup
>> 		   the issue that multiple spi device transfer that maybe cause spi was
>> 		   be misconfigured.
>> Change in v4:
>> 		1. This [PATCH v4 1/2] dt-bindings patch need depend on clk patch:
>> 		   https://
>> 		   lore.kernel.org/all/20230323025229.2971-1-zhuyinbo@loongson.cn/
>> 		2. Add "#include <linux/io.h>" in spi-loongson-core.c for fix the compile
>> 		   issue which devm_ioremap no declaration.
>> 		3. Add "EXPORT_SYMBOL_GPL(loongson_spi_dev_pm_ops)" in
>> 		   spi-loongson-core.c for fix the compile issue which
>> 		   loongson_spi_dev_pm_ops undefined.
>>
>> Yinbo Zhu (2):
>>    dt-bindings: spi: add loongson spi
>>    spi: loongson: add bus driver for the loongson spi controller
>>
>>   .../bindings/spi/loongson,ls-spi.yaml         |  43 +++
>>   MAINTAINERS                                   |  10 +
>>   drivers/spi/Kconfig                           |  31 ++
>>   drivers/spi/Makefile                          |   3 +
>>   drivers/spi/spi-loongson-core.c               | 304 ++++++++++++++++++
>>   drivers/spi/spi-loongson-pci.c                |  89 +++++
>>   drivers/spi/spi-loongson-plat.c               |  66 ++++
>>   drivers/spi/spi-loongson.h                    |  41 +++
>>   8 files changed, 587 insertions(+)
>>
>> -- 
>> 2.20.1
>>


^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH v4 1/2] dt-bindings: spi: add loongson spi
  2023-03-28 11:22 ` [PATCH v4 1/2] dt-bindings: spi: add " Yinbo Zhu
  2023-03-28 11:30   ` zhuyinbo
@ 2023-03-28 12:57   ` Rob Herring
  2023-03-29  1:12     ` zhuyinbo
  2023-03-29 10:39     ` zhuyinbo
  2023-03-29  8:06   ` Krzysztof Kozlowski
  2 siblings, 2 replies; 17+ messages in thread
From: Rob Herring @ 2023-03-28 12:57 UTC (permalink / raw)
  To: Yinbo Zhu
  Cc: Rob Herring, devicetree, Krzysztof Kozlowski, wanghongliang,
	Liu Peibao, Mark Brown, Jianmin Lv, loongson-kernel,
	linux-kernel, linux-spi


On Tue, 28 Mar 2023 19:22:09 +0800, Yinbo Zhu wrote:
> Add the Loongson platform spi binding with DT schema format using
> json-schema.
> 
> Signed-off-by: Yinbo Zhu <zhuyinbo@loongson.cn>
> ---
>  .../bindings/spi/loongson,ls-spi.yaml         | 43 +++++++++++++++++++
>  MAINTAINERS                                   |  6 +++
>  2 files changed, 49 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/spi/loongson,ls-spi.yaml
> 

My bot found errors running 'make DT_CHECKER_FLAGS=-m dt_binding_check'
on your patch (DT_CHECKER_FLAGS is new in v5.13):

yamllint warnings/errors:

dtschema/dtc warnings/errors:
Error: Documentation/devicetree/bindings/spi/loongson,ls-spi.example.dts:22.28-29 syntax error
FATAL ERROR: Unable to parse input tree
make[1]: *** [scripts/Makefile.lib:419: Documentation/devicetree/bindings/spi/loongson,ls-spi.example.dtb] Error 1
make[1]: *** Waiting for unfinished jobs....
make: *** [Makefile:1512: dt_binding_check] Error 2

doc reference errors (make refcheckdocs):

See https://patchwork.ozlabs.org/project/devicetree-bindings/patch/20230328112210.23089-2-zhuyinbo@loongson.cn

The base for the series is generally the latest rc1. A different dependency
should be noted in *this* patch.

If you already ran 'make dt_binding_check' and didn't see the above
error(s), then make sure 'yamllint' is installed and dt-schema is up to
date:

pip3 install dtschema --upgrade

Please check and re-submit after running the above command yourself. Note
that DT_SCHEMA_FILES can be set to your schema file to speed up checking
your schema. However, it must be unset to test all examples with your schema.


^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH v4 1/2] dt-bindings: spi: add loongson spi
  2023-03-28 12:57   ` Rob Herring
@ 2023-03-29  1:12     ` zhuyinbo
  2023-03-29  8:05       ` Krzysztof Kozlowski
  2023-03-29 10:39     ` zhuyinbo
  1 sibling, 1 reply; 17+ messages in thread
From: zhuyinbo @ 2023-03-29  1:12 UTC (permalink / raw)
  To: Rob Herring
  Cc: Rob Herring, devicetree, Krzysztof Kozlowski, wanghongliang,
	Liu Peibao, Mark Brown, Jianmin Lv, loongson-kernel,
	linux-kernel, linux-spi, zhuyinbo

This patch need depend on
https://lore.kernel.org/all/20230323025229.2971-1-zhuyinbo@loongson.cn/
then the spi yaml file will build successful. That changelog had record it.

在 2023/3/28 下午8:57, Rob Herring 写道:
> 
> On Tue, 28 Mar 2023 19:22:09 +0800, Yinbo Zhu wrote:
>> Add the Loongson platform spi binding with DT schema format using
>> json-schema.
>>
>> Signed-off-by: Yinbo Zhu <zhuyinbo@loongson.cn>
>> ---
>>   .../bindings/spi/loongson,ls-spi.yaml         | 43 +++++++++++++++++++
>>   MAINTAINERS                                   |  6 +++
>>   2 files changed, 49 insertions(+)
>>   create mode 100644 Documentation/devicetree/bindings/spi/loongson,ls-spi.yaml
>>
> 
> My bot found errors running 'make DT_CHECKER_FLAGS=-m dt_binding_check'
> on your patch (DT_CHECKER_FLAGS is new in v5.13):
> 
> yamllint warnings/errors:
> 
> dtschema/dtc warnings/errors:
> Error: Documentation/devicetree/bindings/spi/loongson,ls-spi.example.dts:22.28-29 syntax error
> FATAL ERROR: Unable to parse input tree
> make[1]: *** [scripts/Makefile.lib:419: Documentation/devicetree/bindings/spi/loongson,ls-spi.example.dtb] Error 1
> make[1]: *** Waiting for unfinished jobs....
> make: *** [Makefile:1512: dt_binding_check] Error 2
> 
> doc reference errors (make refcheckdocs):
> 
> See https://patchwork.ozlabs.org/project/devicetree-bindings/patch/20230328112210.23089-2-zhuyinbo@loongson.cn
> 
> The base for the series is generally the latest rc1. A different dependency
> should be noted in *this* patch.
> 
> If you already ran 'make dt_binding_check' and didn't see the above
> error(s), then make sure 'yamllint' is installed and dt-schema is up to
> date:
> 
> pip3 install dtschema --upgrade
> 
> Please check and re-submit after running the above command yourself. Note
> that DT_SCHEMA_FILES can be set to your schema file to speed up checking
> your schema. However, it must be unset to test all examples with your schema.
> 


^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH v4 1/2] dt-bindings: spi: add loongson spi
  2023-03-29  1:12     ` zhuyinbo
@ 2023-03-29  8:05       ` Krzysztof Kozlowski
  2023-03-29 10:32         ` zhuyinbo
  0 siblings, 1 reply; 17+ messages in thread
From: Krzysztof Kozlowski @ 2023-03-29  8:05 UTC (permalink / raw)
  To: zhuyinbo, Rob Herring
  Cc: Rob Herring, devicetree, Krzysztof Kozlowski, wanghongliang,
	Liu Peibao, Mark Brown, Jianmin Lv, loongson-kernel,
	linux-kernel, linux-spi

On 29/03/2023 03:12, zhuyinbo wrote:
> This patch need depend on
> https://lore.kernel.org/all/20230323025229.2971-1-zhuyinbo@loongson.cn/
> then the spi yaml file will build successful. That changelog had record it.

Thus it cannot be merged now. Do not resend it till dependency hits
mainline (since you decided not to go with Rob's advice).

Best regards,
Krzysztof


^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH v4 1/2] dt-bindings: spi: add loongson spi
  2023-03-28 11:22 ` [PATCH v4 1/2] dt-bindings: spi: add " Yinbo Zhu
  2023-03-28 11:30   ` zhuyinbo
  2023-03-28 12:57   ` Rob Herring
@ 2023-03-29  8:06   ` Krzysztof Kozlowski
  2023-03-29 10:30     ` zhuyinbo
  2 siblings, 1 reply; 17+ messages in thread
From: Krzysztof Kozlowski @ 2023-03-29  8:06 UTC (permalink / raw)
  To: Yinbo Zhu, Mark Brown, Rob Herring, Krzysztof Kozlowski,
	linux-spi, devicetree, linux-kernel
  Cc: Jianmin Lv, wanghongliang, Liu Peibao, loongson-kernel

On 28/03/2023 13:22, Yinbo Zhu wrote:
> Add the Loongson platform spi binding with DT schema format using
> json-schema.
> 
> Signed-off-by: Yinbo Zhu <zhuyinbo@loongson.cn>
> ---
>  .../bindings/spi/loongson,ls-spi.yaml         | 43 +++++++++++++++++++
>  MAINTAINERS                                   |  6 +++

You decided not to use Rob's advice, thus this patch cannot be applied
now. Wait for the merge window to finish (so dependency is in mainline)
and send the patch then. Not earlier.

Best regards,
Krzysztof


^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH v4 0/2] spi: loongson: add bus driver for the loongson spi
  2023-03-28 11:53   ` zhuyinbo
@ 2023-03-29  8:07     ` Krzysztof Kozlowski
  2023-03-30  3:46       ` zhuyinbo
  0 siblings, 1 reply; 17+ messages in thread
From: Krzysztof Kozlowski @ 2023-03-29  8:07 UTC (permalink / raw)
  To: zhuyinbo, Andi Shyti
  Cc: Mark Brown, Rob Herring, Krzysztof Kozlowski, linux-spi,
	devicetree, linux-kernel, Jianmin Lv, wanghongliang, Liu Peibao,
	loongson-kernel

On 28/03/2023 13:53, zhuyinbo wrote:
> 
> 
> 在 2023/3/28 下午7:35, Andi Shyti 写道:
>> Hi Yinbo,
>>
>> before submitting the patches for review... can you please run
>> checkpatch.pl on them?
> yes, I had used checkpatch.pl to check and no any errors and warnings.
> 
> user@user-pc:~/workspace/test/code/www.kernel.org/linux$ 
> ./scripts/checkpatch.pl *.patch
> -----------------------
> 0000-cover-letter.patch
> -----------------------
> total: 0 errors, 0 warnings, 0 lines checked
> 
> 0000-cover-letter.patch has no obvious style problems and is ready for 
> submission.
> -------------------------------------------
> 0001-dt-bindings-spi-add-loongson-spi.patch
> -------------------------------------------
> Traceback (most recent call last):
>    File "scripts/spdxcheck.py", line 6, in <module>
>      from ply import lex, yacc
> ModuleNotFoundError: No module named 'ply'
> total: 0 errors, 0 warnings, 55 lines checked
> 
> 0001-dt-bindings-spi-add-loongson-spi.patch has no obvious style 
> problems and is ready for submission.
> ---------------------------------------------------------------
> 0002-spi-loongson-add-bus-driver-for-the-loongson-spi-con.patch
> ---------------------------------------------------------------
> Traceback (most recent call last):
>    File "scripts/spdxcheck.py", line 6, in <module>
>      from ply import lex, yacc
> ModuleNotFoundError: No module named 'ply'
> Traceback (most recent call last):
>    File "scripts/spdxcheck.py", line 6, in <module>
>      from ply import lex, yacc
> ModuleNotFoundError: No module named 'ply'
> Traceback (most recent call last):
>    File "scripts/spdxcheck.py", line 6, in <module>
>      from ply import lex, yacc
> ModuleNotFoundError: No module named 'ply'
> Traceback (most recent call last):
>    File "scripts/spdxcheck.py", line 6, in <module>
>      from ply import lex, yacc
> ModuleNotFoundError: No module named 'ply'

You have errors here... Fix your setup for spdx check.

Best regards,
Krzysztof


^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH v4 1/2] dt-bindings: spi: add loongson spi
  2023-03-29  8:06   ` Krzysztof Kozlowski
@ 2023-03-29 10:30     ` zhuyinbo
  0 siblings, 0 replies; 17+ messages in thread
From: zhuyinbo @ 2023-03-29 10:30 UTC (permalink / raw)
  To: Krzysztof Kozlowski, Mark Brown, Rob Herring,
	Krzysztof Kozlowski, linux-spi, devicetree, linux-kernel
  Cc: Jianmin Lv, wanghongliang, Liu Peibao, loongson-kernel, zhuyinbo



在 2023/3/29 下午4:06, Krzysztof Kozlowski 写道:
> On 28/03/2023 13:22, Yinbo Zhu wrote:
>> Add the Loongson platform spi binding with DT schema format using
>> json-schema.
>>
>> Signed-off-by: Yinbo Zhu <zhuyinbo@loongson.cn>
>> ---
>>   .../bindings/spi/loongson,ls-spi.yaml         | 43 +++++++++++++++++++
>>   MAINTAINERS                                   |  6 +++
> 
> You decided not to use Rob's advice, thus this patch cannot be applied
> now. Wait for the merge window to finish (so dependency is in mainline)
> and send the patch then. Not earlier.
> 
> Best regards,
> Krzysztof
> I'm sorry, I didn't understand Rob's suggestion in fact. I'll ask Rob
what I should do
later. If it did really no good solution, I will postpone my patch until the
dependent patch is merged into the mainline.

Thanks.


^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH v4 1/2] dt-bindings: spi: add loongson spi
  2023-03-29  8:05       ` Krzysztof Kozlowski
@ 2023-03-29 10:32         ` zhuyinbo
  0 siblings, 0 replies; 17+ messages in thread
From: zhuyinbo @ 2023-03-29 10:32 UTC (permalink / raw)
  To: Krzysztof Kozlowski, Rob Herring
  Cc: Rob Herring, devicetree, Krzysztof Kozlowski, wanghongliang,
	Liu Peibao, Mark Brown, Jianmin Lv, loongson-kernel,
	linux-kernel, linux-spi, zhuyinbo



在 2023/3/29 下午4:05, Krzysztof Kozlowski 写道:
> On 29/03/2023 03:12, zhuyinbo wrote:
>> This patch need depend on
>> https://lore.kernel.org/all/20230323025229.2971-1-zhuyinbo@loongson.cn/
>> then the spi yaml file will build successful. That changelog had record it.
> 
> Thus it cannot be merged now. Do not resend it till dependency hits
> mainline (since you decided not to go with Rob's advice).
> 
> Best regards,
> Krzysztof
> 
okay, I got it.

Thanks.


^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH v4 1/2] dt-bindings: spi: add loongson spi
  2023-03-28 12:57   ` Rob Herring
  2023-03-29  1:12     ` zhuyinbo
@ 2023-03-29 10:39     ` zhuyinbo
  2023-03-29 11:37       ` Krzysztof Kozlowski
  1 sibling, 1 reply; 17+ messages in thread
From: zhuyinbo @ 2023-03-29 10:39 UTC (permalink / raw)
  To: Rob Herring
  Cc: Rob Herring, devicetree, Krzysztof Kozlowski, wanghongliang,
	Liu Peibao, Mark Brown, Jianmin Lv, loongson-kernel,
	linux-kernel, linux-spi, zhuyinbo



在 2023/3/28 下午8:57, Rob Herring 写道:
> 
> On Tue, 28 Mar 2023 19:22:09 +0800, Yinbo Zhu wrote:
>> Add the Loongson platform spi binding with DT schema format using
>> json-schema.
>>
>> Signed-off-by: Yinbo Zhu <zhuyinbo@loongson.cn>
>> ---
>>   .../bindings/spi/loongson,ls-spi.yaml         | 43 +++++++++++++++++++
>>   MAINTAINERS                                   |  6 +++
>>   2 files changed, 49 insertions(+)
>>   create mode 100644 Documentation/devicetree/bindings/spi/loongson,ls-spi.yaml
>>
> 
> My bot found errors running 'make DT_CHECKER_FLAGS=-m dt_binding_check'
> on your patch (DT_CHECKER_FLAGS is new in v5.13):
> 
> yamllint warnings/errors:
> 
> dtschema/dtc warnings/errors:
> Error: Documentation/devicetree/bindings/spi/loongson,ls-spi.example.dts:22.28-29 syntax error
> FATAL ERROR: Unable to parse input tree
> make[1]: *** [scripts/Makefile.lib:419: Documentation/devicetree/bindings/spi/loongson,ls-spi.example.dtb] Error 1
> make[1]: *** Waiting for unfinished jobs....
> make: *** [Makefile:1512: dt_binding_check] Error 2
> 
> doc reference errors (make refcheckdocs):
> 
> See https://patchwork.ozlabs.org/project/devicetree-bindings/patch/20230328112210.23089-2-zhuyinbo@loongson.cn
> 
> The base for the series is generally the latest rc1. A different dependency
> should be noted in *this* patch.
Hi Rob,

I'm sorry, actually, I don't know what the specific operation I should 
do when I received the check warning
from your bot. Does it means that I should add dependency note into this 
patch's changelog ? or something else, I really
don't know. Actually, I'm always bothered by these things that how to 
resolve the dependency issue for two
dependent patches that do not belong to the same series.

Thanks.
> 
> If you already ran 'make dt_binding_check' and didn't see the above
> error(s), then make sure 'yamllint' is installed and dt-schema is up to
> date:
> 
> pip3 install dtschema --upgrade
> 
> Please check and re-submit after running the above command yourself. Note
> that DT_SCHEMA_FILES can be set to your schema file to speed up checking
> your schema. However, it must be unset to test all examples with your schema.
> 


^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH v4 1/2] dt-bindings: spi: add loongson spi
  2023-03-29 10:39     ` zhuyinbo
@ 2023-03-29 11:37       ` Krzysztof Kozlowski
  2023-03-30  3:00         ` zhuyinbo
  0 siblings, 1 reply; 17+ messages in thread
From: Krzysztof Kozlowski @ 2023-03-29 11:37 UTC (permalink / raw)
  To: zhuyinbo, Rob Herring
  Cc: Rob Herring, devicetree, Krzysztof Kozlowski, wanghongliang,
	Liu Peibao, Mark Brown, Jianmin Lv, loongson-kernel,
	linux-kernel, linux-spi

On 29/03/2023 12:39, zhuyinbo wrote:
> 
> 
> 在 2023/3/28 下午8:57, Rob Herring 写道:
>>
>> On Tue, 28 Mar 2023 19:22:09 +0800, Yinbo Zhu wrote:
>>> Add the Loongson platform spi binding with DT schema format using
>>> json-schema.
>>>
>>> Signed-off-by: Yinbo Zhu <zhuyinbo@loongson.cn>
>>> ---
>>>   .../bindings/spi/loongson,ls-spi.yaml         | 43 +++++++++++++++++++
>>>   MAINTAINERS                                   |  6 +++
>>>   2 files changed, 49 insertions(+)
>>>   create mode 100644 Documentation/devicetree/bindings/spi/loongson,ls-spi.yaml
>>>
>>
>> My bot found errors running 'make DT_CHECKER_FLAGS=-m dt_binding_check'
>> on your patch (DT_CHECKER_FLAGS is new in v5.13):
>>
>> yamllint warnings/errors:
>>
>> dtschema/dtc warnings/errors:
>> Error: Documentation/devicetree/bindings/spi/loongson,ls-spi.example.dts:22.28-29 syntax error
>> FATAL ERROR: Unable to parse input tree
>> make[1]: *** [scripts/Makefile.lib:419: Documentation/devicetree/bindings/spi/loongson,ls-spi.example.dtb] Error 1
>> make[1]: *** Waiting for unfinished jobs....
>> make: *** [Makefile:1512: dt_binding_check] Error 2
>>
>> doc reference errors (make refcheckdocs):
>>
>> See https://patchwork.ozlabs.org/project/devicetree-bindings/patch/20230328112210.23089-2-zhuyinbo@loongson.cn
>>
>> The base for the series is generally the latest rc1. A different dependency
>> should be noted in *this* patch.
> Hi Rob,
> 
> I'm sorry, actually, I don't know what the specific operation I should 
> do when I received the check warning
> from your bot. Does it means that I should add dependency note into this 
> patch's changelog ? 

Yes, this is explicitly mentioned in the sentence you quoted.

> or something else, I really
> don't know. Actually, I'm always bothered by these things that how to 
> resolve the dependency issue for two
> dependent patches that do not belong to the same series.

Another approach, as Rob suggested last time, would be to just get rid
of the dependency and open-code the clock IDs...

Best regards,
Krzysztof


^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH v4 1/2] dt-bindings: spi: add loongson spi
  2023-03-29 11:37       ` Krzysztof Kozlowski
@ 2023-03-30  3:00         ` zhuyinbo
  0 siblings, 0 replies; 17+ messages in thread
From: zhuyinbo @ 2023-03-30  3:00 UTC (permalink / raw)
  To: Krzysztof Kozlowski, Rob Herring
  Cc: Rob Herring, devicetree, Krzysztof Kozlowski, wanghongliang,
	Liu Peibao, Mark Brown, Jianmin Lv, loongson-kernel,
	linux-kernel, linux-spi, zhuyinbo



在 2023/3/29 下午7:37, Krzysztof Kozlowski 写道:
> On 29/03/2023 12:39, zhuyinbo wrote:
>>
>>
>> 在 2023/3/28 下午8:57, Rob Herring 写道:
>>>
>>> On Tue, 28 Mar 2023 19:22:09 +0800, Yinbo Zhu wrote:
>>>> Add the Loongson platform spi binding with DT schema format using
>>>> json-schema.
>>>>
>>>> Signed-off-by: Yinbo Zhu <zhuyinbo@loongson.cn>
>>>> ---
>>>>    .../bindings/spi/loongson,ls-spi.yaml         | 43 +++++++++++++++++++
>>>>    MAINTAINERS                                   |  6 +++
>>>>    2 files changed, 49 insertions(+)
>>>>    create mode 100644 Documentation/devicetree/bindings/spi/loongson,ls-spi.yaml
>>>>
>>>
>>> My bot found errors running 'make DT_CHECKER_FLAGS=-m dt_binding_check'
>>> on your patch (DT_CHECKER_FLAGS is new in v5.13):
>>>
>>> yamllint warnings/errors:
>>>
>>> dtschema/dtc warnings/errors:
>>> Error: Documentation/devicetree/bindings/spi/loongson,ls-spi.example.dts:22.28-29 syntax error
>>> FATAL ERROR: Unable to parse input tree
>>> make[1]: *** [scripts/Makefile.lib:419: Documentation/devicetree/bindings/spi/loongson,ls-spi.example.dtb] Error 1
>>> make[1]: *** Waiting for unfinished jobs....
>>> make: *** [Makefile:1512: dt_binding_check] Error 2
>>>
>>> doc reference errors (make refcheckdocs):
>>>
>>> See https://patchwork.ozlabs.org/project/devicetree-bindings/patch/20230328112210.23089-2-zhuyinbo@loongson.cn
>>>
>>> The base for the series is generally the latest rc1. A different dependency
>>> should be noted in *this* patch.
>> Hi Rob,
>>
>> I'm sorry, actually, I don't know what the specific operation I should
>> do when I received the check warning
>> from your bot. Does it means that I should add dependency note into this
>> patch's changelog ?
> 
> Yes, this is explicitly mentioned in the sentence you quoted.
okay, I got it, thanks!
> 
>> or something else, I really
>> don't know. Actually, I'm always bothered by these things that how to
>> resolve the dependency issue for two
>> dependent patches that do not belong to the same series.
> 
> Another approach, as Rob suggested last time, would be to just get rid
> of the dependency and open-code the clock IDs...
Thank you very much for your suggestion,  I will open-code the clock
IDs and fix that checkpatch issue then resend this series patch.
> 
> Best regards,
> Krzysztof
> 


^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH v4 0/2] spi: loongson: add bus driver for the loongson spi
  2023-03-29  8:07     ` Krzysztof Kozlowski
@ 2023-03-30  3:46       ` zhuyinbo
  0 siblings, 0 replies; 17+ messages in thread
From: zhuyinbo @ 2023-03-30  3:46 UTC (permalink / raw)
  To: Krzysztof Kozlowski, Andi Shyti
  Cc: Mark Brown, Rob Herring, Krzysztof Kozlowski, linux-spi,
	devicetree, linux-kernel, Jianmin Lv, wanghongliang, Liu Peibao,
	loongson-kernel, zhuyinbo



在 2023/3/29 下午4:07, Krzysztof Kozlowski 写道:
> On 28/03/2023 13:53, zhuyinbo wrote:
>>
>>
>> 在 2023/3/28 下午7:35, Andi Shyti 写道:
>>> Hi Yinbo,
>>>
>>> before submitting the patches for review... can you please run
>>> checkpatch.pl on them?
>> yes, I had used checkpatch.pl to check and no any errors and warnings.
>>
>> user@user-pc:~/workspace/test/code/www.kernel.org/linux$
>> ./scripts/checkpatch.pl *.patch
>> -----------------------
>> 0000-cover-letter.patch
>> -----------------------
>> total: 0 errors, 0 warnings, 0 lines checked
>>
>> 0000-cover-letter.patch has no obvious style problems and is ready for
>> submission.
>> -------------------------------------------
>> 0001-dt-bindings-spi-add-loongson-spi.patch
>> -------------------------------------------
>> Traceback (most recent call last):
>>     File "scripts/spdxcheck.py", line 6, in <module>
>>       from ply import lex, yacc
>> ModuleNotFoundError: No module named 'ply'
>> total: 0 errors, 0 warnings, 55 lines checked
>>
>> 0001-dt-bindings-spi-add-loongson-spi.patch has no obvious style
>> problems and is ready for submission.
>> ---------------------------------------------------------------
>> 0002-spi-loongson-add-bus-driver-for-the-loongson-spi-con.patch
>> ---------------------------------------------------------------
>> Traceback (most recent call last):
>>     File "scripts/spdxcheck.py", line 6, in <module>
>>       from ply import lex, yacc
>> ModuleNotFoundError: No module named 'ply'
>> Traceback (most recent call last):
>>     File "scripts/spdxcheck.py", line 6, in <module>
>>       from ply import lex, yacc
>> ModuleNotFoundError: No module named 'ply'
>> Traceback (most recent call last):
>>     File "scripts/spdxcheck.py", line 6, in <module>
>>       from ply import lex, yacc
>> ModuleNotFoundError: No module named 'ply'
>> Traceback (most recent call last):
>>     File "scripts/spdxcheck.py", line 6, in <module>
>>       from ply import lex, yacc
>> ModuleNotFoundError: No module named 'ply'
> 
> You have errors here... Fix your setup for spdx check.
I installed ply and gitpython package locally, and then there was no 
spdxcheck and other error when use checkpatch.pl to check this series patch.

Thanks.
> 
> Best regards,
> Krzysztof
> 


^ permalink raw reply	[flat|nested] 17+ messages in thread

end of thread, other threads:[~2023-03-30  3:46 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-03-28 11:22 [PATCH v4 0/2] spi: loongson: add bus driver for the loongson spi Yinbo Zhu
2023-03-28 11:22 ` [PATCH v4 1/2] dt-bindings: spi: add " Yinbo Zhu
2023-03-28 11:30   ` zhuyinbo
2023-03-28 12:57   ` Rob Herring
2023-03-29  1:12     ` zhuyinbo
2023-03-29  8:05       ` Krzysztof Kozlowski
2023-03-29 10:32         ` zhuyinbo
2023-03-29 10:39     ` zhuyinbo
2023-03-29 11:37       ` Krzysztof Kozlowski
2023-03-30  3:00         ` zhuyinbo
2023-03-29  8:06   ` Krzysztof Kozlowski
2023-03-29 10:30     ` zhuyinbo
2023-03-28 11:22 ` [PATCH v4 2/2] spi: loongson: add bus driver for the loongson spi controller Yinbo Zhu
2023-03-28 11:35 ` [PATCH v4 0/2] spi: loongson: add bus driver for the loongson spi Andi Shyti
2023-03-28 11:53   ` zhuyinbo
2023-03-29  8:07     ` Krzysztof Kozlowski
2023-03-30  3:46       ` zhuyinbo

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