|
6 | 6 |
|
7 | 7 | #include <zephyr/ztest.h>
|
8 | 8 | #include <zephyr/devicetree.h>
|
| 9 | +#include <zephyr/devicetree/nvmem.h> |
9 | 10 | #include <zephyr/device.h>
|
10 | 11 | #include <zephyr/drivers/gpio.h>
|
11 | 12 |
|
@@ -3832,4 +3833,61 @@ ZTEST(devicetree_api, test_interrupt_controller)
|
3832 | 3833 | zassert_true(DT_SAME_NODE(DT_INST_IRQ_INTC(0), TEST_INTC), "");
|
3833 | 3834 | }
|
3834 | 3835 |
|
| 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 | + |
3835 | 3893 | ZTEST_SUITE(devicetree_api, NULL, NULL, NULL, NULL, NULL);
|
0 commit comments