Hello, Following Greg's opposition to merge the current nvmem layout support proposal [1], arguing that it would eventually grow the size of the Linux kernel and asking for some "modularization" support, here is a proposal to turn layout drivers into regular tristate drivers. The first three patches are preparation changes in order to extend (and fix) a little bit the of/device.c support. The fix does not seem to impact most of the current users so I guess it can live with the rest of the series in order to avoid future merge conflicts. The nvmem core is then extended to support the absence of layouts and possibly lead to probe deferrals when relevant. Finally, the two existing layout drivers are converted into modules and their Kconfig symbols changed to tristate. The base series on which these changes apply is still contained in [1], I would prefer to keep it as it was and apply this series on top of it. Tests have been conducted on a Marvell Prestera switch with the mvpp2 Ethernet driver calling for a MAC address stored in the ONIE TLV table available through a layout driver in an EEPROM/MTD device. [1] https://github.com/miquelraynal/linux/tree/nvmem-next/layouts Thanks, Miquèl Miquel Raynal (8): of: Fix modalias string generation of: Change of_device_get_modalias() main argument of: Create an of_device_request_module() receiving an OF node nvmem: core: Fix error path ordering nvmem: core: Handle the absence of expected layouts nvmem: core: Request layout modules loading nvmem: layouts: sl28vpd: Convert layout driver into a module nvmem: layouts: onie-tlv: Convert layout driver into a module drivers/nvmem/core.c | 20 ++++++++++++-- drivers/nvmem/layouts/Kconfig | 4 +-- drivers/nvmem/layouts/onie-tlv.c | 15 ++++++++++- drivers/nvmem/layouts/sl28vpd.c | 14 +++++++++- drivers/of/device.c | 45 ++++++++++++++++++++++---------- include/linux/of_device.h | 6 +++++ 6 files changed, 84 insertions(+), 20 deletions(-) -- 2.34.1