* [PATCH v3 0/2] arm64: dts: ti: k3-am64-main: Add GPMC & ELM nodes
@ 2022-02-04 11:15 ` Roger Quadros
0 siblings, 0 replies; 10+ messages in thread
From: Roger Quadros @ 2022-02-04 11:15 UTC (permalink / raw)
To: nm
Cc: kishon, vigneshr, linux-arm-kernel, devicetree, linux-kernel,
Roger Quadros
Hi Nishanth,
This series adds GPMC and ELM controller device tree nodes to
AM64 SoC's dtsi file.
Changelog:
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.
cheers,
-roger
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(+)
--
2.17.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH v3 1/2] arm64: dts: ti: k3-am64-main: Add GPMC memory controller node
2022-02-04 11:15 ` Roger Quadros
@ 2022-02-04 11:15 ` Roger Quadros
-1 siblings, 0 replies; 10+ messages in thread
From: Roger Quadros @ 2022-02-04 11:15 UTC (permalink / raw)
To: nm
Cc: kishon, vigneshr, linux-arm-kernel, devicetree, linux-kernel,
Roger Quadros
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
Signed-off-by: Roger Quadros <rogerq@kernel.org>
---
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(+)
diff --git a/arch/arm64/boot/dts/ti/k3-am64-main.dtsi b/arch/arm64/boot/dts/ti/k3-am64-main.dtsi
index 012011dc619a..94ea5c304d73 100644
--- a/arch/arm64/boot/dts/ti/k3-am64-main.dtsi
+++ b/arch/arm64/boot/dts/ti/k3-am64-main.dtsi
@@ -1289,4 +1289,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>;
+ };
};
diff --git a/arch/arm64/boot/dts/ti/k3-am642-evm.dts b/arch/arm64/boot/dts/ti/k3-am642-evm.dts
index e94ae178b1ae..6bd0c0876865 100644
--- a/arch/arm64/boot/dts/ti/k3-am642-evm.dts
+++ b/arch/arm64/boot/dts/ti/k3-am642-evm.dts
@@ -678,3 +678,7 @@
pinctrl-0 = <&main_mcan1_pins_default>;
phys = <&transceiver2>;
};
+
+&gpmc0 {
+ status = "disabled";
+};
diff --git a/arch/arm64/boot/dts/ti/k3-am642-sk.dts b/arch/arm64/boot/dts/ti/k3-am642-sk.dts
index a9785bec12df..40706aa61514 100644
--- a/arch/arm64/boot/dts/ti/k3-am642-sk.dts
+++ b/arch/arm64/boot/dts/ti/k3-am642-sk.dts
@@ -533,3 +533,7 @@
&main_mcan1 {
status = "disabled";
};
+
+&gpmc0 {
+ status = "disabled";
+};
--
2.17.1
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH v3 1/2] arm64: dts: ti: k3-am64-main: Add GPMC memory controller node
@ 2022-02-04 11:15 ` Roger Quadros
0 siblings, 0 replies; 10+ messages in thread
From: Roger Quadros @ 2022-02-04 11:15 UTC (permalink / raw)
To: nm
Cc: kishon, vigneshr, linux-arm-kernel, devicetree, linux-kernel,
Roger Quadros
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
Signed-off-by: Roger Quadros <rogerq@kernel.org>
---
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(+)
diff --git a/arch/arm64/boot/dts/ti/k3-am64-main.dtsi b/arch/arm64/boot/dts/ti/k3-am64-main.dtsi
index 012011dc619a..94ea5c304d73 100644
--- a/arch/arm64/boot/dts/ti/k3-am64-main.dtsi
+++ b/arch/arm64/boot/dts/ti/k3-am64-main.dtsi
@@ -1289,4 +1289,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>;
+ };
};
diff --git a/arch/arm64/boot/dts/ti/k3-am642-evm.dts b/arch/arm64/boot/dts/ti/k3-am642-evm.dts
index e94ae178b1ae..6bd0c0876865 100644
--- a/arch/arm64/boot/dts/ti/k3-am642-evm.dts
+++ b/arch/arm64/boot/dts/ti/k3-am642-evm.dts
@@ -678,3 +678,7 @@
pinctrl-0 = <&main_mcan1_pins_default>;
phys = <&transceiver2>;
};
+
+&gpmc0 {
+ status = "disabled";
+};
diff --git a/arch/arm64/boot/dts/ti/k3-am642-sk.dts b/arch/arm64/boot/dts/ti/k3-am642-sk.dts
index a9785bec12df..40706aa61514 100644
--- a/arch/arm64/boot/dts/ti/k3-am642-sk.dts
+++ b/arch/arm64/boot/dts/ti/k3-am642-sk.dts
@@ -533,3 +533,7 @@
&main_mcan1 {
status = "disabled";
};
+
+&gpmc0 {
+ status = "disabled";
+};
--
2.17.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH v3 1/2] arm64: dts: ti: k3-am64-main: Add GPMC memory controller node
2022-02-04 11:15 ` Roger Quadros
@ 2022-02-28 7:47 ` Vignesh Raghavendra
-1 siblings, 0 replies; 10+ messages in thread
From: Vignesh Raghavendra @ 2022-02-28 7:47 UTC (permalink / raw)
To: Roger Quadros, nm; +Cc: kishon, linux-arm-kernel, devicetree, linux-kernel
On 04/02/22 4:45 pm, Roger Quadros wrote:
> 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
>
> Signed-off-by: Roger Quadros <rogerq@kernel.org>
> ---
> 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(+)
>
Reviewed-by: Vignesh Raghavendra <vigneshr@ti.com>
[...]
Regards
Vignesh
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v3 1/2] arm64: dts: ti: k3-am64-main: Add GPMC memory controller node
@ 2022-02-28 7:47 ` Vignesh Raghavendra
0 siblings, 0 replies; 10+ messages in thread
From: Vignesh Raghavendra @ 2022-02-28 7:47 UTC (permalink / raw)
To: Roger Quadros, nm; +Cc: kishon, linux-arm-kernel, devicetree, linux-kernel
On 04/02/22 4:45 pm, Roger Quadros wrote:
> 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
>
> Signed-off-by: Roger Quadros <rogerq@kernel.org>
> ---
> 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(+)
>
Reviewed-by: Vignesh Raghavendra <vigneshr@ti.com>
[...]
Regards
Vignesh
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH v3 2/2] arm64: dts: ti: k3-am64-main: Add ELM (Error Location Module) node
2022-02-04 11:15 ` Roger Quadros
@ 2022-02-04 11:15 ` Roger Quadros
-1 siblings, 0 replies; 10+ messages in thread
From: Roger Quadros @ 2022-02-04 11:15 UTC (permalink / raw)
To: nm
Cc: kishon, vigneshr, linux-arm-kernel, devicetree, linux-kernel,
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.
Signed-off-by: Roger Quadros <rogerq@kernel.org>
---
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(+)
diff --git a/arch/arm64/boot/dts/ti/k3-am64-main.dtsi b/arch/arm64/boot/dts/ti/k3-am64-main.dtsi
index 94ea5c304d73..b17620e999a5 100644
--- a/arch/arm64/boot/dts/ti/k3-am64-main.dtsi
+++ b/arch/arm64/boot/dts/ti/k3-am64-main.dtsi
@@ -1308,4 +1308,13 @@
gpio-controller;
#gpio-cells = <2>;
};
+
+ elm0: ecc@25010000 {
+ compatible = "ti,am3352-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";
+ };
};
diff --git a/arch/arm64/boot/dts/ti/k3-am642-evm.dts b/arch/arm64/boot/dts/ti/k3-am642-evm.dts
index 6bd0c0876865..0252218282c2 100644
--- a/arch/arm64/boot/dts/ti/k3-am642-evm.dts
+++ b/arch/arm64/boot/dts/ti/k3-am642-evm.dts
@@ -682,3 +682,7 @@
&gpmc0 {
status = "disabled";
};
+
+&elm0 {
+ status = "disabled";
+};
diff --git a/arch/arm64/boot/dts/ti/k3-am642-sk.dts b/arch/arm64/boot/dts/ti/k3-am642-sk.dts
index 40706aa61514..1d91b7ec8912 100644
--- a/arch/arm64/boot/dts/ti/k3-am642-sk.dts
+++ b/arch/arm64/boot/dts/ti/k3-am642-sk.dts
@@ -537,3 +537,7 @@
&gpmc0 {
status = "disabled";
};
+
+&elm0 {
+ status = "disabled";
+};
--
2.17.1
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH v3 2/2] arm64: dts: ti: k3-am64-main: Add ELM (Error Location Module) node
@ 2022-02-04 11:15 ` Roger Quadros
0 siblings, 0 replies; 10+ messages in thread
From: Roger Quadros @ 2022-02-04 11:15 UTC (permalink / raw)
To: nm
Cc: kishon, vigneshr, linux-arm-kernel, devicetree, linux-kernel,
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.
Signed-off-by: Roger Quadros <rogerq@kernel.org>
---
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(+)
diff --git a/arch/arm64/boot/dts/ti/k3-am64-main.dtsi b/arch/arm64/boot/dts/ti/k3-am64-main.dtsi
index 94ea5c304d73..b17620e999a5 100644
--- a/arch/arm64/boot/dts/ti/k3-am64-main.dtsi
+++ b/arch/arm64/boot/dts/ti/k3-am64-main.dtsi
@@ -1308,4 +1308,13 @@
gpio-controller;
#gpio-cells = <2>;
};
+
+ elm0: ecc@25010000 {
+ compatible = "ti,am3352-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";
+ };
};
diff --git a/arch/arm64/boot/dts/ti/k3-am642-evm.dts b/arch/arm64/boot/dts/ti/k3-am642-evm.dts
index 6bd0c0876865..0252218282c2 100644
--- a/arch/arm64/boot/dts/ti/k3-am642-evm.dts
+++ b/arch/arm64/boot/dts/ti/k3-am642-evm.dts
@@ -682,3 +682,7 @@
&gpmc0 {
status = "disabled";
};
+
+&elm0 {
+ status = "disabled";
+};
diff --git a/arch/arm64/boot/dts/ti/k3-am642-sk.dts b/arch/arm64/boot/dts/ti/k3-am642-sk.dts
index 40706aa61514..1d91b7ec8912 100644
--- a/arch/arm64/boot/dts/ti/k3-am642-sk.dts
+++ b/arch/arm64/boot/dts/ti/k3-am642-sk.dts
@@ -537,3 +537,7 @@
&gpmc0 {
status = "disabled";
};
+
+&elm0 {
+ status = "disabled";
+};
--
2.17.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH v3 2/2] arm64: dts: ti: k3-am64-main: Add ELM (Error Location Module) node
2022-02-04 11:15 ` Roger Quadros
@ 2022-02-28 7:49 ` Vignesh Raghavendra
-1 siblings, 0 replies; 10+ messages in thread
From: Vignesh Raghavendra @ 2022-02-28 7:49 UTC (permalink / raw)
To: Roger Quadros, nm; +Cc: kishon, linux-arm-kernel, devicetree, linux-kernel
On 04/02/22 4:45 pm, Roger Quadros wrote:
> The ELM module is used for GPMC NAND accesses for detecting
> and correcting errors during reads due to NAND bitflips errors.
[...]
>
> diff --git a/arch/arm64/boot/dts/ti/k3-am64-main.dtsi b/arch/arm64/boot/dts/ti/k3-am64-main.dtsi
> index 94ea5c304d73..b17620e999a5 100644
> --- a/arch/arm64/boot/dts/ti/k3-am64-main.dtsi
> +++ b/arch/arm64/boot/dts/ti/k3-am64-main.dtsi
> @@ -1308,4 +1308,13 @@
> gpio-controller;
> #gpio-cells = <2>;
> };
> +
> + elm0: ecc@25010000 {
> + compatible = "ti,am3352-elm";
Sorry, this binding needs to move to YAML before patch can be applied.
> + 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";
> + };
> };
[...]
Regards
Vignesh
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v3 2/2] arm64: dts: ti: k3-am64-main: Add ELM (Error Location Module) node
@ 2022-02-28 7:49 ` Vignesh Raghavendra
0 siblings, 0 replies; 10+ messages in thread
From: Vignesh Raghavendra @ 2022-02-28 7:49 UTC (permalink / raw)
To: Roger Quadros, nm; +Cc: kishon, linux-arm-kernel, devicetree, linux-kernel
On 04/02/22 4:45 pm, Roger Quadros wrote:
> The ELM module is used for GPMC NAND accesses for detecting
> and correcting errors during reads due to NAND bitflips errors.
[...]
>
> diff --git a/arch/arm64/boot/dts/ti/k3-am64-main.dtsi b/arch/arm64/boot/dts/ti/k3-am64-main.dtsi
> index 94ea5c304d73..b17620e999a5 100644
> --- a/arch/arm64/boot/dts/ti/k3-am64-main.dtsi
> +++ b/arch/arm64/boot/dts/ti/k3-am64-main.dtsi
> @@ -1308,4 +1308,13 @@
> gpio-controller;
> #gpio-cells = <2>;
> };
> +
> + elm0: ecc@25010000 {
> + compatible = "ti,am3352-elm";
Sorry, this binding needs to move to YAML before patch can be applied.
> + 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";
> + };
> };
[...]
Regards
Vignesh
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 10+ messages in thread