I'm porting code from Zepyr 3.5 to 3.7 and am having errors in my ds2484 1-wire device. It was working fine but now reports an init error unless I add deferred-init into my dts file and device_is_ready(w1) always returns false.
The 1-wire bus actually works fine and reads good data but will never return ready. Any ideas on what to look for?
myboard.dts
&i2c1 {
w1a: w1@18 {
status = "okay";
compatible = "maxim,ds2484";
reg = <0x18>;
active-pullup;
zephyr,deferred-init;
};failing code snip
static const struct device *const w1_dev = DEVICE_DT_GET(DT_NODELABEL(w1a));
while (!device_is_ready(w1_dev)) {
LOG_ERR("1Wire device \"%s\" is not ready (line %i)", w1_dev->name, __LINE__);
k_msleep(250);
}