1/* SPDX-License-Identifier: GPL-2.0-or-later */ 2/* 3 */ 4 5#ifndef __BCM47XX_NVRAM_H 6#define __BCM47XX_NVRAM_H 7 8#include <linux/errno.h> 9#include <linux/types.h> 10#include <linux/kernel.h> 11#include <linux/vmalloc.h> 12 13#ifdef CONFIG_BCM47XX_NVRAM 14int bcm47xx_nvram_init_from_iomem(void __iomem *nvram_start, size_t res_size); 15int bcm47xx_nvram_init_from_mem(u32 base, u32 lim); 16int bcm47xx_nvram_getenv(const char *name, char *val, size_t val_len); 17int bcm47xx_nvram_gpio_pin(const char *name); 18char *bcm47xx_nvram_get_contents(size_t *val_len); 19static inline void bcm47xx_nvram_release_contents(char *nvram) 20{ 21 vfree(nvram); 22}; 23#else 24static inline int bcm47xx_nvram_init_from_iomem(void __iomem *nvram_start, 25 size_t res_size) 26{ 27 return -ENOTSUPP; 28} 29static inline int bcm47xx_nvram_init_from_mem(u32 base, u32 lim) 30{ 31 return -ENOTSUPP; 32}; 33static inline int bcm47xx_nvram_getenv(const char *name, char *val, 34 size_t val_len) 35{ 36 return -ENOTSUPP; 37}; 38static inline int bcm47xx_nvram_gpio_pin(const char *name) 39{ 40 return -ENOTSUPP; 41}; 42 43static inline char *bcm47xx_nvram_get_contents(size_t *val_len) 44{ 45 return NULL; 46}; 47 48static inline void bcm47xx_nvram_release_contents(char *nvram) 49{ 50}; 51#endif 52 53#endif /* __BCM47XX_NVRAM_H */ 54