85 lines
2.6 KiB
Diff
85 lines
2.6 KiB
Diff
From a85f420475334caed12b057ddcaa0b58e0b1ebb7 Mon Sep 17 00:00:00 2001
|
|
From: Heikki Krogerus <heikki.krogerus@linux.intel.com>
|
|
Date: Mon, 30 Nov 2015 17:11:33 +0200
|
|
Subject: [PATCH 05/16] 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>
|
|
---
|
|
include/linux/property.h | 55 ++++++++++++++++++++++++++++++++++++++++++++++++
|
|
1 file changed, 55 insertions(+)
|
|
|
|
diff --git a/include/linux/property.h b/include/linux/property.h
|
|
index 69a8a08..e4f29d8 100644
|
|
--- a/include/linux/property.h
|
|
+++ b/include/linux/property.h
|
|
@@ -175,6 +175,61 @@ struct property_entry {
|
|
};
|
|
};
|
|
|
|
+#define PROPERTY_ENTRY_INTEGER_ARRAY(_name_, _type_, _val_) \
|
|
+{ \
|
|
+ .name = _name_, \
|
|
+ .length = ARRAY_SIZE(_val_) * sizeof(_type_), \
|
|
+ .is_array = true, \
|
|
+ .pointer._type_##_data = _val_, \
|
|
+}
|
|
+
|
|
+#define PROPERTY_ENTRY_U8_ARRAY(_name_, _val_) \
|
|
+ PROPERTY_ENTRY_INTEGER_ARRAY(_name_, u8, _val_)
|
|
+#define PROPERTY_ENTRY_U16_ARRAY(_name_, _val_) \
|
|
+ PROPERTY_ENTRY_INTEGER_ARRAY(_name_, u16, _val_)
|
|
+#define PROPERTY_ENTRY_U32_ARRAY(_name_, _val_) \
|
|
+ PROPERTY_ENTRY_INTEGER_ARRAY(_name_, u32, _val_)
|
|
+#define PROPERTY_ENTRY_U64_ARRAY(_name_, _val_) \
|
|
+ PROPERTY_ENTRY_INTEGER_ARRAY(_name_, u64, _val_)
|
|
+
|
|
+#define PROPERTY_ENTRY_STRING_ARRAY(_name_, _val_) \
|
|
+{ \
|
|
+ .name = _name_, \
|
|
+ .length = ARRAY_SIZE(_val_) * sizeof(const char *), \
|
|
+ .is_array = true, \
|
|
+ .is_string = true, \
|
|
+ .pointer.str = _val_, \
|
|
+}
|
|
+
|
|
+#define PROPERTY_ENTRY_INTEGER(_name_, _type_, _val_) \
|
|
+{ \
|
|
+ .name = _name_, \
|
|
+ .length = sizeof(_type_), \
|
|
+ .value._type_##_data = _val_, \
|
|
+}
|
|
+
|
|
+#define PROPERTY_ENTRY_U8(_name_, _val_) \
|
|
+ PROPERTY_ENTRY_INTEGER(_name_, u8, _val_)
|
|
+#define PROPERTY_ENTRY_U16(_name_, _val_) \
|
|
+ PROPERTY_ENTRY_INTEGER(_name_, u16, _val_)
|
|
+#define PROPERTY_ENTRY_U32(_name_, _val_) \
|
|
+ PROPERTY_ENTRY_INTEGER(_name_, u32, _val_)
|
|
+#define PROPERTY_ENTRY_U64(_name_, _val_) \
|
|
+ PROPERTY_ENTRY_INTEGER(_name_, u64, _val_)
|
|
+
|
|
+#define PROPERTY_ENTRY_STRING(_name_, _val_) \
|
|
+{ \
|
|
+ .name = _name_, \
|
|
+ .length = sizeof(_val_), \
|
|
+ .is_string = true, \
|
|
+ .value.str = _val_, \
|
|
+}
|
|
+
|
|
+#define PROPERTY_ENTRY_BOOL(_name_) \
|
|
+{ \
|
|
+ .name = _name_, \
|
|
+}
|
|
+
|
|
/**
|
|
* struct property_set - Collection of "built-in" device properties.
|
|
* @fwnode: Handle to be pointed to by the fwnode field of struct device.
|
|
--
|
|
2.5.0
|
|
|