Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 31d2ac32 authored by Arthur Demchenkov's avatar Arthur Demchenkov Committed by Greg Kroah-Hartman
Browse files

ARM: dts: N900: fix onenand timings



commit 0c5220a3c1242c7a2451570ed5f5af69620aac75 upstream.

Commit a758f50f ("mtd: onenand: omap2: Configure driver from DT")
started using DT specified timings for GPMC, and as a result the
OneNAND stopped working on N900 as we had wrong values in the DT.
Fix by updating the values to bootloader timings that have been tested
to be working on Nokia N900 with OneNAND manufacturers: Samsung,
Numonyx.

Fixes: a758f50f ("mtd: onenand: omap2: Configure driver from DT")
Signed-off-by: default avatarArthur Demchenkov <spinal.by@gmail.com>
Tested-by: default avatarMerlijn Wajer <merlijn@wizzup.org>
Reviewed-by: default avatarRoger Quadros <rogerq@ti.com>
Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 5513fac5
Loading
Loading
Loading
Loading
+28 −16
Original line number Diff line number Diff line
@@ -852,34 +852,46 @@
		compatible = "ti,omap2-onenand";
		reg = <0 0 0x20000>;	/* CS0, offset 0, IO size 128K */

		/*
		 * These timings are based on CONFIG_OMAP_GPMC_DEBUG=y reported
		 * bootloader set values when booted with v5.1
		 * (OneNAND Manufacturer: Samsung):
		 *
		 *   cs0 GPMC_CS_CONFIG1: 0xfb001202
		 *   cs0 GPMC_CS_CONFIG2: 0x00111100
		 *   cs0 GPMC_CS_CONFIG3: 0x00020200
		 *   cs0 GPMC_CS_CONFIG4: 0x11001102
		 *   cs0 GPMC_CS_CONFIG5: 0x03101616
		 *   cs0 GPMC_CS_CONFIG6: 0x90060000
		 */
		gpmc,sync-read;
		gpmc,sync-write;
		gpmc,burst-length = <16>;
		gpmc,burst-read;
		gpmc,burst-wrap;
		gpmc,burst-write;
		gpmc,device-width = <2>; /* GPMC_DEVWIDTH_16BIT */
		gpmc,mux-add-data = <2>; /* GPMC_MUX_AD */
		gpmc,device-width = <2>;
		gpmc,mux-add-data = <2>;
		gpmc,cs-on-ns = <0>;
		gpmc,cs-rd-off-ns = <87>;
		gpmc,cs-wr-off-ns = <87>;
		gpmc,cs-rd-off-ns = <102>;
		gpmc,cs-wr-off-ns = <102>;
		gpmc,adv-on-ns = <0>;
		gpmc,adv-rd-off-ns = <10>;
		gpmc,adv-wr-off-ns = <10>;
		gpmc,oe-on-ns = <15>;
		gpmc,oe-off-ns = <87>;
		gpmc,adv-rd-off-ns = <12>;
		gpmc,adv-wr-off-ns = <12>;
		gpmc,oe-on-ns = <12>;
		gpmc,oe-off-ns = <102>;
		gpmc,we-on-ns = <0>;
		gpmc,we-off-ns = <87>;
		gpmc,rd-cycle-ns = <112>;
		gpmc,wr-cycle-ns = <112>;
		gpmc,access-ns = <81>;
		gpmc,page-burst-access-ns = <15>;
		gpmc,we-off-ns = <102>;
		gpmc,rd-cycle-ns = <132>;
		gpmc,wr-cycle-ns = <132>;
		gpmc,access-ns = <96>;
		gpmc,page-burst-access-ns = <18>;
		gpmc,bus-turnaround-ns = <0>;
		gpmc,cycle2cycle-delay-ns = <0>;
		gpmc,wait-monitoring-ns = <0>;
		gpmc,clk-activation-ns = <5>;
		gpmc,wr-data-mux-bus-ns = <30>;
		gpmc,wr-access-ns = <81>;
		gpmc,clk-activation-ns = <6>;
		gpmc,wr-data-mux-bus-ns = <36>;
		gpmc,wr-access-ns = <96>;
		gpmc,sync-clk-ps = <15000>;

		/*