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

Marek Vasut marek.vasut at gmail.com
Mon Feb 27 12:42:38 PST 2017


On 02/27/2017 09:28 PM, Alban wrote:
> 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.

Can't we use the NVMEM for this stuff ?

> 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
> 


-- 
Best regards,
Marek Vasut



More information about the linux-mtd mailing list