Commit | Line | Data |
---|---|---|
af873fce | 1 | /* SPDX-License-Identifier: GPL-2.0-only */ |
74d1d82c LJ |
2 | /* |
3 | * Copyright (C) ST-Ericsson SA 2011 | |
4 | * Author: Lee Jones <lee.jones@linaro.org> for ST-Ericsson. | |
74d1d82c LJ |
5 | */ |
6 | #ifndef __SOC_BUS_H | |
7 | #define __SOC_BUS_H | |
8 | ||
9 | #include <linux/device.h> | |
10 | ||
11 | struct soc_device_attribute { | |
12 | const char *machine; | |
13 | const char *family; | |
14 | const char *revision; | |
9aebf4de | 15 | const char *serial_number; |
74d1d82c | 16 | const char *soc_id; |
c97db7cc | 17 | const void *data; |
c31e7312 | 18 | const struct attribute_group *custom_attr_group; |
74d1d82c LJ |
19 | }; |
20 | ||
21 | /** | |
22 | * soc_device_register - register SoC as a device | |
23 | * @soc_plat_dev_attr: Attributes passed from platform to be attributed to a SoC | |
24 | */ | |
25 | struct soc_device *soc_device_register( | |
26 | struct soc_device_attribute *soc_plat_dev_attr); | |
27 | ||
28 | /** | |
29 | * soc_device_unregister - unregister SoC device | |
30 | * @dev: SoC device to be unregistered | |
31 | */ | |
32 | void soc_device_unregister(struct soc_device *soc_dev); | |
33 | ||
34 | /** | |
35 | * soc_device_to_device - helper function to fetch struct device | |
36 | * @soc: Previously registered SoC device container | |
37 | */ | |
38 | struct device *soc_device_to_device(struct soc_device *soc); | |
39 | ||
da65a158 | 40 | #ifdef CONFIG_SOC_BUS |
c97db7cc AB |
41 | const struct soc_device_attribute *soc_device_match( |
42 | const struct soc_device_attribute *matches); | |
da65a158 GU |
43 | #else |
44 | static inline const struct soc_device_attribute *soc_device_match( | |
45 | const struct soc_device_attribute *matches) { return NULL; } | |
46 | #endif | |
47 | ||
74d1d82c | 48 | #endif /* __SOC_BUS_H */ |