I am trying to create a description of my peripherals in the device tree.
For example, I want to describe the pins that will control the input type for the ADC. Current input or not.
To do this, I created the gpio-sensors.yaml file and put it along the path ncs\zephyr\dts\bindings\gpio
Here are its contents:
description: GPIO Sensors parent node include: base.yaml compatible: "gpio-sensors" child-binding: description: Enabling current input for sensors properties: sensor1-type: type: int required: true sensor2-type: type: int required: true sensor3-type: type: int required: true sensor4-type: type: int required: true
In the nrf9160dk_nrf9160ns.overlay file, I added the following:
/ { chosen { zephyr,bt-uart=&uart2; }; extperipheral { compatible = "gpio-sensors"; sensors-type { sensor1-type = <0>; sensor2-type = <29>; sensor3-type = <28>; sensor4-type = <27>; }; }; };
In this configuration, everything works fine. In devicetree_unfixed.h, I see everything that is described in .overlay
But there is a problem when I want to transfer gpio-sensors.yaml to the root of the project. In the devicetree_unfixed.h file, my description of sensor(x)_type disappears. I understand this is due to the fact that the collector can not find gpio-sensors.yaml
The question is, how do I indicate the location of this file in CMakeLists? The documentation found a mention of DTS_ROOT.
adding a line to CmakeLists
set (DTS_ROOT $ {CMAKE_CURRENT_SOURCE_DIR} /)
in devicetree_unfixed.h sensor(x)_type did not appear.
How do I get the build system to use my yaml?
Here is the structure of my project:
firmware: - ncs - CMakeLists.txt - gpio-sensors.yaml - nrf9160dk_nrf9160ns.overlay - prj.conf
Thank!