To use it you need to do this in your Kconfig: select LIBFDT And in the Makefile of the code using libfdt something like: ccflags-y := -include linux/libfdt_env.h -I$(src)/../../../scripts/dtc/libfdt Signed-off-by: David Daney <ddaney@xxxxxxxxxxxxxxxxxx> --- drivers/of/Kconfig | 3 +++ drivers/of/Makefile | 2 ++ drivers/of/libfdt/Makefile | 8 ++++++++ include/linux/libfdt.h | 8 ++++++++ include/linux/libfdt_env.h | 13 +++++++++++++ 5 files changed, 34 insertions(+), 0 deletions(-) create mode 100644 drivers/of/libfdt/Makefile create mode 100644 include/linux/libfdt.h create mode 100644 include/linux/libfdt_env.h diff --git a/drivers/of/Kconfig b/drivers/of/Kconfig index d06a637..9b0474e 100644 --- a/drivers/of/Kconfig +++ b/drivers/of/Kconfig @@ -4,6 +4,9 @@ config DTC config OF bool +config LIBFDT + bool + menu "Device Tree and Open Firmware support" depends on OF diff --git a/drivers/of/Makefile b/drivers/of/Makefile index f7861ed..a8dec2f 100644 --- a/drivers/of/Makefile +++ b/drivers/of/Makefile @@ -10,3 +10,5 @@ obj-$(CONFIG_OF_NET) += of_net.o obj-$(CONFIG_OF_SPI) += of_spi.o obj-$(CONFIG_OF_MDIO) += of_mdio.o obj-$(CONFIG_OF_PCI) += of_pci.o + +obj-$(CONFIG_LIBFDT) += libfdt/ diff --git a/drivers/of/libfdt/Makefile b/drivers/of/libfdt/Makefile new file mode 100644 index 0000000..bda11fe --- /dev/null +++ b/drivers/of/libfdt/Makefile @@ -0,0 +1,8 @@ +ccflags-y := -include linux/libfdt_env.h -I$(src)/../../../scripts/dtc/libfdt + +obj-y = fdt.o fdt_wip.o fdt_ro.o + + +$(obj)/%.o: $(src)/../../../scripts/dtc/libfdt/%.c FORCE + $(call cmd,force_checksrc) + $(call if_changed_rule,cc_o_c) diff --git a/include/linux/libfdt.h b/include/linux/libfdt.h new file mode 100644 index 0000000..4c0306c --- /dev/null +++ b/include/linux/libfdt.h @@ -0,0 +1,8 @@ +#ifndef _INCLUDE_LIBFDT_H_ +#define _INCLUDE_LIBFDT_H_ + +#include <linux/libfdt_env.h> +#include "../../scripts/dtc/libfdt/fdt.h" +#include "../../scripts/dtc/libfdt/libfdt.h" + +#endif /* _INCLUDE_LIBFDT_H_ */ diff --git a/include/linux/libfdt_env.h b/include/linux/libfdt_env.h new file mode 100644 index 0000000..01508c7 --- /dev/null +++ b/include/linux/libfdt_env.h @@ -0,0 +1,13 @@ +#ifndef _LIBFDT_ENV_H +#define _LIBFDT_ENV_H + +#include <linux/string.h> + +#include <asm/byteorder.h> + +#define fdt32_to_cpu(x) be32_to_cpu(x) +#define cpu_to_fdt32(x) cpu_to_be32(x) +#define fdt64_to_cpu(x) be64_to_cpu(x) +#define cpu_to_fdt64(x) cpu_to_be64(x) + +#endif /* _LIBFDT_ENV_H */ -- 1.7.2.3