Merge git://git.denx.de/u-boot-sunxi
[oweals/u-boot.git] / include / bootcount.h
1 /* SPDX-License-Identifier: GPL-2.0+ */
2 /*
3  * (C) Copyright 2012
4  * Stefan Roese, DENX Software Engineering, sr@denx.de.
5  */
6
7 #include <common.h>
8 #include <asm/io.h>
9 #include <asm/byteorder.h>
10
11 #if !defined(CONFIG_SYS_BOOTCOUNT_LE) && !defined(CONFIG_SYS_BOOTCOUNT_BE)
12 # if __BYTE_ORDER == __LITTLE_ENDIAN
13 #  define CONFIG_SYS_BOOTCOUNT_LE
14 # else
15 #  define CONFIG_SYS_BOOTCOUNT_BE
16 # endif
17 #endif
18
19 #ifdef CONFIG_SYS_BOOTCOUNT_LE
20 static inline void raw_bootcount_store(volatile u32 *addr, u32 data)
21 {
22         out_le32(addr, data);
23 }
24
25 static inline u32 raw_bootcount_load(volatile u32 *addr)
26 {
27         return in_le32(addr);
28 }
29 #else
30 static inline void raw_bootcount_store(volatile u32 *addr, u32 data)
31 {
32         out_be32(addr, data);
33 }
34
35 static inline u32 raw_bootcount_load(volatile u32 *addr)
36 {
37         return in_be32(addr);
38 }
39 #endif