162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */
262306a36Sopenharmony_ci#ifndef BCM63XX_NVRAM_H
362306a36Sopenharmony_ci#define BCM63XX_NVRAM_H
462306a36Sopenharmony_ci
562306a36Sopenharmony_ci#include <linux/types.h>
662306a36Sopenharmony_ci
762306a36Sopenharmony_ci/**
862306a36Sopenharmony_ci * bcm63xx_nvram_init() - initializes nvram
962306a36Sopenharmony_ci * @nvram:	address of the nvram data
1062306a36Sopenharmony_ci *
1162306a36Sopenharmony_ci * Initialized the local nvram copy from the target address and checks
1262306a36Sopenharmony_ci * its checksum.
1362306a36Sopenharmony_ci */
1462306a36Sopenharmony_civoid bcm63xx_nvram_init(void *nvram);
1562306a36Sopenharmony_ci
1662306a36Sopenharmony_ci/**
1762306a36Sopenharmony_ci * bcm63xx_nvram_get_name() - returns the board name according to nvram
1862306a36Sopenharmony_ci *
1962306a36Sopenharmony_ci * Returns the board name field from nvram. Note that it might not be
2062306a36Sopenharmony_ci * null terminated if it is exactly 16 bytes long.
2162306a36Sopenharmony_ci */
2262306a36Sopenharmony_ciu8 *bcm63xx_nvram_get_name(void);
2362306a36Sopenharmony_ci
2462306a36Sopenharmony_ci/**
2562306a36Sopenharmony_ci * bcm63xx_nvram_get_mac_address() - register & return a new mac address
2662306a36Sopenharmony_ci * @mac:	pointer to array for allocated mac
2762306a36Sopenharmony_ci *
2862306a36Sopenharmony_ci * Registers and returns a mac address from the allocated macs from nvram.
2962306a36Sopenharmony_ci *
3062306a36Sopenharmony_ci * Returns 0 on success.
3162306a36Sopenharmony_ci */
3262306a36Sopenharmony_ciint bcm63xx_nvram_get_mac_address(u8 *mac);
3362306a36Sopenharmony_ci
3462306a36Sopenharmony_ciint bcm63xx_nvram_get_psi_size(void);
3562306a36Sopenharmony_ci
3662306a36Sopenharmony_ci#endif /* BCM63XX_NVRAM_H */
37