1 /* SPDX-License-Identifier: GPL-2.0+ */
2 /*
3  * Copyright 2011-2012 Freescale Semiconductor, Inc.
4  */
5 
6 #ifndef _FSL_SRIO_H_
7 #define _FSL_SRIO_H_
8 
9 #include <linux/log2.h>
10 
11 enum atmu_size {
12 	ATMU_SIZE_4K = 0xb,
13 	ATMU_SIZE_8K,
14 	ATMU_SIZE_16K,
15 	ATMU_SIZE_32K,
16 	ATMU_SIZE_64K,
17 	ATMU_SIZE_128K,
18 	ATMU_SIZE_256K,
19 	ATMU_SIZE_512K,
20 	ATMU_SIZE_1M,
21 	ATMU_SIZE_2M,
22 	ATMU_SIZE_4M,
23 	ATMU_SIZE_8M,
24 	ATMU_SIZE_16M,
25 	ATMU_SIZE_32M,
26 	ATMU_SIZE_64M,
27 	ATMU_SIZE_128M,
28 	ATMU_SIZE_256M,
29 	ATMU_SIZE_512M,
30 	ATMU_SIZE_1G,
31 	ATMU_SIZE_2G,
32 	ATMU_SIZE_4G,
33 	ATMU_SIZE_8G,
34 	ATMU_SIZE_16G,
35 	ATMU_SIZE_32G,
36 	ATMU_SIZE_64G,
37 };
38 
39 #define atmu_size_mask(sz)	(__ilog2_u64(sz) - 1)
40 #define atmu_size_bytes(x)	(1ULL << ((x & 0x3f) + 1))
41 
42 extern void srio_init(void);
43 #ifdef CONFIG_FSL_CORENET
44 extern void srio_boot_master(int port);
45 extern void srio_boot_master_release_slave(int port);
46 #endif
47 #endif
48