diff mbox

ARM: dts: sun8i: add NAND controller node for A23/A33

Message ID 20160823135546.60179-1-icenowy@aosc.xyz (mailing list archive)
State New, archived
Headers show

Commit Message

Icenowy Zheng Aug. 23, 2016, 1:55 p.m. UTC
A23/A33 has a NAND controller which can now be used properly.

Add a device node for it.

The DMA function cannot work because of changed DMA IP block, so it's
temporarily removed in the device node. However, with PIO mode it can still
work.

Tested on an Aoson M751s tablet with Boris Brezillon's "mtd: nand: allow
vendor specific detection/initialization" patchset, which is needed for the
large-block MLC chip to be recognized correctly.
( http://lists.infradead.org/pipermail/linux-mtd/2016-June/068198.html )

Signed-off-by: Icenowy Zheng <icenowy@aosc.xyz>
---
 arch/arm/boot/dts/sun8i-a23-a33.dtsi | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

Comments

Maxime Ripard Aug. 24, 2016, 6:02 a.m. UTC | #1
Hi,

On Tue, Aug 23, 2016 at 09:55:46PM +0800, Icenowy Zheng wrote:
> A23/A33 has a NAND controller which can now be used properly.
> 
> Add a device node for it.
> 
> The DMA function cannot work because of changed DMA IP block, so it's
> temporarily removed in the device node. However, with PIO mode it can still
> work.

What is preventing the NAND driver to work with DMA with the sun6i driver?

Thanks,
Maxime
Icenowy Zheng Aug. 24, 2016, 8:21 a.m. UTC | #2
Hi Maxime,

24.08.2016, 14:02, "Maxime Ripard" <maxime.ripard@free-electrons.com>:
> Hi,
>
> On Tue, Aug 23, 2016 at 09:55:46PM +0800, Icenowy Zheng wrote:
>>  A23/A33 has a NAND controller which can now be used properly.
>>
>>  Add a device node for it.
>>
>>  The DMA function cannot work because of changed DMA IP block, so it's
>>  temporarily removed in the device node. However, with PIO mode it can still
>>  work.
>
> What is preventing the NAND driver to work with DMA with the sun6i driver?
It seems that under sun6i we should use dedicated rx and tx DMAs, but not a
"rxtx" DMA.
>
> Thanks,
> Maxime
>
> --
> Maxime Ripard, Free Electrons
> Embedded Linux and Kernel engineering
> http://free-electrons.com
Maxime Ripard Aug. 25, 2016, 8:53 p.m. UTC | #3
Hi,

On Wed, Aug 24, 2016 at 04:21:35PM +0800, Icenowy Zheng wrote:
> Hi Maxime,
> 
> 24.08.2016, 14:02, "Maxime Ripard" <maxime.ripard@free-electrons.com>:
> > Hi,
> >
> > On Tue, Aug 23, 2016 at 09:55:46PM +0800, Icenowy Zheng wrote:
> >>  A23/A33 has a NAND controller which can now be used properly.
> >>
> >>  Add a device node for it.
> >>
> >>  The DMA function cannot work because of changed DMA IP block, so it's
> >>  temporarily removed in the device node. However, with PIO mode it can still
> >>  work.
> >
> > What is preventing the NAND driver to work with DMA with the sun6i driver?
>
> It seems that under sun6i we should use dedicated rx and tx DMAs, but not a
> "rxtx" DMA.

Ah, I see. I just applied your patch, thanks!
Maxime
diff mbox

Patch

diff --git a/arch/arm/boot/dts/sun8i-a23-a33.dtsi b/arch/arm/boot/dts/sun8i-a23-a33.dtsi
index 89ea479..17e3dec 100644
--- a/arch/arm/boot/dts/sun8i-a23-a33.dtsi
+++ b/arch/arm/boot/dts/sun8i-a23-a33.dtsi
@@ -239,6 +239,14 @@ 
 					     "mmc2_sample";
 		};
 
+		nand_clk: clk@01c20080 {
+			#clock-cells = <0>;
+			compatible = "allwinner,sun4i-a10-mod0-clk";
+			reg = <0x01c20080 0x4>;
+			clocks = <&osc24M>, <&pll6 1>;
+			clock-output-names = "nand";
+		};
+
 		usb_clk: clk@01c200cc {
 			#clock-cells = <1>;
 			#reset-cells = <1>;
@@ -322,6 +330,19 @@ 
 			#size-cells = <0>;
 		};
 
+		nfc: nand@01c03000 {
+			compatible = "allwinner,sun4i-a10-nand";
+			reg = <0x01c03000 0x1000>;
+			interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
+			clocks = <&ahb1_gates 13>, <&nand_clk>;
+			clock-names = "ahb", "mod";
+			resets = <&ahb1_rst 13>;
+			reset-names = "ahb";
+			status = "disabled";
+			#address-cells = <1>;
+			#size-cells = <0>;
+		};
+
 		ehci0: usb@01c1a000 {
 			compatible = "allwinner,sun8i-a23-ehci", "generic-ehci";
 			reg = <0x01c1a000 0x100>;