diff options
author | Heikki Krogerus <heikki.krogerus@linux.intel.com> | 2015-11-30 10:11:33 -0500 |
---|---|---|
committer | Rafael J. Wysocki <rafael.j.wysocki@intel.com> | 2015-12-06 20:29:22 -0500 |
commit | a85f420475334caed12b057ddcaa0b58e0b1ebb7 (patch) | |
tree | 1a3fb60d5ab64d1e7e24f0aefcbafdaf0af92418 /include/linux/property.h | |
parent | 66586baba56679baa2da1a10a96ccf15b1e96b95 (diff) |
device property: helper macros for property entry creation
Marcos for easier creation of build-in property entries.
Signed-off-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Diffstat (limited to 'include/linux/property.h')
-rw-r--r-- | include/linux/property.h | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/include/linux/property.h b/include/linux/property.h index 69a8a0817fd3..e4f29d8b9ceb 100644 --- a/include/linux/property.h +++ b/include/linux/property.h | |||
@@ -175,6 +175,61 @@ struct property_entry { | |||
175 | }; | 175 | }; |
176 | }; | 176 | }; |
177 | 177 | ||
178 | #define PROPERTY_ENTRY_INTEGER_ARRAY(_name_, _type_, _val_) \ | ||
179 | { \ | ||
180 | .name = _name_, \ | ||
181 | .length = ARRAY_SIZE(_val_) * sizeof(_type_), \ | ||
182 | .is_array = true, \ | ||
183 | .pointer._type_##_data = _val_, \ | ||
184 | } | ||
185 | |||
186 | #define PROPERTY_ENTRY_U8_ARRAY(_name_, _val_) \ | ||
187 | PROPERTY_ENTRY_INTEGER_ARRAY(_name_, u8, _val_) | ||
188 | #define PROPERTY_ENTRY_U16_ARRAY(_name_, _val_) \ | ||
189 | PROPERTY_ENTRY_INTEGER_ARRAY(_name_, u16, _val_) | ||
190 | #define PROPERTY_ENTRY_U32_ARRAY(_name_, _val_) \ | ||
191 | PROPERTY_ENTRY_INTEGER_ARRAY(_name_, u32, _val_) | ||
192 | #define PROPERTY_ENTRY_U64_ARRAY(_name_, _val_) \ | ||
193 | PROPERTY_ENTRY_INTEGER_ARRAY(_name_, u64, _val_) | ||
194 | |||
195 | #define PROPERTY_ENTRY_STRING_ARRAY(_name_, _val_) \ | ||
196 | { \ | ||
197 | .name = _name_, \ | ||
198 | .length = ARRAY_SIZE(_val_) * sizeof(const char *), \ | ||
199 | .is_array = true, \ | ||
200 | .is_string = true, \ | ||
201 | .pointer.str = _val_, \ | ||
202 | } | ||
203 | |||
204 | #define PROPERTY_ENTRY_INTEGER(_name_, _type_, _val_) \ | ||
205 | { \ | ||
206 | .name = _name_, \ | ||
207 | .length = sizeof(_type_), \ | ||
208 | .value._type_##_data = _val_, \ | ||
209 | } | ||
210 | |||
211 | #define PROPERTY_ENTRY_U8(_name_, _val_) \ | ||
212 | PROPERTY_ENTRY_INTEGER(_name_, u8, _val_) | ||
213 | #define PROPERTY_ENTRY_U16(_name_, _val_) \ | ||
214 | PROPERTY_ENTRY_INTEGER(_name_, u16, _val_) | ||
215 | #define PROPERTY_ENTRY_U32(_name_, _val_) \ | ||
216 | PROPERTY_ENTRY_INTEGER(_name_, u32, _val_) | ||
217 | #define PROPERTY_ENTRY_U64(_name_, _val_) \ | ||
218 | PROPERTY_ENTRY_INTEGER(_name_, u64, _val_) | ||
219 | |||
220 | #define PROPERTY_ENTRY_STRING(_name_, _val_) \ | ||
221 | { \ | ||
222 | .name = _name_, \ | ||
223 | .length = sizeof(_val_), \ | ||
224 | .is_string = true, \ | ||
225 | .value.str = _val_, \ | ||
226 | } | ||
227 | |||
228 | #define PROPERTY_ENTRY_BOOL(_name_) \ | ||
229 | { \ | ||
230 | .name = _name_, \ | ||
231 | } | ||
232 | |||
178 | /** | 233 | /** |
179 | * struct property_set - Collection of "built-in" device properties. | 234 | * struct property_set - Collection of "built-in" device properties. |
180 | * @fwnode: Handle to be pointed to by the fwnode field of struct device. | 235 | * @fwnode: Handle to be pointed to by the fwnode field of struct device. |