linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v11 0/6] Driver for at91 usart in spi mode
@ 2018-07-13 16:47 Radu Pirea
  2018-07-13 16:47 ` [PATCH v11 1/6] MAINTAINERS: add at91 usart mfd driver Radu Pirea
                   ` (7 more replies)
  0 siblings, 8 replies; 21+ messages in thread
From: Radu Pirea @ 2018-07-13 16:47 UTC (permalink / raw)
  To: broonie, nicolas.ferre, alexandre.belloni, lee.jones,
	richard.genoud, robh+dt, mark.rutland, gregkh
  Cc: linux-spi, linux-arm-kernel, linux-kernel, devicetree,
	linux-serial, Radu Pirea

Hello,

This is the second version of driver. I added a mfd driver which by
default probes atmel_serial driver and if in dt is specified to probe
the spi driver, then the spi-at91-usart driver will be probed. The
compatible for atmel_serial is now the compatible for at91-usart mfd
driver and compatilbe for atmel_serial driver was changed in order to
keep the bindings for serial as they are.

@Lee, could you take this patch series into your tree? I addressed all Mark
remarks.

Changes in v11:
- removed "depends on HAS_DMA" from drivers/spi/Kconfig because the driver has
no dma support
- changed "selects MFD_AT91_USART" to "depends on MFD_AT91_USART" in
drivers/spi/Kconfig
- changed comment style in spi-at91-usart.c

Changes in v10:
-fixed kbuild test robot warning

Changes in v9:
- minor changes
- rebased on top of broonie/for-4.19

Changes in v8:
- fixed passing an empty mfd cell if "atmel,usart-mode" value is invalid

Changes in v7:
- synced up  SPDIX license with module license
- numbering of usart modes starts from 0 insteand of 1

Changes in v6:
- removed unused compatible strings from serial and spi drivers

Changes in v5:
- fixed usage of stdout-path property with atmel_serial driver

Changes in v4:
- modified the spi driver to use cs gpio support form spi subsystem
- fixed dma transfers for serial driver
- squashed binding for spi and serial and moved them to mfd/atmel-usart.txt

Changes in v3:
- fixed spi slaves probing

Changes in v2:
- added at91-usart mfd driver
- modified spi-at91-usart driver to work as mfd driver child
- modified atmel_serial driver to work as mfd driver child

Changes in v1:
- added spi-at91-usart driver

Radu Pirea (6):
  MAINTAINERS: add at91 usart mfd driver
  dt-bindings: add binding for atmel-usart in SPI mode
  mfd: at91-usart: added mfd driver for usart
  MAINTAINERS: add at91 usart spi driver
  spi: at91-usart: add driver for at91-usart as spi
  tty/serial: atmel: change the driver to work under at91-usart mfd

 .../bindings/{serial => mfd}/atmel-usart.txt  |  25 +-
 MAINTAINERS                                   |  16 +
 drivers/mfd/Kconfig                           |   9 +
 drivers/mfd/Makefile                          |   1 +
 drivers/mfd/at91-usart.c                      |  71 +++
 drivers/spi/Kconfig                           |   8 +
 drivers/spi/Makefile                          |   1 +
 drivers/spi/spi-at91-usart.c                  | 432 ++++++++++++++++++
 drivers/tty/serial/Kconfig                    |   1 +
 drivers/tty/serial/atmel_serial.c             |  42 +-
 include/dt-bindings/mfd/at91-usart.h          |  17 +
 11 files changed, 606 insertions(+), 17 deletions(-)
 rename Documentation/devicetree/bindings/{serial => mfd}/atmel-usart.txt (76%)
 create mode 100644 drivers/mfd/at91-usart.c
 create mode 100644 drivers/spi/spi-at91-usart.c
 create mode 100644 include/dt-bindings/mfd/at91-usart.h

-- 
2.18.0


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

* [PATCH v11 1/6] MAINTAINERS: add at91 usart mfd driver
  2018-07-13 16:47 [PATCH v11 0/6] Driver for at91 usart in spi mode Radu Pirea
@ 2018-07-13 16:47 ` Radu Pirea
  2018-07-13 16:47 ` [PATCH v11 2/6] dt-bindings: add binding for atmel-usart in SPI mode Radu Pirea
                   ` (6 subsequent siblings)
  7 siblings, 0 replies; 21+ messages in thread
From: Radu Pirea @ 2018-07-13 16:47 UTC (permalink / raw)
  To: broonie, nicolas.ferre, alexandre.belloni, lee.jones,
	richard.genoud, robh+dt, mark.rutland, gregkh
  Cc: linux-spi, linux-arm-kernel, linux-kernel, devicetree,
	linux-serial, Radu Pirea

Added entry for at91 usart mfd driver.

Signed-off-by: Radu Pirea <radu.pirea@microchip.com>
Acked-by: Nicolas Ferre <nicolas.ferre@microchip.com>
Acked-for-MFD-by: Lee Jones <lee.jones@linaro.org>
---
 MAINTAINERS | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/MAINTAINERS b/MAINTAINERS
index 9d5eeff51b5f..7ac6e6af5292 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -9321,6 +9321,7 @@ M:	Richard Genoud <richard.genoud@gmail.com>
 S:	Maintained
 F:	drivers/tty/serial/atmel_serial.c
 F:	drivers/tty/serial/atmel_serial.h
+F:	Documentation/devicetree/bindings/mfd/atmel-usart.txt
 
 MICROCHIP / ATMEL DMA DRIVER
 M:	Ludovic Desroches <ludovic.desroches@microchip.com>
@@ -9353,6 +9354,14 @@ S:	Supported
 F:	drivers/mtd/nand/raw/atmel/*
 F:	Documentation/devicetree/bindings/mtd/atmel-nand.txt
 
+MICROCHIP AT91 USART MFD DRIVER
+M:	Radu Pirea <radu.pirea@microchip.com>
+L:	linux-kernel@vger.kernel.org
+S:	Supported
+F:	drivers/mfd/at91-usart.c
+F:	include/dt-bindings/mfd/at91-usart.h
+F:	Documentation/devicetree/bindings/mfd/atmel-usart.txt
+
 MICROCHIP KSZ SERIES ETHERNET SWITCH DRIVER
 M:	Woojung Huh <Woojung.Huh@microchip.com>
 M:	Microchip Linux Driver Support <UNGLinuxDriver@microchip.com>
-- 
2.18.0


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

* [PATCH v11 2/6] dt-bindings: add binding for atmel-usart in SPI mode
  2018-07-13 16:47 [PATCH v11 0/6] Driver for at91 usart in spi mode Radu Pirea
  2018-07-13 16:47 ` [PATCH v11 1/6] MAINTAINERS: add at91 usart mfd driver Radu Pirea
@ 2018-07-13 16:47 ` Radu Pirea
  2018-07-13 16:47 ` [PATCH v11 3/6] mfd: at91-usart: added mfd driver for usart Radu Pirea
                   ` (5 subsequent siblings)
  7 siblings, 0 replies; 21+ messages in thread
From: Radu Pirea @ 2018-07-13 16:47 UTC (permalink / raw)
  To: broonie, nicolas.ferre, alexandre.belloni, lee.jones,
	richard.genoud, robh+dt, mark.rutland, gregkh
  Cc: linux-spi, linux-arm-kernel, linux-kernel, devicetree,
	linux-serial, Radu Pirea

This patch moves the bindings for serial from serial/atmel-usart.txt to
mfd/atmel-usart.txt and adds bindings for USART in SPI mode.

Signed-off-by: Radu Pirea <radu.pirea@microchip.com>
Reviewed-by: Rob Herring <robh@kernel.org>
Acked-for-MFD-by: Lee Jones <lee.jones@linaro.org>
Acked-by: Nicolas Ferre <nicolas.ferre@microchip.com>
---
 .../bindings/{serial => mfd}/atmel-usart.txt  | 25 +++++++++++++++++--
 include/dt-bindings/mfd/at91-usart.h          | 17 +++++++++++++
 2 files changed, 40 insertions(+), 2 deletions(-)
 rename Documentation/devicetree/bindings/{serial => mfd}/atmel-usart.txt (76%)
 create mode 100644 include/dt-bindings/mfd/at91-usart.h

diff --git a/Documentation/devicetree/bindings/serial/atmel-usart.txt b/Documentation/devicetree/bindings/mfd/atmel-usart.txt
similarity index 76%
rename from Documentation/devicetree/bindings/serial/atmel-usart.txt
rename to Documentation/devicetree/bindings/mfd/atmel-usart.txt
index 7c0d6b2f53e4..0348fef0f497 100644
--- a/Documentation/devicetree/bindings/serial/atmel-usart.txt
+++ b/Documentation/devicetree/bindings/mfd/atmel-usart.txt
@@ -1,6 +1,6 @@
 * Atmel Universal Synchronous Asynchronous Receiver/Transmitter (USART)
 
-Required properties:
+Required properties for USART:
 - compatible: Should be "atmel,<chip>-usart" or "atmel,<chip>-dbgu"
   The compatible <chip> indicated will be the first SoC to support an
   additional mode or an USART new feature.
@@ -11,7 +11,13 @@ Required properties:
 	Required elements: "usart"
 - clocks: phandles to input clocks.
 
-Optional properties:
+Required properties for USART in SPI mode:
+- #size-cells      : Must be <0>
+- #address-cells   : Must be <1>
+- cs-gpios: chipselects (internal cs not supported)
+- atmel,usart-mode : Must be <AT91_USART_MODE_SPI> (found in dt-bindings/mfd/at91-usart.h)
+
+Optional properties in serial mode:
 - atmel,use-dma-rx: use of PDC or DMA for receiving data
 - atmel,use-dma-tx: use of PDC or DMA for transmitting data
 - {rts,cts,dtr,dsr,rng,dcd}-gpios: specify a GPIO for RTS/CTS/DTR/DSR/RI/DCD line respectively.
@@ -62,3 +68,18 @@ Example:
 		dma-names = "tx", "rx";
 		atmel,fifo-size = <32>;
 	};
+
+- SPI mode:
+	#include <dt-bindings/mfd/at91-usart.h>
+
+	spi0: spi@f001c000 {
+		#address-cells = <1>;
+		#size-cells = <0>;
+		compatible = "atmel,at91rm9200-usart", "atmel,at91sam9260-usart";
+		atmel,usart-mode = <AT91_USART_MODE_SPI>;
+		reg = <0xf001c000 0x100>;
+		interrupts = <12 IRQ_TYPE_LEVEL_HIGH>;
+		clocks = <&usart0_clk>;
+		clock-names = "usart";
+		cs-gpios = <&pioB 3 0>;
+	};
diff --git a/include/dt-bindings/mfd/at91-usart.h b/include/dt-bindings/mfd/at91-usart.h
new file mode 100644
index 000000000000..2de5bc312e1e
--- /dev/null
+++ b/include/dt-bindings/mfd/at91-usart.h
@@ -0,0 +1,17 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * This header provides macros for AT91 USART DT bindings.
+ *
+ * Copyright (C) 2018 Microchip Technology
+ *
+ * Author: Radu Pirea <radu.pirea@microchip.com>
+ *
+ */
+
+#ifndef __DT_BINDINGS_AT91_USART_H__
+#define __DT_BINDINGS_AT91_USART_H__
+
+#define AT91_USART_MODE_SERIAL	0
+#define AT91_USART_MODE_SPI	1
+
+#endif /* __DT_BINDINGS_AT91_USART_H__ */
-- 
2.18.0


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

* [PATCH v11 3/6] mfd: at91-usart: added mfd driver for usart
  2018-07-13 16:47 [PATCH v11 0/6] Driver for at91 usart in spi mode Radu Pirea
  2018-07-13 16:47 ` [PATCH v11 1/6] MAINTAINERS: add at91 usart mfd driver Radu Pirea
  2018-07-13 16:47 ` [PATCH v11 2/6] dt-bindings: add binding for atmel-usart in SPI mode Radu Pirea
@ 2018-07-13 16:47 ` Radu Pirea
  2018-07-13 16:47 ` [PATCH v11 4/6] MAINTAINERS: add at91 usart spi driver Radu Pirea
                   ` (4 subsequent siblings)
  7 siblings, 0 replies; 21+ messages in thread
From: Radu Pirea @ 2018-07-13 16:47 UTC (permalink / raw)
  To: broonie, nicolas.ferre, alexandre.belloni, lee.jones,
	richard.genoud, robh+dt, mark.rutland, gregkh
  Cc: linux-spi, linux-arm-kernel, linux-kernel, devicetree,
	linux-serial, Radu Pirea

This mfd driver is just a wrapper over atmel_serial driver and
spi-at91-usart driver. Selection of one of the drivers is based on a
property from device tree. If the property is not specified, the default
driver is atmel_serial.

Signed-off-by: Radu Pirea <radu.pirea@microchip.com>
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Acked-by: Rob Herring <robh@kernel.org>
Acked-for-MFD-by: Lee Jones <lee.jones@linaro.org>
Acked-by: Nicolas Ferre <nicolas.ferre@microchip.com>
---
 drivers/mfd/Kconfig      |  9 +++++
 drivers/mfd/Makefile     |  1 +
 drivers/mfd/at91-usart.c | 71 ++++++++++++++++++++++++++++++++++++++++
 3 files changed, 81 insertions(+)
 create mode 100644 drivers/mfd/at91-usart.c

diff --git a/drivers/mfd/Kconfig b/drivers/mfd/Kconfig
index b860eb5aa194..a886672b960d 100644
--- a/drivers/mfd/Kconfig
+++ b/drivers/mfd/Kconfig
@@ -99,6 +99,15 @@ config MFD_AAT2870_CORE
 	  additional drivers must be enabled in order to use the
 	  functionality of the device.
 
+config MFD_AT91_USART
+	tristate "AT91 USART Driver"
+	select MFD_CORE
+	help
+	  Select this to get support for AT91 USART IP. This is a wrapper
+	  over at91-usart-serial driver and usart-spi-driver. Only one function
+	  can be used at a time. The choice is done at boot time by the probe
+	  function of this MFD driver according to a device tree property.
+
 config MFD_ATMEL_FLEXCOM
 	tristate "Atmel Flexcom (Flexible Serial Communication Unit)"
 	select MFD_CORE
diff --git a/drivers/mfd/Makefile b/drivers/mfd/Makefile
index e9fd20dba18d..c7e66928abb9 100644
--- a/drivers/mfd/Makefile
+++ b/drivers/mfd/Makefile
@@ -184,6 +184,7 @@ obj-$(CONFIG_MFD_SPMI_PMIC)	+= qcom-spmi-pmic.o
 obj-$(CONFIG_TPS65911_COMPARATOR)	+= tps65911-comparator.o
 obj-$(CONFIG_MFD_TPS65090)	+= tps65090.o
 obj-$(CONFIG_MFD_AAT2870_CORE)	+= aat2870-core.o
+obj-$(CONFIG_MFD_AT91_USART)	+= at91-usart.o
 obj-$(CONFIG_MFD_ATMEL_FLEXCOM)	+= atmel-flexcom.o
 obj-$(CONFIG_MFD_ATMEL_HLCDC)	+= atmel-hlcdc.o
 obj-$(CONFIG_MFD_ATMEL_SMC)	+= atmel-smc.o
diff --git a/drivers/mfd/at91-usart.c b/drivers/mfd/at91-usart.c
new file mode 100644
index 000000000000..a4b9929c156f
--- /dev/null
+++ b/drivers/mfd/at91-usart.c
@@ -0,0 +1,71 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Driver for AT91 USART
+ *
+ * Copyright (C) 2018 Microchip Technology
+ *
+ * Author: Radu Pirea <radu.pirea@microchip.com>
+ *
+ */
+
+#include <dt-bindings/mfd/at91-usart.h>
+
+#include <linux/module.h>
+#include <linux/mfd/core.h>
+#include <linux/property.h>
+
+static struct mfd_cell at91_usart_spi_subdev = {
+		.name = "at91_usart_spi",
+		.of_compatible = "microchip,at91sam9g45-usart-spi",
+	};
+
+static struct mfd_cell at91_usart_serial_subdev = {
+		.name = "atmel_usart_serial",
+		.of_compatible = "atmel,at91rm9200-usart-serial",
+	};
+
+static int at91_usart_mode_probe(struct platform_device *pdev)
+{
+	struct mfd_cell cell;
+	u32 opmode = AT91_USART_MODE_SERIAL;
+
+	device_property_read_u32(&pdev->dev, "atmel,usart-mode", &opmode);
+
+	switch (opmode) {
+	case AT91_USART_MODE_SPI:
+		cell = at91_usart_spi_subdev;
+		break;
+	case AT91_USART_MODE_SERIAL:
+		cell = at91_usart_serial_subdev;
+		break;
+	default:
+		dev_err(&pdev->dev, "atmel,usart-mode has an invalid value %u\n",
+			opmode);
+		return -EINVAL;
+	}
+
+	return devm_mfd_add_devices(&pdev->dev, PLATFORM_DEVID_AUTO, &cell, 1,
+			      NULL, 0, NULL);
+}
+
+static const struct of_device_id at91_usart_mode_of_match[] = {
+	{ .compatible = "atmel,at91rm9200-usart" },
+	{ .compatible = "atmel,at91sam9260-usart" },
+	{ /* sentinel */ }
+};
+
+MODULE_DEVICE_TABLE(of, at91_usart_mode_of_match);
+
+static struct platform_driver at91_usart_mfd = {
+	.probe	= at91_usart_mode_probe,
+	.driver	= {
+		.name		= "at91_usart_mode",
+		.of_match_table	= at91_usart_mode_of_match,
+	},
+};
+
+module_platform_driver(at91_usart_mfd);
+
+MODULE_AUTHOR("Radu Pirea <radu.pirea@microchip.com>");
+MODULE_DESCRIPTION("AT91 USART MFD driver");
+MODULE_LICENSE("GPL v2");
-- 
2.18.0


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

* [PATCH v11 4/6] MAINTAINERS: add at91 usart spi driver
  2018-07-13 16:47 [PATCH v11 0/6] Driver for at91 usart in spi mode Radu Pirea
                   ` (2 preceding siblings ...)
  2018-07-13 16:47 ` [PATCH v11 3/6] mfd: at91-usart: added mfd driver for usart Radu Pirea
@ 2018-07-13 16:47 ` Radu Pirea
  2018-07-13 16:47 ` [PATCH v11 5/6] spi: at91-usart: add driver for at91-usart as spi Radu Pirea
                   ` (3 subsequent siblings)
  7 siblings, 0 replies; 21+ messages in thread
From: Radu Pirea @ 2018-07-13 16:47 UTC (permalink / raw)
  To: broonie, nicolas.ferre, alexandre.belloni, lee.jones,
	richard.genoud, robh+dt, mark.rutland, gregkh
  Cc: linux-spi, linux-arm-kernel, linux-kernel, devicetree,
	linux-serial, Radu Pirea

Added entry for at91 usart mfd driver.

Signed-off-by: Radu Pirea <radu.pirea@microchip.com>
Acked-by: Nicolas Ferre <nicolas.ferre@microchip.com>
---
 MAINTAINERS | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/MAINTAINERS b/MAINTAINERS
index 7ac6e6af5292..f849cc4acbf6 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -9362,6 +9362,13 @@ F:	drivers/mfd/at91-usart.c
 F:	include/dt-bindings/mfd/at91-usart.h
 F:	Documentation/devicetree/bindings/mfd/atmel-usart.txt
 
+MICROCHIP AT91 USART SPI DRIVER
+M:	Radu Pirea <radu.pirea@microchip.com>
+L:	linux-spi@vger.kernel.org
+S:	Supported
+F:	drivers/spi/spi-at91-usart.c
+F:	Documentation/devicetree/bindings/mfd/atmel-usart.txt
+
 MICROCHIP KSZ SERIES ETHERNET SWITCH DRIVER
 M:	Woojung Huh <Woojung.Huh@microchip.com>
 M:	Microchip Linux Driver Support <UNGLinuxDriver@microchip.com>
-- 
2.18.0


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

* [PATCH v11 5/6] spi: at91-usart: add driver for at91-usart as spi
  2018-07-13 16:47 [PATCH v11 0/6] Driver for at91 usart in spi mode Radu Pirea
                   ` (3 preceding siblings ...)
  2018-07-13 16:47 ` [PATCH v11 4/6] MAINTAINERS: add at91 usart spi driver Radu Pirea
@ 2018-07-13 16:47 ` Radu Pirea
  2018-07-13 16:47 ` [PATCH v11 6/6] tty/serial: atmel: change the driver to work under at91-usart mfd Radu Pirea
                   ` (2 subsequent siblings)
  7 siblings, 0 replies; 21+ messages in thread
From: Radu Pirea @ 2018-07-13 16:47 UTC (permalink / raw)
  To: broonie, nicolas.ferre, alexandre.belloni, lee.jones,
	richard.genoud, robh+dt, mark.rutland, gregkh
  Cc: linux-spi, linux-arm-kernel, linux-kernel, devicetree,
	linux-serial, Radu Pirea

This is the driver for at91-usart in spi mode. The USART IP can be configured
to work in many modes and one of them is SPI.

The driver was tested on sama5d3-xplained and sama5d4-xplained boards with
enc28j60 ethernet controller as slave.

Signed-off-by: Radu Pirea <radu.pirea@microchip.com>
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Reviwed-by: Mark Brown <broonie@kernel.org>
Acked-by: Nicolas Ferre <nicolas.ferre@microchip.com>
---
 drivers/spi/Kconfig          |   8 +
 drivers/spi/Makefile         |   1 +
 drivers/spi/spi-at91-usart.c | 432 +++++++++++++++++++++++++++++++++++
 3 files changed, 441 insertions(+)
 create mode 100644 drivers/spi/spi-at91-usart.c

diff --git a/drivers/spi/Kconfig b/drivers/spi/Kconfig
index ad5d68e1dab7..6d9e309fab67 100644
--- a/drivers/spi/Kconfig
+++ b/drivers/spi/Kconfig
@@ -83,6 +83,14 @@ config SPI_ATMEL
 	  This selects a driver for the Atmel SPI Controller, present on
 	  many AT91 ARM chips.
 
+config SPI_AT91_USART
+	tristate "Atmel USART Controller SPI driver"
+	depends on (ARCH_AT91 || COMPILE_TEST)
+	depends on MFD_AT91_USART
+	help
+	  This selects a driver for the AT91 USART Controller as SPI Master,
+	  present on AT91 and SAMA5 SoC series.
+
 config SPI_AU1550
 	tristate "Au1550/Au1200/Au1300 SPI Controller"
 	depends on MIPS_ALCHEMY
diff --git a/drivers/spi/Makefile b/drivers/spi/Makefile
index cb1f4378b87c..901ff606e6e5 100644
--- a/drivers/spi/Makefile
+++ b/drivers/spi/Makefile
@@ -16,6 +16,7 @@ obj-$(CONFIG_SPI_LOOPBACK_TEST)		+= spi-loopback-test.o
 obj-$(CONFIG_SPI_ALTERA)		+= spi-altera.o
 obj-$(CONFIG_SPI_ARMADA_3700)		+= spi-armada-3700.o
 obj-$(CONFIG_SPI_ATMEL)			+= spi-atmel.o
+obj-$(CONFIG_SPI_AT91_USART)		+= spi-at91-usart.o
 obj-$(CONFIG_SPI_ATH79)			+= spi-ath79.o
 obj-$(CONFIG_SPI_AU1550)		+= spi-au1550.o
 obj-$(CONFIG_SPI_AXI_SPI_ENGINE)	+= spi-axi-spi-engine.o
diff --git a/drivers/spi/spi-at91-usart.c b/drivers/spi/spi-at91-usart.c
new file mode 100644
index 000000000000..4712bd470c89
--- /dev/null
+++ b/drivers/spi/spi-at91-usart.c
@@ -0,0 +1,432 @@
+// SPDX-License-Identifier: GPL-2.0
+//
+// Driver for AT91 USART Controllers as SPI
+//
+// Copyright (C) 2018 Microchip Technology Inc.
+//
+// Author: Radu Pirea <radu.pirea@microchip.com>
+
+#include <linux/clk.h>
+#include <linux/delay.h>
+#include <linux/interrupt.h>
+#include <linux/kernel.h>
+#include <linux/module.h>
+#include <linux/of_gpio.h>
+#include <linux/platform_device.h>
+
+#include <linux/spi/spi.h>
+
+#define US_CR			0x00
+#define US_MR			0x04
+#define US_IER			0x08
+#define US_IDR			0x0C
+#define US_CSR			0x14
+#define US_RHR			0x18
+#define US_THR			0x1C
+#define US_BRGR			0x20
+#define US_VERSION		0xFC
+
+#define US_CR_RSTRX		BIT(2)
+#define US_CR_RSTTX		BIT(3)
+#define US_CR_RXEN		BIT(4)
+#define US_CR_RXDIS		BIT(5)
+#define US_CR_TXEN		BIT(6)
+#define US_CR_TXDIS		BIT(7)
+
+#define US_MR_SPI_MASTER	0x0E
+#define US_MR_CHRL		GENMASK(7, 6)
+#define US_MR_CPHA		BIT(8)
+#define US_MR_CPOL		BIT(16)
+#define US_MR_CLKO		BIT(18)
+#define US_MR_WRDBT		BIT(20)
+#define US_MR_LOOP		BIT(15)
+
+#define US_IR_RXRDY		BIT(0)
+#define US_IR_TXRDY		BIT(1)
+#define US_IR_OVRE		BIT(5)
+
+#define US_BRGR_SIZE		BIT(16)
+
+#define US_MIN_CLK_DIV		0x06
+#define US_MAX_CLK_DIV		BIT(16)
+
+#define US_RESET		(US_CR_RSTRX | US_CR_RSTTX)
+#define US_DISABLE		(US_CR_RXDIS | US_CR_TXDIS)
+#define US_ENABLE		(US_CR_RXEN | US_CR_TXEN)
+#define US_OVRE_RXRDY_IRQS	(US_IR_OVRE | US_IR_RXRDY)
+
+#define US_INIT \
+	(US_MR_SPI_MASTER | US_MR_CHRL | US_MR_CLKO | US_MR_WRDBT)
+
+/* Register access macros */
+#define at91_usart_spi_readl(port, reg) \
+	readl_relaxed((port)->regs + US_##reg)
+#define at91_usart_spi_writel(port, reg, value) \
+	writel_relaxed((value), (port)->regs + US_##reg)
+
+#define at91_usart_spi_readb(port, reg) \
+	readb_relaxed((port)->regs + US_##reg)
+#define at91_usart_spi_writeb(port, reg, value) \
+	writeb_relaxed((value), (port)->regs + US_##reg)
+
+struct at91_usart_spi {
+	struct spi_transfer	*current_transfer;
+	void __iomem		*regs;
+	struct device		*dev;
+	struct clk		*clk;
+
+	/*used in interrupt to protect data reading*/
+	spinlock_t		lock;
+
+	int			irq;
+	unsigned int		current_tx_remaining_bytes;
+	unsigned int		current_rx_remaining_bytes;
+
+	u32			spi_clk;
+	u32			status;
+
+	bool			xfer_failed;
+};
+
+static inline u32 at91_usart_spi_tx_ready(struct at91_usart_spi *aus)
+{
+	return aus->status & US_IR_TXRDY;
+}
+
+static inline u32 at91_usart_spi_rx_ready(struct at91_usart_spi *aus)
+{
+	return aus->status & US_IR_RXRDY;
+}
+
+static inline u32 at91_usart_spi_check_overrun(struct at91_usart_spi *aus)
+{
+	return aus->status & US_IR_OVRE;
+}
+
+static inline u32 at91_usart_spi_read_status(struct at91_usart_spi *aus)
+{
+	aus->status = at91_usart_spi_readl(aus, CSR);
+	return aus->status;
+}
+
+static inline void at91_usart_spi_tx(struct at91_usart_spi *aus)
+{
+	unsigned int len = aus->current_transfer->len;
+	unsigned int remaining = aus->current_tx_remaining_bytes;
+	const u8  *tx_buf = aus->current_transfer->tx_buf;
+
+	if (!remaining)
+		return;
+
+	if (at91_usart_spi_tx_ready(aus)) {
+		at91_usart_spi_writeb(aus, THR, tx_buf[len - remaining]);
+		aus->current_tx_remaining_bytes--;
+	}
+}
+
+static inline void at91_usart_spi_rx(struct at91_usart_spi *aus)
+{
+	int len = aus->current_transfer->len;
+	int remaining = aus->current_rx_remaining_bytes;
+	u8  *rx_buf = aus->current_transfer->rx_buf;
+
+	if (!remaining)
+		return;
+
+	rx_buf[len - remaining] = at91_usart_spi_readb(aus, RHR);
+	aus->current_rx_remaining_bytes--;
+}
+
+static inline void
+at91_usart_spi_set_xfer_speed(struct at91_usart_spi *aus,
+			      struct spi_transfer *xfer)
+{
+	at91_usart_spi_writel(aus, BRGR,
+			      DIV_ROUND_UP(aus->spi_clk, xfer->speed_hz));
+}
+
+static irqreturn_t at91_usart_spi_interrupt(int irq, void *dev_id)
+{
+	struct spi_controller *controller = dev_id;
+	struct at91_usart_spi *aus = spi_master_get_devdata(controller);
+
+	spin_lock(&aus->lock);
+	at91_usart_spi_read_status(aus);
+
+	if (at91_usart_spi_check_overrun(aus)) {
+		aus->xfer_failed = true;
+		at91_usart_spi_writel(aus, IDR, US_IR_OVRE | US_IR_RXRDY);
+		spin_unlock(&aus->lock);
+		return IRQ_HANDLED;
+	}
+
+	if (at91_usart_spi_rx_ready(aus)) {
+		at91_usart_spi_rx(aus);
+		spin_unlock(&aus->lock);
+		return IRQ_HANDLED;
+	}
+
+	spin_unlock(&aus->lock);
+
+	return IRQ_NONE;
+}
+
+static int at91_usart_spi_setup(struct spi_device *spi)
+{
+	struct at91_usart_spi *aus = spi_master_get_devdata(spi->controller);
+	u32 *ausd = spi->controller_state;
+	unsigned int mr = at91_usart_spi_readl(aus, MR);
+	u8 bits = spi->bits_per_word;
+
+	if (bits != 8) {
+		dev_dbg(&spi->dev, "Only 8 bits per word are supported\n");
+		return -EINVAL;
+	}
+
+	if (spi->mode & SPI_CPOL)
+		mr |= US_MR_CPOL;
+	else
+		mr &= ~US_MR_CPOL;
+
+	if (spi->mode & SPI_CPHA)
+		mr |= US_MR_CPHA;
+	else
+		mr &= ~US_MR_CPHA;
+
+	if (spi->mode & SPI_LOOP)
+		mr |= US_MR_LOOP;
+	else
+		mr &= ~US_MR_LOOP;
+
+	if (!ausd) {
+		ausd = kzalloc(sizeof(*ausd), GFP_KERNEL);
+		if (!ausd)
+			return -ENOMEM;
+
+		spi->controller_state = ausd;
+	}
+
+	*ausd = mr;
+
+	dev_dbg(&spi->dev,
+		"setup: bpw %u mode 0x%x -> mr %d %08x\n",
+		bits, spi->mode, spi->chip_select, mr);
+
+	return 0;
+}
+
+int at91_usart_spi_transfer_one(struct spi_controller *ctlr,
+				struct spi_device *spi,
+				struct spi_transfer *xfer)
+{
+	struct at91_usart_spi *aus = spi_master_get_devdata(ctlr);
+
+	at91_usart_spi_set_xfer_speed(aus, xfer);
+	aus->xfer_failed = false;
+	aus->current_transfer = xfer;
+	aus->current_tx_remaining_bytes = xfer->len;
+	aus->current_rx_remaining_bytes = xfer->len;
+
+	while ((aus->current_tx_remaining_bytes ||
+		aus->current_rx_remaining_bytes) && !aus->xfer_failed) {
+		at91_usart_spi_read_status(aus);
+		at91_usart_spi_tx(aus);
+		cpu_relax();
+	}
+
+	if (aus->xfer_failed) {
+		dev_err(aus->dev, "Overrun!\n");
+		return -EIO;
+	}
+
+	return 0;
+}
+
+int at91_usart_spi_prepare_message(struct spi_controller *ctlr,
+				   struct spi_message *message)
+{
+	struct at91_usart_spi *aus = spi_master_get_devdata(ctlr);
+	struct spi_device *spi = message->spi;
+	u32 *ausd = spi->controller_state;
+
+	at91_usart_spi_writel(aus, CR, US_ENABLE);
+	at91_usart_spi_writel(aus, IER, US_OVRE_RXRDY_IRQS);
+	at91_usart_spi_writel(aus, MR, *ausd);
+
+	return 0;
+}
+
+int at91_usart_spi_unprepare_message(struct spi_controller *ctlr,
+				     struct spi_message *message)
+{
+	struct at91_usart_spi *aus = spi_master_get_devdata(ctlr);
+
+	at91_usart_spi_writel(aus, CR, US_RESET | US_DISABLE);
+	at91_usart_spi_writel(aus, IDR, US_OVRE_RXRDY_IRQS);
+
+	return 0;
+}
+
+static void at91_usart_spi_cleanup(struct spi_device *spi)
+{
+	struct at91_usart_spi_device *ausd = spi->controller_state;
+
+	spi->controller_state = NULL;
+	kfree(ausd);
+}
+
+static void at91_usart_spi_init(struct at91_usart_spi *aus)
+{
+	at91_usart_spi_writel(aus, MR, US_INIT);
+	at91_usart_spi_writel(aus, CR, US_RESET | US_DISABLE);
+}
+
+static int at91_usart_gpio_setup(struct platform_device *pdev)
+{
+	struct device_node *np = pdev->dev.parent->of_node;
+	int i;
+	int ret;
+	int nb;
+
+	if (!np)
+		return -EINVAL;
+
+	nb = of_gpio_named_count(np, "cs-gpios");
+	for (i = 0; i < nb; i++) {
+		int cs_gpio = of_get_named_gpio(np, "cs-gpios", i);
+
+		if (cs_gpio < 0)
+			return cs_gpio;
+
+		if (gpio_is_valid(cs_gpio)) {
+			ret = devm_gpio_request_one(&pdev->dev, cs_gpio,
+						    GPIOF_DIR_OUT,
+						    dev_name(&pdev->dev));
+			if (ret)
+				return ret;
+		}
+	}
+
+	return 0;
+}
+
+static int at91_usart_spi_probe(struct platform_device *pdev)
+{
+	struct resource *regs;
+	struct spi_controller *controller;
+	struct at91_usart_spi *aus;
+	struct clk *clk;
+	int irq;
+	int ret;
+
+	regs = platform_get_resource(to_platform_device(pdev->dev.parent),
+				     IORESOURCE_MEM, 0);
+	if (!regs)
+		return -EINVAL;
+
+	irq = platform_get_irq(to_platform_device(pdev->dev.parent), 0);
+	if (irq < 0)
+		return irq;
+
+	clk = devm_clk_get(pdev->dev.parent, "usart");
+	if (IS_ERR(clk))
+		return PTR_ERR(clk);
+
+	ret = -ENOMEM;
+	controller = spi_alloc_master(&pdev->dev, sizeof(*aus));
+	if (!controller)
+		goto at91_usart_spi_probe_fail;
+
+	ret = at91_usart_gpio_setup(pdev);
+	if (ret)
+		goto at91_usart_spi_probe_fail;
+
+	controller->mode_bits = SPI_CPOL | SPI_CPHA | SPI_LOOP | SPI_CS_HIGH;
+	controller->dev.of_node = pdev->dev.parent->of_node;
+	controller->bits_per_word_mask = SPI_BPW_MASK(8);
+	controller->setup = at91_usart_spi_setup;
+	controller->flags = SPI_MASTER_MUST_RX | SPI_MASTER_MUST_TX;
+	controller->transfer_one = at91_usart_spi_transfer_one;
+	controller->prepare_message = at91_usart_spi_prepare_message;
+	controller->unprepare_message = at91_usart_spi_unprepare_message;
+	controller->cleanup = at91_usart_spi_cleanup;
+	controller->max_speed_hz = DIV_ROUND_UP(clk_get_rate(clk),
+						US_MIN_CLK_DIV);
+	controller->min_speed_hz = DIV_ROUND_UP(clk_get_rate(clk),
+						US_MAX_CLK_DIV);
+	platform_set_drvdata(pdev, controller);
+
+	aus = spi_master_get_devdata(controller);
+
+	aus->dev = &pdev->dev;
+	aus->regs = devm_ioremap_resource(&pdev->dev, regs);
+	if (IS_ERR(aus->regs)) {
+		ret = PTR_ERR(aus->regs);
+		goto at91_usart_spi_probe_fail;
+	}
+
+	aus->irq = irq;
+	aus->clk = clk;
+
+	ret = devm_request_irq(&pdev->dev, irq, at91_usart_spi_interrupt, 0,
+			       dev_name(&pdev->dev), controller);
+	if (ret)
+		goto at91_usart_spi_probe_fail;
+
+	ret = clk_prepare_enable(clk);
+	if (ret)
+		goto at91_usart_spi_probe_fail;
+
+	aus->spi_clk = clk_get_rate(clk);
+	at91_usart_spi_init(aus);
+
+	spin_lock_init(&aus->lock);
+	ret = devm_spi_register_master(&pdev->dev, controller);
+	if (ret)
+		goto at91_usart_fail_register_master;
+
+	dev_info(&pdev->dev,
+		 "AT91 USART SPI Controller version 0x%x at %pa (irq %d)\n",
+		 at91_usart_spi_readl(aus, VERSION),
+		 &regs->start, irq);
+
+	return 0;
+
+at91_usart_fail_register_master:
+	clk_disable_unprepare(clk);
+at91_usart_spi_probe_fail:
+	spi_master_put(controller);
+	return ret;
+}
+
+static int at91_usart_spi_remove(struct platform_device *pdev)
+{
+	struct spi_controller *ctlr = platform_get_drvdata(pdev);
+	struct at91_usart_spi *aus = spi_master_get_devdata(ctlr);
+
+	clk_disable_unprepare(aus->clk);
+
+	return 0;
+}
+
+static const struct of_device_id at91_usart_spi_dt_ids[] = {
+	{ .compatible = "microchip,at91sam9g45-usart-spi"},
+	{ /* sentinel */}
+};
+
+MODULE_DEVICE_TABLE(of, at91_usart_spi_dt_ids);
+
+static struct platform_driver at91_usart_spi_driver = {
+	.driver = {
+		.name = "at91_usart_spi",
+	},
+	.probe = at91_usart_spi_probe,
+	.remove = at91_usart_spi_remove,
+};
+
+module_platform_driver(at91_usart_spi_driver);
+
+MODULE_DESCRIPTION("Microchip AT91 USART SPI Controller driver");
+MODULE_AUTHOR("Radu Pirea <radu.pirea@microchip.com>");
+MODULE_LICENSE("GPL v2");
+MODULE_ALIAS("platform:at91_usart_spi");
-- 
2.18.0


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

* [PATCH v11 6/6] tty/serial: atmel: change the driver to work under at91-usart mfd
  2018-07-13 16:47 [PATCH v11 0/6] Driver for at91 usart in spi mode Radu Pirea
                   ` (4 preceding siblings ...)
  2018-07-13 16:47 ` [PATCH v11 5/6] spi: at91-usart: add driver for at91-usart as spi Radu Pirea
@ 2018-07-13 16:47 ` Radu Pirea
  2018-08-02  8:11   ` Greg KH
  2018-08-22 12:55 ` [PATCH v11 0/6] Driver for at91 usart in spi mode Radu Pirea
  2018-09-10 15:18 ` [GIT PULL] Immutable branch between MFD, SPI and TTY due for the v4.20 merge window Lee Jones
  7 siblings, 1 reply; 21+ messages in thread
From: Radu Pirea @ 2018-07-13 16:47 UTC (permalink / raw)
  To: broonie, nicolas.ferre, alexandre.belloni, lee.jones,
	richard.genoud, robh+dt, mark.rutland, gregkh
  Cc: linux-spi, linux-arm-kernel, linux-kernel, devicetree,
	linux-serial, Radu Pirea

This patch modifies the place where resources and device tree properties
are searched.

Signed-off-by: Radu Pirea <radu.pirea@microchip.com>
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Acked-by: Richard Genoud <richard.genoud@gmail.com>
Acked-by: Nicolas Ferre <nicolas.ferre@microchip.com>
---
 drivers/tty/serial/Kconfig        |  1 +
 drivers/tty/serial/atmel_serial.c | 42 ++++++++++++++++++++-----------
 2 files changed, 28 insertions(+), 15 deletions(-)

diff --git a/drivers/tty/serial/Kconfig b/drivers/tty/serial/Kconfig
index df8bd0c7b97d..32886c304641 100644
--- a/drivers/tty/serial/Kconfig
+++ b/drivers/tty/serial/Kconfig
@@ -118,6 +118,7 @@ config SERIAL_ATMEL
 	depends on ARCH_AT91 || COMPILE_TEST
 	select SERIAL_CORE
 	select SERIAL_MCTRL_GPIO if GPIOLIB
+	select MFD_AT91_USART
 	help
 	  This enables the driver for the on-chip UARTs of the Atmel
 	  AT91 processors.
diff --git a/drivers/tty/serial/atmel_serial.c b/drivers/tty/serial/atmel_serial.c
index 8e4428725848..267d4d1de3f8 100644
--- a/drivers/tty/serial/atmel_serial.c
+++ b/drivers/tty/serial/atmel_serial.c
@@ -193,8 +193,7 @@ static struct console atmel_console;
 
 #if defined(CONFIG_OF)
 static const struct of_device_id atmel_serial_dt_ids[] = {
-	{ .compatible = "atmel,at91rm9200-usart" },
-	{ .compatible = "atmel,at91sam9260-usart" },
+	{ .compatible = "atmel,at91rm9200-usart-serial" },
 	{ /* sentinel */ }
 };
 #endif
@@ -915,6 +914,7 @@ static void atmel_tx_dma(struct uart_port *port)
 static int atmel_prepare_tx_dma(struct uart_port *port)
 {
 	struct atmel_uart_port *atmel_port = to_atmel_uart_port(port);
+	struct device *mfd_dev = port->dev->parent;
 	dma_cap_mask_t		mask;
 	struct dma_slave_config config;
 	int ret, nent;
@@ -922,7 +922,7 @@ static int atmel_prepare_tx_dma(struct uart_port *port)
 	dma_cap_zero(mask);
 	dma_cap_set(DMA_SLAVE, mask);
 
-	atmel_port->chan_tx = dma_request_slave_channel(port->dev, "tx");
+	atmel_port->chan_tx = dma_request_slave_channel(mfd_dev, "tx");
 	if (atmel_port->chan_tx == NULL)
 		goto chan_err;
 	dev_info(port->dev, "using %s for tx DMA transfers\n",
@@ -1093,6 +1093,7 @@ static void atmel_rx_from_dma(struct uart_port *port)
 static int atmel_prepare_rx_dma(struct uart_port *port)
 {
 	struct atmel_uart_port *atmel_port = to_atmel_uart_port(port);
+	struct device *mfd_dev = port->dev->parent;
 	struct dma_async_tx_descriptor *desc;
 	dma_cap_mask_t		mask;
 	struct dma_slave_config config;
@@ -1104,7 +1105,7 @@ static int atmel_prepare_rx_dma(struct uart_port *port)
 	dma_cap_zero(mask);
 	dma_cap_set(DMA_CYCLIC, mask);
 
-	atmel_port->chan_rx = dma_request_slave_channel(port->dev, "rx");
+	atmel_port->chan_rx = dma_request_slave_channel(mfd_dev, "rx");
 	if (atmel_port->chan_rx == NULL)
 		goto chan_err;
 	dev_info(port->dev, "using %s for rx DMA transfers\n",
@@ -2222,8 +2223,8 @@ static const char *atmel_type(struct uart_port *port)
  */
 static void atmel_release_port(struct uart_port *port)
 {
-	struct platform_device *pdev = to_platform_device(port->dev);
-	int size = pdev->resource[0].end - pdev->resource[0].start + 1;
+	struct platform_device *mpdev = to_platform_device(port->dev->parent);
+	int size = resource_size(mpdev->resource);
 
 	release_mem_region(port->mapbase, size);
 
@@ -2238,8 +2239,8 @@ static void atmel_release_port(struct uart_port *port)
  */
 static int atmel_request_port(struct uart_port *port)
 {
-	struct platform_device *pdev = to_platform_device(port->dev);
-	int size = pdev->resource[0].end - pdev->resource[0].start + 1;
+	struct platform_device *mpdev = to_platform_device(port->dev->parent);
+	int size = resource_size(mpdev->resource);
 
 	if (!request_mem_region(port->mapbase, size, "atmel_serial"))
 		return -EBUSY;
@@ -2341,27 +2342,28 @@ static int atmel_init_port(struct atmel_uart_port *atmel_port,
 {
 	int ret;
 	struct uart_port *port = &atmel_port->uart;
+	struct platform_device *mpdev = to_platform_device(pdev->dev.parent);
 
 	atmel_init_property(atmel_port, pdev);
 	atmel_set_ops(port);
 
-	uart_get_rs485_mode(&pdev->dev, &port->rs485);
+	uart_get_rs485_mode(&mpdev->dev, &port->rs485);
 
 	port->iotype		= UPIO_MEM;
 	port->flags		= UPF_BOOT_AUTOCONF | UPF_IOREMAP;
 	port->ops		= &atmel_pops;
 	port->fifosize		= 1;
 	port->dev		= &pdev->dev;
-	port->mapbase	= pdev->resource[0].start;
-	port->irq	= pdev->resource[1].start;
+	port->mapbase		= mpdev->resource[0].start;
+	port->irq		= mpdev->resource[1].start;
 	port->rs485_config	= atmel_config_rs485;
-	port->membase	= NULL;
+	port->membase		= NULL;
 
 	memset(&atmel_port->rx_ring, 0, sizeof(atmel_port->rx_ring));
 
 	/* for console, the clock could already be configured */
 	if (!atmel_port->clk) {
-		atmel_port->clk = clk_get(&pdev->dev, "usart");
+		atmel_port->clk = clk_get(&mpdev->dev, "usart");
 		if (IS_ERR(atmel_port->clk)) {
 			ret = PTR_ERR(atmel_port->clk);
 			atmel_port->clk = NULL;
@@ -2694,13 +2696,22 @@ static void atmel_serial_probe_fifos(struct atmel_uart_port *atmel_port,
 static int atmel_serial_probe(struct platform_device *pdev)
 {
 	struct atmel_uart_port *atmel_port;
-	struct device_node *np = pdev->dev.of_node;
+	struct device_node *np = pdev->dev.parent->of_node;
 	void *data;
 	int ret = -ENODEV;
 	bool rs485_enabled;
 
 	BUILD_BUG_ON(ATMEL_SERIAL_RINGSIZE & (ATMEL_SERIAL_RINGSIZE - 1));
 
+	/*
+	 * In device tree there is no node with "atmel,at91rm9200-usart-serial"
+	 * as compatible string. This driver is probed by at91-usart mfd driver
+	 * which is just a wrapper over the atmel_serial driver and
+	 * spi-at91-usart driver. All attributes needed by this driver are
+	 * found in of_node of parent.
+	 */
+	pdev->dev.of_node = np;
+
 	ret = of_alias_get_id(np, "serial");
 	if (ret < 0)
 		/* port id not found in platform data nor device-tree aliases:
@@ -2836,6 +2847,7 @@ static int atmel_serial_remove(struct platform_device *pdev)
 
 	clk_put(atmel_port->clk);
 	atmel_port->clk = NULL;
+	pdev->dev.of_node = NULL;
 
 	return ret;
 }
@@ -2846,7 +2858,7 @@ static struct platform_driver atmel_serial_driver = {
 	.suspend	= atmel_serial_suspend,
 	.resume		= atmel_serial_resume,
 	.driver		= {
-		.name			= "atmel_usart",
+		.name			= "atmel_usart_serial",
 		.of_match_table		= of_match_ptr(atmel_serial_dt_ids),
 	},
 };
-- 
2.18.0


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

* Re: [PATCH v11 6/6] tty/serial: atmel: change the driver to work under at91-usart mfd
  2018-07-13 16:47 ` [PATCH v11 6/6] tty/serial: atmel: change the driver to work under at91-usart mfd Radu Pirea
@ 2018-08-02  8:11   ` Greg KH
  0 siblings, 0 replies; 21+ messages in thread
From: Greg KH @ 2018-08-02  8:11 UTC (permalink / raw)
  To: Radu Pirea
  Cc: broonie, nicolas.ferre, alexandre.belloni, lee.jones,
	richard.genoud, robh+dt, mark.rutland, linux-spi,
	linux-arm-kernel, linux-kernel, devicetree, linux-serial

On Fri, Jul 13, 2018 at 07:47:36PM +0300, Radu Pirea wrote:
> This patch modifies the place where resources and device tree properties
> are searched.
> 
> Signed-off-by: Radu Pirea <radu.pirea@microchip.com>
> Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
> Acked-by: Richard Genoud <richard.genoud@gmail.com>
> Acked-by: Nicolas Ferre <nicolas.ferre@microchip.com>

Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

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

* Re: [PATCH v11 0/6] Driver for at91 usart in spi mode
  2018-07-13 16:47 [PATCH v11 0/6] Driver for at91 usart in spi mode Radu Pirea
                   ` (5 preceding siblings ...)
  2018-07-13 16:47 ` [PATCH v11 6/6] tty/serial: atmel: change the driver to work under at91-usart mfd Radu Pirea
@ 2018-08-22 12:55 ` Radu Pirea
  2018-08-23 11:23   ` Lee Jones
  2018-09-10 15:18 ` [GIT PULL] Immutable branch between MFD, SPI and TTY due for the v4.20 merge window Lee Jones
  7 siblings, 1 reply; 21+ messages in thread
From: Radu Pirea @ 2018-08-22 12:55 UTC (permalink / raw)
  To: broonie, Nicolas Ferre - M43238, alexandre.belloni, lee.jones,
	richard.genoud, robh+dt, mark.rutland, gregkh
  Cc: linux-spi, linux-arm-kernel, linux-kernel, devicetree, linux-serial

Hi Lee,

I saw that the patches were not applied to your tree for this kernel 
version. After the discussion with Nicolas, I remember that you said 
that you will take the patches in your tree. I addressed Mark comments 
related to the last version of patches. Is there something that must be 
reworked in order to take the patches?

On 7/13/18 7:47 PM, Radu Pirea - M19893 wrote:
> Hello,
> 
> This is the second version of driver. I added a mfd driver which by
> default probes atmel_serial driver and if in dt is specified to probe
> the spi driver, then the spi-at91-usart driver will be probed. The
> compatible for atmel_serial is now the compatible for at91-usart mfd
> driver and compatilbe for atmel_serial driver was changed in order to
> keep the bindings for serial as they are.
> 
> @Lee, could you take this patch series into your tree? I addressed all Mark
> remarks.
> 
> Changes in v11:
> - removed "depends on HAS_DMA" from drivers/spi/Kconfig because the driver has
> no dma support
> - changed "selects MFD_AT91_USART" to "depends on MFD_AT91_USART" in
> drivers/spi/Kconfig
> - changed comment style in spi-at91-usart.c
> 
> Changes in v10:
> -fixed kbuild test robot warning
> 
> Changes in v9:
> - minor changes
> - rebased on top of broonie/for-4.19
> 
> Changes in v8:
> - fixed passing an empty mfd cell if "atmel,usart-mode" value is invalid
> 
> Changes in v7:
> - synced up  SPDIX license with module license
> - numbering of usart modes starts from 0 insteand of 1
> 
> Changes in v6:
> - removed unused compatible strings from serial and spi drivers
> 
> Changes in v5:
> - fixed usage of stdout-path property with atmel_serial driver
> 
> Changes in v4:
> - modified the spi driver to use cs gpio support form spi subsystem
> - fixed dma transfers for serial driver
> - squashed binding for spi and serial and moved them to mfd/atmel-usart.txt
> 
> Changes in v3:
> - fixed spi slaves probing
> 
> Changes in v2:
> - added at91-usart mfd driver
> - modified spi-at91-usart driver to work as mfd driver child
> - modified atmel_serial driver to work as mfd driver child
> 
> Changes in v1:
> - added spi-at91-usart driver
> 
> Radu Pirea (6):
>    MAINTAINERS: add at91 usart mfd driver
>    dt-bindings: add binding for atmel-usart in SPI mode
>    mfd: at91-usart: added mfd driver for usart
>    MAINTAINERS: add at91 usart spi driver
>    spi: at91-usart: add driver for at91-usart as spi
>    tty/serial: atmel: change the driver to work under at91-usart mfd
> 
>   .../bindings/{serial => mfd}/atmel-usart.txt  |  25 +-
>   MAINTAINERS                                   |  16 +
>   drivers/mfd/Kconfig                           |   9 +
>   drivers/mfd/Makefile                          |   1 +
>   drivers/mfd/at91-usart.c                      |  71 +++
>   drivers/spi/Kconfig                           |   8 +
>   drivers/spi/Makefile                          |   1 +
>   drivers/spi/spi-at91-usart.c                  | 432 ++++++++++++++++++
>   drivers/tty/serial/Kconfig                    |   1 +
>   drivers/tty/serial/atmel_serial.c             |  42 +-
>   include/dt-bindings/mfd/at91-usart.h          |  17 +
>   11 files changed, 606 insertions(+), 17 deletions(-)
>   rename Documentation/devicetree/bindings/{serial => mfd}/atmel-usart.txt (76%)
>   create mode 100644 drivers/mfd/at91-usart.c
>   create mode 100644 drivers/spi/spi-at91-usart.c
>   create mode 100644 include/dt-bindings/mfd/at91-usart.h
> 

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

* Re: [PATCH v11 0/6] Driver for at91 usart in spi mode
  2018-08-22 12:55 ` [PATCH v11 0/6] Driver for at91 usart in spi mode Radu Pirea
@ 2018-08-23 11:23   ` Lee Jones
  0 siblings, 0 replies; 21+ messages in thread
From: Lee Jones @ 2018-08-23 11:23 UTC (permalink / raw)
  To: Radu Pirea
  Cc: broonie, Nicolas Ferre - M43238, alexandre.belloni,
	richard.genoud, robh+dt, mark.rutland, gregkh, linux-spi,
	linux-arm-kernel, linux-kernel, devicetree, linux-serial

On Wed, 22 Aug 2018, Radu Pirea wrote:
> I saw that the patches were not applied to your tree for this kernel
> version. After the discussion with Nicolas, I remember that you said that
> you will take the patches in your tree. I addressed Mark comments related to
> the last version of patches. Is there something that must be reworked in
> order to take the patches?

I don't remember back this far, so can't provide you with any good
reasons as to why the set wasn't applied.  There doesn't appear to be
anything wrong or wanting from the set, although it was submitted late
in the release cycle.

Just to let you and other readers know; since email is almost
exclusively used for submitting, reviewing and tracking patches, and
my setup (mbsync/mutt) can be a little temperamental at times, there
are instances, albeit rare ones when patches/sets fall by the
wayside.  In these instances, my suggestion is always for the
submitter to resubmit with a RESEND in order to regain attention to
the set.

-- 
Lee Jones [李琼斯]
Linaro Services Technical Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog

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

* [GIT PULL] Immutable branch between MFD, SPI and TTY due for the v4.20 merge window
  2018-07-13 16:47 [PATCH v11 0/6] Driver for at91 usart in spi mode Radu Pirea
                   ` (6 preceding siblings ...)
  2018-08-22 12:55 ` [PATCH v11 0/6] Driver for at91 usart in spi mode Radu Pirea
@ 2018-09-10 15:18 ` Lee Jones
  2018-09-10 15:59   ` Greg KH
                     ` (3 more replies)
  7 siblings, 4 replies; 21+ messages in thread
From: Lee Jones @ 2018-09-10 15:18 UTC (permalink / raw)
  To: Radu Pirea
  Cc: broonie, nicolas.ferre, alexandre.belloni, richard.genoud,
	robh+dt, mark.rutland, gregkh, linux-spi, linux-arm-kernel,
	linux-kernel, devicetree, linux-serial

Enjoy!

The following changes since commit 5b394b2ddf0347bef56e50c69a58773c94343ff3:

  Linux 4.19-rc1 (2018-08-26 14:11:59 -0700)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd.git tags/ib-mfd-spi-tty-v4.20

for you to fetch changes up to c24d25317a7c6bb3053d4c193b3cf57d1e9a3e4b:

  tty/serial: atmel: Change the driver to work under at91-usart MFD (2018-09-10 16:12:43 +0100)

----------------------------------------------------------------
Immutable branch between MFD, SPI and TTY due for the v4.20 merge window

----------------------------------------------------------------
Radu Pirea (6):
      MAINTAINERS: Add AT91 USART MFD entry
      dt-bindings: Add binding for atmel-usart in SPI mode
      mfd: at91-usart: Add MFD driver for USART
      MAINTAINERS: Add AT91 USART SPI entry
      spi: at91-usart: Add driver for at91-usart as SPI
      tty/serial: atmel: Change the driver to work under at91-usart MFD

 .../bindings/{serial => mfd}/atmel-usart.txt       |  25 +-
 MAINTAINERS                                        |  16 +
 drivers/mfd/Kconfig                                |   9 +
 drivers/mfd/Makefile                               |   1 +
 drivers/mfd/at91-usart.c                           |  71 ++++
 drivers/spi/Kconfig                                |   8 +
 drivers/spi/Makefile                               |   1 +
 drivers/spi/spi-at91-usart.c                       | 432 +++++++++++++++++++++
 drivers/tty/serial/Kconfig                         |   1 +
 drivers/tty/serial/atmel_serial.c                  |  42 +-
 include/dt-bindings/mfd/at91-usart.h               |  17 +
 11 files changed, 606 insertions(+), 17 deletions(-)
 rename Documentation/devicetree/bindings/{serial => mfd}/atmel-usart.txt (76%)
 create mode 100644 drivers/mfd/at91-usart.c
 create mode 100644 drivers/spi/spi-at91-usart.c
 create mode 100644 include/dt-bindings/mfd/at91-usart.h

-- 
Lee Jones [李琼斯]
Linaro Services Technical Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog

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

* Re: [GIT PULL] Immutable branch between MFD, SPI and TTY due for the v4.20 merge window
  2018-09-10 15:18 ` [GIT PULL] Immutable branch between MFD, SPI and TTY due for the v4.20 merge window Lee Jones
@ 2018-09-10 15:59   ` Greg KH
  2018-09-11  8:14   ` Radu Nicolae Pirea
                     ` (2 subsequent siblings)
  3 siblings, 0 replies; 21+ messages in thread
From: Greg KH @ 2018-09-10 15:59 UTC (permalink / raw)
  To: Lee Jones
  Cc: Radu Pirea, broonie, nicolas.ferre, alexandre.belloni,
	richard.genoud, robh+dt, mark.rutland, linux-spi,
	linux-arm-kernel, linux-kernel, devicetree, linux-serial

On Mon, Sep 10, 2018 at 04:18:03PM +0100, Lee Jones wrote:
> Enjoy!
> 
> The following changes since commit 5b394b2ddf0347bef56e50c69a58773c94343ff3:
> 
>   Linux 4.19-rc1 (2018-08-26 14:11:59 -0700)
> 
> are available in the Git repository at:
> 
>   git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd.git tags/ib-mfd-spi-tty-v4.20
> 
> for you to fetch changes up to c24d25317a7c6bb3053d4c193b3cf57d1e9a3e4b:
> 
>   tty/serial: atmel: Change the driver to work under at91-usart MFD (2018-09-10 16:12:43 +0100)

thanks for this.  I'll suck it into my tty-next branch to make it easier
for any future at91 serial driver changes to be simpler to merge.

greg k-h

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

* Re: [GIT PULL] Immutable branch between MFD, SPI and TTY due for the v4.20 merge window
  2018-09-10 15:18 ` [GIT PULL] Immutable branch between MFD, SPI and TTY due for the v4.20 merge window Lee Jones
  2018-09-10 15:59   ` Greg KH
@ 2018-09-11  8:14   ` Radu Nicolae Pirea
  2018-09-11  8:51     ` Lee Jones
  2018-09-11  8:45   ` Lee Jones
  2018-09-11 10:56   ` [GIT PULL v2] " Lee Jones
  3 siblings, 1 reply; 21+ messages in thread
From: Radu Nicolae Pirea @ 2018-09-11  8:14 UTC (permalink / raw)
  To: Lee Jones, Radu Pirea
  Cc: broonie, nicolas.ferre, alexandre.belloni, richard.genoud,
	robh+dt, mark.rutland, gregkh, linux-spi, linux-arm-kernel,
	linux-kernel, devicetree, linux-serial

Hi Lee,

Thank you for taking the patch series, but you didn't take the latest
version(v12) :)


On Mon, 2018-09-10 at 16:18 +0100, Lee Jones wrote:
> Enjoy!
> 
> The following changes since commit
> 5b394b2ddf0347bef56e50c69a58773c94343ff3:
> 
>   Linux 4.19-rc1 (2018-08-26 14:11:59 -0700)
> 
> are available in the Git repository at:
> 
>   git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd.git tags/ib-
> mfd-spi-tty-v4.20
> 
> for you to fetch changes up to
> c24d25317a7c6bb3053d4c193b3cf57d1e9a3e4b:
> 
>   tty/serial: atmel: Change the driver to work under at91-usart MFD
> (2018-09-10 16:12:43 +0100)
> 
> ----------------------------------------------------------------
> Immutable branch between MFD, SPI and TTY due for the v4.20 merge
> window
> 
> ----------------------------------------------------------------
> Radu Pirea (6):
>       MAINTAINERS: Add AT91 USART MFD entry
>       dt-bindings: Add binding for atmel-usart in SPI mode
>       mfd: at91-usart: Add MFD driver for USART
>       MAINTAINERS: Add AT91 USART SPI entry
>       spi: at91-usart: Add driver for at91-usart as SPI
>       tty/serial: atmel: Change the driver to work under at91-usart
> MFD
> 
>  .../bindings/{serial => mfd}/atmel-usart.txt       |  25 +-
>  MAINTAINERS                                        |  16 +
>  drivers/mfd/Kconfig                                |   9 +
>  drivers/mfd/Makefile                               |   1 +
>  drivers/mfd/at91-usart.c                           |  71 ++++
>  drivers/spi/Kconfig                                |   8 +
>  drivers/spi/Makefile                               |   1 +
>  drivers/spi/spi-at91-usart.c                       | 432
> +++++++++++++++++++++
>  drivers/tty/serial/Kconfig                         |   1 +
>  drivers/tty/serial/atmel_serial.c                  |  42 +-
>  include/dt-bindings/mfd/at91-usart.h               |  17 +
>  11 files changed, 606 insertions(+), 17 deletions(-)
>  rename Documentation/devicetree/bindings/{serial => mfd}/atmel-
> usart.txt (76%)
>  create mode 100644 drivers/mfd/at91-usart.c
>  create mode 100644 drivers/spi/spi-at91-usart.c
>  create mode 100644 include/dt-bindings/mfd/at91-usart.h
> 


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

* Re: [GIT PULL] Immutable branch between MFD, SPI and TTY due for the v4.20 merge window
  2018-09-10 15:18 ` [GIT PULL] Immutable branch between MFD, SPI and TTY due for the v4.20 merge window Lee Jones
  2018-09-10 15:59   ` Greg KH
  2018-09-11  8:14   ` Radu Nicolae Pirea
@ 2018-09-11  8:45   ` Lee Jones
  2018-09-11  9:01     ` Greg KH
  2018-09-11 10:56   ` [GIT PULL v2] " Lee Jones
  3 siblings, 1 reply; 21+ messages in thread
From: Lee Jones @ 2018-09-11  8:45 UTC (permalink / raw)
  To: Radu Pirea
  Cc: broonie, nicolas.ferre, alexandre.belloni, richard.genoud,
	robh+dt, mark.rutland, gregkh, linux-spi, linux-arm-kernel,
	linux-kernel, devicetree, linux-serial

On Mon, 10 Sep 2018, Lee Jones wrote:

> Enjoy!
> 
> The following changes since commit 5b394b2ddf0347bef56e50c69a58773c94343ff3:
> 
>   Linux 4.19-rc1 (2018-08-26 14:11:59 -0700)
> 
> are available in the Git repository at:
> 
>   git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd.git tags/ib-mfd-spi-tty-v4.20
> 
> for you to fetch changes up to c24d25317a7c6bb3053d4c193b3cf57d1e9a3e4b:
> 
>   tty/serial: atmel: Change the driver to work under at91-usart MFD (2018-09-10 16:12:43 +0100)
> 
> ----------------------------------------------------------------
> Immutable branch between MFD, SPI and TTY due for the v4.20 merge window

Due to a comedy of errors, I'm voiding this pull-request.

Please stand-by for a follow-up.

> Radu Pirea (6):
>       MAINTAINERS: Add AT91 USART MFD entry
>       dt-bindings: Add binding for atmel-usart in SPI mode
>       mfd: at91-usart: Add MFD driver for USART
>       MAINTAINERS: Add AT91 USART SPI entry
>       spi: at91-usart: Add driver for at91-usart as SPI
>       tty/serial: atmel: Change the driver to work under at91-usart MFD
> 
>  .../bindings/{serial => mfd}/atmel-usart.txt       |  25 +-
>  MAINTAINERS                                        |  16 +
>  drivers/mfd/Kconfig                                |   9 +
>  drivers/mfd/Makefile                               |   1 +
>  drivers/mfd/at91-usart.c                           |  71 ++++
>  drivers/spi/Kconfig                                |   8 +
>  drivers/spi/Makefile                               |   1 +
>  drivers/spi/spi-at91-usart.c                       | 432 +++++++++++++++++++++
>  drivers/tty/serial/Kconfig                         |   1 +
>  drivers/tty/serial/atmel_serial.c                  |  42 +-
>  include/dt-bindings/mfd/at91-usart.h               |  17 +
>  11 files changed, 606 insertions(+), 17 deletions(-)
>  rename Documentation/devicetree/bindings/{serial => mfd}/atmel-usart.txt (76%)
>  create mode 100644 drivers/mfd/at91-usart.c
>  create mode 100644 drivers/spi/spi-at91-usart.c
>  create mode 100644 include/dt-bindings/mfd/at91-usart.h
> 

-- 
Lee Jones [李琼斯]
Linaro Services Technical Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog

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

* Re: [GIT PULL] Immutable branch between MFD, SPI and TTY due for the v4.20 merge window
  2018-09-11  8:14   ` Radu Nicolae Pirea
@ 2018-09-11  8:51     ` Lee Jones
  0 siblings, 0 replies; 21+ messages in thread
From: Lee Jones @ 2018-09-11  8:51 UTC (permalink / raw)
  To: Radu Nicolae Pirea
  Cc: Radu Pirea, broonie, nicolas.ferre, alexandre.belloni,
	richard.genoud, robh+dt, mark.rutland, gregkh, linux-spi,
	linux-arm-kernel, linux-kernel, devicetree, linux-serial

On Tue, 11 Sep 2018, Radu Nicolae Pirea wrote:

> Hi Lee,
> 
> Thank you for taking the patch series, but you didn't take the latest
> version(v12) :)

Both were marked for merging in my inbox, and since I am working
though my (300+) post-vacation emails chronologically v11 was handled
first.

It appears as though there is an issue in the way 'struct
of_device_id' was declared too.  The header file in which it was
declared used to be included by proxy, however a separation has
recently been made causing build errors.

I will fix both issues and re-submit the PR.

-- 
Lee Jones [李琼斯]
Linaro Services Technical Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog

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

* Re: [GIT PULL] Immutable branch between MFD, SPI and TTY due for the v4.20 merge window
  2018-09-11  8:45   ` Lee Jones
@ 2018-09-11  9:01     ` Greg KH
  2018-09-11  9:44       ` Lee Jones
  0 siblings, 1 reply; 21+ messages in thread
From: Greg KH @ 2018-09-11  9:01 UTC (permalink / raw)
  To: Lee Jones
  Cc: Radu Pirea, broonie, nicolas.ferre, alexandre.belloni,
	richard.genoud, robh+dt, mark.rutland, linux-spi,
	linux-arm-kernel, linux-kernel, devicetree, linux-serial

On Tue, Sep 11, 2018 at 09:45:48AM +0100, Lee Jones wrote:
> On Mon, 10 Sep 2018, Lee Jones wrote:
> 
> > Enjoy!
> > 
> > The following changes since commit 5b394b2ddf0347bef56e50c69a58773c94343ff3:
> > 
> >   Linux 4.19-rc1 (2018-08-26 14:11:59 -0700)
> > 
> > are available in the Git repository at:
> > 
> >   git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd.git tags/ib-mfd-spi-tty-v4.20
> > 
> > for you to fetch changes up to c24d25317a7c6bb3053d4c193b3cf57d1e9a3e4b:
> > 
> >   tty/serial: atmel: Change the driver to work under at91-usart MFD (2018-09-10 16:12:43 +0100)
> > 
> > ----------------------------------------------------------------
> > Immutable branch between MFD, SPI and TTY due for the v4.20 merge window
> 
> Due to a comedy of errors, I'm voiding this pull-request.

Um, I can't do that as my tree can not be rebased :(

I can take follow-on patches, so I will go apply the patch posted so
that my tree builds again.  I recommend you just apply it as well.

thanks,

greg k-h

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

* Re: [GIT PULL] Immutable branch between MFD, SPI and TTY due for the v4.20 merge window
  2018-09-11  9:01     ` Greg KH
@ 2018-09-11  9:44       ` Lee Jones
  2018-09-11  9:56         ` Nicolas Ferre
  0 siblings, 1 reply; 21+ messages in thread
From: Lee Jones @ 2018-09-11  9:44 UTC (permalink / raw)
  To: Greg KH
  Cc: Radu Pirea, broonie, nicolas.ferre, alexandre.belloni,
	richard.genoud, robh+dt, mark.rutland, linux-spi,
	linux-arm-kernel, linux-kernel, devicetree, linux-serial

On Tue, 11 Sep 2018, Greg KH wrote:

> On Tue, Sep 11, 2018 at 09:45:48AM +0100, Lee Jones wrote:
> > On Mon, 10 Sep 2018, Lee Jones wrote:
> > 
> > > Enjoy!
> > > 
> > > The following changes since commit 5b394b2ddf0347bef56e50c69a58773c94343ff3:
> > > 
> > >   Linux 4.19-rc1 (2018-08-26 14:11:59 -0700)
> > > 
> > > are available in the Git repository at:
> > > 
> > >   git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd.git tags/ib-mfd-spi-tty-v4.20
> > > 
> > > for you to fetch changes up to c24d25317a7c6bb3053d4c193b3cf57d1e9a3e4b:
> > > 
> > >   tty/serial: atmel: Change the driver to work under at91-usart MFD (2018-09-10 16:12:43 +0100)
> > > 
> > > ----------------------------------------------------------------
> > > Immutable branch between MFD, SPI and TTY due for the v4.20 merge window
> > 
> > Due to a comedy of errors, I'm voiding this pull-request.
> 
> Um, I can't do that as my tree can not be rebased :(

Oh dear. :(

> I can take follow-on patches, so I will go apply the patch posted so
> that my tree builds again.  I recommend you just apply it as well.

What a pickle.  As per my last email, it looks as though this set was
applied under false pretences.  The MFD patch which was carrying my
Ack was doing so incorrectly.  The author mistakenly applied it to the
wrong patch.  After re-review (actually initial review) I wish to NACK
the implementation.

My suggestion would be to sit tight, rather than do anything rash and
see how this plays out.  After which we can fix your tree.

-- 
Lee Jones [李琼斯]
Linaro Services Technical Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog

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

* Re: [GIT PULL] Immutable branch between MFD, SPI and TTY due for the v4.20 merge window
  2018-09-11  9:44       ` Lee Jones
@ 2018-09-11  9:56         ` Nicolas Ferre
  2018-09-11 10:03           ` Greg KH
  0 siblings, 1 reply; 21+ messages in thread
From: Nicolas Ferre @ 2018-09-11  9:56 UTC (permalink / raw)
  To: Lee Jones, Greg KH, Radu Pirea
  Cc: broonie, alexandre.belloni, richard.genoud, robh+dt,
	mark.rutland, linux-spi, linux-arm-kernel, linux-kernel,
	devicetree, linux-serial

On 11/09/2018 at 11:44, Lee Jones wrote:
> On Tue, 11 Sep 2018, Greg KH wrote:
> 
>> On Tue, Sep 11, 2018 at 09:45:48AM +0100, Lee Jones wrote:
>>> On Mon, 10 Sep 2018, Lee Jones wrote:
>>>
>>>> Enjoy!
>>>>
>>>> The following changes since commit 5b394b2ddf0347bef56e50c69a58773c94343ff3:
>>>>
>>>>    Linux 4.19-rc1 (2018-08-26 14:11:59 -0700)
>>>>
>>>> are available in the Git repository at:
>>>>
>>>>    git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd.git tags/ib-mfd-spi-tty-v4.20
>>>>
>>>> for you to fetch changes up to c24d25317a7c6bb3053d4c193b3cf57d1e9a3e4b:
>>>>
>>>>    tty/serial: atmel: Change the driver to work under at91-usart MFD (2018-09-10 16:12:43 +0100)
>>>>
>>>> ----------------------------------------------------------------
>>>> Immutable branch between MFD, SPI and TTY due for the v4.20 merge window
>>>
>>> Due to a comedy of errors, I'm voiding this pull-request.
>>
>> Um, I can't do that as my tree can not be rebased :(
> 
> Oh dear. :(
> 
>> I can take follow-on patches, so I will go apply the patch posted so
>> that my tree builds again.  I recommend you just apply it as well.
> 
> What a pickle.  As per my last email, it looks as though this set was
> applied under false pretences.  The MFD patch which was carrying my
> Ack was doing so incorrectly.  The author mistakenly applied it to the
> wrong patch.  After re-review (actually initial review) I wish to NACK
> the implementation.

What? We discussed this to the bone!

Radu followed all the recommendations, collected all the feedback from 
major subsystems SPI and USART, resent the series again.

It was then forgotten. Wrong series was finally applied (which could 
trigger 0-day reports, I warn you)... and now we are discussing about 
the implementation of *v2* (we're at v12)!

> My suggestion would be to sit tight, rather than do anything rash and
> see how this plays out.  After which we can fix your tree.

Come on, Greg's tree is fixed now. We can catch-up with v11..v12 changes 
with patches and cleanup the mess together.

Just one misalignment with one patch merged for v4.19-rc1, fixed the 
same day, cannot generate such a reaction after months of development.

Best regards,
-- 
Nicolas Ferre

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

* Re: [GIT PULL] Immutable branch between MFD, SPI and TTY due for the v4.20 merge window
  2018-09-11  9:56         ` Nicolas Ferre
@ 2018-09-11 10:03           ` Greg KH
  2018-09-11 10:13             ` Lee Jones
  0 siblings, 1 reply; 21+ messages in thread
From: Greg KH @ 2018-09-11 10:03 UTC (permalink / raw)
  To: Nicolas Ferre
  Cc: Lee Jones, Radu Pirea, broonie, alexandre.belloni,
	richard.genoud, robh+dt, mark.rutland, linux-spi,
	linux-arm-kernel, linux-kernel, devicetree, linux-serial

On Tue, Sep 11, 2018 at 11:56:49AM +0200, Nicolas Ferre wrote:
> On 11/09/2018 at 11:44, Lee Jones wrote:
> > On Tue, 11 Sep 2018, Greg KH wrote:
> > 
> > > On Tue, Sep 11, 2018 at 09:45:48AM +0100, Lee Jones wrote:
> > > > On Mon, 10 Sep 2018, Lee Jones wrote:
> > > > 
> > > > > Enjoy!
> > > > > 
> > > > > The following changes since commit 5b394b2ddf0347bef56e50c69a58773c94343ff3:
> > > > > 
> > > > >    Linux 4.19-rc1 (2018-08-26 14:11:59 -0700)
> > > > > 
> > > > > are available in the Git repository at:
> > > > > 
> > > > >    git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd.git tags/ib-mfd-spi-tty-v4.20
> > > > > 
> > > > > for you to fetch changes up to c24d25317a7c6bb3053d4c193b3cf57d1e9a3e4b:
> > > > > 
> > > > >    tty/serial: atmel: Change the driver to work under at91-usart MFD (2018-09-10 16:12:43 +0100)
> > > > > 
> > > > > ----------------------------------------------------------------
> > > > > Immutable branch between MFD, SPI and TTY due for the v4.20 merge window
> > > > 
> > > > Due to a comedy of errors, I'm voiding this pull-request.
> > > 
> > > Um, I can't do that as my tree can not be rebased :(
> > 
> > Oh dear. :(
> > 
> > > I can take follow-on patches, so I will go apply the patch posted so
> > > that my tree builds again.  I recommend you just apply it as well.
> > 
> > What a pickle.  As per my last email, it looks as though this set was
> > applied under false pretences.  The MFD patch which was carrying my
> > Ack was doing so incorrectly.  The author mistakenly applied it to the
> > wrong patch.  After re-review (actually initial review) I wish to NACK
> > the implementation.
> 
> What? We discussed this to the bone!
> 
> Radu followed all the recommendations, collected all the feedback from major
> subsystems SPI and USART, resent the series again.
> 
> It was then forgotten. Wrong series was finally applied (which could trigger
> 0-day reports, I warn you)... and now we are discussing about the
> implementation of *v2* (we're at v12)!
> 
> > My suggestion would be to sit tight, rather than do anything rash and
> > see how this plays out.  After which we can fix your tree.
> 
> Come on, Greg's tree is fixed now. We can catch-up with v11..v12 changes
> with patches and cleanup the mess together.
> 
> Just one misalignment with one patch merged for v4.19-rc1, fixed the same
> day, cannot generate such a reaction after months of development.

I agree, my tree is now fixed, no harm done.  Just apply the same patch
to whomever also pulled it into their trees and all is good.

thanks,

greg k-h

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

* Re: [GIT PULL] Immutable branch between MFD, SPI and TTY due for the v4.20 merge window
  2018-09-11 10:03           ` Greg KH
@ 2018-09-11 10:13             ` Lee Jones
  0 siblings, 0 replies; 21+ messages in thread
From: Lee Jones @ 2018-09-11 10:13 UTC (permalink / raw)
  To: Greg KH
  Cc: Nicolas Ferre, Radu Pirea, broonie, alexandre.belloni,
	richard.genoud, robh+dt, mark.rutland, linux-spi,
	linux-arm-kernel, linux-kernel, devicetree, linux-serial

On Tue, 11 Sep 2018, Greg KH wrote:

> On Tue, Sep 11, 2018 at 11:56:49AM +0200, Nicolas Ferre wrote:
> > On 11/09/2018 at 11:44, Lee Jones wrote:
> > > On Tue, 11 Sep 2018, Greg KH wrote:
> > > 
> > > > On Tue, Sep 11, 2018 at 09:45:48AM +0100, Lee Jones wrote:
> > > > > On Mon, 10 Sep 2018, Lee Jones wrote:
> > > > > 
> > > > > > Enjoy!
> > > > > > 
> > > > > > The following changes since commit 5b394b2ddf0347bef56e50c69a58773c94343ff3:
> > > > > > 
> > > > > >    Linux 4.19-rc1 (2018-08-26 14:11:59 -0700)
> > > > > > 
> > > > > > are available in the Git repository at:
> > > > > > 
> > > > > >    git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd.git tags/ib-mfd-spi-tty-v4.20
> > > > > > 
> > > > > > for you to fetch changes up to c24d25317a7c6bb3053d4c193b3cf57d1e9a3e4b:
> > > > > > 
> > > > > >    tty/serial: atmel: Change the driver to work under at91-usart MFD (2018-09-10 16:12:43 +0100)
> > > > > > 
> > > > > > ----------------------------------------------------------------
> > > > > > Immutable branch between MFD, SPI and TTY due for the v4.20 merge window
> > > > > 
> > > > > Due to a comedy of errors, I'm voiding this pull-request.
> > > > 
> > > > Um, I can't do that as my tree can not be rebased :(
> > > 
> > > Oh dear. :(
> > > 
> > > > I can take follow-on patches, so I will go apply the patch posted so
> > > > that my tree builds again.  I recommend you just apply it as well.
> > > 
> > > What a pickle.  As per my last email, it looks as though this set was
> > > applied under false pretences.  The MFD patch which was carrying my
> > > Ack was doing so incorrectly.  The author mistakenly applied it to the
> > > wrong patch.  After re-review (actually initial review) I wish to NACK
> > > the implementation.
> > 
> > What? We discussed this to the bone!
> > 
> > Radu followed all the recommendations, collected all the feedback from major
> > subsystems SPI and USART, resent the series again.
> > 
> > It was then forgotten. Wrong series was finally applied (which could trigger
> > 0-day reports, I warn you)... and now we are discussing about the
> > implementation of *v2* (we're at v12)!

This situation is frustrating.  The reason I was not part of the
discussion can be attributed to an erroneous application of my Ack
earlier in the review process.

Anyway ... since Greg has applied the pull-request I do agree that the
path of least friction would be just to apply the set. :(

> > > My suggestion would be to sit tight, rather than do anything rash and
> > > see how this plays out.  After which we can fix your tree.
> > 
> > Come on, Greg's tree is fixed now. We can catch-up with v11..v12 changes
> > with patches and cleanup the mess together.
> > 
> > Just one misalignment with one patch merged for v4.19-rc1, fixed the same
> > day, cannot generate such a reaction after months of development.
> 
> I agree, my tree is now fixed, no harm done.  Just apply the same patch
> to whomever also pulled it into their trees and all is good.

Have you applied Nicolas' patch already?  Without discussion? :((

-- 
Lee Jones [李琼斯]
Linaro Services Technical Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog

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

* [GIT PULL v2] Immutable branch between MFD, SPI and TTY due for the v4.20 merge window
  2018-09-10 15:18 ` [GIT PULL] Immutable branch between MFD, SPI and TTY due for the v4.20 merge window Lee Jones
                     ` (2 preceding siblings ...)
  2018-09-11  8:45   ` Lee Jones
@ 2018-09-11 10:56   ` Lee Jones
  3 siblings, 0 replies; 21+ messages in thread
From: Lee Jones @ 2018-09-11 10:56 UTC (permalink / raw)
  To: Radu Pirea
  Cc: broonie, nicolas.ferre, alexandre.belloni, richard.genoud,
	robh+dt, mark.rutland, gregkh, linux-spi, linux-arm-kernel,
	linux-kernel, devicetree, linux-serial

This new pull-request contains the following changes since v1:

 - Uplift the submission version from v11 to v12
 - Include fix for build breakage due to missing Device Tree include file

Since it is based on the original pull-request, it can be pulled
in either directly on top of it or as a pull in its own right.

The following changes since commit 5b394b2ddf0347bef56e50c69a58773c94343ff3:

  Linux 4.19-rc1 (2018-08-26 14:11:59 -0700)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd.git tags/ib-mfd-spi-tty-v4.20-1

for you to fetch changes up to 65b80dfffeabd4eb253b93d07eadde4d89c18511:

  mfd: at91-usart: Include Device Tree header (2018-09-11 11:44:56 +0100)

----------------------------------------------------------------
Immutable branch between MFD, SPI and TTY due for the v4.20 merge window (v2)

----------------------------------------------------------------
Lee Jones (4):
      dt-bindings: mfd: atmel-usart: Correct interrupts property to include IRQ number
      MAINTAINERS: Change Radu's email address
      spi: at91-usart: Make local functions static
      mfd: at91-usart: Include Device Tree header

Radu Pirea (6):
      MAINTAINERS: Add AT91 USART MFD entry
      dt-bindings: Add binding for atmel-usart in SPI mode
      mfd: at91-usart: Add MFD driver for USART
      MAINTAINERS: Add AT91 USART SPI entry
      spi: at91-usart: Add driver for at91-usart as SPI
      tty/serial: atmel: Change the driver to work under at91-usart MFD

 .../bindings/{serial => mfd}/atmel-usart.txt       |  25 +-
 MAINTAINERS                                        |  16 +
 drivers/mfd/Kconfig                                |   9 +
 drivers/mfd/Makefile                               |   1 +
 drivers/mfd/at91-usart.c                           |  72 ++++
 drivers/spi/Kconfig                                |   8 +
 drivers/spi/Makefile                               |   1 +
 drivers/spi/spi-at91-usart.c                       | 432 +++++++++++++++++++++
 drivers/tty/serial/Kconfig                         |   1 +
 drivers/tty/serial/atmel_serial.c                  |  42 +-
 include/dt-bindings/mfd/at91-usart.h               |  17 +
 11 files changed, 607 insertions(+), 17 deletions(-)
 rename Documentation/devicetree/bindings/{serial => mfd}/atmel-usart.txt (76%)
 create mode 100644 drivers/mfd/at91-usart.c
 create mode 100644 drivers/spi/spi-at91-usart.c
 create mode 100644 include/dt-bindings/mfd/at91-usart.h

-- 
Lee Jones [李琼斯]
Linaro Services Technical Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog

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

end of thread, other threads:[~2018-09-11 10:56 UTC | newest]

Thread overview: 21+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-07-13 16:47 [PATCH v11 0/6] Driver for at91 usart in spi mode Radu Pirea
2018-07-13 16:47 ` [PATCH v11 1/6] MAINTAINERS: add at91 usart mfd driver Radu Pirea
2018-07-13 16:47 ` [PATCH v11 2/6] dt-bindings: add binding for atmel-usart in SPI mode Radu Pirea
2018-07-13 16:47 ` [PATCH v11 3/6] mfd: at91-usart: added mfd driver for usart Radu Pirea
2018-07-13 16:47 ` [PATCH v11 4/6] MAINTAINERS: add at91 usart spi driver Radu Pirea
2018-07-13 16:47 ` [PATCH v11 5/6] spi: at91-usart: add driver for at91-usart as spi Radu Pirea
2018-07-13 16:47 ` [PATCH v11 6/6] tty/serial: atmel: change the driver to work under at91-usart mfd Radu Pirea
2018-08-02  8:11   ` Greg KH
2018-08-22 12:55 ` [PATCH v11 0/6] Driver for at91 usart in spi mode Radu Pirea
2018-08-23 11:23   ` Lee Jones
2018-09-10 15:18 ` [GIT PULL] Immutable branch between MFD, SPI and TTY due for the v4.20 merge window Lee Jones
2018-09-10 15:59   ` Greg KH
2018-09-11  8:14   ` Radu Nicolae Pirea
2018-09-11  8:51     ` Lee Jones
2018-09-11  8:45   ` Lee Jones
2018-09-11  9:01     ` Greg KH
2018-09-11  9:44       ` Lee Jones
2018-09-11  9:56         ` Nicolas Ferre
2018-09-11 10:03           ` Greg KH
2018-09-11 10:13             ` Lee Jones
2018-09-11 10:56   ` [GIT PULL v2] " Lee Jones

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