• Brian Norris's avatar
    mtd: m25p80: allow arbitrary OF matching for "jedec,spi-nor" · 43163022
    Brian Norris authored
    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: default avatarBrian Norris <computersforpeace@gmail.com>
    43163022
spi-nor.c 34.7 KB