storage: flash_map: handle disabled flash nodes

Don't fail to compile when `fixed-partition`'s exist on a flash device
that is disabled. This does not fix the case where a `fixed-partition`
is on a flash device with `status = "okay"` but with no driver compiled
in.

Signed-off-by: Jordan Yates <jordan.yates@data61.csiro.au>
This commit is contained in:
Jordan Yates 2022-07-04 15:51:20 +10:00 committed by Carles Cufí
commit a593a733e8
2 changed files with 5 additions and 5 deletions

View file

@ -37,7 +37,7 @@ int flash_area_open(uint8_t id, const struct flash_area **fap)
return -ENOENT;
}
if (!device_is_ready(area->fa_dev)) {
if (!area->fa_dev || !device_is_ready(area->fa_dev)) {
return -ENODEV;
}

View file

@ -11,10 +11,10 @@
#include <zephyr/zephyr.h>
#include <zephyr/storage/flash_map.h>
#define FLASH_AREA_FOO(part) \
{.fa_id = DT_FIXED_PARTITION_ID(part), \
.fa_off = DT_REG_ADDR(part), \
.fa_dev = DEVICE_DT_GET(DT_MTD_FROM_FIXED_PARTITION(part)), \
#define FLASH_AREA_FOO(part) \
{.fa_id = DT_FIXED_PARTITION_ID(part), \
.fa_off = DT_REG_ADDR(part), \
.fa_dev = DEVICE_DT_GET_OR_NULL(DT_MTD_FROM_FIXED_PARTITION(part)), \
.fa_size = DT_REG_SIZE(part),},
#define FOREACH_PARTITION(n) DT_FOREACH_CHILD(DT_DRV_INST(n), FLASH_AREA_FOO)