Commit 7c0ed565 authored by Boris Brezillon's avatar Boris Brezillon
Browse files

Merge tag 'spi-nor/for-4.17' of git://git.infradead.org/linux-mtd into mtd/next

* Make fsl-quaspi assign different names to MTD devices connected
  to the same QSPI controller
* Remove an unneeded driver.bus assigned in the fsl-qspi driver
parents b756816d e8de85d5
Loading
Loading
Loading
Loading
+24 −0
Original line number Diff line number Diff line
@@ -39,3 +39,27 @@ qspi0: quadspi@40044000 {
		....
	};
};

Example showing the usage of two SPI NOR devices:

&qspi2 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_qspi2>;
	status = "okay";

	flash0: n25q256a@0 {
		#address-cells = <1>;
		#size-cells = <1>;
		compatible = "micron,n25q256a", "jedec,spi-nor";
		spi-max-frequency = <29000000>;
		reg = <0>;
	};

	flash1: n25q256a@1 {
		#address-cells = <1>;
		#size-cells = <1>;
		compatible = "micron,n25q256a", "jedec,spi-nor";
		spi-max-frequency = <29000000>;
		reg = <1>;
	};
};
+18 −1
Original line number Diff line number Diff line
@@ -1051,6 +1051,24 @@ static int fsl_qspi_probe(struct platform_device *pdev)
		spi_nor_set_flash_node(nor, np);
		nor->priv = q;

		if (q->nor_num > 1 && !mtd->name) {
			int spiflash_idx;

			ret = of_property_read_u32(np, "reg", &spiflash_idx);
			if (!ret) {
				mtd->name = devm_kasprintf(dev, GFP_KERNEL,
							   "%s-%d",
							   dev_name(dev),
							   spiflash_idx);
				if (!mtd->name) {
					ret = -ENOMEM;
					goto mutex_failed;
				}
			} else {
				dev_warn(dev, "reg property is missing\n");
			}
		}

		/* fill the hooks */
		nor->read_reg = fsl_qspi_read_reg;
		nor->write_reg = fsl_qspi_write_reg;
@@ -1174,7 +1192,6 @@ static int fsl_qspi_resume(struct platform_device *pdev)
static struct platform_driver fsl_qspi_driver = {
	.driver = {
		.name	= "fsl-quadspi",
		.bus	= &platform_bus_type,
		.of_match_table = fsl_qspi_dt_ids,
	},
	.probe          = fsl_qspi_probe,