Re: How does Zephyr brings dts, kernel, driver & user app together?
toggle quoted messageShow quoted text
To generate #define's from dt, you need to provide the matching yaml binding to indicate how fields should be decided, this should be done under dts/bindings/...
Generated #define's will be available in build directory, under zephyr/include/generated/generated_...
You should be able to use them as you wish.
To make your driver somewhat generic (ie not depending on the node address, you'll need to provide intermediate #define in dts_fixup.h file (under soc/ or board/).
For more information, you can check in various drivers how DT_xxxx constants are used
Le ven. 4 janv. 2019 à 17:30, Stefan Jaritz <stefan@...
> a écrit :
I like to create an user app that uses 2 IC connected via I2C with my
MCU. Doing this is a bit tricky because I am missing some
documentation, that is describing how the whole process goes.
My setup is simple:
1.) custom board based on the stm32f412RG
1.1) the IC are connected via I2C
1.2) dts changes:
status = "ok";
clock-frequency = <I2C_BITRATE_FAST>;
compatible = "xxx,codec1";
reg = <0x48>;
label = "codec1";
compatible = "xxx,codec2";
reg = <0x46>;
label = "codec2";
readAddr = <0x8F>;
writeAddr = <0x8E>;
2.) user app
2.1) custom driver (codec1.c and codec2.c)
How can I get the value of the I2C slave address from the dts inside of
my source code?
How can I find and access the c-files after the dts compilation?
How Zephyr connects the c code of the dts, kernel, drivers, user drivers
Any help is welcome!
Join email@example.com to automatically receive all group messages.