Thread (2 messages) 2 messages, 2 authors, 2011-07-28

[PATCH] mtd/m25p80: add device tree probe support

From: manu <hidden>
Date: 2011-07-28 19:22:59
Also in: linux-devicetree

Dear Grant, Shawn,
I don't this patch is required as m25p** serial flashes are supported 
already with generic OF/SPI and OF/MTD schemes.
I have successfully used it myself on an unmodified 2.6.36.3 vanilla 
kernel on a xilinx/powerpc platform with a m25p32 part from STM.
You will find attached the corresponding working defconfig + dts files 
(appart from partitions which I didn't managed to configure properly...).
Best Regards,

Manuel


Le 25/07/2011 23:19, Grant Likely a ?crit :
On Mon, Jul 25, 2011 at 09:37:43PM +0800, Shawn Guo wrote:
quoted
It adds device tree probe support for m25p80 driver.

Signed-off-by: Shawn Guo<redacted>
Cc: Grant Likely<redacted>
Cc: Artem Bityutskiy<redacted>
Acked-by: Grant Likely<redacted>
quoted
---
  Documentation/devicetree/bindings/mtd/st-m25p.txt |   14 ++++++++++++++
  drivers/mtd/devices/m25p80.c                      |   12 ++++++++++++
  2 files changed, 26 insertions(+), 0 deletions(-)
  create mode 100644 Documentation/devicetree/bindings/mtd/st-m25p.txt
diff --git a/Documentation/devicetree/bindings/mtd/st-m25p.txt b/Documentation/devicetree/bindings/mtd/st-m25p.txt
new file mode 100644
index 0000000..a8c0485
--- /dev/null
+++ b/Documentation/devicetree/bindings/mtd/st-m25p.txt
@@ -0,0 +1,14 @@
+* STMicroelectronics SPI Flash
+
+Required properties:
+- compatible : "st,<model>", "st,m25p".
+
+Examples:
+
+flash: m25p32 at 1 {
+	#address-cells =<1>;
+	#size-cells =<1>;
+	compatible = "st,m25p32", "st,m25p";
+	spi-max-frequency =<20000000>;
+	reg =<1>;
+};
diff --git a/drivers/mtd/devices/m25p80.c b/drivers/mtd/devices/m25p80.c
index e6ba034..d9d4101 100644
--- a/drivers/mtd/devices/m25p80.c
+++ b/drivers/mtd/devices/m25p80.c
@@ -26,6 +26,7 @@
  #include<linux/slab.h>
  #include<linux/sched.h>
  #include<linux/mod_devicetable.h>
+#include<linux/of_device.h>

  #include<linux/mtd/cfi.h>
  #include<linux/mtd/mtd.h>
@@ -767,6 +768,16 @@ static const struct spi_device_id m25p_ids[] = {
  };
  MODULE_DEVICE_TABLE(spi, m25p_ids);

+#ifdef CONFIG_OF
+static const struct of_device_id m25p_dt_ids[] = {
+	{ .compatible = "st,m25p", },
+	{ /* sentinel */ }
+};
+MODULE_DEVICE_TABLE(of, m25p_dt_ids);
+#else
+#define m25p_dt_ids NULL
+#endif
+
  static const struct spi_device_id *__devinit jedec_probe(struct spi_device *spi)
  {
  	int			tmp;
@@ -986,6 +997,7 @@ static struct spi_driver m25p80_driver = {
  		.name	= "m25p80",
  		.bus	=&spi_bus_type,
  		.owner	= THIS_MODULE,
+		.of_match_table = m25p_dt_ids,
  	},
  	.id_table	= m25p_ids,
  	.probe	= m25p_probe,
-- 
1.7.4.1
_______________________________________________
devicetree-discuss mailing list
devicetree-discuss at lists.ozlabs.org
https://lists.ozlabs.org/listinfo/devicetree-discuss
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: sample_defconfig
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20110728/584402c8/attachment-0002.ksh>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: sample_devtree.dts
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20110728/584402c8/attachment-0003.ksh>
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help