Here's the error:
.... src/gnssI2c.c:21: undefined reference to `__device_dts_ord_105'
Here's line 21
Device tree snippet:
/* I2C */
&i2c2 {
compatible = "nordic,nrf-twim";
status = "okay";
pinctrl-0 = <&i2c2_default>;
pinctrl-1 = <&i2c2_sleep>;
pinctrl-names = "default", "sleep";
clock-frequency = <400000>;
nfcST25DV64KC_UserMem: st25dv64@53{
compatible = "i2c-device";
status = "okay";
reg = < 0x53 >;
};
nfcST25DV64KC_SystemMem: st25dv64@57{
compatible = "i2c-device";
status = "okay";
reg = < 0x57 >;
};
fuelCellMAX17055: max17055@36{
compatible = "i2c-device";
status = "okay";
reg = < 0x36 >;
};
lis2dh: lis2dh@32{
compatible = "st,lis2dh";
status = "okay";
reg = < 0x32 >;
};
ubloxm10s: ubloxm10s@42{
compatible = "i2c-device";
status = "okay";
reg = < 0x42 >;
};
};
The code compiles okay, so the ublox10ms label is found in the device tree .h file, but I think I must be missing a CONFIG_XX line that enables the linking of the generic Zephyr I2C driver. Note that the linker can find the lis2dh driver without a problem. I've got CONFIG_I2C=y in my prj.conf file.
It's for a custom board; this is the entire .dts file:
And this is the resultant zephyr.dts