Merge tag 'mips_fixes_4.21_1' of git://git.kernel.org/pub/scm/linux/kernel/git/mips...
[sfrench/cifs-2.6.git] / arch / arm / mach-davinci / board-dm365-evm.c
index 09e439d4abf5398a251381991819e2614610c0e6..e3b0b701e3956fd88cfc29412ff2cec4828e1f12 100644 (file)
@@ -24,6 +24,7 @@
 #include <linux/mtd/partitions.h>
 #include <linux/slab.h>
 #include <linux/mtd/rawnand.h>
+#include <linux/nvmem-provider.h>
 #include <linux/input.h>
 #include <linux/spi/spi.h>
 #include <linux/spi/eeprom.h>
@@ -203,6 +204,27 @@ static struct platform_device davinci_aemif_device = {
        .num_resources          = ARRAY_SIZE(davinci_aemif_resources),
 };
 
+static struct nvmem_cell_info davinci_nvmem_cells[] = {
+       {
+               .name           = "macaddr",
+               .offset         = 0x7f00,
+               .bytes          = ETH_ALEN,
+       }
+};
+
+static struct nvmem_cell_table davinci_nvmem_cell_table = {
+       .nvmem_name     = "1-00500",
+       .cells          = davinci_nvmem_cells,
+       .ncells         = ARRAY_SIZE(davinci_nvmem_cells),
+};
+
+static struct nvmem_cell_lookup davinci_nvmem_cell_lookup = {
+       .nvmem_name     = "1-00500",
+       .cell_name      = "macaddr",
+       .dev_id         = "davinci_emac.1",
+       .con_id         = "mac-address",
+};
+
 static struct at24_platform_data eeprom_info = {
        .byte_len       = (256*1024) / 8,
        .page_size      = 64,
@@ -781,6 +803,9 @@ static __init void dm365_evm_init(void)
        if (ret)
                pr_warn("%s: GPIO init failed: %d\n", __func__, ret);
 
+       nvmem_add_cell_table(&davinci_nvmem_cell_table);
+       nvmem_add_cell_lookups(&davinci_nvmem_cell_lookup, 1);
+
        evm_init_i2c();
        davinci_serial_init(dm365_serial_device);