All of lore.kernel.org
 help / color / mirror / Atom feed
* [U-Boot] (no subject)
@ 2018-09-20 21:07 Angelo Dureghello
  2018-09-20 21:07 ` [U-Boot] [PATCH 1/7] m68k: add basic set of devicetrees Angelo Dureghello
                   ` (6 more replies)
  0 siblings, 7 replies; 19+ messages in thread
From: Angelo Dureghello @ 2018-09-20 21:07 UTC (permalink / raw)
  To: u-boot


This patch adds an initial fdt support to the m68k architecture.

It has been tested on stmark2 board, with a devicetree and
CONFIG_DM_SERIAL=y + CONFIG_DM_SPI=y.

----- test log -----

U-Boot 2018.09-00137-g1be43784f1 (Sep 20 2018 - 22:34:42 +0200)

CPU:   Freescale MCF54415 (Mask:a0 Version:2)
       CPU CLK 240 MHz BUS CLK 120 MHz FLB CLK 60 MHz
       INP CLK 30 MHz VCO CLK 480 MHz
SPI:   ready
DRAM:  128 MiB
Loading Environment from SPI Flash... SF: Detected is25lp128 with page size 256 Bytes, erase size 64 KiB, total 16 MiB
*** Warning - bad CRC, using default environment

In:    uart at fc060000
Out:   uart at fc060000
Err:   uart at fc060000
Hit any key to stop autoboot:  0 
SF: Detected is25lp128 with page size 256 Bytes, erase size 64 KiB, total 16 MiB
device 0 offset 0x100000, size 0x700000
SF: 7340032 bytes @ 0x100000 Read: OK
## Booting kernel from Legacy Image at 40001000 ...
   Image Name:   mainline kernel
   Created:      2018-09-14  19:06:13 UTC
   Image Type:   M68K Linux Kernel Image (uncompressed)
   Data Size:    2184848 Bytes = 2.1 MiB
   Load Address: 40001000
   Entry Point:  40001000
   Verifying Checksum ... OK
   Loading Kernel Image ... OK

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

* [U-Boot] [PATCH 1/7] m68k: add basic set of devicetrees
  2018-09-20 21:07 [U-Boot] (no subject) Angelo Dureghello
@ 2018-09-20 21:07 ` Angelo Dureghello
  2018-09-26  5:42   ` Simon Glass
  2018-09-20 21:07 ` [U-Boot] [PATCH 2/7] drivers: spi: cf_spi: migrate to DM and DT Angelo Dureghello
                   ` (5 subsequent siblings)
  6 siblings, 1 reply; 19+ messages in thread
From: Angelo Dureghello @ 2018-09-20 21:07 UTC (permalink / raw)
  To: u-boot

This patch adds a basic group of devicetrees, one for each
cpu, including actually just uart and dspi devices, since
these are the drivers supporting devicetree (support added
in this patch).

Signed-off-by: Angelo Dureghello <angelo@sysam.it>
---
 arch/m68k/dts/mcf5208.dtsi                    | 36 ++++++++
 arch/m68k/dts/mcf5227x.dtsi                   | 48 ++++++++++
 arch/m68k/dts/mcf523x.dtsi                    | 44 ++++++++++
 arch/m68k/dts/mcf5249.dtsi                    | 38 ++++++++
 arch/m68k/dts/mcf5253.dtsi                    | 44 ++++++++++
 arch/m68k/dts/mcf5271.dtsi                    | 44 ++++++++++
 arch/m68k/dts/mcf5272.dtsi                    | 38 ++++++++
 arch/m68k/dts/mcf5275.dtsi                    | 44 ++++++++++
 arch/m68k/dts/mcf5282.dtsi                    | 44 ++++++++++
 arch/m68k/dts/mcf5301x.dtsi                   | 48 ++++++++++
 arch/m68k/dts/mcf5307.dtsi                    | 39 +++++++++
 arch/m68k/dts/mcf5329.dtsi                    | 36 ++++++++
 arch/m68k/dts/mcf5441x.dtsi                   | 87 +++++++++++++++++++
 arch/m68k/dts/mcf5445x.dtsi                   | 48 ++++++++++
 doc/device-tree-bindings/serial/mcf-uart.txt  | 19 ++++
 doc/device-tree-bindings/spi/spi-mcf-dspi.txt | 22 +++++
 16 files changed, 679 insertions(+)
 create mode 100644 arch/m68k/dts/mcf5208.dtsi
 create mode 100644 arch/m68k/dts/mcf5227x.dtsi
 create mode 100644 arch/m68k/dts/mcf523x.dtsi
 create mode 100644 arch/m68k/dts/mcf5249.dtsi
 create mode 100644 arch/m68k/dts/mcf5253.dtsi
 create mode 100644 arch/m68k/dts/mcf5271.dtsi
 create mode 100644 arch/m68k/dts/mcf5272.dtsi
 create mode 100644 arch/m68k/dts/mcf5275.dtsi
 create mode 100644 arch/m68k/dts/mcf5282.dtsi
 create mode 100644 arch/m68k/dts/mcf5301x.dtsi
 create mode 100644 arch/m68k/dts/mcf5307.dtsi
 create mode 100644 arch/m68k/dts/mcf5329.dtsi
 create mode 100644 arch/m68k/dts/mcf5441x.dtsi
 create mode 100644 arch/m68k/dts/mcf5445x.dtsi
 create mode 100644 doc/device-tree-bindings/serial/mcf-uart.txt
 create mode 100644 doc/device-tree-bindings/spi/spi-mcf-dspi.txt

diff --git a/arch/m68k/dts/mcf5208.dtsi b/arch/m68k/dts/mcf5208.dtsi
new file mode 100644
index 0000000000..558d8bf41a
--- /dev/null
+++ b/arch/m68k/dts/mcf5208.dtsi
@@ -0,0 +1,36 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2018 Angelo Dureghello <angelo@sysam.it>
+ */
+
+/ {
+	compatible = "fsl,mcf5208";
+
+	aliases {
+		serial0 = &uart0;
+	};
+
+	soc {
+		compatible = "simple-bus";
+		#address-cells = <1>;
+		#size-cells = <1>;
+
+		uart0: uart at fc060000 {
+			compatible = "fsl,mcf-uart";
+			reg = <0xfc060000 0x40>;
+			status = "disabled";
+		};
+
+		uart1: uart at fc064000 {
+			compatible = "fsl,mcf-uart";
+			reg = <0xfc064000 0x40>;
+			status = "disabled";
+		};
+
+		uart2: uart at fc068000 {
+			compatible = "fsl,mcf-uart";
+			reg = <0xfc068000 0x40>;
+			status = "disabled";
+		};
+	};
+};
diff --git a/arch/m68k/dts/mcf5227x.dtsi b/arch/m68k/dts/mcf5227x.dtsi
new file mode 100644
index 0000000000..8c95edddb6
--- /dev/null
+++ b/arch/m68k/dts/mcf5227x.dtsi
@@ -0,0 +1,48 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2018 Angelo Dureghello <angelo@sysam.it>
+ */
+
+/ {
+	compatible = "fsl,mcf5227x";
+
+	aliases {
+		serial0 = &uart0;
+		spi0 = &dspi0;
+	};
+
+	soc {
+		compatible = "simple-bus";
+		#address-cells = <1>;
+		#size-cells = <1>;
+
+		uart0: uart at fc060000 {
+			compatible = "fsl,mcf-uart";
+			reg = <0xfc060000 0x40>;
+			status = "disabled";
+		};
+
+		uart1: uart at fc064000 {
+			compatible = "fsl,mcf-uart";
+			reg = <0xfc064000 0x40>;
+			status = "disabled";
+		};
+
+		uart2: uart at fc068000 {
+			compatible = "fsl,mcf-uart";
+			reg = <0xfc068000 0x40>;
+			status = "disabled";
+		};
+
+		dspi0: dspi at fc05c000 {
+			compatible = "fsl,mcf-dspi";
+			#address-cells = <1>;
+			#size-cells = <0>;
+			reg = <0xfc05c000 0x100>;
+			spi-max-frequency = <50000000>;
+			num-cs = <4>;
+			spi-mode = <0>;
+			status = "disabled";
+		};
+	};
+};
diff --git a/arch/m68k/dts/mcf523x.dtsi b/arch/m68k/dts/mcf523x.dtsi
new file mode 100644
index 0000000000..9e79d472ec
--- /dev/null
+++ b/arch/m68k/dts/mcf523x.dtsi
@@ -0,0 +1,44 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2018 Angelo Dureghello <angelo@sysam.it>
+ */
+
+/ {
+	compatible = "fsl,mcf523x";
+
+	aliases {
+		serial0 = &uart0;
+	};
+
+	soc {
+		compatible = "simple-bus";
+		#address-cells = <1>;
+		#size-cells = <1>;
+
+		ipsbar: ipsbar at 4000000 {
+			compatible = "simple-bus";
+			#address-cells = <1>;
+			#size-cells = <1>;
+			ranges = <0x00000000 0x40000000 0x40000000>;
+			reg = <0x40000000 0x40000000>;
+
+			uart0: uart at 200 {
+				compatible = "fsl,mcf-uart";
+				reg = <0x200 0x40>;
+				status = "disabled";
+			};
+
+			uart1: uart at 240 {
+				compatible = "fsl,mcf-uart";
+				reg = <0x240 0x40>;
+				status = "disabled";
+			};
+
+			uart2: uart at 280 {
+				compatible = "fsl,mcf-uart";
+				reg = <0x280 0x40>;
+				status = "disabled";
+			};
+		};
+	};
+};
diff --git a/arch/m68k/dts/mcf5249.dtsi b/arch/m68k/dts/mcf5249.dtsi
new file mode 100644
index 0000000000..248b3dc68b
--- /dev/null
+++ b/arch/m68k/dts/mcf5249.dtsi
@@ -0,0 +1,38 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2018 Angelo Dureghello <angelo@sysam.it>
+ */
+
+/ {
+	compatible = "fsl,mcf5249";
+
+	aliases {
+		serial0 = &uart0;
+	};
+
+	soc {
+		compatible = "simple-bus";
+		#address-cells = <1>;
+		#size-cells = <1>;
+
+		mbar: mbar at 10000000 {
+			compatible = "simple-bus";
+			#address-cells = <1>;
+			#size-cells = <1>;
+			ranges = <0x00000000 0x10000000 0x10000>;
+			reg = <0x10000000 0x10000>;
+
+			uart0: uart at 1c0 {
+				compatible = "fsl,mcf-uart";
+				reg = <0x1c0 0x40>;
+				status = "disabled";
+			};
+
+			uart1: uart at 200 {
+				compatible = "fsl,mcf-uart";
+				reg = <0x200 0x40>;
+				status = "disabled";
+			};
+		};
+	};
+};
diff --git a/arch/m68k/dts/mcf5253.dtsi b/arch/m68k/dts/mcf5253.dtsi
new file mode 100644
index 0000000000..3bde2d6202
--- /dev/null
+++ b/arch/m68k/dts/mcf5253.dtsi
@@ -0,0 +1,44 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2018 Angelo Dureghello <angelo@sysam.it>
+ */
+
+/ {
+	compatible = "fsl,mcf5253";
+
+	aliases {
+		serial0 = &uart0;
+	};
+
+	soc {
+		compatible = "simple-bus";
+		#address-cells = <1>;
+		#size-cells = <1>;
+
+		mbar: mbar at 10000000 {
+			compatible = "simple-bus";
+			#address-cells = <1>;
+			#size-cells = <1>;
+			ranges = <0x00000000 0x10000000 0x10000>;
+			reg = <0x10000000 0x10000>;
+
+			uart0: uart at 1c0 {
+				compatible = "fsl,mcf-uart";
+				reg = <0x1c0 0x40>;
+				status = "disabled";
+			};
+
+			uart1: uart at 200 {
+				compatible = "fsl,mcf-uart";
+				reg = <0x200 0x40>;
+				status = "disabled";
+			};
+
+			uart3: uart at c00 {
+				compatible = "fsl,mcf-uart";
+				reg = <0xc00 0x40>;
+				status = "disabled";
+			};
+		};
+	};
+};
diff --git a/arch/m68k/dts/mcf5271.dtsi b/arch/m68k/dts/mcf5271.dtsi
new file mode 100644
index 0000000000..29355528d0
--- /dev/null
+++ b/arch/m68k/dts/mcf5271.dtsi
@@ -0,0 +1,44 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2018 Angelo Dureghello <angelo@sysam.it>
+ */
+
+/ {
+	compatible = "fsl,mcf5271";
+
+	aliases {
+		serial0 = &uart0;
+	};
+
+	soc {
+		compatible = "simple-bus";
+		#address-cells = <1>;
+		#size-cells = <1>;
+
+		ipsbar: ipsbar at 4000000 {
+			compatible = "simple-bus";
+			#address-cells = <1>;
+			#size-cells = <1>;
+			ranges = <0x00000000 0x40000000 0x40000000>;
+			reg = <0x40000000 0x40000000>;
+
+			uart0: uart at 200 {
+				compatible = "fsl,mcf-uart";
+				reg = <0x200 0x40>;
+				status = "disabled";
+			};
+
+			uart1: uart at 240 {
+				compatible = "fsl,mcf-uart";
+				reg = <0x240 0x40>;
+				status = "disabled";
+			};
+
+			uart2: uart at 280 {
+				compatible = "fsl,mcf-uart";
+				reg = <0x280 0x40>;
+				status = "disabled";
+			};
+		};
+	};
+};
diff --git a/arch/m68k/dts/mcf5272.dtsi b/arch/m68k/dts/mcf5272.dtsi
new file mode 100644
index 0000000000..a56117728b
--- /dev/null
+++ b/arch/m68k/dts/mcf5272.dtsi
@@ -0,0 +1,38 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2018 Angelo Dureghello <angelo@sysam.it>
+ */
+
+/ {
+	compatible = "fsl,mcf5272";
+
+	aliases {
+		serial0 = &uart0;
+	};
+
+	soc {
+		compatible = "simple-bus";
+		#address-cells = <1>;
+		#size-cells = <1>;
+
+		mbar: mbar at 10000000 {
+			compatible = "simple-bus";
+			#address-cells = <1>;
+			#size-cells = <1>;
+			ranges = <0x00000000 0x10000000 0x10000>;
+			reg = <0x10000000 0x10000>;
+
+			uart0: uart at 100 {
+				compatible = "fsl,mcf-uart";
+				reg = <0x100 0x40>;
+				status = "disabled";
+			};
+
+			uart1: uart at 140 {
+				compatible = "fsl,mcf-uart";
+				reg = <0x140 0x40>;
+				status = "disabled";
+			};
+		};
+	};
+};
diff --git a/arch/m68k/dts/mcf5275.dtsi b/arch/m68k/dts/mcf5275.dtsi
new file mode 100644
index 0000000000..b375609d4a
--- /dev/null
+++ b/arch/m68k/dts/mcf5275.dtsi
@@ -0,0 +1,44 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2018 Angelo Dureghello <angelo@sysam.it>
+ */
+
+/ {
+	compatible = "fsl,mcf5275";
+
+	aliases {
+		serial0 = &uart0;
+	};
+
+	soc {
+		compatible = "simple-bus";
+		#address-cells = <1>;
+		#size-cells = <1>;
+
+		ipsbar: ipsbar at 4000000 {
+			compatible = "simple-bus";
+			#address-cells = <1>;
+			#size-cells = <1>;
+			ranges = <0x00000000 0x40000000 0x40000000>;
+			reg = <0x40000000 0x40000000>;
+
+			uart0: uart at 200 {
+				compatible = "fsl,mcf-uart";
+				reg = <0x200 0x40>;
+				status = "disabled";
+			};
+
+			uart1: uart at 240 {
+				compatible = "fsl,mcf-uart";
+				reg = <0x240 0x40>;
+				status = "disabled";
+			};
+
+			uart2: uart at 280 {
+				compatible = "fsl,mcf-uart";
+				reg = <0x280 0x40>;
+				status = "disabled";
+			};
+		};
+	};
+};
diff --git a/arch/m68k/dts/mcf5282.dtsi b/arch/m68k/dts/mcf5282.dtsi
new file mode 100644
index 0000000000..3ad1be7bb5
--- /dev/null
+++ b/arch/m68k/dts/mcf5282.dtsi
@@ -0,0 +1,44 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2018 Angelo Dureghello <angelo@sysam.it>
+ */
+
+/ {
+	compatible = "fsl,mcf5282";
+
+	aliases {
+		serial0 = &uart0;
+	};
+
+	soc {
+		compatible = "simple-bus";
+		#address-cells = <1>;
+		#size-cells = <1>;
+
+		ipsbar: ipsbar at 4000000 {
+			compatible = "simple-bus";
+			#address-cells = <1>;
+			#size-cells = <1>;
+			ranges = <0x00000000 0x40000000 0x40000000>;
+			reg = <0x40000000 0x40000000>;
+
+			uart0: uart at 200 {
+				compatible = "fsl,mcf-uart";
+				reg = <0x200 0x40>;
+				status = "disabled";
+			};
+
+			uart1: uart at 240 {
+				compatible = "fsl,mcf-uart";
+				reg = <0x240 0x40>;
+				status = "disabled";
+			};
+
+			uart2: uart at 280 {
+				compatible = "fsl,mcf-uart";
+				reg = <0x280 0x40>;
+				status = "disabled";
+			};
+		};
+	};
+};
diff --git a/arch/m68k/dts/mcf5301x.dtsi b/arch/m68k/dts/mcf5301x.dtsi
new file mode 100644
index 0000000000..0891e4dfd5
--- /dev/null
+++ b/arch/m68k/dts/mcf5301x.dtsi
@@ -0,0 +1,48 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2018 Angelo Dureghello <angelo@sysam.it>
+ */
+
+/ {
+	compatible = "fsl,mcf5301x";
+
+	aliases {
+		serial0 = &uart0;
+		spi0 = &dspi0;
+	};
+
+	soc {
+		compatible = "simple-bus";
+		#address-cells = <1>;
+		#size-cells = <1>;
+
+		uart0: uart at fc060000 {
+			compatible = "fsl,mcf-uart";
+			reg = <0xfc060000 0x40>;
+			status = "disabled";
+		};
+
+		uart1: uart at fc064000 {
+			compatible = "fsl,mcf-uart";
+			reg = <0xfc064000 0x40>;
+			status = "disabled";
+		};
+
+		uart2: uart at fc068000 {
+			compatible = "fsl,mcf-uart";
+			reg = <0xfc068000 0x40>;
+			status = "disabled";
+		};
+
+		dspi0: dspi at fc05c000 {
+			compatible = "fsl,mcf-dspi";
+			#address-cells = <1>;
+			#size-cells = <0>;
+			reg = <0xfc05c000 0x100>;
+			spi-max-frequency = <50000000>;
+			num-cs = <4>;
+			spi-mode = <0>;
+			status = "disabled";
+		};
+	};
+};
diff --git a/arch/m68k/dts/mcf5307.dtsi b/arch/m68k/dts/mcf5307.dtsi
new file mode 100644
index 0000000000..e199cf9991
--- /dev/null
+++ b/arch/m68k/dts/mcf5307.dtsi
@@ -0,0 +1,39 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2018 Angelo Dureghello <angelo@sysam.it>
+ */
+
+/ {
+	compatible = "fsl,mcf5307";
+
+	aliases {
+		serial0 = &uart0;
+	};
+
+	soc {
+		compatible = "simple-bus";
+		#address-cells = <1>;
+		#size-cells = <1>;
+
+		/* MBAR */
+		mbar: mbar at 10000000 {
+			compatible = "simple-bus";
+			#address-cells = <1>;
+			#size-cells = <1>;
+			ranges = <0x00000000 0x10000000 0x10000>;
+			reg = <0x10000000 0x10000>;
+
+			uart0: uart at 1c0 {
+				compatible = "fsl,mcf-uart";
+				reg = <0x1c0 0x40>;
+				status = "disabled";
+			};
+
+			uart1: uart at 200 {
+				compatible = "fsl,mcf-uart";
+				reg = <0x200 0x40>;
+				status = "disabled";
+			};
+		};
+	};
+};
diff --git a/arch/m68k/dts/mcf5329.dtsi b/arch/m68k/dts/mcf5329.dtsi
new file mode 100644
index 0000000000..aeaa6430af
--- /dev/null
+++ b/arch/m68k/dts/mcf5329.dtsi
@@ -0,0 +1,36 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2018 Angelo Dureghello <angelo@sysam.it>
+ */
+
+/ {
+	compatible = "fsl,mcf5329";
+
+	aliases {
+		serial0 = &uart0;
+	};
+
+	soc {
+		compatible = "simple-bus";
+		#address-cells = <1>;
+		#size-cells = <1>;
+
+		uart0: uart at fc060000 {
+			compatible = "fsl,mcf-uart";
+			reg = <0xfc060000 0x40>;
+			status = "disabled";
+		};
+
+		uart1: uart at fc064000 {
+			compatible = "fsl,mcf-uart";
+			reg = <0xfc064000 0x40>;
+			status = "disabled";
+		};
+
+		uart2: uart at fc068000 {
+			compatible = "fsl,mcf-uart";
+			reg = <0xfc068000 0x40>;
+			status = "disabled";
+		};
+	};
+};
diff --git a/arch/m68k/dts/mcf5441x.dtsi b/arch/m68k/dts/mcf5441x.dtsi
new file mode 100644
index 0000000000..71b392adc3
--- /dev/null
+++ b/arch/m68k/dts/mcf5441x.dtsi
@@ -0,0 +1,87 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2018 Angelo Dureghello <angelo@sysam.it>
+ */
+
+/ {
+	compatible = "fsl,mcf5441x";
+
+	aliases {
+		serial0 = &uart0;
+		spi0 = &dspi0;
+	};
+
+	soc {
+		compatible = "simple-bus";
+		#address-cells = <1>;
+		#size-cells = <1>;
+
+		uart0: uart at fc060000 {
+			compatible = "fsl,mcf-uart";
+			reg = <0xfc060000 0x40>;
+			status = "disabled";
+		};
+
+		uart1: uart at fc064000 {
+			compatible = "fsl,mcf-uart";
+			reg = <0xfc064000 0x40>;
+			status = "disabled";
+		};
+
+		uart2: uart at fc068000 {
+			compatible = "fsl,mcf-uart";
+			reg = <0xfc068000 0x40>;
+			status = "disabled";
+		};
+
+		uart3: uart at fc06c000 {
+			compatible = "fsl,mcf-uart";
+			reg = <0xfc06c000 0x40>;
+			status = "disabled";
+		};
+
+		dspi0: dspi at fc05c000 {
+			compatible = "fsl,mcf-dspi";
+			#address-cells = <1>;
+			#size-cells = <0>;
+			reg = <0xfc05c000 0x100>;
+			spi-max-frequency = <50000000>;
+			num-cs = <4>;
+			spi-mode = <0>;
+			status = "disabled";
+		};
+
+		dspi1: dspi at fc03c000 {
+			compatible = "fsl,mcf-dspi";
+			#address-cells = <1>;
+			#size-cells = <0>;
+			reg = <0xfc03c000 0x100>;
+			spi-max-frequency = <50000000>;
+			num-cs = <4>;
+			spi-mode = <0>;
+			status = "disabled";
+		};
+
+		dspi2: dspi at ec038000 {
+			compatible = "fsl,mcf-dspi";
+			#address-cells = <1>;
+			#size-cells = <0>;
+			reg = <0xec038000 0x100>;
+			spi-max-frequency = <50000000>;
+			num-cs = <4>;
+			spi-mode = <0>;
+			status = "disabled";
+		};
+
+		dspi3: dspi at ec03c000 {
+			compatible = "fsl,mcf-dspi";
+			#address-cells = <1>;
+			#size-cells = <0>;
+			reg = <0xec03c00 0x100>;
+			spi-max-frequency = <50000000>;
+			num-cs = <4>;
+			spi-mode = <0>;
+			status = "disabled";
+		};
+	};
+};
diff --git a/arch/m68k/dts/mcf5445x.dtsi b/arch/m68k/dts/mcf5445x.dtsi
new file mode 100644
index 0000000000..ccbee29a6c
--- /dev/null
+++ b/arch/m68k/dts/mcf5445x.dtsi
@@ -0,0 +1,48 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2018 Angelo Dureghello <angelo@sysam.it>
+ */
+
+/ {
+	compatible = "fsl,mcf5445x";
+
+	aliases {
+		serial0 = &uart0;
+		spi0 = &dspi0;
+	};
+
+	soc {
+		compatible = "simple-bus";
+		#address-cells = <1>;
+		#size-cells = <1>;
+
+		uart0: uart at fc060000 {
+			compatible = "fsl,mcf-uart";
+			reg = <0xfc060000 0x40>;
+			status = "disabled";
+		};
+
+		uart1: uart at fc064000 {
+			compatible = "fsl,mcf-uart";
+			reg = <0xfc064000 0x40>;
+			status = "disabled";
+		};
+
+		uart2: uart at fc068000 {
+			compatible = "fsl,mcf-uart";
+			reg = <0xfc068000 0x40>;
+			status = "disabled";
+		};
+
+		dspi0: dspi at fc05c000 {
+			compatible = "fsl,mcf-dspi";
+			#address-cells = <1>;
+			#size-cells = <0>;
+			reg = <0xfc05c000 0x100>;
+			spi-max-frequency = <50000000>;
+			num-cs = <4>;
+			spi-mode = <0>;
+			status = "disabled";
+		};
+	};
+};
diff --git a/doc/device-tree-bindings/serial/mcf-uart.txt b/doc/device-tree-bindings/serial/mcf-uart.txt
new file mode 100644
index 0000000000..d73f764c01
--- /dev/null
+++ b/doc/device-tree-bindings/serial/mcf-uart.txt
@@ -0,0 +1,19 @@
+Freescale ColdFire UART
+
+Required properties:
+- compatible : should be "fsl,mcf-uart"
+- reg: start address and size of the registers
+
+Example:
+
+soc {
+	compatible = "simple-bus";
+	#address-cells = <1>;
+	#size-cells = <1>;
+
+	uart0: uart at fc060000 {
+		compatible = "fsl,mcf-uart";
+		reg = <0xfc060000 0x40>;
+		status = "disabled";
+	};
+};
diff --git a/doc/device-tree-bindings/spi/spi-mcf-dspi.txt b/doc/device-tree-bindings/spi/spi-mcf-dspi.txt
new file mode 100644
index 0000000000..1a02e674af
--- /dev/null
+++ b/doc/device-tree-bindings/spi/spi-mcf-dspi.txt
@@ -0,0 +1,22 @@
+Freescale ColdFire DSPI controller
+
+Required properties:
+- compatible : "fsl,mcf-dspi",
+- #address-cells: <1>, as required by generic SPI binding,
+- #size-cells: <0>, also as required by generic SPI binding,
+- reg : offset and length of the register set for the device,
+- spi-max-frequency : max supported spi frequency,
+- num-cs : the number of the chipselect signals,
+- spi-mode: spi motorola mode, 0 to 3,
+
+Example:
+
+dspi0: dspi at fc05c000 {
+	compatible = "fsl,mcf-dspi";
+	#address-cells = <1>;
+	#size-cells = <0>;
+	reg = <0xfc05c000 0x100>;
+	spi-max-frequency = <50000000>;
+	num-cs = <4>;
+	spi-mode = <0>;
+};
-- 
2.19.0

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

* [U-Boot] [PATCH 2/7] drivers: spi: cf_spi: migrate to DM and DT
  2018-09-20 21:07 [U-Boot] (no subject) Angelo Dureghello
  2018-09-20 21:07 ` [U-Boot] [PATCH 1/7] m68k: add basic set of devicetrees Angelo Dureghello
@ 2018-09-20 21:07 ` Angelo Dureghello
  2018-09-26  5:42   ` Simon Glass
  2018-09-20 21:07 ` [U-Boot] [PATCH 3/7] drivers: serial: mcfuart: add DT support Angelo Dureghello
                   ` (4 subsequent siblings)
  6 siblings, 1 reply; 19+ messages in thread
From: Angelo Dureghello @ 2018-09-20 21:07 UTC (permalink / raw)
  To: u-boot

This patch converts cf_spi.c to DM and to read driver
platform data from flat devicetree.

---
Changes from v1:
- split into 2 patches

Signed-off-by: Angelo Dureghello <angelo@sysam.it>
---
 drivers/spi/Kconfig                     |  18 +-
 drivers/spi/cf_spi.c                    | 495 ++++++++++++++++--------
 include/dm/platform_data/spi_coldfire.h |  25 ++
 3 files changed, 369 insertions(+), 169 deletions(-)
 create mode 100644 include/dm/platform_data/spi_coldfire.h

diff --git a/drivers/spi/Kconfig b/drivers/spi/Kconfig
index dcd719ff0a..974c5bbed8 100644
--- a/drivers/spi/Kconfig
+++ b/drivers/spi/Kconfig
@@ -80,6 +80,12 @@ config CADENCE_QSPI
 	  used to access the SPI NOR flash on platforms embedding this
 	  Cadence IP core.
 
+config CF_SPI
+        bool "ColdFire SPI driver"
+        help
+          Enable the ColdFire SPI driver. This driver can be used on
+          some m68k SoCs.
+
 config DESIGNWARE_SPI
 	bool "Designware SPI driver"
 	help
@@ -244,18 +250,18 @@ config ZYNQMP_GQSPI
 
 endif # if DM_SPI
 
-config SOFT_SPI
-	bool "Soft SPI driver"
-	help
-	 Enable Soft SPI driver. This driver is to use GPIO simulate
-	 the SPI protocol.
-
 config CF_SPI
 	bool "ColdFire SPI driver"
 	help
 	  Enable the ColdFire SPI driver. This driver can be used on
 	  some m68k SoCs.
 
+config SOFT_SPI
+	bool "Soft SPI driver"
+	help
+	 Enable Soft SPI driver. This driver is to use GPIO simulate
+	 the SPI protocol.
+
 config FSL_ESPI
 	bool "Freescale eSPI driver"
 	help
diff --git a/drivers/spi/cf_spi.c b/drivers/spi/cf_spi.c
index 522631cbbf..11a11f79c4 100644
--- a/drivers/spi/cf_spi.c
+++ b/drivers/spi/cf_spi.c
@@ -6,16 +6,27 @@
  *
  * Copyright (C) 2004-2009 Freescale Semiconductor, Inc.
  * TsiChung Liew (Tsi-Chung.Liew at freescale.com)
+ *
+ * Support for device model:
+ * Copyright (C) 2018 Angelo Dureghello <angelo@sysam.it>
+ *
  */
 
 #include <common.h>
+#include <dm.h>
+#include <dm/platform_data/spi_coldfire.h>
 #include <spi.h>
 #include <malloc.h>
 #include <asm/immap.h>
+#include <asm/io.h>
 
-struct cf_spi_slave {
+struct coldfire_spi_priv {
+#ifndef CONFIG_DM_SPI
 	struct spi_slave slave;
+#endif
+	struct dspi *regs;
 	uint baudrate;
+	int mode;
 	int charbit;
 };
 
@@ -38,14 +49,14 @@ DECLARE_GLOBAL_DATA_PTR;
 #define SPI_MODE_MOD	0x00200000
 #define SPI_DBLRATE	0x00100000
 
-static inline struct cf_spi_slave *to_cf_spi_slave(struct spi_slave *slave)
-{
-	return container_of(slave, struct cf_spi_slave, slave);
-}
+/* Default values */
+#define MCF_DSPI_DEFAULT_SCK_FREQ	10000000
+#define MCF_DSPI_MAX_CHIPSELECTS	4
+#define MCF_DSPI_MODE			0
 
-static void cfspi_init(void)
+static void __spi_init(struct coldfire_spi_priv *cfspi)
 {
-	volatile dspi_t *dspi = (dspi_t *) MMAP_DSPI;
+	struct dspi *dspi = cfspi->regs;
 
 	cfspi_port_conf();	/* port configuration */
 
@@ -56,125 +67,32 @@ static void cfspi_init(void)
 
 	/* Default setting in platform configuration */
 #ifdef CONFIG_SYS_DSPI_CTAR0
-	dspi->ctar[0] = CONFIG_SYS_DSPI_CTAR0;
+	writel(CONFIG_SYS_DSPI_CTAR0, &dspi->ctar[0]);
 #endif
 #ifdef CONFIG_SYS_DSPI_CTAR1
-	dspi->ctar[1] = CONFIG_SYS_DSPI_CTAR1;
+	writel(CONFIG_SYS_DSPI_CTAR1, &dspi->ctar[1]);
 #endif
 #ifdef CONFIG_SYS_DSPI_CTAR2
-	dspi->ctar[2] = CONFIG_SYS_DSPI_CTAR2;
+	writel(CONFIG_SYS_DSPI_CTAR2, &dspi->ctar[2]);
 #endif
 #ifdef CONFIG_SYS_DSPI_CTAR3
-	dspi->ctar[3] = CONFIG_SYS_DSPI_CTAR3;
+	writel(CONFIG_SYS_DSPI_CTAR3, &dspi->ctar[3]);
 #endif
 #ifdef CONFIG_SYS_DSPI_CTAR4
-	dspi->ctar[4] = CONFIG_SYS_DSPI_CTAR4;
+	writel(CONFIG_SYS_DSPI_CTAR4, &dspi->ctar[4]);
 #endif
 #ifdef CONFIG_SYS_DSPI_CTAR5
-	dspi->ctar[5] = CONFIG_SYS_DSPI_CTAR5;
+	writel(CONFIG_SYS_DSPI_CTAR5, &dspi->ctar[5]);
 #endif
 #ifdef CONFIG_SYS_DSPI_CTAR6
-	dspi->ctar[6] = CONFIG_SYS_DSPI_CTAR6;
+	writel(CONFIG_SYS_DSPI_CTAR6, &dspi->ctar[6]);
 #endif
 #ifdef CONFIG_SYS_DSPI_CTAR7
-	dspi->ctar[7] = CONFIG_SYS_DSPI_CTAR7;
+	writel(CONFIG_SYS_DSPI_CTAR7, &dspi->ctar[7]);
 #endif
 }
 
-static void cfspi_tx(u32 ctrl, u16 data)
-{
-	volatile dspi_t *dspi = (dspi_t *) MMAP_DSPI;
-
-	while ((dspi->sr & 0x0000F000) >= 4) ;
-
-	dspi->tfr = (ctrl | data);
-}
-
-static u16 cfspi_rx(void)
-{
-	volatile dspi_t *dspi = (dspi_t *) MMAP_DSPI;
-
-	while ((dspi->sr & 0x000000F0) == 0) ;
-
-	return (dspi->rfr & 0xFFFF);
-}
-
-static int cfspi_xfer(struct spi_slave *slave, uint bitlen, const void *dout,
-		      void *din, ulong flags)
-{
-	struct cf_spi_slave *cfslave = to_cf_spi_slave(slave);
-	u16 *spi_rd16 = NULL, *spi_wr16 = NULL;
-	u8 *spi_rd = NULL, *spi_wr = NULL;
-	static u32 ctrl = 0;
-	uint len = bitlen >> 3;
-
-	if (cfslave->charbit == 16) {
-		bitlen >>= 1;
-		spi_wr16 = (u16 *) dout;
-		spi_rd16 = (u16 *) din;
-	} else {
-		spi_wr = (u8 *) dout;
-		spi_rd = (u8 *) din;
-	}
-
-	if ((flags & SPI_XFER_BEGIN) == SPI_XFER_BEGIN)
-		ctrl |= DSPI_TFR_CONT;
-
-	ctrl = (ctrl & 0xFF000000) | ((1 << slave->cs) << 16);
-
-	if (len > 1) {
-		int tmp_len = len - 1;
-		while (tmp_len--) {
-			if (dout != NULL) {
-				if (cfslave->charbit == 16)
-					cfspi_tx(ctrl, *spi_wr16++);
-				else
-					cfspi_tx(ctrl, *spi_wr++);
-				cfspi_rx();
-			}
-
-			if (din != NULL) {
-				cfspi_tx(ctrl, CONFIG_SPI_IDLE_VAL);
-				if (cfslave->charbit == 16)
-					*spi_rd16++ = cfspi_rx();
-				else
-					*spi_rd++ = cfspi_rx();
-			}
-		}
-
-		len = 1;	/* remaining byte */
-	}
-
-	if ((flags & SPI_XFER_END) == SPI_XFER_END)
-		ctrl &= ~DSPI_TFR_CONT;
-
-	if (len) {
-		if (dout != NULL) {
-			if (cfslave->charbit == 16)
-				cfspi_tx(ctrl, *spi_wr16);
-			else
-				cfspi_tx(ctrl, *spi_wr);
-			cfspi_rx();
-		}
-
-		if (din != NULL) {
-			cfspi_tx(ctrl, CONFIG_SPI_IDLE_VAL);
-			if (cfslave->charbit == 16)
-				*spi_rd16 = cfspi_rx();
-			else
-				*spi_rd = cfspi_rx();
-		}
-	} else {
-		/* dummy read */
-		cfspi_tx(ctrl, CONFIG_SPI_IDLE_VAL);
-		cfspi_rx();
-	}
-
-	return 0;
-}
-
-static struct spi_slave *cfspi_setup_slave(struct cf_spi_slave *cfslave,
-					   uint mode)
+int __spi_set_speed(struct coldfire_spi_priv *cfspi, uint bus)
 {
 	/*
 	 * bit definition for mode:
@@ -189,7 +107,7 @@ static struct spi_slave *cfspi_setup_slave(struct cf_spi_slave *cfslave,
 	 *     11 -  8: Delay after transfer scaler
 	 *      7 -  0: SPI_CPHA, SPI_CPOL, SPI_LSB_FIRST
 	 */
-	volatile dspi_t *dspi = (dspi_t *) MMAP_DSPI;
+	struct dspi *dspi = cfspi->regs;
 	int prescaler[] = { 2, 3, 5, 7 };
 	int scaler[] = {
 		2, 4, 6, 8,
@@ -199,56 +117,38 @@ static struct spi_slave *cfspi_setup_slave(struct cf_spi_slave *cfslave,
 	};
 	int i, j, pbrcnt, brcnt, diff, tmp, dbr = 0;
 	int best_i, best_j, bestmatch = 0x7FFFFFFF, baud_speed;
-	u32 bus_setup = 0;
+	u32 bus_setup;
+
+	/* Read current setup */
+	bus_setup = readl(&dspi->ctar[bus]);
 
 	tmp = (prescaler[3] * scaler[15]);
 	/* Maximum and minimum baudrate it can handle */
-	if ((cfslave->baudrate > (gd->bus_clk >> 1)) ||
-	    (cfslave->baudrate < (gd->bus_clk / tmp))) {
+	if ((cfspi->baudrate > (gd->bus_clk >> 1)) ||
+	    (cfspi->baudrate < (gd->bus_clk / tmp))) {
 		printf("Exceed baudrate limitation: Max %d - Min %d\n",
 		       (int)(gd->bus_clk >> 1), (int)(gd->bus_clk / tmp));
-		return NULL;
+		return -1;
 	}
 
 	/* Activate Double Baud when it exceed 1/4 the bus clk */
 	if ((CONFIG_SYS_DSPI_CTAR0 & DSPI_CTAR_DBR) ||
-	    (cfslave->baudrate > (gd->bus_clk / (prescaler[0] * scaler[0])))) {
+	    (cfspi->baudrate > (gd->bus_clk / (prescaler[0] * scaler[0])))) {
 		bus_setup |= DSPI_CTAR_DBR;
 		dbr = 1;
 	}
 
-	if (mode & SPI_CPOL)
-		bus_setup |= DSPI_CTAR_CPOL;
-	if (mode & SPI_CPHA)
-		bus_setup |= DSPI_CTAR_CPHA;
-	if (mode & SPI_LSB_FIRST)
-		bus_setup |= DSPI_CTAR_LSBFE;
-
 	/* Overwrite default value set in platform configuration file */
-	if (mode & SPI_MODE_MOD) {
-
-		if ((mode & 0xF0000000) == 0)
-			bus_setup |=
-			    dspi->ctar[cfslave->slave.bus] & 0x78000000;
-		else
-			bus_setup |= ((mode & 0xF0000000) >> 1);
-
+	if (cfspi->mode & SPI_MODE_MOD) {
 		/*
 		 * Check to see if it is enabled by default in platform
 		 * config, or manual setting passed by mode parameter
 		 */
-		if (mode & SPI_DBLRATE) {
+		if (cfspi->mode & SPI_DBLRATE) {
 			bus_setup |= DSPI_CTAR_DBR;
 			dbr = 1;
 		}
-		bus_setup |= (mode & 0x0FC00000) >> 4;	/* PSCSCK, PASC, PDT */
-		bus_setup |= (mode & 0x000FFF00) >> 4;	/* CSSCK, ASC, DT */
-	} else
-		bus_setup |= (dspi->ctar[cfslave->slave.bus] & 0x78FCFFF0);
-
-	cfslave->charbit =
-	    ((dspi->ctar[cfslave->slave.bus] & 0x78000000) ==
-	     0x78000000) ? 16 : 8;
+	}
 
 	pbrcnt = sizeof(prescaler) / sizeof(int);
 	brcnt = sizeof(scaler) / sizeof(int);
@@ -259,10 +159,10 @@ static struct spi_slave *cfspi_setup_slave(struct cf_spi_slave *cfslave,
 		for (j = 0; j < brcnt; j++) {
 			tmp = (baud_speed / scaler[j]) * (1 + dbr);
 
-			if (tmp > cfslave->baudrate)
-				diff = tmp - cfslave->baudrate;
+			if (tmp > cfspi->baudrate)
+				diff = tmp - cfspi->baudrate;
 			else
-				diff = cfslave->baudrate - tmp;
+				diff = cfspi->baudrate - tmp;
 
 			if (diff < bestmatch) {
 				bestmatch = diff;
@@ -271,50 +171,193 @@ static struct spi_slave *cfspi_setup_slave(struct cf_spi_slave *cfslave,
 			}
 		}
 	}
+
+	bus_setup &= ~(DSPI_CTAR_PBR(0x03) | DSPI_CTAR_BR(0x0f));
 	bus_setup |= (DSPI_CTAR_PBR(best_i) | DSPI_CTAR_BR(best_j));
-	dspi->ctar[cfslave->slave.bus] = bus_setup;
+	writel(bus_setup, &dspi->ctar[bus]);
 
-	return &cfslave->slave;
+	return 0;
 }
-#endif				/* CONFIG_CF_DSPI */
 
-#ifdef CONFIG_CMD_SPI
-int spi_cs_is_valid(unsigned int bus, unsigned int cs)
+static int __spi_set_mode(struct coldfire_spi_priv *cfspi, uint bus)
 {
-	if (((cs >= 0) && (cs < 8)) && ((bus >= 0) && (bus < 8)))
-		return 1;
-	else
-		return 0;
+	struct dspi *dspi = cfspi->regs;
+	u32 bus_setup = 0;
+
+	if (cfspi->mode & SPI_CPOL)
+		bus_setup |= DSPI_CTAR_CPOL;
+	if (cfspi->mode & SPI_CPHA)
+		bus_setup |= DSPI_CTAR_CPHA;
+	if (cfspi->mode & SPI_LSB_FIRST)
+		bus_setup |= DSPI_CTAR_LSBFE;
+
+	/* Overwrite default value set in platform configuration file */
+	if (cfspi->mode & SPI_MODE_MOD) {
+		if ((cfspi->mode & 0xF0000000) == 0)
+			bus_setup |=
+			    readl(&dspi->ctar[bus]) & 0x78000000;
+		else
+			bus_setup |= ((cfspi->mode & 0xF0000000) >> 1);
+
+		/* PSCSCK, PASC, PDT */
+		bus_setup |= (cfspi->mode & 0x0FC00000) >> 4;
+		/* CSSCK, ASC, DT */
+		bus_setup |= (cfspi->mode & 0x000FFF00) >> 4;
+	} else {
+		bus_setup |= (readl(&dspi->ctar[bus]) & 0x78FCFFF0);
+	}
+
+	cfspi->charbit =
+		((readl(&dspi->ctar[bus]) & 0x78000000) == 0x78000000) ? 16 : 8;
+
+	setbits_be32(&dspi->ctar[bus], bus_setup);
+
+	return 0;
 }
 
-void spi_init(void)
+static inline void __cfspi_tx(struct coldfire_spi_priv *cfspi,
+			      u32 ctrl, u16 data)
+{
+	while ((readl(&cfspi->regs->sr) & 0x0000F000) >= 4)
+		;
+
+	writel(ctrl | data, &cfspi->regs->tfr);
+}
+
+static inline u16 __cfspi_rx(struct coldfire_spi_priv *cfspi)
+{
+	while ((readl(&cfspi->regs->sr) & 0x000000F0) == 0)
+		;
+
+	return readw(&cfspi->regs->rfr);
+}
+
+static int __spi_xfer(struct coldfire_spi_priv *cfspi, uint cs, uint bitlen,
+		      const void *dout, void *din, ulong flags)
+{
+	u16 *spi_rd16 = NULL, *spi_wr16 = NULL;
+	u8 *spi_rd = NULL, *spi_wr = NULL;
+	static u32 ctrl;
+	uint len = bitlen >> 3;
+
+	if (cfspi->charbit == 16) {
+		bitlen >>= 1;
+		spi_wr16 = (u16 *)dout;
+		spi_rd16 = (u16 *)din;
+	} else {
+		spi_wr = (u8 *)dout;
+		spi_rd = (u8 *)din;
+	}
+
+	if ((flags & SPI_XFER_BEGIN) == SPI_XFER_BEGIN)
+		ctrl |= DSPI_TFR_CONT;
+
+	ctrl = (ctrl & 0xFF000000) | ((1 << cs) << 16);
+
+	if (len > 1) {
+		int tmp_len = len - 1;
+
+		while (tmp_len--) {
+			if (dout) {
+				if (cfspi->charbit == 16)
+					__cfspi_tx(cfspi, ctrl, *spi_wr16++);
+				else
+					__cfspi_tx(cfspi, ctrl, *spi_wr++);
+				__cfspi_rx(cfspi);
+			}
+
+			if (din) {
+				__cfspi_tx(cfspi, ctrl, CONFIG_SPI_IDLE_VAL);
+				if (cfspi->charbit == 16)
+					*spi_rd16++ = __cfspi_rx(cfspi);
+				else
+					*spi_rd++ = __cfspi_rx(cfspi);
+			}
+		}
+
+		len = 1;	/* remaining byte */
+	}
+
+	if ((flags & SPI_XFER_END) == SPI_XFER_END)
+		ctrl &= ~DSPI_TFR_CONT;
+
+	if (len) {
+		if (dout) {
+			if (cfspi->charbit == 16)
+				__cfspi_tx(cfspi, ctrl, *spi_wr16);
+			else
+				__cfspi_tx(cfspi, ctrl, *spi_wr);
+			__cfspi_rx(cfspi);
+		}
+
+		if (din) {
+			__cfspi_tx(cfspi, ctrl, CONFIG_SPI_IDLE_VAL);
+			if (cfspi->charbit == 16)
+				*spi_rd16 = __cfspi_rx(cfspi);
+			else
+				*spi_rd = __cfspi_rx(cfspi);
+		}
+	} else {
+		/* dummy read */
+		__cfspi_tx(cfspi, ctrl, CONFIG_SPI_IDLE_VAL);
+		__cfspi_rx(cfspi);
+	}
+
+	return 0;
+}
+
+#ifndef CONFIG_DM_SPI
+
+static inline struct coldfire_spi_priv *to_coldfire_spi_slave
+		(struct spi_slave *slave)
 {
-	cfspi_init();
+	return container_of(slave, struct coldfire_spi_priv, slave);
 }
 
 struct spi_slave *spi_setup_slave(unsigned int bus, unsigned int cs,
 				  unsigned int max_hz, unsigned int mode)
 {
-	struct cf_spi_slave *cfslave;
+	struct coldfire_spi_priv *cfspi;
 
 	if (!spi_cs_is_valid(bus, cs))
 		return NULL;
 
-	cfslave = spi_alloc_slave(struct cf_spi_slave, bus, cs);
-	if (!cfslave)
+	cfspi = spi_alloc_slave(struct coldfire_spi_priv, bus, cs);
+	if (!cfspi)
 		return NULL;
 
-	cfslave->baudrate = max_hz;
+	cfspi->regs = (dspi_t *)MMAP_DSPI;
+	cfspi->baudrate = max_hz;
+	cfspi->mode = mode;
+
+	__spi_init(cfspi);
+
+	if (__spi_set_speed(cfspi, bus))
+		return NULL;
+
+	if (__spi_set_mode(cfspi, bus))
+		return NULL;
 
-	/* specific setup */
-	return cfspi_setup_slave(cfslave, mode);
+	return &cfspi->slave;
+}
+
+int spi_cs_is_valid(unsigned int bus, unsigned int cs)
+{
+	if ((cs >= 0 && cs < 8) && (bus >= 0 && bus < 8))
+		return 1;
+	else
+		return 0;
+}
+
+void spi_init(void)
+{
 }
 
 void spi_free_slave(struct spi_slave *slave)
 {
-	struct cf_spi_slave *cfslave = to_cf_spi_slave(slave);
+	struct coldfire_spi_priv *cfspi = to_coldfire_spi_slave(slave);
 
-	free(cfslave);
+	free(cfspi);
 }
 
 int spi_claim_bus(struct spi_slave *slave)
@@ -330,6 +373,132 @@ void spi_release_bus(struct spi_slave *slave)
 int spi_xfer(struct spi_slave *slave, unsigned int bitlen, const void *dout,
 	     void *din, unsigned long flags)
 {
-	return cfspi_xfer(slave, bitlen, dout, din, flags);
+	struct coldfire_spi_priv *cfspi = to_coldfire_spi_slave(slave);
+
+	return __spi_xfer(cfspi, slave->cs, bitlen, dout, din, flags);
 }
-#endif				/* CONFIG_CMD_SPI */
+
+#else
+
+void spi_init(void)
+{
+}
+
+static int coldfire_spi_claim_bus(struct udevice *dev)
+{
+	struct udevice *bus = dev->parent;
+	struct dm_spi_slave_platdata *slave_plat =
+		dev_get_parent_platdata(dev);
+
+	return cfspi_claim_bus(bus->seq, slave_plat->cs);
+}
+
+static int coldfire_spi_release_bus(struct udevice *dev)
+{
+	struct udevice *bus = dev->parent;
+	struct dm_spi_slave_platdata *slave_plat =
+		dev_get_parent_platdata(dev);
+
+	cfspi_release_bus(bus->seq, slave_plat->cs);
+
+	return 0;
+}
+
+static int coldfire_spi_xfer(struct udevice *dev, unsigned int bitlen,
+			     const void *dout, void *din,
+			     unsigned long flags)
+{
+	struct udevice *bus = dev_get_parent(dev);
+	struct coldfire_spi_priv *cfspi = dev_get_priv(bus);
+	struct dm_spi_slave_platdata *slave_plat = dev_get_parent_platdata(dev);
+
+	return __spi_xfer(cfspi, slave_plat->cs, bitlen, dout, din, flags);
+}
+
+static int coldfire_spi_set_speed(struct udevice *bus, uint max_hz)
+{
+	struct coldfire_spi_priv *cfspi = dev_get_priv(bus);
+
+	cfspi->baudrate = max_hz;
+
+	return __spi_set_speed(cfspi, bus->seq);
+}
+
+static int coldfire_spi_set_mode(struct udevice *bus, uint mode)
+{
+	struct coldfire_spi_priv *cfspi = dev_get_priv(bus);
+
+	cfspi->mode = mode;
+
+	return __spi_set_mode(cfspi, bus->seq);
+}
+
+static int coldfire_spi_probe(struct udevice *bus)
+{
+	struct coldfire_spi_platdata *plat = dev_get_platdata(bus);
+	struct coldfire_spi_priv *cfspi = dev_get_priv(bus);
+
+	cfspi->regs = (struct dspi *)plat->regs_addr;
+
+	cfspi->baudrate = plat->speed_hz;
+	cfspi->mode = plat->mode;
+
+	__spi_init(cfspi);
+
+	return 0;
+}
+
+static int coldfire_dspi_ofdata_to_platdata(struct udevice *bus)
+{
+	fdt_addr_t addr;
+	struct coldfire_spi_platdata *plat = bus->platdata;
+	const void *blob = gd->fdt_blob;
+	int node = dev_of_offset(bus);
+
+	addr = devfdt_get_addr(bus);
+	if (addr == FDT_ADDR_T_NONE) {
+		debug("DSPI: Can't get base address or size\n");
+		return -ENOMEM;
+	}
+	plat->regs_addr = addr;
+
+	plat->num_cs = fdtdec_get_int(blob, node, "num-cs",
+				      MCF_DSPI_MAX_CHIPSELECTS);
+
+	plat->speed_hz = fdtdec_get_int(blob, node, "spi-max-frequency",
+					MCF_DSPI_DEFAULT_SCK_FREQ);
+
+	plat->mode = fdtdec_get_int(blob, node, "spi-mode", MCF_DSPI_MODE);
+
+	debug("DSPI: regs=%pa, max-frequency=%d, num-cs=%d, mode=%d\n",
+	      (void *)plat->regs_addr,
+	       plat->speed_hz, plat->num_cs, plat->mode);
+
+	return 0;
+}
+
+static const struct dm_spi_ops coldfire_spi_ops = {
+	.claim_bus	= coldfire_spi_claim_bus,
+	.release_bus	= coldfire_spi_release_bus,
+	.xfer		= coldfire_spi_xfer,
+	.set_speed	= coldfire_spi_set_speed,
+	.set_mode	= coldfire_spi_set_mode,
+};
+
+static const struct udevice_id coldfire_spi_ids[] = {
+	{ .compatible = "fsl,mcf-dspi" },
+	{ }
+};
+
+U_BOOT_DRIVER(coldfire_spi) = {
+	.name = "spi_coldfire",
+	.id = UCLASS_SPI,
+	.of_match = coldfire_spi_ids,
+	.probe = coldfire_spi_probe,
+	.ops = &coldfire_spi_ops,
+	.platdata_auto_alloc_size = sizeof(struct coldfire_spi_platdata),
+	.ofdata_to_platdata = coldfire_dspi_ofdata_to_platdata,
+	.priv_auto_alloc_size = sizeof(struct coldfire_spi_priv),
+};
+#endif				/* CONFIG_DM_SPI */
+#endif				/* CONFIG_CF_DSPI */
diff --git a/include/dm/platform_data/spi_coldfire.h b/include/dm/platform_data/spi_coldfire.h
new file mode 100644
index 0000000000..ee8726ad51
--- /dev/null
+++ b/include/dm/platform_data/spi_coldfire.h
@@ -0,0 +1,25 @@
+/* SPDX-License-Identifier: GPL-2.0+ */
+/*
+ * Copyright (c) 2018  Angelo Dureghello <angelo@sysam.it>
+ */
+
+#ifndef __spi_coldfire_h
+#define __spi_coldfire_h
+
+/*
+ * struct coldfire_spi_platdata - information about a coldfire spi module
+ *
+ * @regs_addr: base address for module registers
+ * @speed_hz: default SCK frequency
+ * @mode: default SPI mode
+ * @num_cs: number of DSPI chipselect signals
+ */
+struct coldfire_spi_platdata {
+	fdt_addr_t regs_addr;
+	uint speed_hz;
+	uint mode;
+	uint num_cs;
+};
+
+#endif /* __spi_coldfire_h */
+
-- 
2.19.0

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

* [U-Boot] [PATCH 3/7] drivers: serial: mcfuart: add DT support
  2018-09-20 21:07 [U-Boot] (no subject) Angelo Dureghello
  2018-09-20 21:07 ` [U-Boot] [PATCH 1/7] m68k: add basic set of devicetrees Angelo Dureghello
  2018-09-20 21:07 ` [U-Boot] [PATCH 2/7] drivers: spi: cf_spi: migrate to DM and DT Angelo Dureghello
@ 2018-09-20 21:07 ` Angelo Dureghello
  2018-09-26  5:42   ` Simon Glass
  2018-09-20 21:07 ` [U-Boot] [PATCH 4/7] drivers: serial: mcfuart: add Kconfig option Angelo Dureghello
                   ` (3 subsequent siblings)
  6 siblings, 1 reply; 19+ messages in thread
From: Angelo Dureghello @ 2018-09-20 21:07 UTC (permalink / raw)
  To: u-boot

This patch adds devicetree support to the mcfuart.c driver.

Signed-off-by: Angelo Dureghello <angelo@sysam.it>
---
 drivers/serial/mcfuart.c | 28 ++++++++++++++++++++++++++++
 1 file changed, 28 insertions(+)

diff --git a/drivers/serial/mcfuart.c b/drivers/serial/mcfuart.c
index 1371049de2..5896a19805 100644
--- a/drivers/serial/mcfuart.c
+++ b/drivers/serial/mcfuart.c
@@ -5,6 +5,9 @@
  *
  * Modified to add device model (DM) support
  * (C) Copyright 2015  Angelo Dureghello <angelo@sysam.it>
+ *
+ * Modified to add fdt support
+ * (C) Copyright 2018  Angelo Dureghello <angelo@sysam.it>
  */
 
 /*
@@ -212,6 +215,23 @@ static int coldfire_serial_pending(struct udevice *dev, bool input)
 	return 0;
 }
 
+static int coldfire_ofdata_to_platdata(struct udevice *dev)
+{
+	struct coldfire_serial_platdata *plat = dev_get_platdata(dev);
+	fdt_addr_t addr_base;
+
+	addr_base = devfdt_get_addr(dev);
+	if (addr_base == FDT_ADDR_T_NONE)
+		return -ENODEV;
+
+	plat->base = (uint32_t)addr_base;
+
+	plat->port = dev->seq;
+	plat->baudrate = gd->baudrate;
+
+	return 0;
+}
+
 static const struct dm_serial_ops coldfire_serial_ops = {
 	.putc = coldfire_serial_putc,
 	.pending = coldfire_serial_pending,
@@ -219,9 +239,17 @@ static const struct dm_serial_ops coldfire_serial_ops = {
 	.setbrg = coldfire_serial_setbrg,
 };
 
+static const struct udevice_id coldfire_serial_ids[] = {
+	{ .compatible = "fsl,mcf-uart" },
+	{ }
+};
+
 U_BOOT_DRIVER(serial_coldfire) = {
 	.name = "serial_coldfire",
 	.id = UCLASS_SERIAL,
+	.of_match = coldfire_serial_ids,
+	.ofdata_to_platdata = coldfire_ofdata_to_platdata,
+	.platdata_auto_alloc_size = sizeof(struct coldfire_serial_platdata),
 	.probe = coldfire_serial_probe,
 	.ops = &coldfire_serial_ops,
 	.flags = DM_FLAG_PRE_RELOC,
-- 
2.19.0

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

* [U-Boot] [PATCH 4/7] drivers: serial: mcfuart: add Kconfig option
  2018-09-20 21:07 [U-Boot] (no subject) Angelo Dureghello
                   ` (2 preceding siblings ...)
  2018-09-20 21:07 ` [U-Boot] [PATCH 3/7] drivers: serial: mcfuart: add DT support Angelo Dureghello
@ 2018-09-20 21:07 ` Angelo Dureghello
  2018-09-26  5:42   ` Simon Glass
  2018-09-20 21:07 ` [U-Boot] [PATCH 5/7] m68k: architecture changes to support fdt Angelo Dureghello
                   ` (2 subsequent siblings)
  6 siblings, 1 reply; 19+ messages in thread
From: Angelo Dureghello @ 2018-09-20 21:07 UTC (permalink / raw)
  To: u-boot

This patch adds missing CONFIG_MCFUART to Kconfig.

Signed-off-by: Angelo Dureghello <angelo@sysam.it>
---
 drivers/serial/Kconfig | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/drivers/serial/Kconfig b/drivers/serial/Kconfig
index 5fa27254e3..dcbe999776 100644
--- a/drivers/serial/Kconfig
+++ b/drivers/serial/Kconfig
@@ -499,6 +499,13 @@ config MVEBU_A3700_UART
 	  Choose this option to add support for UART driver on the Marvell
 	  Armada 3700 SoC. The base address is configured via DT.
 
+config MCFUART
+	bool "Freescale ColdFire UART support"
+        default n
+        help
+          Choose this option to add support for UART driver on the ColFfire
+          SoC's family.
+
 config MXC_UART
 	bool "IMX serial port support"
 	depends on MX5 || MX6
-- 
2.19.0

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

* [U-Boot] [PATCH 5/7] m68k: architecture changes to support fdt
  2018-09-20 21:07 [U-Boot] (no subject) Angelo Dureghello
                   ` (3 preceding siblings ...)
  2018-09-20 21:07 ` [U-Boot] [PATCH 4/7] drivers: serial: mcfuart: add Kconfig option Angelo Dureghello
@ 2018-09-20 21:07 ` Angelo Dureghello
  2018-09-26  5:42   ` Simon Glass
  2018-09-20 21:07 ` [U-Boot] [PATCH 6/7] m68k: add stmark2 fdt support Angelo Dureghello
  2018-09-20 21:07 ` [U-Boot] [PATCH 7/7] board: stmark2: updates for DM and DT Angelo Dureghello
  6 siblings, 1 reply; 19+ messages in thread
From: Angelo Dureghello @ 2018-09-20 21:07 UTC (permalink / raw)
  To: u-boot

This patch adds ftd support to the m68k architecture.

Signed-off-by: Angelo Dureghello <angelo@sysam.it>
---
 arch/Kconfig             | 1 +
 arch/m68k/Kconfig        | 2 ++
 arch/m68k/cpu/u-boot.lds | 2 ++
 3 files changed, 5 insertions(+)

diff --git a/arch/Kconfig b/arch/Kconfig
index bf1b4a9afa..d1917f91e1 100644
--- a/arch/Kconfig
+++ b/arch/Kconfig
@@ -28,6 +28,7 @@ config M68K
 	select HAVE_PRIVATE_LIBGCC
 	select SYS_BOOT_GET_CMDLINE
 	select SYS_BOOT_GET_KBD
+	select SUPPORT_OF_CONTROL
 
 config MICROBLAZE
 	bool "MicroBlaze architecture"
diff --git a/arch/m68k/Kconfig b/arch/m68k/Kconfig
index 1f6df5c870..60cb9411ed 100644
--- a/arch/m68k/Kconfig
+++ b/arch/m68k/Kconfig
@@ -199,6 +199,8 @@ config TARGET_AMCORE
 config TARGET_STMARK2
         bool "Support stmark2"
         select M54418
+	select OF_CONTROL
+	select DM
 
 endchoice
 
diff --git a/arch/m68k/cpu/u-boot.lds b/arch/m68k/cpu/u-boot.lds
index 96451208e5..e61630db20 100644
--- a/arch/m68k/cpu/u-boot.lds
+++ b/arch/m68k/cpu/u-boot.lds
@@ -75,6 +75,8 @@ SECTIONS
 	. = ALIGN(256);
 	__init_end = .;
 
+	_end = .;
+
 	__bss_start = .;
 	.bss (NOLOAD)       :
 	{
-- 
2.19.0

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

* [U-Boot] [PATCH 6/7] m68k: add stmark2 fdt support
  2018-09-20 21:07 [U-Boot] (no subject) Angelo Dureghello
                   ` (4 preceding siblings ...)
  2018-09-20 21:07 ` [U-Boot] [PATCH 5/7] m68k: architecture changes to support fdt Angelo Dureghello
@ 2018-09-20 21:07 ` Angelo Dureghello
  2018-09-26  5:42   ` Simon Glass
  2018-09-20 21:07 ` [U-Boot] [PATCH 7/7] board: stmark2: updates for DM and DT Angelo Dureghello
  6 siblings, 1 reply; 19+ messages in thread
From: Angelo Dureghello @ 2018-09-20 21:07 UTC (permalink / raw)
  To: u-boot

This patch adds stmark2 board fdt support to the m68k arch.

Signed-off-by: Angelo Dureghello <angelo@sysam.it>
---
 arch/m68k/dts/Makefile    | 12 ++++++++++++
 arch/m68k/dts/stmark2.dts | 34 ++++++++++++++++++++++++++++++++++
 2 files changed, 46 insertions(+)
 create mode 100644 arch/m68k/dts/Makefile
 create mode 100644 arch/m68k/dts/stmark2.dts

diff --git a/arch/m68k/dts/Makefile b/arch/m68k/dts/Makefile
new file mode 100644
index 0000000000..9d2e17abf3
--- /dev/null
+++ b/arch/m68k/dts/Makefile
@@ -0,0 +1,12 @@
+# SPDX-License-Identifier: GPL-2.0+
+
+dtb-$(CONFIG_TARGET_STMARK2) += stmark2.dtb
+targets += $(dtb-y)
+
+DTC_FLAGS += -R 4 -p 0x1000
+
+PHONY += dtbs
+dtbs: $(addprefix $(obj)/, $(dtb-y))
+	@:
+
+clean-files := *.dtb
diff --git a/arch/m68k/dts/stmark2.dts b/arch/m68k/dts/stmark2.dts
new file mode 100644
index 0000000000..fd8ce4fa35
--- /dev/null
+++ b/arch/m68k/dts/stmark2.dts
@@ -0,0 +1,34 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2018 Angelo Dureghello <angelo@sysam.it>
+ */
+
+/dts-v1/;
+/include/ "mcf5441x.dtsi"
+
+/ {
+	model = "Sysam stmark2";
+	compatible = "sysam,stmark2";
+
+	chosen {
+		stdout-path = "serial0:115200n8";
+	};
+};
+
+&uart0 {
+	u-boot,dm-pre-reloc;
+	status = "okay";
+};
+
+&dspi0 {
+	spi-mode = <3>;
+	status = "okay";
+
+	flash: is25lp128 at 1 {
+		#address-cells = <1>;
+		#size-cells = <1>;
+		compatible = "spi-flash";
+		spi-max-frequency = <60000000>;
+		reg = <1>;
+	};
+};
-- 
2.19.0

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

* [U-Boot] [PATCH 7/7] board: stmark2: updates for DM and DT
  2018-09-20 21:07 [U-Boot] (no subject) Angelo Dureghello
                   ` (5 preceding siblings ...)
  2018-09-20 21:07 ` [U-Boot] [PATCH 6/7] m68k: add stmark2 fdt support Angelo Dureghello
@ 2018-09-20 21:07 ` Angelo Dureghello
  6 siblings, 0 replies; 19+ messages in thread
From: Angelo Dureghello @ 2018-09-20 21:07 UTC (permalink / raw)
  To: u-boot

This patch enables fdt, and enables DM uart and spi.

Signed-off-by: Angelo Dureghello <angelo@sysam.it>
---
 configs/stmark2_defconfig | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/configs/stmark2_defconfig b/configs/stmark2_defconfig
index 48e851d4a4..7b05b2e20b 100644
--- a/configs/stmark2_defconfig
+++ b/configs/stmark2_defconfig
@@ -2,6 +2,7 @@ CONFIG_M68K=y
 CONFIG_SYS_TEXT_BASE=0x47E00000
 CONFIG_TARGET_STMARK2=y
 CONFIG_SYS_EXTRA_OPTIONS="CF_SBF,SYS_SERIAL_BOOT,SYS_INPUT_CLKSRC=30000000"
+CONFIG_DEFAULT_FDT_FILE="stmark2"
 # CONFIG_DISPLAY_BOARDINFO is not set
 CONFIG_HUSH_PARSER=y
 # CONFIG_CMDLINE_EDITING is not set
@@ -19,12 +20,17 @@ CONFIG_CMD_CACHE=y
 CONFIG_CMD_MTDPARTS=y
 CONFIG_MTDIDS_DEFAULT="nor0=spi-flash.0"
 CONFIG_MTDPARTS_DEFAULT="mtdparts=spi-flash.0:1m(u-boot),7m(kernel),-(rootfs)"
+CONFIG_OF_EMBED=y
+CONFIG_DEFAULT_DEVICE_TREE="stmark2"
 CONFIG_ENV_IS_IN_SPI_FLASH=y
 # CONFIG_NET is not set
 CONFIG_MTD_DEVICE=y
 CONFIG_SPI_FLASH=y
 CONFIG_SPI_FLASH_ISSI=y
+CONFIG_DM_SERIAL=y
 CONFIG_SPI_FLASH_MTD=y
 CONFIG_SPI=y
+CONFIG_DM_SPI=y
+CONFIG_DM_SPI_FLASH=y
 CONFIG_CF_SPI=y
 CONFIG_REGEX=y
-- 
2.19.0

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

* [U-Boot] [PATCH 1/7] m68k: add basic set of devicetrees
  2018-09-20 21:07 ` [U-Boot] [PATCH 1/7] m68k: add basic set of devicetrees Angelo Dureghello
@ 2018-09-26  5:42   ` Simon Glass
  0 siblings, 0 replies; 19+ messages in thread
From: Simon Glass @ 2018-09-26  5:42 UTC (permalink / raw)
  To: u-boot

On 20 September 2018 at 15:07, Angelo Dureghello <angelo@sysam.it> wrote:
> This patch adds a basic group of devicetrees, one for each
> cpu, including actually just uart and dspi devices, since
> these are the drivers supporting devicetree (support added
> in this patch).
>
> Signed-off-by: Angelo Dureghello <angelo@sysam.it>
> ---
>  arch/m68k/dts/mcf5208.dtsi                    | 36 ++++++++
>  arch/m68k/dts/mcf5227x.dtsi                   | 48 ++++++++++
>  arch/m68k/dts/mcf523x.dtsi                    | 44 ++++++++++
>  arch/m68k/dts/mcf5249.dtsi                    | 38 ++++++++
>  arch/m68k/dts/mcf5253.dtsi                    | 44 ++++++++++
>  arch/m68k/dts/mcf5271.dtsi                    | 44 ++++++++++
>  arch/m68k/dts/mcf5272.dtsi                    | 38 ++++++++
>  arch/m68k/dts/mcf5275.dtsi                    | 44 ++++++++++
>  arch/m68k/dts/mcf5282.dtsi                    | 44 ++++++++++
>  arch/m68k/dts/mcf5301x.dtsi                   | 48 ++++++++++
>  arch/m68k/dts/mcf5307.dtsi                    | 39 +++++++++
>  arch/m68k/dts/mcf5329.dtsi                    | 36 ++++++++
>  arch/m68k/dts/mcf5441x.dtsi                   | 87 +++++++++++++++++++
>  arch/m68k/dts/mcf5445x.dtsi                   | 48 ++++++++++
>  doc/device-tree-bindings/serial/mcf-uart.txt  | 19 ++++
>  doc/device-tree-bindings/spi/spi-mcf-dspi.txt | 22 +++++
>  16 files changed, 679 insertions(+)
>  create mode 100644 arch/m68k/dts/mcf5208.dtsi
>  create mode 100644 arch/m68k/dts/mcf5227x.dtsi
>  create mode 100644 arch/m68k/dts/mcf523x.dtsi
>  create mode 100644 arch/m68k/dts/mcf5249.dtsi
>  create mode 100644 arch/m68k/dts/mcf5253.dtsi
>  create mode 100644 arch/m68k/dts/mcf5271.dtsi
>  create mode 100644 arch/m68k/dts/mcf5272.dtsi
>  create mode 100644 arch/m68k/dts/mcf5275.dtsi
>  create mode 100644 arch/m68k/dts/mcf5282.dtsi
>  create mode 100644 arch/m68k/dts/mcf5301x.dtsi
>  create mode 100644 arch/m68k/dts/mcf5307.dtsi
>  create mode 100644 arch/m68k/dts/mcf5329.dtsi
>  create mode 100644 arch/m68k/dts/mcf5441x.dtsi
>  create mode 100644 arch/m68k/dts/mcf5445x.dtsi
>  create mode 100644 doc/device-tree-bindings/serial/mcf-uart.txt
>  create mode 100644 doc/device-tree-bindings/spi/spi-mcf-dspi.txt

Reviewed-by: Simon Glass <sjg@chromium.org>

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

* [U-Boot] [PATCH 2/7] drivers: spi: cf_spi: migrate to DM and DT
  2018-09-20 21:07 ` [U-Boot] [PATCH 2/7] drivers: spi: cf_spi: migrate to DM and DT Angelo Dureghello
@ 2018-09-26  5:42   ` Simon Glass
  2018-09-26 18:53     ` Angelo Dureghello
  0 siblings, 1 reply; 19+ messages in thread
From: Simon Glass @ 2018-09-26  5:42 UTC (permalink / raw)
  To: u-boot

Hi Angelo,

On 20 September 2018 at 15:07, Angelo Dureghello <angelo@sysam.it> wrote:
> This patch converts cf_spi.c to DM and to read driver
> platform data from flat devicetree.
>
> ---
> Changes from v1:
> - split into 2 patches
>
> Signed-off-by: Angelo Dureghello <angelo@sysam.it>
> ---
>  drivers/spi/Kconfig                     |  18 +-
>  drivers/spi/cf_spi.c                    | 495 ++++++++++++++++--------
>  include/dm/platform_data/spi_coldfire.h |  25 ++
>  3 files changed, 369 insertions(+), 169 deletions(-)
>  create mode 100644 include/dm/platform_data/spi_coldfire.h
>

Good to see this.

> diff --git a/drivers/spi/Kconfig b/drivers/spi/Kconfig
> index dcd719ff0a..974c5bbed8 100644
> --- a/drivers/spi/Kconfig
> +++ b/drivers/spi/Kconfig
> @@ -80,6 +80,12 @@ config CADENCE_QSPI
>           used to access the SPI NOR flash on platforms embedding this
>           Cadence IP core.
>
> +config CF_SPI
> +        bool "ColdFire SPI driver"
> +        help
> +          Enable the ColdFire SPI driver. This driver can be used on
> +          some m68k SoCs.
> +
>  config DESIGNWARE_SPI
>         bool "Designware SPI driver"
>         help
> @@ -244,18 +250,18 @@ config ZYNQMP_GQSPI
>
>  endif # if DM_SPI
>
> -config SOFT_SPI
> -       bool "Soft SPI driver"
> -       help
> -        Enable Soft SPI driver. This driver is to use GPIO simulate
> -        the SPI protocol.

How come this is changing? That should be a separate patch.

> -
>  config CF_SPI
>         bool "ColdFire SPI driver"
>         help
>           Enable the ColdFire SPI driver. This driver can be used on
>           some m68k SoCs.
>
> +config SOFT_SPI
> +       bool "Soft SPI driver"
> +       help
> +        Enable Soft SPI driver. This driver is to use GPIO simulate
> +        the SPI protocol.
> +
>  config FSL_ESPI
>         bool "Freescale eSPI driver"
>         help
> diff --git a/drivers/spi/cf_spi.c b/drivers/spi/cf_spi.c
> index 522631cbbf..11a11f79c4 100644
> --- a/drivers/spi/cf_spi.c
> +++ b/drivers/spi/cf_spi.c
> @@ -6,16 +6,27 @@
>   *
>   * Copyright (C) 2004-2009 Freescale Semiconductor, Inc.
>   * TsiChung Liew (Tsi-Chung.Liew at freescale.com)
> + *
> + * Support for device model:
> + * Copyright (C) 2018 Angelo Dureghello <angelo@sysam.it>
> + *
>   */
>
>  #include <common.h>
> +#include <dm.h>
> +#include <dm/platform_data/spi_coldfire.h>
>  #include <spi.h>
>  #include <malloc.h>
>  #include <asm/immap.h>
> +#include <asm/io.h>
>
> -struct cf_spi_slave {
> +struct coldfire_spi_priv {
> +#ifndef CONFIG_DM_SPI
>         struct spi_slave slave;
> +#endif
> +       struct dspi *regs;
>         uint baudrate;
> +       int mode;
>         int charbit;
>  };
>
> @@ -38,14 +49,14 @@ DECLARE_GLOBAL_DATA_PTR;
>  #define SPI_MODE_MOD   0x00200000
>  #define SPI_DBLRATE    0x00100000
>
> -static inline struct cf_spi_slave *to_cf_spi_slave(struct spi_slave *slave)
> -{
> -       return container_of(slave, struct cf_spi_slave, slave);
> -}
> +/* Default values */
> +#define MCF_DSPI_DEFAULT_SCK_FREQ      10000000
> +#define MCF_DSPI_MAX_CHIPSELECTS       4
> +#define MCF_DSPI_MODE                  0
>
> -static void cfspi_init(void)
> +static void __spi_init(struct coldfire_spi_priv *cfspi)
>  {
> -       volatile dspi_t *dspi = (dspi_t *) MMAP_DSPI;
> +       struct dspi *dspi = cfspi->regs;
>
>         cfspi_port_conf();      /* port configuration */
>
> @@ -56,125 +67,32 @@ static void cfspi_init(void)
>
>         /* Default setting in platform configuration */
>  #ifdef CONFIG_SYS_DSPI_CTAR0
> -       dspi->ctar[0] = CONFIG_SYS_DSPI_CTAR0;
> +       writel(CONFIG_SYS_DSPI_CTAR0, &dspi->ctar[0]);

What is going on here? I think these CONFIG options are addresses? If
so, they should be read from the DT, not a CONFIG.

>  #endif
>  #ifdef CONFIG_SYS_DSPI_CTAR1
> -       dspi->ctar[1] = CONFIG_SYS_DSPI_CTAR1;
> +       writel(CONFIG_SYS_DSPI_CTAR1, &dspi->ctar[1]);
>  #endif
>  #ifdef CONFIG_SYS_DSPI_CTAR2
> -       dspi->ctar[2] = CONFIG_SYS_DSPI_CTAR2;
> +       writel(CONFIG_SYS_DSPI_CTAR2, &dspi->ctar[2]);
>  #endif
>  #ifdef CONFIG_SYS_DSPI_CTAR3
> -       dspi->ctar[3] = CONFIG_SYS_DSPI_CTAR3;
> +       writel(CONFIG_SYS_DSPI_CTAR3, &dspi->ctar[3]);
>  #endif
>  #ifdef CONFIG_SYS_DSPI_CTAR4
> -       dspi->ctar[4] = CONFIG_SYS_DSPI_CTAR4;
> +       writel(CONFIG_SYS_DSPI_CTAR4, &dspi->ctar[4]);
>  #endif
>  #ifdef CONFIG_SYS_DSPI_CTAR5
> -       dspi->ctar[5] = CONFIG_SYS_DSPI_CTAR5;
> +       writel(CONFIG_SYS_DSPI_CTAR5, &dspi->ctar[5]);
>  #endif
>  #ifdef CONFIG_SYS_DSPI_CTAR6
> -       dspi->ctar[6] = CONFIG_SYS_DSPI_CTAR6;
> +       writel(CONFIG_SYS_DSPI_CTAR6, &dspi->ctar[6]);
>  #endif
>  #ifdef CONFIG_SYS_DSPI_CTAR7
> -       dspi->ctar[7] = CONFIG_SYS_DSPI_CTAR7;
> +       writel(CONFIG_SYS_DSPI_CTAR7, &dspi->ctar[7]);
>  #endif
>  }
>

[..]

Regards,
Simon

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

* [U-Boot] [PATCH 3/7] drivers: serial: mcfuart: add DT support
  2018-09-20 21:07 ` [U-Boot] [PATCH 3/7] drivers: serial: mcfuart: add DT support Angelo Dureghello
@ 2018-09-26  5:42   ` Simon Glass
  0 siblings, 0 replies; 19+ messages in thread
From: Simon Glass @ 2018-09-26  5:42 UTC (permalink / raw)
  To: u-boot

On 20 September 2018 at 15:07, Angelo Dureghello <angelo@sysam.it> wrote:
> This patch adds devicetree support to the mcfuart.c driver.
>
> Signed-off-by: Angelo Dureghello <angelo@sysam.it>
> ---
>  drivers/serial/mcfuart.c | 28 ++++++++++++++++++++++++++++
>  1 file changed, 28 insertions(+)

Reviewed-by: Simon Glass <sjg@chromium.org>

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

* [U-Boot] [PATCH 4/7] drivers: serial: mcfuart: add Kconfig option
  2018-09-20 21:07 ` [U-Boot] [PATCH 4/7] drivers: serial: mcfuart: add Kconfig option Angelo Dureghello
@ 2018-09-26  5:42   ` Simon Glass
  0 siblings, 0 replies; 19+ messages in thread
From: Simon Glass @ 2018-09-26  5:42 UTC (permalink / raw)
  To: u-boot

On 20 September 2018 at 15:07, Angelo Dureghello <angelo@sysam.it> wrote:
> This patch adds missing CONFIG_MCFUART to Kconfig.
>
> Signed-off-by: Angelo Dureghello <angelo@sysam.it>
> ---
>  drivers/serial/Kconfig | 7 +++++++
>  1 file changed, 7 insertions(+)
>

Reviewed-by: Simon Glass <sjg@chromium.org>

Suggest you expand the help to mention what features the driver
supports (baud rates, serial format?)

> diff --git a/drivers/serial/Kconfig b/drivers/serial/Kconfig
> index 5fa27254e3..dcbe999776 100644
> --- a/drivers/serial/Kconfig
> +++ b/drivers/serial/Kconfig
> @@ -499,6 +499,13 @@ config MVEBU_A3700_UART
>           Choose this option to add support for UART driver on the Marvell
>           Armada 3700 SoC. The base address is configured via DT.
>
> +config MCFUART
> +       bool "Freescale ColdFire UART support"
> +        default n
> +        help
> +          Choose this option to add support for UART driver on the ColFfire
> +          SoC's family.
> +
>  config MXC_UART
>         bool "IMX serial port support"
>         depends on MX5 || MX6
> --
> 2.19.0
>
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> https://lists.denx.de/listinfo/u-boot

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

* [U-Boot] [PATCH 5/7] m68k: architecture changes to support fdt
  2018-09-20 21:07 ` [U-Boot] [PATCH 5/7] m68k: architecture changes to support fdt Angelo Dureghello
@ 2018-09-26  5:42   ` Simon Glass
  0 siblings, 0 replies; 19+ messages in thread
From: Simon Glass @ 2018-09-26  5:42 UTC (permalink / raw)
  To: u-boot

On 20 September 2018 at 15:07, Angelo Dureghello <angelo@sysam.it> wrote:
> This patch adds ftd support to the m68k architecture.
>
> Signed-off-by: Angelo Dureghello <angelo@sysam.it>
> ---
>  arch/Kconfig             | 1 +
>  arch/m68k/Kconfig        | 2 ++
>  arch/m68k/cpu/u-boot.lds | 2 ++
>  3 files changed, 5 insertions(+)

Reviewed-by: Simon Glass <sjg@chromium.org>

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

* [U-Boot] [PATCH 6/7] m68k: add stmark2 fdt support
  2018-09-20 21:07 ` [U-Boot] [PATCH 6/7] m68k: add stmark2 fdt support Angelo Dureghello
@ 2018-09-26  5:42   ` Simon Glass
  0 siblings, 0 replies; 19+ messages in thread
From: Simon Glass @ 2018-09-26  5:42 UTC (permalink / raw)
  To: u-boot

On 20 September 2018 at 15:07, Angelo Dureghello <angelo@sysam.it> wrote:
> This patch adds stmark2 board fdt support to the m68k arch.
>
> Signed-off-by: Angelo Dureghello <angelo@sysam.it>
> ---
>  arch/m68k/dts/Makefile    | 12 ++++++++++++
>  arch/m68k/dts/stmark2.dts | 34 ++++++++++++++++++++++++++++++++++
>  2 files changed, 46 insertions(+)
>  create mode 100644 arch/m68k/dts/Makefile
>  create mode 100644 arch/m68k/dts/stmark2.dts

Reviewed-by: Simon Glass <sjg@chromium.org>

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

* [U-Boot] [PATCH 2/7] drivers: spi: cf_spi: migrate to DM and DT
  2018-09-26  5:42   ` Simon Glass
@ 2018-09-26 18:53     ` Angelo Dureghello
  2018-09-27 13:41       ` Simon Glass
  0 siblings, 1 reply; 19+ messages in thread
From: Angelo Dureghello @ 2018-09-26 18:53 UTC (permalink / raw)
  To: u-boot

Hi Simon,

thanks for the review.

On Tue, Sep 25, 2018 at 10:42:08PM -0700, Simon Glass wrote:
> Hi Angelo,
> 
> On 20 September 2018 at 15:07, Angelo Dureghello <angelo@sysam.it> wrote:
> > This patch converts cf_spi.c to DM and to read driver
> > platform data from flat devicetree.
> >
> > ---
> > Changes from v1:
> > - split into 2 patches
> >
> > Signed-off-by: Angelo Dureghello <angelo@sysam.it>
> > ---
> >  drivers/spi/Kconfig                     |  18 +-
> >  drivers/spi/cf_spi.c                    | 495 ++++++++++++++++--------
> >  include/dm/platform_data/spi_coldfire.h |  25 ++
> >  3 files changed, 369 insertions(+), 169 deletions(-)
> >  create mode 100644 include/dm/platform_data/spi_coldfire.h
> >
> 
> Good to see this.
> 
> > diff --git a/drivers/spi/Kconfig b/drivers/spi/Kconfig
> > index dcd719ff0a..974c5bbed8 100644
> > --- a/drivers/spi/Kconfig
> > +++ b/drivers/spi/Kconfig
> > @@ -80,6 +80,12 @@ config CADENCE_QSPI
> >           used to access the SPI NOR flash on platforms embedding this
> >           Cadence IP core.
> >
> > +config CF_SPI
> > +        bool "ColdFire SPI driver"
> > +        help
> > +          Enable the ColdFire SPI driver. This driver can be used on
> > +          some m68k SoCs.
> > +
> >  config DESIGNWARE_SPI
> >         bool "Designware SPI driver"
> >         help
> > @@ -244,18 +250,18 @@ config ZYNQMP_GQSPI
> >
> >  endif # if DM_SPI
> >
> > -config SOFT_SPI
> > -       bool "Soft SPI driver"
> > -       help
> > -        Enable Soft SPI driver. This driver is to use GPIO simulate
> > -        the SPI protocol.
> 
> How come this is changing? That should be a separate patch.
>
I just respected Kconfig alphabetical order, SOFT_SPI is just moved after.
 
> > -
> >  config CF_SPI
> >         bool "ColdFire SPI driver"
> >         help
> >           Enable the ColdFire SPI driver. This driver can be used on
> >           some m68k SoCs.
> >
> > +config SOFT_SPI
> > +       bool "Soft SPI driver"
> > +       help
> > +        Enable Soft SPI driver. This driver is to use GPIO simulate
> > +        the SPI protocol.
> > +
> >  config FSL_ESPI
> >         bool "Freescale eSPI driver"
> >         help
> > diff --git a/drivers/spi/cf_spi.c b/drivers/spi/cf_spi.c
> > index 522631cbbf..11a11f79c4 100644
> > --- a/drivers/spi/cf_spi.c
> > +++ b/drivers/spi/cf_spi.c
> > @@ -6,16 +6,27 @@
> >   *
> >   * Copyright (C) 2004-2009 Freescale Semiconductor, Inc.
> >   * TsiChung Liew (Tsi-Chung.Liew at freescale.com)
> > + *
> > + * Support for device model:
> > + * Copyright (C) 2018 Angelo Dureghello <angelo@sysam.it>
> > + *
> >   */
> >
> >  #include <common.h>
> > +#include <dm.h>
> > +#include <dm/platform_data/spi_coldfire.h>
> >  #include <spi.h>
> >  #include <malloc.h>
> >  #include <asm/immap.h>
> > +#include <asm/io.h>
> >
> > -struct cf_spi_slave {
> > +struct coldfire_spi_priv {
> > +#ifndef CONFIG_DM_SPI
> >         struct spi_slave slave;
> > +#endif
> > +       struct dspi *regs;
> >         uint baudrate;
> > +       int mode;
> >         int charbit;
> >  };
> >
> > @@ -38,14 +49,14 @@ DECLARE_GLOBAL_DATA_PTR;
> >  #define SPI_MODE_MOD   0x00200000
> >  #define SPI_DBLRATE    0x00100000
> >
> > -static inline struct cf_spi_slave *to_cf_spi_slave(struct spi_slave *slave)
> > -{
> > -       return container_of(slave, struct cf_spi_slave, slave);
> > -}
> > +/* Default values */
> > +#define MCF_DSPI_DEFAULT_SCK_FREQ      10000000
> > +#define MCF_DSPI_MAX_CHIPSELECTS       4
> > +#define MCF_DSPI_MODE                  0
> >
> > -static void cfspi_init(void)
> > +static void __spi_init(struct coldfire_spi_priv *cfspi)
> >  {
> > -       volatile dspi_t *dspi = (dspi_t *) MMAP_DSPI;
> > +       struct dspi *dspi = cfspi->regs;
> >
> >         cfspi_port_conf();      /* port configuration */
> >
> > @@ -56,125 +67,32 @@ static void cfspi_init(void)
> >
> >         /* Default setting in platform configuration */
> >  #ifdef CONFIG_SYS_DSPI_CTAR0
> > -       dspi->ctar[0] = CONFIG_SYS_DSPI_CTAR0;
> > +       writel(CONFIG_SYS_DSPI_CTAR0, &dspi->ctar[0]);
> 
> What is going on here? I think these CONFIG options are addresses? If
> so, they should be read from the DT, not a CONFIG.
> 

These are just default settings for each channel (bus), actually coming 
from the include/configs/boardxxx.h. Their speed an mode bitfields are
rewritten later, with values coming from devicetree.
Some driver #define the default value inside the driver itself, in case
i may change in this way. No one seems reading them from device tree.

> >  #endif
> >  #ifdef CONFIG_SYS_DSPI_CTAR1
> > -       dspi->ctar[1] = CONFIG_SYS_DSPI_CTAR1;
> > +       writel(CONFIG_SYS_DSPI_CTAR1, &dspi->ctar[1]);
> >  #endif
> >  #ifdef CONFIG_SYS_DSPI_CTAR2
> > -       dspi->ctar[2] = CONFIG_SYS_DSPI_CTAR2;
> > +       writel(CONFIG_SYS_DSPI_CTAR2, &dspi->ctar[2]);
> >  #endif
> >  #ifdef CONFIG_SYS_DSPI_CTAR3
> > -       dspi->ctar[3] = CONFIG_SYS_DSPI_CTAR3;
> > +       writel(CONFIG_SYS_DSPI_CTAR3, &dspi->ctar[3]);
> >  #endif
> >  #ifdef CONFIG_SYS_DSPI_CTAR4
> > -       dspi->ctar[4] = CONFIG_SYS_DSPI_CTAR4;
> > +       writel(CONFIG_SYS_DSPI_CTAR4, &dspi->ctar[4]);
> >  #endif
> >  #ifdef CONFIG_SYS_DSPI_CTAR5
> > -       dspi->ctar[5] = CONFIG_SYS_DSPI_CTAR5;
> > +       writel(CONFIG_SYS_DSPI_CTAR5, &dspi->ctar[5]);
> >  #endif
> >  #ifdef CONFIG_SYS_DSPI_CTAR6
> > -       dspi->ctar[6] = CONFIG_SYS_DSPI_CTAR6;
> > +       writel(CONFIG_SYS_DSPI_CTAR6, &dspi->ctar[6]);
> >  #endif
> >  #ifdef CONFIG_SYS_DSPI_CTAR7
> > -       dspi->ctar[7] = CONFIG_SYS_DSPI_CTAR7;
> > +       writel(CONFIG_SYS_DSPI_CTAR7, &dspi->ctar[7]);
> >  #endif
> >  }
> >
> 
> [..]
> 
> Regards,
> Simon

Regards,
Angelo

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

* [U-Boot] [PATCH 2/7] drivers: spi: cf_spi: migrate to DM and DT
  2018-09-26 18:53     ` Angelo Dureghello
@ 2018-09-27 13:41       ` Simon Glass
  2018-09-27 17:20         ` Angelo Dureghello
  2018-09-28 11:22         ` Angelo Dureghello
  0 siblings, 2 replies; 19+ messages in thread
From: Simon Glass @ 2018-09-27 13:41 UTC (permalink / raw)
  To: u-boot

Hi Angelo,

On 26 September 2018 at 11:53, Angelo Dureghello <angelo@sysam.it> wrote:
> Hi Simon,
>
> thanks for the review.
>
> On Tue, Sep 25, 2018 at 10:42:08PM -0700, Simon Glass wrote:
>> Hi Angelo,
>>
>> On 20 September 2018 at 15:07, Angelo Dureghello <angelo@sysam.it> wrote:
>> > This patch converts cf_spi.c to DM and to read driver
>> > platform data from flat devicetree.
>> >
>> > ---
>> > Changes from v1:
>> > - split into 2 patches
>> >
>> > Signed-off-by: Angelo Dureghello <angelo@sysam.it>
>> > ---
>> >  drivers/spi/Kconfig                     |  18 +-
>> >  drivers/spi/cf_spi.c                    | 495 ++++++++++++++++--------
>> >  include/dm/platform_data/spi_coldfire.h |  25 ++
>> >  3 files changed, 369 insertions(+), 169 deletions(-)
>> >  create mode 100644 include/dm/platform_data/spi_coldfire.h
>> >
>>
>> Good to see this.
>>
>> > diff --git a/drivers/spi/Kconfig b/drivers/spi/Kconfig
>> > index dcd719ff0a..974c5bbed8 100644
>> > --- a/drivers/spi/Kconfig
>> > +++ b/drivers/spi/Kconfig
>> > @@ -80,6 +80,12 @@ config CADENCE_QSPI
>> >           used to access the SPI NOR flash on platforms embedding this
>> >           Cadence IP core.
>> >
>> > +config CF_SPI
>> > +        bool "ColdFire SPI driver"
>> > +        help
>> > +          Enable the ColdFire SPI driver. This driver can be used on
>> > +          some m68k SoCs.
>> > +
>> >  config DESIGNWARE_SPI
>> >         bool "Designware SPI driver"
>> >         help
>> > @@ -244,18 +250,18 @@ config ZYNQMP_GQSPI
>> >
>> >  endif # if DM_SPI
>> >
>> > -config SOFT_SPI
>> > -       bool "Soft SPI driver"
>> > -       help
>> > -        Enable Soft SPI driver. This driver is to use GPIO simulate
>> > -        the SPI protocol.
>>
>> How come this is changing? That should be a separate patch.
>>
> I just respected Kconfig alphabetical order, SOFT_SPI is just moved after.

OK, well I do think this should be in a separate patch.

>
>> > -
>> >  config CF_SPI
>> >         bool "ColdFire SPI driver"
>> >         help
>> >           Enable the ColdFire SPI driver. This driver can be used on
>> >           some m68k SoCs.
>> >
>> > +config SOFT_SPI
>> > +       bool "Soft SPI driver"
>> > +       help
>> > +        Enable Soft SPI driver. This driver is to use GPIO simulate
>> > +        the SPI protocol.
>> > +
>> >  config FSL_ESPI
>> >         bool "Freescale eSPI driver"
>> >         help
>> > diff --git a/drivers/spi/cf_spi.c b/drivers/spi/cf_spi.c
>> > index 522631cbbf..11a11f79c4 100644
>> > --- a/drivers/spi/cf_spi.c
>> > +++ b/drivers/spi/cf_spi.c
>> > @@ -6,16 +6,27 @@
>> >   *
>> >   * Copyright (C) 2004-2009 Freescale Semiconductor, Inc.
>> >   * TsiChung Liew (Tsi-Chung.Liew at freescale.com)
>> > + *
>> > + * Support for device model:
>> > + * Copyright (C) 2018 Angelo Dureghello <angelo@sysam.it>
>> > + *
>> >   */
>> >
>> >  #include <common.h>
>> > +#include <dm.h>
>> > +#include <dm/platform_data/spi_coldfire.h>
>> >  #include <spi.h>
>> >  #include <malloc.h>
>> >  #include <asm/immap.h>
>> > +#include <asm/io.h>
>> >
>> > -struct cf_spi_slave {
>> > +struct coldfire_spi_priv {
>> > +#ifndef CONFIG_DM_SPI
>> >         struct spi_slave slave;
>> > +#endif
>> > +       struct dspi *regs;
>> >         uint baudrate;
>> > +       int mode;
>> >         int charbit;
>> >  };
>> >
>> > @@ -38,14 +49,14 @@ DECLARE_GLOBAL_DATA_PTR;
>> >  #define SPI_MODE_MOD   0x00200000
>> >  #define SPI_DBLRATE    0x00100000
>> >
>> > -static inline struct cf_spi_slave *to_cf_spi_slave(struct spi_slave *slave)
>> > -{
>> > -       return container_of(slave, struct cf_spi_slave, slave);
>> > -}
>> > +/* Default values */
>> > +#define MCF_DSPI_DEFAULT_SCK_FREQ      10000000
>> > +#define MCF_DSPI_MAX_CHIPSELECTS       4
>> > +#define MCF_DSPI_MODE                  0
>> >
>> > -static void cfspi_init(void)
>> > +static void __spi_init(struct coldfire_spi_priv *cfspi)
>> >  {
>> > -       volatile dspi_t *dspi = (dspi_t *) MMAP_DSPI;
>> > +       struct dspi *dspi = cfspi->regs;
>> >
>> >         cfspi_port_conf();      /* port configuration */
>> >
>> > @@ -56,125 +67,32 @@ static void cfspi_init(void)
>> >
>> >         /* Default setting in platform configuration */
>> >  #ifdef CONFIG_SYS_DSPI_CTAR0
>> > -       dspi->ctar[0] = CONFIG_SYS_DSPI_CTAR0;
>> > +       writel(CONFIG_SYS_DSPI_CTAR0, &dspi->ctar[0]);
>>
>> What is going on here? I think these CONFIG options are addresses? If
>> so, they should be read from the DT, not a CONFIG.
>>
>
> These are just default settings for each channel (bus), actually coming
> from the include/configs/boardxxx.h. Their speed an mode bitfields are
> rewritten later, with values coming from devicetree.
> Some driver #define the default value inside the driver itself, in case
> i may change in this way. No one seems reading them from device tree.

OK, can we remove these? At least they should not have a CONFIG_
prefix, so we can remove them from the whitelist.

Regards,
Simon

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

* [U-Boot] [PATCH 2/7] drivers: spi: cf_spi: migrate to DM and DT
  2018-09-27 13:41       ` Simon Glass
@ 2018-09-27 17:20         ` Angelo Dureghello
  2018-09-28 11:22         ` Angelo Dureghello
  1 sibling, 0 replies; 19+ messages in thread
From: Angelo Dureghello @ 2018-09-27 17:20 UTC (permalink / raw)
  To: u-boot

Hi Simon, 

On Thu, Sep 27, 2018 at 06:41:37AM -0700, Simon Glass wrote:
> Hi Angelo,
> 
> On 26 September 2018 at 11:53, Angelo Dureghello <angelo@sysam.it> wrote:
> > Hi Simon,
> >
> > thanks for the review.
> >
> > On Tue, Sep 25, 2018 at 10:42:08PM -0700, Simon Glass wrote:
> >> Hi Angelo,
> >>
> >> On 20 September 2018 at 15:07, Angelo Dureghello <angelo@sysam.it> wrote:
> >> > This patch converts cf_spi.c to DM and to read driver
> >> > platform data from flat devicetree.
> >> >
> >> > ---
> >> > Changes from v1:
> >> > - split into 2 patches
> >> >
> >> > Signed-off-by: Angelo Dureghello <angelo@sysam.it>
> >> > ---
> >> >  drivers/spi/Kconfig                     |  18 +-
> >> >  drivers/spi/cf_spi.c                    | 495 ++++++++++++++++--------
> >> >  include/dm/platform_data/spi_coldfire.h |  25 ++
> >> >  3 files changed, 369 insertions(+), 169 deletions(-)
> >> >  create mode 100644 include/dm/platform_data/spi_coldfire.h
> >> >
> >>
> >> Good to see this.
> >>
> >> > diff --git a/drivers/spi/Kconfig b/drivers/spi/Kconfig
> >> > index dcd719ff0a..974c5bbed8 100644
> >> > --- a/drivers/spi/Kconfig
> >> > +++ b/drivers/spi/Kconfig
> >> > @@ -80,6 +80,12 @@ config CADENCE_QSPI
> >> >           used to access the SPI NOR flash on platforms embedding this
> >> >           Cadence IP core.
> >> >
> >> > +config CF_SPI
> >> > +        bool "ColdFire SPI driver"
> >> > +        help
> >> > +          Enable the ColdFire SPI driver. This driver can be used on
> >> > +          some m68k SoCs.
> >> > +
> >> >  config DESIGNWARE_SPI
> >> >         bool "Designware SPI driver"
> >> >         help
> >> > @@ -244,18 +250,18 @@ config ZYNQMP_GQSPI
> >> >
> >> >  endif # if DM_SPI
> >> >
> >> > -config SOFT_SPI
> >> > -       bool "Soft SPI driver"
> >> > -       help
> >> > -        Enable Soft SPI driver. This driver is to use GPIO simulate
> >> > -        the SPI protocol.
> >>
> >> How come this is changing? That should be a separate patch.
> >>
> > I just respected Kconfig alphabetical order, SOFT_SPI is just moved after.
> 
> OK, well I do think this should be in a separate patch.
>
Ah, ok. Will do. 
> >
> >> > -
> >> >  config CF_SPI
> >> >         bool "ColdFire SPI driver"
> >> >         help
> >> >           Enable the ColdFire SPI driver. This driver can be used on
> >> >           some m68k SoCs.
> >> >
> >> > +config SOFT_SPI
> >> > +       bool "Soft SPI driver"
> >> > +       help
> >> > +        Enable Soft SPI driver. This driver is to use GPIO simulate
> >> > +        the SPI protocol.
> >> > +
> >> >  config FSL_ESPI
> >> >         bool "Freescale eSPI driver"
> >> >         help
> >> > diff --git a/drivers/spi/cf_spi.c b/drivers/spi/cf_spi.c
> >> > index 522631cbbf..11a11f79c4 100644
> >> > --- a/drivers/spi/cf_spi.c
> >> > +++ b/drivers/spi/cf_spi.c
> >> > @@ -6,16 +6,27 @@
> >> >   *
> >> >   * Copyright (C) 2004-2009 Freescale Semiconductor, Inc.
> >> >   * TsiChung Liew (Tsi-Chung.Liew at freescale.com)
> >> > + *
> >> > + * Support for device model:
> >> > + * Copyright (C) 2018 Angelo Dureghello <angelo@sysam.it>
> >> > + *
> >> >   */
> >> >
> >> >  #include <common.h>
> >> > +#include <dm.h>
> >> > +#include <dm/platform_data/spi_coldfire.h>
> >> >  #include <spi.h>
> >> >  #include <malloc.h>
> >> >  #include <asm/immap.h>
> >> > +#include <asm/io.h>
> >> >
> >> > -struct cf_spi_slave {
> >> > +struct coldfire_spi_priv {
> >> > +#ifndef CONFIG_DM_SPI
> >> >         struct spi_slave slave;
> >> > +#endif
> >> > +       struct dspi *regs;
> >> >         uint baudrate;
> >> > +       int mode;
> >> >         int charbit;
> >> >  };
> >> >
> >> > @@ -38,14 +49,14 @@ DECLARE_GLOBAL_DATA_PTR;
> >> >  #define SPI_MODE_MOD   0x00200000
> >> >  #define SPI_DBLRATE    0x00100000
> >> >
> >> > -static inline struct cf_spi_slave *to_cf_spi_slave(struct spi_slave *slave)
> >> > -{
> >> > -       return container_of(slave, struct cf_spi_slave, slave);
> >> > -}
> >> > +/* Default values */
> >> > +#define MCF_DSPI_DEFAULT_SCK_FREQ      10000000
> >> > +#define MCF_DSPI_MAX_CHIPSELECTS       4
> >> > +#define MCF_DSPI_MODE                  0
> >> >
> >> > -static void cfspi_init(void)
> >> > +static void __spi_init(struct coldfire_spi_priv *cfspi)
> >> >  {
> >> > -       volatile dspi_t *dspi = (dspi_t *) MMAP_DSPI;
> >> > +       struct dspi *dspi = cfspi->regs;
> >> >
> >> >         cfspi_port_conf();      /* port configuration */
> >> >
> >> > @@ -56,125 +67,32 @@ static void cfspi_init(void)
> >> >
> >> >         /* Default setting in platform configuration */
> >> >  #ifdef CONFIG_SYS_DSPI_CTAR0
> >> > -       dspi->ctar[0] = CONFIG_SYS_DSPI_CTAR0;
> >> > +       writel(CONFIG_SYS_DSPI_CTAR0, &dspi->ctar[0]);
> >>
> >> What is going on here? I think these CONFIG options are addresses? If
> >> so, they should be read from the DT, not a CONFIG.
> >>
> >
> > These are just default settings for each channel (bus), actually coming
> > from the include/configs/boardxxx.h. Their speed an mode bitfields are
> > rewritten later, with values coming from devicetree.
> > Some driver #define the default value inside the driver itself, in case
> > i may change in this way. No one seems reading them from device tree.
> 
> OK, can we remove these? At least they should not have a CONFIG_
> prefix, so we can remove them from the whitelist.
> 
Ok, i can set a default in the driver itself for now.

> Regards,
> Simon

Regards,
Angelo

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

* [U-Boot] [PATCH 2/7] drivers: spi: cf_spi: migrate to DM and DT
  2018-09-27 13:41       ` Simon Glass
  2018-09-27 17:20         ` Angelo Dureghello
@ 2018-09-28 11:22         ` Angelo Dureghello
  2018-10-02 11:21           ` Simon Glass
  1 sibling, 1 reply; 19+ messages in thread
From: Angelo Dureghello @ 2018-09-28 11:22 UTC (permalink / raw)
  To: u-boot

Hi Simon,

On Thu, Sep 27, 2018 at 06:41:37AM -0700, Simon Glass wrote:
> Hi Angelo,
> 
> On 26 September 2018 at 11:53, Angelo Dureghello <angelo@sysam.it> wrote:
> > Hi Simon,
> >
> > thanks for the review.
> >
> > On Tue, Sep 25, 2018 at 10:42:08PM -0700, Simon Glass wrote:
> >> Hi Angelo,
> >>
> >> On 20 September 2018 at 15:07, Angelo Dureghello <angelo@sysam.it> wrote:
> >> > This patch converts cf_spi.c to DM and to read driver
> >> > platform data from flat devicetree.
> >> >
> >> > ---
> >> > Changes from v1:
> >> > - split into 2 patches
> >> >
> >> > Signed-off-by: Angelo Dureghello <angelo@sysam.it>
> >> > ---
> >> >  drivers/spi/Kconfig                     |  18 +-
> >> >  drivers/spi/cf_spi.c                    | 495 ++++++++++++++++--------
> >> >  include/dm/platform_data/spi_coldfire.h |  25 ++
> >> >  3 files changed, 369 insertions(+), 169 deletions(-)
> >> >  create mode 100644 include/dm/platform_data/spi_coldfire.h
> >> >
> >>
> >> Good to see this.
> >>
> >> > diff --git a/drivers/spi/Kconfig b/drivers/spi/Kconfig
> >> > index dcd719ff0a..974c5bbed8 100644
> >> > --- a/drivers/spi/Kconfig
> >> > +++ b/drivers/spi/Kconfig
> >> > @@ -80,6 +80,12 @@ config CADENCE_QSPI
> >> >           used to access the SPI NOR flash on platforms embedding this
> >> >           Cadence IP core.
> >> >
> >> > +config CF_SPI
> >> > +        bool "ColdFire SPI driver"
> >> > +        help
> >> > +          Enable the ColdFire SPI driver. This driver can be used on
> >> > +          some m68k SoCs.
> >> > +
> >> >  config DESIGNWARE_SPI
> >> >         bool "Designware SPI driver"
> >> >         help
> >> > @@ -244,18 +250,18 @@ config ZYNQMP_GQSPI
> >> >
> >> >  endif # if DM_SPI
> >> >
> >> > -config SOFT_SPI
> >> > -       bool "Soft SPI driver"
> >> > -       help
> >> > -        Enable Soft SPI driver. This driver is to use GPIO simulate
> >> > -        the SPI protocol.
> >>
> >> How come this is changing? That should be a separate patch.
> >>
> > I just respected Kconfig alphabetical order, SOFT_SPI is just moved after.
> 
> OK, well I do think this should be in a separate patch.
> 
this is done, ready into a v2

> >
> >> > -
> >> >  config CF_SPI
> >> >         bool "ColdFire SPI driver"
> >> >         help
> >> >           Enable the ColdFire SPI driver. This driver can be used on
> >> >           some m68k SoCs.
> >> >
> >> > +config SOFT_SPI
> >> > +       bool "Soft SPI driver"
> >> > +       help
> >> > +        Enable Soft SPI driver. This driver is to use GPIO simulate
> >> > +        the SPI protocol.
> >> > +
> >> >  config FSL_ESPI
> >> >         bool "Freescale eSPI driver"
> >> >         help
> >> > diff --git a/drivers/spi/cf_spi.c b/drivers/spi/cf_spi.c
> >> > index 522631cbbf..11a11f79c4 100644
> >> > --- a/drivers/spi/cf_spi.c
> >> > +++ b/drivers/spi/cf_spi.c
> >> > @@ -6,16 +6,27 @@
> >> >   *
> >> >   * Copyright (C) 2004-2009 Freescale Semiconductor, Inc.
> >> >   * TsiChung Liew (Tsi-Chung.Liew at freescale.com)
> >> > + *
> >> > + * Support for device model:
> >> > + * Copyright (C) 2018 Angelo Dureghello <angelo@sysam.it>
> >> > + *
> >> >   */
> >> >
> >> >  #include <common.h>
> >> > +#include <dm.h>
> >> > +#include <dm/platform_data/spi_coldfire.h>
> >> >  #include <spi.h>
> >> >  #include <malloc.h>
> >> >  #include <asm/immap.h>
> >> > +#include <asm/io.h>
> >> >
> >> > -struct cf_spi_slave {
> >> > +struct coldfire_spi_priv {
> >> > +#ifndef CONFIG_DM_SPI
> >> >         struct spi_slave slave;
> >> > +#endif
> >> > +       struct dspi *regs;
> >> >         uint baudrate;
> >> > +       int mode;
> >> >         int charbit;
> >> >  };
> >> >
> >> > @@ -38,14 +49,14 @@ DECLARE_GLOBAL_DATA_PTR;
> >> >  #define SPI_MODE_MOD   0x00200000
> >> >  #define SPI_DBLRATE    0x00100000
> >> >
> >> > -static inline struct cf_spi_slave *to_cf_spi_slave(struct spi_slave *slave)
> >> > -{
> >> > -       return container_of(slave, struct cf_spi_slave, slave);
> >> > -}
> >> > +/* Default values */
> >> > +#define MCF_DSPI_DEFAULT_SCK_FREQ      10000000
> >> > +#define MCF_DSPI_MAX_CHIPSELECTS       4
> >> > +#define MCF_DSPI_MODE                  0
> >> >
> >> > -static void cfspi_init(void)
> >> > +static void __spi_init(struct coldfire_spi_priv *cfspi)
> >> >  {
> >> > -       volatile dspi_t *dspi = (dspi_t *) MMAP_DSPI;
> >> > +       struct dspi *dspi = cfspi->regs;
> >> >
> >> >         cfspi_port_conf();      /* port configuration */
> >> >
> >> > @@ -56,125 +67,32 @@ static void cfspi_init(void)
> >> >
> >> >         /* Default setting in platform configuration */
> >> >  #ifdef CONFIG_SYS_DSPI_CTAR0
> >> > -       dspi->ctar[0] = CONFIG_SYS_DSPI_CTAR0;
> >> > +       writel(CONFIG_SYS_DSPI_CTAR0, &dspi->ctar[0]);
> >>
> >> What is going on here? I think these CONFIG options are addresses? If
> >> so, they should be read from the DT, not a CONFIG.
> >>
> >
> > These are just default settings for each channel (bus), actually coming
> > from the include/configs/boardxxx.h. Their speed an mode bitfields are
> > rewritten later, with values coming from devicetree.
> > Some driver #define the default value inside the driver itself, in case
> > i may change in this way. No one seems reading them from device tree.
> 
> OK, can we remove these? At least they should not have a CONFIG_
> prefix, so we can remove them from the whitelist.
>

I verified that in particular 1 m68k board (ls1012aqds.h) wants different
defaults as cs-clock delays. This is something that atually can only be
done by those CONFIG_SYS_DSPI_CTARX.

This settings may be moved into DT but all the related boards should have
been moved to use a dts. Not sure if i can do this now, since i cannot 
test DT migration without owning the related physical board (hw).

How does it work in general ? Should i move al boards to dts, leaving 
tests to board maintaners in the future ? Can we keep those 
CONFIG_SYS_DSPI_CTARX in this way and perform the all-boards conversion
to dts in a later step ?
 
> Regards,
> Simon

Regards,
Angelo

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

* [U-Boot] [PATCH 2/7] drivers: spi: cf_spi: migrate to DM and DT
  2018-09-28 11:22         ` Angelo Dureghello
@ 2018-10-02 11:21           ` Simon Glass
  0 siblings, 0 replies; 19+ messages in thread
From: Simon Glass @ 2018-10-02 11:21 UTC (permalink / raw)
  To: u-boot

Hi Angelo,

On 28 September 2018 at 04:22, Angelo Dureghello <angelo@sysam.it> wrote:
> Hi Simon,
>
> On Thu, Sep 27, 2018 at 06:41:37AM -0700, Simon Glass wrote:
>> Hi Angelo,
>>
>> On 26 September 2018 at 11:53, Angelo Dureghello <angelo@sysam.it> wrote:
>> > Hi Simon,
>> >
>> > thanks for the review.
>> >
>> > On Tue, Sep 25, 2018 at 10:42:08PM -0700, Simon Glass wrote:
>> >> Hi Angelo,
>> >>
>> >> On 20 September 2018 at 15:07, Angelo Dureghello <angelo@sysam.it> wrote:
>> >> > This patch converts cf_spi.c to DM and to read driver
>> >> > platform data from flat devicetree.
>> >> >
>> >> > ---
>> >> > Changes from v1:
>> >> > - split into 2 patches
>> >> >
>> >> > Signed-off-by: Angelo Dureghello <angelo@sysam.it>
>> >> > ---
>> >> >  drivers/spi/Kconfig                     |  18 +-
>> >> >  drivers/spi/cf_spi.c                    | 495 ++++++++++++++++--------
>> >> >  include/dm/platform_data/spi_coldfire.h |  25 ++
>> >> >  3 files changed, 369 insertions(+), 169 deletions(-)
>> >> >  create mode 100644 include/dm/platform_data/spi_coldfire.h
>> >> >
>> >>
>> >> Good to see this.
>> >>
>> >> > diff --git a/drivers/spi/Kconfig b/drivers/spi/Kconfig
>> >> > index dcd719ff0a..974c5bbed8 100644
>> >> > --- a/drivers/spi/Kconfig
>> >> > +++ b/drivers/spi/Kconfig
>> >> > @@ -80,6 +80,12 @@ config CADENCE_QSPI
>> >> >           used to access the SPI NOR flash on platforms embedding this
>> >> >           Cadence IP core.
>> >> >
>> >> > +config CF_SPI
>> >> > +        bool "ColdFire SPI driver"
>> >> > +        help
>> >> > +          Enable the ColdFire SPI driver. This driver can be used on
>> >> > +          some m68k SoCs.
>> >> > +
>> >> >  config DESIGNWARE_SPI
>> >> >         bool "Designware SPI driver"
>> >> >         help
>> >> > @@ -244,18 +250,18 @@ config ZYNQMP_GQSPI
>> >> >
>> >> >  endif # if DM_SPI
>> >> >
>> >> > -config SOFT_SPI
>> >> > -       bool "Soft SPI driver"
>> >> > -       help
>> >> > -        Enable Soft SPI driver. This driver is to use GPIO simulate
>> >> > -        the SPI protocol.
>> >>
>> >> How come this is changing? That should be a separate patch.
>> >>
>> > I just respected Kconfig alphabetical order, SOFT_SPI is just moved after.
>>
>> OK, well I do think this should be in a separate patch.
>>
> this is done, ready into a v2
>
>> >
>> >> > -
>> >> >  config CF_SPI
>> >> >         bool "ColdFire SPI driver"
>> >> >         help
>> >> >           Enable the ColdFire SPI driver. This driver can be used on
>> >> >           some m68k SoCs.
>> >> >
>> >> > +config SOFT_SPI
>> >> > +       bool "Soft SPI driver"
>> >> > +       help
>> >> > +        Enable Soft SPI driver. This driver is to use GPIO simulate
>> >> > +        the SPI protocol.
>> >> > +
>> >> >  config FSL_ESPI
>> >> >         bool "Freescale eSPI driver"
>> >> >         help
>> >> > diff --git a/drivers/spi/cf_spi.c b/drivers/spi/cf_spi.c
>> >> > index 522631cbbf..11a11f79c4 100644
>> >> > --- a/drivers/spi/cf_spi.c
>> >> > +++ b/drivers/spi/cf_spi.c
>> >> > @@ -6,16 +6,27 @@
>> >> >   *
>> >> >   * Copyright (C) 2004-2009 Freescale Semiconductor, Inc.
>> >> >   * TsiChung Liew (Tsi-Chung.Liew at freescale.com)
>> >> > + *
>> >> > + * Support for device model:
>> >> > + * Copyright (C) 2018 Angelo Dureghello <angelo@sysam.it>
>> >> > + *
>> >> >   */
>> >> >
>> >> >  #include <common.h>
>> >> > +#include <dm.h>
>> >> > +#include <dm/platform_data/spi_coldfire.h>
>> >> >  #include <spi.h>
>> >> >  #include <malloc.h>
>> >> >  #include <asm/immap.h>
>> >> > +#include <asm/io.h>
>> >> >
>> >> > -struct cf_spi_slave {
>> >> > +struct coldfire_spi_priv {
>> >> > +#ifndef CONFIG_DM_SPI
>> >> >         struct spi_slave slave;
>> >> > +#endif
>> >> > +       struct dspi *regs;
>> >> >         uint baudrate;
>> >> > +       int mode;
>> >> >         int charbit;
>> >> >  };
>> >> >
>> >> > @@ -38,14 +49,14 @@ DECLARE_GLOBAL_DATA_PTR;
>> >> >  #define SPI_MODE_MOD   0x00200000
>> >> >  #define SPI_DBLRATE    0x00100000
>> >> >
>> >> > -static inline struct cf_spi_slave *to_cf_spi_slave(struct spi_slave *slave)
>> >> > -{
>> >> > -       return container_of(slave, struct cf_spi_slave, slave);
>> >> > -}
>> >> > +/* Default values */
>> >> > +#define MCF_DSPI_DEFAULT_SCK_FREQ      10000000
>> >> > +#define MCF_DSPI_MAX_CHIPSELECTS       4
>> >> > +#define MCF_DSPI_MODE                  0
>> >> >
>> >> > -static void cfspi_init(void)
>> >> > +static void __spi_init(struct coldfire_spi_priv *cfspi)
>> >> >  {
>> >> > -       volatile dspi_t *dspi = (dspi_t *) MMAP_DSPI;
>> >> > +       struct dspi *dspi = cfspi->regs;
>> >> >
>> >> >         cfspi_port_conf();      /* port configuration */
>> >> >
>> >> > @@ -56,125 +67,32 @@ static void cfspi_init(void)
>> >> >
>> >> >         /* Default setting in platform configuration */
>> >> >  #ifdef CONFIG_SYS_DSPI_CTAR0
>> >> > -       dspi->ctar[0] = CONFIG_SYS_DSPI_CTAR0;
>> >> > +       writel(CONFIG_SYS_DSPI_CTAR0, &dspi->ctar[0]);
>> >>
>> >> What is going on here? I think these CONFIG options are addresses? If
>> >> so, they should be read from the DT, not a CONFIG.
>> >>
>> >
>> > These are just default settings for each channel (bus), actually coming
>> > from the include/configs/boardxxx.h. Their speed an mode bitfields are
>> > rewritten later, with values coming from devicetree.
>> > Some driver #define the default value inside the driver itself, in case
>> > i may change in this way. No one seems reading them from device tree.
>>
>> OK, can we remove these? At least they should not have a CONFIG_
>> prefix, so we can remove them from the whitelist.
>>
>
> I verified that in particular 1 m68k board (ls1012aqds.h) wants different
> defaults as cs-clock delays. This is something that atually can only be
> done by those CONFIG_SYS_DSPI_CTARX.
>
> This settings may be moved into DT but all the related boards should have
> been moved to use a dts. Not sure if i can do this now, since i cannot
> test DT migration without owning the related physical board (hw).
>
> How does it work in general ? Should i move al boards to dts, leaving
> tests to board maintaners in the future ? Can we keep those
> CONFIG_SYS_DSPI_CTARX in this way and perform the all-boards conversion
> to dts in a later step ?

Yes you can migrate them forcibly since the alternative is presumably
to delete their support from mainline.

Regards,
Simon

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

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

Thread overview: 19+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-09-20 21:07 [U-Boot] (no subject) Angelo Dureghello
2018-09-20 21:07 ` [U-Boot] [PATCH 1/7] m68k: add basic set of devicetrees Angelo Dureghello
2018-09-26  5:42   ` Simon Glass
2018-09-20 21:07 ` [U-Boot] [PATCH 2/7] drivers: spi: cf_spi: migrate to DM and DT Angelo Dureghello
2018-09-26  5:42   ` Simon Glass
2018-09-26 18:53     ` Angelo Dureghello
2018-09-27 13:41       ` Simon Glass
2018-09-27 17:20         ` Angelo Dureghello
2018-09-28 11:22         ` Angelo Dureghello
2018-10-02 11:21           ` Simon Glass
2018-09-20 21:07 ` [U-Boot] [PATCH 3/7] drivers: serial: mcfuart: add DT support Angelo Dureghello
2018-09-26  5:42   ` Simon Glass
2018-09-20 21:07 ` [U-Boot] [PATCH 4/7] drivers: serial: mcfuart: add Kconfig option Angelo Dureghello
2018-09-26  5:42   ` Simon Glass
2018-09-20 21:07 ` [U-Boot] [PATCH 5/7] m68k: architecture changes to support fdt Angelo Dureghello
2018-09-26  5:42   ` Simon Glass
2018-09-20 21:07 ` [U-Boot] [PATCH 6/7] m68k: add stmark2 fdt support Angelo Dureghello
2018-09-26  5:42   ` Simon Glass
2018-09-20 21:07 ` [U-Boot] [PATCH 7/7] board: stmark2: updates for DM and DT Angelo Dureghello

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.