[OpenWrt-Devel] 回复:[PATCH] ramips: reset m25p80 when shutdown
未命名
countrysideboy at qq.com
Mon Nov 16 12:03:34 EST 2015
Instead of use the set_4byte function in spi-nor.c, I use this patch for simplest modification. In fact, set_4byte also send 0xe9 command to the spi flash.
Signed-off-by: Shonn Lu <countrysideboy at qq.com>
---
.../0064-reset-m25p80-when-shutdown.patch | 27 ++++++++++++++++++++++
1 file changed, 27 insertions(+)
create mode 100644 target/linux/ramips/patches-3.18/0064-reset-m25p80-when-shutdown.patch
diff --git a/target/linux/ramips/patches-3.18/0064-reset-m25p80-when-shutdown.patch b/target/linux/ramips/patches-3.18/0064-reset-m25p80-when-shutdown.patch
new file mode 100644
index 0000000..aca758d
--- /dev/null
+++ b/target/linux/ramips/patches-3.18/0064-reset-m25p80-when-shutdown.patch
@@ -0,0 +1,27 @@
+--- a/drivers/mtd/devices/m25p80.c
++++ b/drivers/mtd/devices/m25p80.c
+@@ -322,6 +322,16 @@
+ {
+ struct m25p *flash = spi_get_drvdata(spi);
+
++ if ((&flash->spi_nor)->addr_width > 3) {
++ printk(KERN_INFO "m25p80: exit 4-byte address mode\n");
++ flash->command[0] = SPINOR_OP_EX4B; // exit 4-byte address mode: 0xe9
++ spi_write(flash->spi, flash->command, 1);
++ flash->command[0] = 0x66; // enable reset
++ spi_write(flash->spi, flash->command, 1);
++ flash->command[0] = 0x99; // reset
++ spi_write(flash->spi, flash->command, 1);
++ }
++
+ /* Clean up MTD stuff. */
+ return mtd_device_unregister(&flash->mtd);
+ }
+@@ -385,6 +395,7 @@
+ .id_table = m25p_ids,
+ .probe = m25p_probe,
+ .remove = m25p_remove,
++ .shutdown = m25p_remove, // add shutdown method to reset spi flash
+
+ /* REVISIT: many of these chips have deep power-down modes, which
+ * should clearly be entered on suspend() to minimize power use.
--
1.9.1
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.infradead.org/pipermail/openwrt-devel/attachments/20151117/bdb0495c/attachment.htm>
-------------- next part --------------
_______________________________________________
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel
More information about the openwrt-devel
mailing list