| /* SPDX-License-Identifier: GPL-2.0-only */ |
| /* |
| * Copyright (C) ST-Ericsson SA 2011 |
| * Author: Lee Jones <lee.jones@linaro.org> for ST-Ericsson. |
| */ |
| #ifndef __SOC_BUS_H |
| #define __SOC_BUS_H |
| |
| #include <linux/device.h> |
| |
| struct soc_device_attribute { |
| const char *machine; |
| const char *family; |
| const char *revision; |
| const char *serial_number; |
| const char *soc_id; |
| const void *data; |
| const struct attribute_group *custom_attr_group; |
| }; |
| |
| /** |
| * soc_device_register - register SoC as a device |
| * @soc_plat_dev_attr: Attributes passed from platform to be attributed to a SoC |
| */ |
| struct soc_device *soc_device_register( |
| struct soc_device_attribute *soc_plat_dev_attr); |
| |
| /** |
| * soc_device_unregister - unregister SoC device |
| * @dev: SoC device to be unregistered |
| */ |
| void soc_device_unregister(struct soc_device *soc_dev); |
| |
| /** |
| * soc_device_to_device - helper function to fetch struct device |
| * @soc: Previously registered SoC device container |
| */ |
| struct device *soc_device_to_device(struct soc_device *soc); |
| |
| #ifdef CONFIG_SOC_BUS |
| const struct soc_device_attribute *soc_device_match( |
| const struct soc_device_attribute *matches); |
| #else |
| static inline const struct soc_device_attribute *soc_device_match( |
| const struct soc_device_attribute *matches) { return NULL; } |
| #endif |
| |
| #endif /* __SOC_BUS_H */ |