[RFC 0/3] drivers: Add an API to read device specific config data

From: Alban
Date: Mon Feb 27 2017 - 15:30:18 EST


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