Message ID | 20160823135546.60179-1-icenowy@aosc.xyz (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
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
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
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 --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>;
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(+)