mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-15 16:24:13 +08:00
59abd83672
Software node is a new struct fwnode_handle type that can be used to describe devices in kernel (software). It is meant to complement fwnodes representing real firmware nodes when they are incomplete (for example missing device properties) and to supply the primary fwnode when the firmware lacks hardware description for a device completely. The software node type is really meant to replace the currently used "property_set" struct fwnode_handle type. The handling of struct property_set is glued to the generic device property handling code, and it is not possible to create a struct property_set independently from the device that it is bind to. struct property_set is only created when device properties are added to already initialized struct device, and control of it is only possible from the generic property handling code. Software nodes are instead designed to be created independently from the device entries (struct device). It makes them much more flexible, as then the device meant to be bind to the node can be created at a later time, and from another location. It is also possible to bind multiple devices to a single software node if needed. The software node implementation also includes support for node hierarchy, which was the main motivation for this commit. The node hierarchy was something that was requested for the struct property_set, but it did not seem reasonable to try to extend the property_set support for that purpose. struct property_set was really meant only for device property handling like the name suggests. Support for struct property_set is not yet removed in this commit, but it will be in the following one. Signed-off-by: Heikki Krogerus <heikki.krogerus@linux.intel.com> Acked-by: Linus Walleij <linus.walleij@linaro.org> Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
31 lines
955 B
Makefile
31 lines
955 B
Makefile
# SPDX-License-Identifier: GPL-2.0
|
|
# Makefile for the Linux device tree
|
|
|
|
obj-y := component.o core.o bus.o dd.o syscore.o \
|
|
driver.o class.o platform.o \
|
|
cpu.o firmware.o init.o map.o devres.o \
|
|
attribute_container.o transport_class.o \
|
|
topology.o container.o property.o cacheinfo.o \
|
|
devcon.o swnode.o
|
|
obj-$(CONFIG_DEVTMPFS) += devtmpfs.o
|
|
obj-y += power/
|
|
obj-$(CONFIG_ISA_BUS_API) += isa.o
|
|
obj-y += firmware_loader/
|
|
obj-$(CONFIG_NUMA) += node.o
|
|
obj-$(CONFIG_MEMORY_HOTPLUG_SPARSE) += memory.o
|
|
ifeq ($(CONFIG_SYSFS),y)
|
|
obj-$(CONFIG_MODULES) += module.o
|
|
endif
|
|
obj-$(CONFIG_SYS_HYPERVISOR) += hypervisor.o
|
|
obj-$(CONFIG_REGMAP) += regmap/
|
|
obj-$(CONFIG_SOC_BUS) += soc.o
|
|
obj-$(CONFIG_PINCTRL) += pinctrl.o
|
|
obj-$(CONFIG_DEV_COREDUMP) += devcoredump.o
|
|
obj-$(CONFIG_GENERIC_MSI_IRQ_DOMAIN) += platform-msi.o
|
|
obj-$(CONFIG_GENERIC_ARCH_TOPOLOGY) += arch_topology.o
|
|
|
|
obj-y += test/
|
|
|
|
ccflags-$(CONFIG_DEBUG_DRIVER) := -DDEBUG
|
|
|