|
104 | 104 | #define TEST_PARTITION_1 DT_PATH(test, test_mtd_ffeeddcc, flash_20000000, partitions, partition_c0)
|
105 | 105 | #define TEST_PARTITION_2 DT_PATH(test, test_mtd_33221100, partitions, partition_6ff80)
|
106 | 106 |
|
| 107 | +#define TEST_GPIO_CONNECTOR DT_PATH(gpio_map_test, connector) |
| 108 | +#define TEST_INTERRUPT_NEXUS DT_PATH(interrupt_map_test, nexus) |
| 109 | + |
107 | 110 | #define ZEPHYR_USER DT_PATH(zephyr_user)
|
108 | 111 |
|
109 | 112 | #define TA_HAS_COMPAT(compat) DT_NODE_HAS_COMPAT(TEST_ARRAYS, compat)
|
@@ -3670,4 +3673,87 @@ ZTEST(devicetree_api, test_interrupt_controller)
|
3670 | 3673 | zassert_true(DT_SAME_NODE(DT_INST_IRQ_INTC(0), TEST_INTC), "");
|
3671 | 3674 | }
|
3672 | 3675 |
|
| 3676 | +#define INTERRUPT_NEXUS_CHECK_0(n, p, i, ...) \ |
| 3677 | + zassert_equal(NUM_VA_ARGS(DT_MAP_CHILD_SPECIFIER_ARGS(n, p, i)), 4); \ |
| 3678 | + zassert_equal(GET_ARG_N(1, DT_MAP_CHILD_SPECIFIER_ARGS(n, p, i)), 0); \ |
| 3679 | + zassert_equal(GET_ARG_N(2, DT_MAP_CHILD_SPECIFIER_ARGS(n, p, i)), 0); \ |
| 3680 | + zassert_equal(GET_ARG_N(3, DT_MAP_CHILD_SPECIFIER_ARGS(n, p, i)), 1); \ |
| 3681 | + zassert_equal(GET_ARG_N(4, DT_MAP_CHILD_SPECIFIER_ARGS(n, p, i)), 2); \ |
| 3682 | + zassert_equal(NUM_VA_ARGS(DT_MAP_PARENT_SPECIFIER_ARGS(n, p, i)), 2); \ |
| 3683 | + zassert_equal(GET_ARG_N(1, DT_MAP_PARENT_SPECIFIER_ARGS(n, p, i)), 3); \ |
| 3684 | + zassert_equal(GET_ARG_N(2, DT_MAP_PARENT_SPECIFIER_ARGS(n, p, i)), 4); \ |
| 3685 | + zassert_equal(NUM_VA_ARGS(DT_MAP_PARENT_ARG(n, p, i)), 1); \ |
| 3686 | + zassert_str_equal(STRINGIFY(DT_MAP_PARENT_ARG(n, p, i)), \ |
| 3687 | + "DT_N_S_interrupt_map_test_S_controller_0_0"); |
| 3688 | + |
| 3689 | +#define INTERRUPT_NEXUS_CHECK_1(n, p, i, ...) \ |
| 3690 | + zassert_equal(NUM_VA_ARGS(DT_MAP_CHILD_SPECIFIER_ARGS(n, p, i)), 4); \ |
| 3691 | + zassert_equal(GET_ARG_N(1, DT_MAP_CHILD_SPECIFIER_ARGS(n, p, i)), 0); \ |
| 3692 | + zassert_equal(GET_ARG_N(2, DT_MAP_CHILD_SPECIFIER_ARGS(n, p, i)), 0); \ |
| 3693 | + zassert_equal(GET_ARG_N(3, DT_MAP_CHILD_SPECIFIER_ARGS(n, p, i)), 5); \ |
| 3694 | + zassert_equal(GET_ARG_N(4, DT_MAP_CHILD_SPECIFIER_ARGS(n, p, i)), 6); \ |
| 3695 | + zassert_equal(NUM_VA_ARGS(DT_MAP_PARENT_SPECIFIER_ARGS(n, p, i)), 4); \ |
| 3696 | + zassert_equal(GET_ARG_N(1, DT_MAP_PARENT_SPECIFIER_ARGS(n, p, i)), 7); \ |
| 3697 | + zassert_equal(GET_ARG_N(2, DT_MAP_PARENT_SPECIFIER_ARGS(n, p, i)), 8); \ |
| 3698 | + zassert_equal(GET_ARG_N(3, DT_MAP_PARENT_SPECIFIER_ARGS(n, p, i)), 9); \ |
| 3699 | + zassert_equal(GET_ARG_N(4, DT_MAP_PARENT_SPECIFIER_ARGS(n, p, i)), 0); \ |
| 3700 | + zassert_equal(NUM_VA_ARGS(DT_MAP_PARENT_ARG(n, p, i)), 1); \ |
| 3701 | + zassert_str_equal(STRINGIFY(DT_MAP_PARENT_ARG(n, p, i)), \ |
| 3702 | + "DT_N_S_interrupt_map_test_S_controller_1_1"); |
| 3703 | + |
| 3704 | +#define INTERRUPT_NEXUS_CHECK_2(n, p, i, ...) \ |
| 3705 | + zassert_equal(NUM_VA_ARGS(DT_MAP_CHILD_SPECIFIER_ARGS(n, p, i)), 4); \ |
| 3706 | + zassert_equal(GET_ARG_N(1, DT_MAP_CHILD_SPECIFIER_ARGS(n, p, i)), 0); \ |
| 3707 | + zassert_equal(GET_ARG_N(2, DT_MAP_CHILD_SPECIFIER_ARGS(n, p, i)), 1); \ |
| 3708 | + zassert_equal(GET_ARG_N(3, DT_MAP_CHILD_SPECIFIER_ARGS(n, p, i)), 9); \ |
| 3709 | + zassert_equal(GET_ARG_N(4, DT_MAP_CHILD_SPECIFIER_ARGS(n, p, i)), 8); \ |
| 3710 | + zassert_equal(NUM_VA_ARGS(DT_MAP_PARENT_SPECIFIER_ARGS(n, p, i)), 2); \ |
| 3711 | + zassert_equal(GET_ARG_N(1, DT_MAP_PARENT_SPECIFIER_ARGS(n, p, i)), 7); \ |
| 3712 | + zassert_equal(GET_ARG_N(2, DT_MAP_PARENT_SPECIFIER_ARGS(n, p, i)), 6); \ |
| 3713 | + zassert_equal(NUM_VA_ARGS(DT_MAP_PARENT_ARG(n, p, i)), 1); \ |
| 3714 | + zassert_str_equal(STRINGIFY(DT_MAP_PARENT_ARG(n, p, i)), \ |
| 3715 | + "DT_N_S_interrupt_map_test_S_controller_0_0"); |
| 3716 | + |
| 3717 | +#define INTERRUPT_NEXUS_CHECK_3(n, p, i, ...) \ |
| 3718 | + zassert_equal(NUM_VA_ARGS(DT_MAP_CHILD_SPECIFIER_ARGS(n, p, i)), 4); \ |
| 3719 | + zassert_equal(GET_ARG_N(1, DT_MAP_CHILD_SPECIFIER_ARGS(n, p, i)), 0); \ |
| 3720 | + zassert_equal(GET_ARG_N(2, DT_MAP_CHILD_SPECIFIER_ARGS(n, p, i)), 1); \ |
| 3721 | + zassert_equal(GET_ARG_N(3, DT_MAP_CHILD_SPECIFIER_ARGS(n, p, i)), 5); \ |
| 3722 | + zassert_equal(GET_ARG_N(4, DT_MAP_CHILD_SPECIFIER_ARGS(n, p, i)), 4); \ |
| 3723 | + zassert_equal(NUM_VA_ARGS(DT_MAP_PARENT_SPECIFIER_ARGS(n, p, i)), 4); \ |
| 3724 | + zassert_equal(GET_ARG_N(1, DT_MAP_PARENT_SPECIFIER_ARGS(n, p, i)), 3); \ |
| 3725 | + zassert_equal(GET_ARG_N(2, DT_MAP_PARENT_SPECIFIER_ARGS(n, p, i)), 2); \ |
| 3726 | + zassert_equal(GET_ARG_N(3, DT_MAP_PARENT_SPECIFIER_ARGS(n, p, i)), 1); \ |
| 3727 | + zassert_equal(GET_ARG_N(4, DT_MAP_PARENT_SPECIFIER_ARGS(n, p, i)), 0); \ |
| 3728 | + zassert_str_equal(STRINGIFY(DT_MAP_PARENT_ARG(n, p, i)), \ |
| 3729 | + "DT_N_S_interrupt_map_test_S_controller_1_1"); |
| 3730 | + |
| 3731 | +#define INTERRUPT_NEXUS_CHECK(...) \ |
| 3732 | + UTIL_CAT(INTERRUPT_NEXUS_CHECK_, GET_ARG_N(3, __VA_ARGS__))(__VA_ARGS__) |
| 3733 | + |
| 3734 | +ZTEST(devicetree_api, test_map) |
| 3735 | +{ |
| 3736 | + zassert_equal(DT_PROP_LEN(TEST_GPIO_CONNECTOR, gpio_map), 2); |
| 3737 | + zassert_equal(DT_PHA_BY_IDX(TEST_GPIO_CONNECTOR, gpio_map, 0, child_specifier_0), 1); |
| 3738 | + zassert_equal(DT_PHA_BY_IDX(TEST_GPIO_CONNECTOR, gpio_map, 0, child_specifier_1), 2); |
| 3739 | + zassert_str_equal(STRINGIFY(DT_PHANDLE_BY_IDX(TEST_GPIO_CONNECTOR, gpio_map, 0)), |
| 3740 | + "DT_N_S_gpio_map_test_S_parent"); |
| 3741 | + zassert_equal(DT_PHA_BY_IDX(TEST_GPIO_CONNECTOR, gpio_map, 0, parent_specifier_0), 3); |
| 3742 | + zassert_equal(DT_PHA_BY_IDX(TEST_GPIO_CONNECTOR, gpio_map, 1, child_specifier_0), 4); |
| 3743 | + zassert_equal(DT_PHA_BY_IDX(TEST_GPIO_CONNECTOR, gpio_map, 1, child_specifier_1), 5); |
| 3744 | + zassert_str_equal(STRINGIFY(DT_PHANDLE_BY_IDX(TEST_GPIO_CONNECTOR, gpio_map, 1)), |
| 3745 | + "DT_N_S_gpio_map_test_S_parent"); |
| 3746 | + zassert_equal(DT_PHA_BY_IDX(TEST_GPIO_CONNECTOR, gpio_map, 1, parent_specifier_0), 6); |
| 3747 | + |
| 3748 | + zassert_equal(DT_PROP_LEN(TEST_GPIO_CONNECTOR, gpio_map_mask), 2); |
| 3749 | + zassert_equal(DT_PROP_BY_IDX(TEST_GPIO_CONNECTOR, gpio_map_mask, 0), 0xffffffff); |
| 3750 | + zassert_equal(DT_PROP_BY_IDX(TEST_GPIO_CONNECTOR, gpio_map_mask, 1), 0xffffffc0); |
| 3751 | + zassert_equal(DT_PROP_LEN(TEST_GPIO_CONNECTOR, gpio_map_pass_thru), 2); |
| 3752 | + zassert_equal(DT_PROP_BY_IDX(TEST_GPIO_CONNECTOR, gpio_map_pass_thru, 0), 0x0); |
| 3753 | + zassert_equal(DT_PROP_BY_IDX(TEST_GPIO_CONNECTOR, gpio_map_pass_thru, 1), 0x3f); |
| 3754 | + |
| 3755 | + DT_FOREACH_PROP_ELEM_VARGS(TEST_INTERRUPT_NEXUS, interrupt_map, INTERRUPT_NEXUS_CHECK, |
| 3756 | + 9999); |
| 3757 | +} |
| 3758 | + |
3673 | 3759 | ZTEST_SUITE(devicetree_api, NULL, NULL, NULL, NULL, NULL);
|
0 commit comments