Skip to content
  • Stephen Warren's avatar
    kbuild: create an "include chroot" for DT bindings · c58299aa
    Stephen Warren authored
    
    
    The recent dtc+cpp support allows header files and C pre-processor
    defines/macros to be used when compiling device tree files. These
    headers will typically define various constants that are part of the
    device tree bindings.
    
    The original patch which set up the dtc+cpp include path only considered
    using those headers from device tree files. However, most are also
    useful for kernel code which needs to interpret the device tree.
    
    In both the DT files and the kernel, I'd like to include the DT-related
    headers in the same way, for example, <dt-bindings/gpio/tegra-gpio.h>.
    That will simplify any text which discusses the DT header locations.
    
    Creating a <dt-bindings/> for kernel source to use is as simple as
    placing files into include/dt-bindings/.
    
    However, when compiling DT files, the include path should be restricted
    so that only the dt-bindings path is available; arbitrary kernel headers
    shouldn't be exposed. For this reason, create a specific include
    directory for use by dtc+cpp, and symlink dt-bindings from there to the
    actual location of include/dt-bindings/. For want of a better location,
    place this "include chroot" into the existing dts/ directory.
    
    arch/*/boot/dts/include/dt-bindings -> ../../../../../include/dt-bindings
    
    Some headers used by device tree files may not be useful to the kernel;
    they may be used simply to aid in constructing the DT file (e.g. macros
    to create a node), but not define any information that the kernel needs
    to share. These may be placed directly into arch/*/boot/dts/ along with
    the DT files themselves.
    
    Acked-by: default avatarMichal Marek <mmarek@suse.cz>
    Acked-by: default avatarShawn Guo <shawn.guo@linaro.org>
    Acked-by: default avatarRob Herring <rob.herring@calxeda.com>
    Signed-off-by: default avatarStephen Warren <swarren@nvidia.com>
    c58299aa