Skip to content

Commit 697791e

Browse files
committed
tests: lib: devicetree: api: Add NVMEM test cases
Add test cases tot the devicetree API testsuite for NVMEM macros. Signed-off-by: Pieter De Gendt <[email protected]>
1 parent a80ced1 commit 697791e

File tree

2 files changed

+83
-0
lines changed

2 files changed

+83
-0
lines changed

tests/lib/devicetree/api/app.overlay

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -903,6 +903,31 @@
903903
};
904904
};
905905
};
906+
907+
test_nvmem_consumer: test-nvmem-consumer {
908+
compatible = "vnd,nvmem-consumer";
909+
nvmem-cells = <&cell0>, <&cell10>;
910+
nvmem-cell-names = "cell0", "cell10";
911+
};
912+
913+
test-nvmem-provider {
914+
nvmem-layout {
915+
compatible = "fixed-layout";
916+
#address-cells = <1>;
917+
#size-cells = <1>;
918+
919+
cell0: cell@0 {
920+
reg = <0x0 0x10>;
921+
#nvmem-cell-cells = <0>;
922+
};
923+
924+
cell10: cell@10 {
925+
reg = <0x10 0x10>;
926+
read-only;
927+
#nvmem-cell-cells = <0>;
928+
};
929+
};
930+
};
906931
};
907932

908933
test_64 {

tests/lib/devicetree/api/src/main.c

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
#include <zephyr/ztest.h>
88
#include <zephyr/devicetree.h>
9+
#include <zephyr/devicetree/nvmem.h>
910
#include <zephyr/device.h>
1011
#include <zephyr/drivers/gpio.h>
1112

@@ -3832,4 +3833,61 @@ ZTEST(devicetree_api, test_interrupt_controller)
38323833
zassert_true(DT_SAME_NODE(DT_INST_IRQ_INTC(0), TEST_INTC), "");
38333834
}
38343835

3836+
ZTEST(devicetree_api, test_nvmem_devictree)
3837+
{
3838+
zexpect_equal(DT_NVMEM_CELLS_HAS_IDX(DT_NODELABEL(test_nvmem_consumer), 0), 1);
3839+
zexpect_equal(DT_NVMEM_CELLS_HAS_IDX(DT_NODELABEL(test_nvmem_consumer), 1), 1);
3840+
zexpect_equal(DT_NVMEM_CELLS_HAS_IDX(DT_NODELABEL(test_nvmem_consumer), 2), 0);
3841+
3842+
zexpect_equal(DT_NVMEM_CELLS_HAS_NAME(DT_NODELABEL(test_nvmem_consumer), cell0), 1);
3843+
zexpect_equal(DT_NVMEM_CELLS_HAS_NAME(DT_NODELABEL(test_nvmem_consumer), cell10), 1);
3844+
zexpect_equal(DT_NVMEM_CELLS_HAS_NAME(DT_NODELABEL(test_nvmem_consumer), missing), 0);
3845+
3846+
zexpect_equal(DT_NUM_NVMEM_CELLS(DT_NODELABEL(test_nvmem_consumer)), 2);
3847+
3848+
zexpect_str_equal(DT_NODE_PATH(DT_NVMEM_CELL_BY_IDX(DT_NODELABEL(test_nvmem_consumer), 0)),
3849+
"/test/test-nvmem-provider/nvmem-layout/cell@0");
3850+
zexpect_str_equal(DT_NODE_PATH(DT_NVMEM_CELL_BY_IDX(DT_NODELABEL(test_nvmem_consumer), 1)),
3851+
"/test/test-nvmem-provider/nvmem-layout/cell@10");
3852+
3853+
zexpect_str_equal(
3854+
DT_NODE_PATH(DT_NVMEM_CELL_BY_NAME(DT_NODELABEL(test_nvmem_consumer), cell0)),
3855+
"/test/test-nvmem-provider/nvmem-layout/cell@0");
3856+
zexpect_str_equal(
3857+
DT_NODE_PATH(DT_NVMEM_CELL_BY_NAME(DT_NODELABEL(test_nvmem_consumer), cell10)),
3858+
"/test/test-nvmem-provider/nvmem-layout/cell@10");
3859+
3860+
zexpect_str_equal(DT_NODE_PATH(DT_MTD_FROM_NVMEM_CELL(
3861+
DT_NVMEM_CELL(DT_NODELABEL(test_nvmem_consumer)))),
3862+
"/test/test-nvmem-provider");
3863+
}
3864+
3865+
#undef DT_DRV_COMPAT
3866+
#define DT_DRV_COMPAT vnd_nvmem_consumer
3867+
ZTEST(devicetree_api, test_nvmem_devictree_inst)
3868+
{
3869+
zexpect_equal(DT_INST_NVMEM_CELLS_HAS_IDX(0, 0), 1);
3870+
zexpect_equal(DT_INST_NVMEM_CELLS_HAS_IDX(0, 1), 1);
3871+
zexpect_equal(DT_INST_NVMEM_CELLS_HAS_IDX(0, 2), 0);
3872+
3873+
zexpect_equal(DT_INST_NVMEM_CELLS_HAS_NAME(0, cell0), 1);
3874+
zexpect_equal(DT_INST_NVMEM_CELLS_HAS_NAME(0, cell10), 1);
3875+
zexpect_equal(DT_INST_NVMEM_CELLS_HAS_NAME(0, missing), 0);
3876+
3877+
zexpect_equal(DT_INST_NUM_NVMEM_CELLS(0), 2);
3878+
3879+
zexpect_str_equal(DT_NODE_PATH(DT_INST_NVMEM_CELL_BY_IDX(0, 0)),
3880+
"/test/test-nvmem-provider/nvmem-layout/cell@0");
3881+
zexpect_str_equal(DT_NODE_PATH(DT_INST_NVMEM_CELL_BY_IDX(0, 1)),
3882+
"/test/test-nvmem-provider/nvmem-layout/cell@10");
3883+
3884+
zexpect_str_equal(DT_NODE_PATH(DT_INST_NVMEM_CELL_BY_NAME(0, cell0)),
3885+
"/test/test-nvmem-provider/nvmem-layout/cell@0");
3886+
zexpect_str_equal(DT_NODE_PATH(DT_INST_NVMEM_CELL_BY_NAME(0, cell10)),
3887+
"/test/test-nvmem-provider/nvmem-layout/cell@10");
3888+
3889+
zexpect_str_equal(DT_NODE_PATH(DT_MTD_FROM_NVMEM_CELL(DT_INST_NVMEM_CELL(0))),
3890+
"/test/test-nvmem-provider");
3891+
}
3892+
38353893
ZTEST_SUITE(devicetree_api, NULL, NULL, NULL, NULL, NULL);

0 commit comments

Comments
 (0)