]> git.baikalelectronics.ru Git - kernel.git/commit
mtd: m25p80: allow arbitrary OF matching for "jedec,spi-nor"
authorBrian Norris <computersforpeace@gmail.com>
Tue, 19 May 2015 21:38:22 +0000 (14:38 -0700)
committerBrian Norris <computersforpeace@gmail.com>
Tue, 21 Jul 2015 16:33:42 +0000 (09:33 -0700)
commit9d1e7a1648d1d61af341b005d2dff54e6ae4e8d2
tree88ced8c091d61e161fc8e83ab9398d16b62a68e2
parentcca1ecddde0d7aae32a4e04d35c573a092cb0485
mtd: m25p80: allow arbitrary OF matching for "jedec,spi-nor"

When we added the "jedec,spi-nor" compatible string for use in this
driver, we added it as a modalias option. The modalias can be derived in
different ways for platform devices vs. device tree (of_*) matching. But
for device tree matching (the primary target of this identifier string),
the modalias is determined from the first entry in the 'compatible'
property. IOW, the following properties would bind to this driver:

// Option (a), modalias = "spi-nor"
compatible = "jedec,spi-nor";

// Option (b), modalias = "spi-nor"
compatible = "idontknowwhatimdoing,spi-nor";

But the following would not:

// Option (c), modalias = "shinynewdevice"
compatible = "myvendor,shinynewdevice", "jedec,spi-nor";

So, we'd like to match (a) and (c) (even when we don't have an explicit
entry for "shinynewdevice"), and we'd rather not allow (b).

To do this, we
  (1) always (for devices without specific platform data) pass the
      modalias to the spi-nor library;
  (2) rework the spi-nor library to not reject "bad" names, and
      instead just fall back to autodetection; and
  (3) add the .of_match_table to properly catch all "jedec,spi-nor".

This allows (a) and (c) without warnings, and rejects (b).

Signed-off-by: Brian Norris <computersforpeace@gmail.com>
drivers/mtd/devices/m25p80.c
drivers/mtd/spi-nor/spi-nor.c