Hi all, while looking at adding OF support for the ath9k driver I had the problem of reading the EEPROM data. On the SoC platforms this data is stored in an SPI flash along with a few other things. In OpenWRT/LEDE this data is read from the board init code using the fact that the flash is (normaly) readable from a memory map. A bit too hackish for my taste.
This is just one example, there is various other similar cases, mostly with MAC addresses. I thought it would be nicer if we had a clean API for this, similar to the firmware API but per device instance instead of beeing per driver. The device driver wouldn't have to care where the data is stored, they just request it and the backend take care of reading the EEPROM, MTD or whatever is used on the board. This series implement such an API along with an implementation for MTD devices and a use in the ath9k driver. As this is an RFC I didn't yet write the OF binding documentation, that will come later if the feedback is positive. Alban Bedel (3): drivers: Add an API to read device specific config data mtd: Add support for reading device data out of MTD devices ath9k: ahb: Add OF support drivers/base/Kconfig | 6 + drivers/base/Makefile | 1 + drivers/base/devdata.c | 204 +++++++++++++++++++++++++++++++++ drivers/mtd/Kconfig | 9 ++ drivers/mtd/Makefile | 1 + drivers/mtd/devdata.c | 70 +++++++++++ drivers/net/wireless/ath/ath9k/Kconfig | 1 + drivers/net/wireless/ath/ath9k/ahb.c | 55 +++++++-- drivers/net/wireless/ath/ath9k/init.c | 41 ++++++- include/linux/devdata.h | 79 +++++++++++++ 10 files changed, 459 insertions(+), 8 deletions(-) create mode 100644 drivers/base/devdata.c create mode 100644 drivers/mtd/devdata.c create mode 100644 include/linux/devdata.h -- 2.7.4