xref: /linux/arch/mips/include/asm/mach-bcm63xx/bcm63xx_nvram.h (revision 498495dba268b20e8eadd7fe93c140c68b6cc9d2)
1*b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */
2e7e333cbSJonas Gorski #ifndef BCM63XX_NVRAM_H
3e7e333cbSJonas Gorski #define BCM63XX_NVRAM_H
4e7e333cbSJonas Gorski 
5e7e333cbSJonas Gorski #include <linux/types.h>
6e7e333cbSJonas Gorski 
7e7e333cbSJonas Gorski /**
8e7e333cbSJonas Gorski  * bcm63xx_nvram_init() - initializes nvram
9e7e333cbSJonas Gorski  * @nvram:	address of the nvram data
10e7e333cbSJonas Gorski  *
11e7e333cbSJonas Gorski  * Initialized the local nvram copy from the target address and checks
12e7e333cbSJonas Gorski  * its checksum.
13e7e333cbSJonas Gorski  */
1497367519SJonas Gorski void bcm63xx_nvram_init(void *nvram);
15e7e333cbSJonas Gorski 
16e7e333cbSJonas Gorski /**
17e7e333cbSJonas Gorski  * bcm63xx_nvram_get_name() - returns the board name according to nvram
18e7e333cbSJonas Gorski  *
19e7e333cbSJonas Gorski  * Returns the board name field from nvram. Note that it might not be
20e7e333cbSJonas Gorski  * null terminated if it is exactly 16 bytes long.
21e7e333cbSJonas Gorski  */
22e7e333cbSJonas Gorski u8 *bcm63xx_nvram_get_name(void);
23e7e333cbSJonas Gorski 
24e7e333cbSJonas Gorski /**
25e7e333cbSJonas Gorski  * bcm63xx_nvram_get_mac_address() - register & return a new mac address
26e7e333cbSJonas Gorski  * @mac:	pointer to array for allocated mac
27e7e333cbSJonas Gorski  *
28e7e333cbSJonas Gorski  * Registers and returns a mac address from the allocated macs from nvram.
29e7e333cbSJonas Gorski  *
30e7e333cbSJonas Gorski  * Returns 0 on success.
31e7e333cbSJonas Gorski  */
32e7e333cbSJonas Gorski int bcm63xx_nvram_get_mac_address(u8 *mac);
33e7e333cbSJonas Gorski 
34b0a119fdSRalf Baechle int bcm63xx_nvram_get_psi_size(void);
35b0a119fdSRalf Baechle 
36e7e333cbSJonas Gorski #endif /* BCM63XX_NVRAM_H */
37