1 /* 2 * This program is free software; you can redistribute it and/or modify it 3 * under the terms of the GNU General Public License as published by the 4 * Free Software Foundation; either version 2 of the License, or (at your 5 * option) any later version. 6 */ 7 8 #ifndef __BCM47XX_NVRAM_H 9 #define __BCM47XX_NVRAM_H 10 11 #include <linux/types.h> 12 #include <linux/kernel.h> 13 #include <linux/vmalloc.h> 14 15 #ifdef CONFIG_BCM47XX_NVRAM 16 int bcm47xx_nvram_init_from_mem(u32 base, u32 lim); 17 int bcm47xx_nvram_getenv(const char *name, char *val, size_t val_len); 18 int bcm47xx_nvram_gpio_pin(const char *name); 19 char *bcm47xx_nvram_get_contents(size_t *val_len); 20 static inline void bcm47xx_nvram_release_contents(char *nvram) 21 { 22 vfree(nvram); 23 }; 24 #else 25 static inline int bcm47xx_nvram_init_from_mem(u32 base, u32 lim) 26 { 27 return -ENOTSUPP; 28 }; 29 static inline int bcm47xx_nvram_getenv(const char *name, char *val, 30 size_t val_len) 31 { 32 return -ENOTSUPP; 33 }; 34 static inline int bcm47xx_nvram_gpio_pin(const char *name) 35 { 36 return -ENOTSUPP; 37 }; 38 39 static inline char *bcm47xx_nvram_get_contents(size_t *val_len) 40 { 41 return NULL; 42 }; 43 44 static inline void bcm47xx_nvram_release_contents(char *nvram) 45 { 46 }; 47 #endif 48 49 #endif /* __BCM47XX_NVRAM_H */ 50