Skip to contentSkip to conversation

arm64: dts: ti: k3-am64-main: Add GPMC & ELM nodes

PATCH Applied Roger Quadros 3 participants 6 messages Aug 2, 2022 – Sep 1, 2022

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

v4 cover arm64: dts: ti: k3-am64-main: Add GPMC & ELM nodes

Hi Nishanth,

This series adds GPMC and ELM controller device tree nodes to AM64 SoC's dtsi file.

Changelog:
v4
- Rebased to v5.19
- use 'ti,am64-elm' compatible for ELM node

v3
- Rebased to v5.17-rc1

v2
- Fix register sizes for GPMC node.
- Disable GPMC and ELM nodes in board files. They will be enabled in NAND card device tree overlay.

Roger Quadros (2):
arm64: dts: ti: k3-am64-main: Add GPMC memory controller node
arm64: dts: ti: k3-am64-main: Add ELM (Error Location Module) node

 arch/arm64/boot/dts/ti/k3-am64-main.dtsi | 28 ++++++++++++++++++++++++
 arch/arm64/boot/dts/ti/k3-am642-evm.dts  |  8 +++++++
 arch/arm64/boot/dts/ti/k3-am642-sk.dts   |  8 +++++++
 3 files changed, 44 insertions(+)
Signature · 1 line
2.17.1
#1 lore raw

PATCH v4 1/2 arm64: dts: ti: k3-am64-main: Add GPMC memory controller node

The GPMC is a unified memory controller dedicated for interfacing with external memory devices like
- Asynchronous SRAM-like memories and ASICs
- Asynchronous, synchronous, and page mode burst NOR flash
- NAND flash
- Pseudo-SRAM devices

---
 arch/arm64/boot/dts/ti/k3-am64-main.dtsi | 19 +++++++++++++++++++
 arch/arm64/boot/dts/ti/k3-am642-evm.dts  |  4 ++++
 arch/arm64/boot/dts/ti/k3-am642-sk.dts   |  4 ++++
 3 files changed, 27 insertions(+)
arch/arm64/boot/dts/ti/k3-am64-main.dtsi +19 -0
index cdb530597c5e..0059de0aeedf 100644
@@ -1308,4 +1308,23 @@
 		interrupt-names = "int0", "int1";
 		bosch,mram-cfg = <0x0 128 64 64 64 64 32 32>;
 	};
+
+	gpmc0: memory-controller@3b000000 {
+		compatible = "ti,am64-gpmc";
+		power-domains = <&k3_pds 80 TI_SCI_PD_EXCLUSIVE>;
+		clocks = <&k3_clks 80 0>;
+		clock-names = "fck";
+		reg = <0x00 0x03b000000 0x00 0x400>,
+		      <0x00 0x050000000 0x00 0x8000000>;
+		reg-names = "cfg", "data";
+		interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>;
+		gpmc,num-cs = <3>;
+		gpmc,num-waitpins = <2>;
+		#address-cells = <2>;
+		#size-cells = <1>;
+		interrupt-controller;
+		#interrupt-cells = <2>;
+		gpio-controller;
+		#gpio-cells = <2>;
+	};
 };
arch/arm64/boot/dts/ti/k3-am642-evm.dts +4 -0
index 8e7893e58b03..30647fc3eec2 100644
@@ -676,3 +676,7 @@
 	pinctrl-0 = <&main_mcan1_pins_default>;
 	phys = <&transceiver2>;
 };
+
+&gpmc0 {
+	status = "disabled";
+};
arch/arm64/boot/dts/ti/k3-am642-sk.dts +4 -0
index 59f506cbd275..bd9b36b16787 100644
@@ -593,3 +593,7 @@
 &main_mcan1 {
 	status = "disabled";
 };
+
+&gpmc0 {
+	status = "disabled";
+};
Signature · 1 line
2.17.1
#2 lore raw

PATCH v4 2/2 arm64: dts: ti: k3-am64-main: Add ELM (Error Location Module) node

In reply to Roger Quadros

The ELM module is used for GPMC NAND accesses for detecting and correcting errors during reads due to NAND bitflips errors.

4-, 8-, and 16-bit error-correction levels are supported using the BCH (Bose-ChaudhurI-Hocquenghem) algorithm.

---
 arch/arm64/boot/dts/ti/k3-am64-main.dtsi | 9 +++++++++
 arch/arm64/boot/dts/ti/k3-am642-evm.dts  | 4 ++++
 arch/arm64/boot/dts/ti/k3-am642-sk.dts   | 4 ++++
 3 files changed, 17 insertions(+)
arch/arm64/boot/dts/ti/k3-am64-main.dtsi +9 -0
index 0059de0aeedf..c1caa7c7c6eb 100644
@@ -1327,4 +1327,13 @@
 		gpio-controller;
 		#gpio-cells = <2>;
 	};
+
+	elm0: ecc@25010000 {
+		compatible = "ti,am64-elm";
+		reg = <0x00 0x25010000 0x00 0x2000>;
+		interrupts = <GIC_SPI 132 IRQ_TYPE_LEVEL_HIGH>;
+		power-domains = <&k3_pds 54 TI_SCI_PD_EXCLUSIVE>;
+		clocks = <&k3_clks 54 0>;
+		clock-names = "fck";
+	};
 };
arch/arm64/boot/dts/ti/k3-am642-evm.dts +4 -0
index 30647fc3eec2..abc0fe61b6b8 100644
@@ -680,3 +680,7 @@
 &gpmc0 {
 	status = "disabled";
 };
+
+&elm0 {
+	status = "disabled";
+};
arch/arm64/boot/dts/ti/k3-am642-sk.dts +4 -0
index bd9b36b16787..bec1edfeef37 100644
@@ -597,3 +597,7 @@
 &gpmc0 {
 	status = "disabled";
 };
+
+&elm0 {
+	status = "disabled";
+};
Signature · 1 line
2.17.1
#3 lore raw
In reply to Roger Quadros

Hello Nishant/Vignesh,

Quoted 4 lines · Roger Quadros

Hi Nishanth,

This series adds GPMC and ELM controller device tree nodes to AM64 SoC's dtsi file.

Gentle ping to pick this series. Thanks!

Quoted 14 lines

Changelog:
v4
- Rebased to v5.19
- use 'ti,am64-elm' compatible for ELM node

v3
- Rebased to v5.17-rc1

v2
- Fix register sizes for GPMC node.
- Disable GPMC and ELM nodes in board files. They will be enabled in NAND card device tree overlay.

Quoted 9 lines

Roger Quadros (2):
arm64: dts: ti: k3-am64-main: Add GPMC memory controller node
arm64: dts: ti: k3-am64-main: Add ELM (Error Location Module) node

 arch/arm64/boot/dts/ti/k3-am64-main.dtsi | 28 ++++++++++++++++++++++++
 arch/arm64/boot/dts/ti/k3-am642-evm.dts  |  8 +++++++
 arch/arm64/boot/dts/ti/k3-am642-sk.dts   |  8 +++++++
 3 files changed, 44 insertions(+)

cheers,
-roger

Reviewed-by on the v4 series
#4 lore raw
In reply to Roger Quadros

Hi Roger!

On August 2, 2022 thus sayeth Roger Quadros:

Quoted 18 lines

Hi Nishanth,

This series adds GPMC and ELM controller device tree nodes to AM64 SoC's dtsi file.

Changelog:
v4
- Rebased to v5.19
- use 'ti,am64-elm' compatible for ELM node

v3
- Rebased to v5.17-rc1

v2
- Fix register sizes for GPMC node.
- Disable GPMC and ELM nodes in board files. They will be enabled in NAND card device tree overlay.

Quoted 8 lines

Roger Quadros (2):
arm64: dts: ti: k3-am64-main: Add GPMC memory controller node
arm64: dts: ti: k3-am64-main: Add ELM (Error Location Module) node

 arch/arm64/boot/dts/ti/k3-am64-main.dtsi | 28 ++++++++++++++++++++++++
 arch/arm64/boot/dts/ti/k3-am642-evm.dts  |  8 +++++++
 arch/arm64/boot/dts/ti/k3-am642-sk.dts   |  8 +++++++
 3 files changed, 44 insertions(+)

These look good to me :)

~Bryan

maintainer Applied
#5 lore raw
In reply to Roger Quadros

Hi Roger Quadros,

Quoted 9 lines · Roger Quadros

This series adds GPMC and ELM controller device tree nodes to AM64 SoC's dtsi file.

Changelog:
v4
- Rebased to v5.19
- use 'ti,am64-elm' compatible for ELM node

[...]

I have applied the following to branch ti-k3-dts-next on [1]. Thank you!

[1/2] arm64: dts: ti: k3-am64-main: Add GPMC memory controller node

      commit: 5ec06904310da6441097c8f2d6e3fb196f42bca1
[2/2] arm64: dts: ti: k3-am64-main: Add ELM (Error Location Module) node
      commit: c920a6caba68196f48f8ee57cc193e396f941011

All being well this means that it will be integrated into the linux-next tree (usually sometime in the next 24 hours) and sent up the chain during the next merge window (or sooner if it is a relevant bug fix), however if problems are discovered then the patch may be dropped or reverted.

You may get further e-mails resulting from automated or manual testing and review of the tree, please engage with people reporting problems and send followup patches addressing any issues that are reported if needed.

If any updates are required or you are submitting further changes they should be sent as incremental updates against current git, existing patches will not be replaced.

Please add any relevant lists and maintainers to the CCs when replying to this mail.

[1] https://git.kernel.org/pub/scm/linux/kernel/git/ti/linux.git
--
Vignesh

_______________________________________________
linux-arm-kernel mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel