diff options
| author | Lee Jones <lee.jones@linaro.org> | 2012-02-06 14:22:22 -0500 |
|---|---|---|
| committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2012-02-10 14:42:25 -0500 |
| commit | 74d1d82cdaaec727f5072eb1c9f49b7e920e076f (patch) | |
| tree | a1bee0010203df0465df33fb337ae66bb6b59fee /include/linux | |
| parent | 956563362be8ac7ce084b00825168be1adfb29ee (diff) | |
drivers/base: add bus for System-on-Chip devices
Traditionally, any System-on-Chip based platform creates a flat list
of platform_devices directly under /sys/devices/platform.
In order to give these some better structure, this introduces a new
bus type for soc_devices that are registered with the new
soc_device_register() function. All devices that are on the same
chip should then be registered as child devices of the soc device.
The soc bus also exports a few standardised device attributes which
allow user space to query the specific type of soc.
Signed-off-by: Lee Jones <lee.jones@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/sys_soc.h | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/include/linux/sys_soc.h b/include/linux/sys_soc.h new file mode 100644 index 000000000000..2739ccb69571 --- /dev/null +++ b/include/linux/sys_soc.h | |||
| @@ -0,0 +1,37 @@ | |||
| 1 | /* | ||
| 2 | * Copyright (C) ST-Ericsson SA 2011 | ||
| 3 | * Author: Lee Jones <lee.jones@linaro.org> for ST-Ericsson. | ||
| 4 | * License terms: GNU General Public License (GPL), version 2 | ||
| 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; | ||
| 15 | const char *soc_id; | ||
| 16 | }; | ||
| 17 | |||
| 18 | /** | ||
| 19 | * soc_device_register - register SoC as a device | ||
| 20 | * @soc_plat_dev_attr: Attributes passed from platform to be attributed to a SoC | ||
| 21 | */ | ||
| 22 | struct soc_device *soc_device_register( | ||
| 23 | struct soc_device_attribute *soc_plat_dev_attr); | ||
| 24 | |||
| 25 | /** | ||
| 26 | * soc_device_unregister - unregister SoC device | ||
| 27 | * @dev: SoC device to be unregistered | ||
| 28 | */ | ||
| 29 | void soc_device_unregister(struct soc_device *soc_dev); | ||
| 30 | |||
| 31 | /** | ||
| 32 | * soc_device_to_device - helper function to fetch struct device | ||
| 33 | * @soc: Previously registered SoC device container | ||
| 34 | */ | ||
| 35 | struct device *soc_device_to_device(struct soc_device *soc); | ||
| 36 | |||
| 37 | #endif /* __SOC_BUS_H */ | ||
