14
14
#define TEST_GPIOX DT_NODELABEL(test_gpiox)
15
15
#define TEST_DEVB DT_NODELABEL(test_dev_b)
16
16
#define TEST_DEVC DT_NODELABEL(test_dev_c)
17
- #define TEST_PARTITION DT_NODELABEL(test_p0)
17
+ #define TEST_PARTITION_OUTER DT_NODELABEL(test_p0_p1)
18
+ #define TEST_PARTITION0 DT_NODELABEL(test_p0)
19
+ #define TEST_PARTITION1 DT_NODELABEL(test_p1)
18
20
#define TEST_GPIO_INJECTED DT_NODELABEL(test_gpio_injected)
19
21
#define TEST_NOLABEL DT_PATH(test, i2c_11112222, test_i2c_dev_14)
20
22
21
23
static const struct device * devlist ;
22
24
static const struct device * devlist_end ;
23
25
24
- static device_handle_t init_order [10 ];
26
+ static device_handle_t init_order [12 ];
25
27
26
28
static int dev_init (const struct device * dev )
27
29
{
@@ -46,8 +48,12 @@ DEVICE_DT_DEFINE(TEST_GPIOX, dev_init, NULL,
46
48
NULL , NULL , POST_KERNEL , 40 , NULL );
47
49
DEVICE_DT_DEFINE (TEST_DEVC , dev_init , NULL ,
48
50
NULL , NULL , POST_KERNEL , 50 , NULL );
49
- DEVICE_DT_DEFINE (TEST_PARTITION , dev_init , NULL ,
51
+ DEVICE_DT_DEFINE (TEST_PARTITION_OUTER , dev_init , NULL ,
50
52
NULL , NULL , POST_KERNEL , 60 , NULL );
53
+ DEVICE_DT_DEFINE (TEST_PARTITION0 , dev_init , NULL ,
54
+ NULL , NULL , POST_KERNEL , 61 , NULL );
55
+ DEVICE_DT_DEFINE (TEST_PARTITION1 , dev_init , NULL ,
56
+ NULL , NULL , POST_KERNEL , 62 , NULL );
51
57
/* Device with both an existing and missing injected dependency */
52
58
DEVICE_DT_DEFINE (TEST_GPIO_INJECTED , dev_init , NULL ,
53
59
NULL , NULL , POST_KERNEL , 70 , NULL , DT_DEP_ORD (TEST_DEVB ), 999 );
@@ -76,8 +82,12 @@ ZTEST(devicetree_devices, test_init_get)
76
82
DEVICE_DT_GET (TEST_GPIOX ), NULL );
77
83
zassert_equal (DEVICE_INIT_DT_GET (TEST_DEVC )-> dev ,
78
84
DEVICE_DT_GET (TEST_DEVC ), NULL );
79
- zassert_equal (DEVICE_INIT_DT_GET (TEST_PARTITION )-> dev ,
80
- DEVICE_DT_GET (TEST_PARTITION ), NULL );
85
+ zassert_equal (DEVICE_INIT_DT_GET (TEST_PARTITION_OUTER )-> dev ,
86
+ DEVICE_DT_GET (TEST_PARTITION_OUTER ), NULL );
87
+ zassert_equal (DEVICE_INIT_DT_GET (TEST_PARTITION0 )-> dev ,
88
+ DEVICE_DT_GET (TEST_PARTITION0 ), NULL );
89
+ zassert_equal (DEVICE_INIT_DT_GET (TEST_PARTITION1 )-> dev ,
90
+ DEVICE_DT_GET (TEST_PARTITION1 ), NULL );
81
91
zassert_equal (DEVICE_INIT_DT_GET (TEST_GPIO_INJECTED )-> dev ,
82
92
DEVICE_DT_GET (TEST_GPIO_INJECTED ), NULL );
83
93
zassert_equal (DEVICE_INIT_GET (manual_dev )-> dev ,
@@ -92,7 +102,9 @@ ZTEST(devicetree_devices, test_init_get)
92
102
zassert_equal (DEVICE_DT_GET (TEST_DEVB )-> ops .init , dev_init );
93
103
zassert_equal (DEVICE_DT_GET (TEST_GPIOX )-> ops .init , dev_init );
94
104
zassert_equal (DEVICE_DT_GET (TEST_DEVC )-> ops .init , dev_init );
95
- zassert_equal (DEVICE_DT_GET (TEST_PARTITION )-> ops .init , dev_init );
105
+ zassert_equal (DEVICE_DT_GET (TEST_PARTITION_OUTER )-> ops .init , dev_init );
106
+ zassert_equal (DEVICE_DT_GET (TEST_PARTITION0 )-> ops .init , dev_init );
107
+ zassert_equal (DEVICE_DT_GET (TEST_PARTITION1 )-> ops .init , dev_init );
96
108
zassert_equal (DEVICE_DT_GET (TEST_GPIO_INJECTED )-> ops .init , dev_init );
97
109
zassert_equal (DEVICE_GET (manual_dev )-> ops .init , dev_init );
98
110
zassert_equal (DEVICE_DT_GET (TEST_NOLABEL )-> ops .init , dev_init );
@@ -106,10 +118,12 @@ ZTEST(devicetree_devices, test_init_order)
106
118
zassert_equal (init_order [3 ], DEV_HDL (TEST_DEVB ));
107
119
zassert_equal (init_order [4 ], DEV_HDL (TEST_GPIOX ));
108
120
zassert_equal (init_order [5 ], DEV_HDL (TEST_DEVC ));
109
- zassert_equal (init_order [6 ], DEV_HDL (TEST_PARTITION ));
110
- zassert_equal (init_order [7 ], DEV_HDL (TEST_GPIO_INJECTED ));
111
- zassert_equal (init_order [8 ], DEV_HDL_NAME (manual_dev ));
112
- zassert_equal (init_order [9 ], DEV_HDL (TEST_NOLABEL ));
121
+ zassert_equal (init_order [6 ], DEV_HDL (TEST_PARTITION_OUTER ));
122
+ zassert_equal (init_order [7 ], DEV_HDL (TEST_PARTITION0 ));
123
+ zassert_equal (init_order [8 ], DEV_HDL (TEST_PARTITION1 ));
124
+ zassert_equal (init_order [9 ], DEV_HDL (TEST_GPIO_INJECTED ));
125
+ zassert_equal (init_order [10 ], DEV_HDL_NAME (manual_dev ));
126
+ zassert_equal (init_order [11 ], DEV_HDL (TEST_NOLABEL ));
113
127
}
114
128
115
129
static bool check_handle (device_handle_t hdl ,
@@ -321,12 +335,17 @@ ZTEST(devicetree_devices, test_supports)
321
335
zassert_true (check_handle (DEV_HDL (TEST_NOLABEL ), hdls , nhdls ));
322
336
323
337
/* Support forwarding (intermediate missing devicetree node)
324
- * TEST_DEVC: TEST_PARTITION
338
+ * TEST_DEVC: TEST_PARTITION_OUTER: TEST_PARTITION0 TEST_PARTITION1
325
339
*/
326
340
dev = DEVICE_DT_GET (TEST_DEVC );
327
341
hdls = device_supported_handles_get (dev , & nhdls );
328
342
zassert_equal (nhdls , 1 );
329
- zassert_true (check_handle (DEV_HDL (TEST_PARTITION ), hdls , nhdls ));
343
+ zassert_true (check_handle (DEV_HDL (TEST_PARTITION_OUTER ), hdls , nhdls ));
344
+ dev = DEVICE_DT_GET (TEST_PARTITION_OUTER );
345
+ hdls = device_supported_handles_get (dev , & nhdls );
346
+ zassert_equal (nhdls , 2 );
347
+ zassert_true (check_handle (DEV_HDL (TEST_PARTITION0 ), hdls , nhdls ));
348
+ zassert_true (check_handle (DEV_HDL (TEST_PARTITION1 ), hdls , nhdls ));
330
349
}
331
350
332
351
void * devicetree_devices_setup (void )
0 commit comments