1 /*
2  * Copyright (c) 2016-2018 The Linux Foundation. All rights reserved.
3  *
4  * Permission to use, copy, modify, and/or distribute this software for
5  * any purpose with or without fee is hereby granted, provided that the
6  * above copyright notice and this permission notice appear in all
7  * copies.
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
10  * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
11  * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
12  * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
13  * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
14  * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
15  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
16  * PERFORMANCE OF THIS SOFTWARE.
17  */
18 
19 #ifndef _PHYRX_OTHER_RECEIVE_INFO_RU_DETAILS_H_
20 #define _PHYRX_OTHER_RECEIVE_INFO_RU_DETAILS_H_
21 #if !defined(__ASSEMBLER__)
22 #endif
23 
24 
25 // ################ START SUMMARY #################
26 //
27 //	Dword	Fields
28 //	0	ru_details_channel_0[31:0]
29 //	1	ru_details_channel_1[31:0]
30 //	2	spare[31:0]
31 //
32 // ################ END SUMMARY #################
33 
34 #define NUM_OF_DWORDS_PHYRX_OTHER_RECEIVE_INFO_RU_DETAILS 3
35 
36 struct phyrx_other_receive_info_ru_details {
37              uint32_t ru_details_channel_0            : 32; //[31:0]
38              uint32_t ru_details_channel_1            : 32; //[31:0]
39              uint32_t spare                           : 32; //[31:0]
40 };
41 
42 /*
43 
44 ru_details_channel_0
45 
46 			Ru_allocation from content channel 0
47 
48 			[7:0] for 20/40 MHz
49 
50 			[15:0] for 80 MHz
51 
52 			[31:0] for 160 MHz
53 
54 			<legal all>
55 
56 ru_details_channel_1
57 
58 			Ru_allocation from content channel 1
59 
60 			[7:0] for 40 MHz
61 
62 			[15:0] for 80 MHz
63 
64 			[31:0] for 160 MHz
65 
66 			<legal all>
67 
68 spare
69 
70 			Extra spare bits added to convey additional information
71 
72 			<legal all>
73 */
74 
75 
76 /* Description		PHYRX_OTHER_RECEIVE_INFO_RU_DETAILS_0_RU_DETAILS_CHANNEL_0
77 
78 			Ru_allocation from content channel 0
79 
80 			[7:0] for 20/40 MHz
81 
82 			[15:0] for 80 MHz
83 
84 			[31:0] for 160 MHz
85 
86 			<legal all>
87 */
88 #define PHYRX_OTHER_RECEIVE_INFO_RU_DETAILS_0_RU_DETAILS_CHANNEL_0_OFFSET 0x00000000
89 #define PHYRX_OTHER_RECEIVE_INFO_RU_DETAILS_0_RU_DETAILS_CHANNEL_0_LSB 0
90 #define PHYRX_OTHER_RECEIVE_INFO_RU_DETAILS_0_RU_DETAILS_CHANNEL_0_MASK 0xffffffff
91 
92 /* Description		PHYRX_OTHER_RECEIVE_INFO_RU_DETAILS_1_RU_DETAILS_CHANNEL_1
93 
94 			Ru_allocation from content channel 1
95 
96 			[7:0] for 40 MHz
97 
98 			[15:0] for 80 MHz
99 
100 			[31:0] for 160 MHz
101 
102 			<legal all>
103 */
104 #define PHYRX_OTHER_RECEIVE_INFO_RU_DETAILS_1_RU_DETAILS_CHANNEL_1_OFFSET 0x00000004
105 #define PHYRX_OTHER_RECEIVE_INFO_RU_DETAILS_1_RU_DETAILS_CHANNEL_1_LSB 0
106 #define PHYRX_OTHER_RECEIVE_INFO_RU_DETAILS_1_RU_DETAILS_CHANNEL_1_MASK 0xffffffff
107 
108 /* Description		PHYRX_OTHER_RECEIVE_INFO_RU_DETAILS_2_SPARE
109 
110 			Extra spare bits added to convey additional information
111 
112 			<legal all>
113 */
114 #define PHYRX_OTHER_RECEIVE_INFO_RU_DETAILS_2_SPARE_OFFSET           0x00000008
115 #define PHYRX_OTHER_RECEIVE_INFO_RU_DETAILS_2_SPARE_LSB              0
116 #define PHYRX_OTHER_RECEIVE_INFO_RU_DETAILS_2_SPARE_MASK             0xffffffff
117 
118 
119 #endif // _PHYRX_OTHER_RECEIVE_INFO_RU_DETAILS_H_
120