@@ -3799,6 +3799,9 @@ endfunction()
3799
3799
# alias at the beginning of a path interchangeably with the full
3800
3800
# path to the aliased node in these functions. The usage comments
3801
3801
# will make this clear in each case.
3802
+ #
3803
+ # - Each of these methods also has a sysbuild_dt_* counterpart.
3804
+ # See share/sysbuild/cmake/modules/sysbuild_extensions.cmake.
3802
3805
3803
3806
# Usage:
3804
3807
# dt_nodelabel(<var> NODELABEL <label>)
@@ -3826,6 +3829,10 @@ endfunction()
3826
3829
# NODELABEL <label> : Node label
3827
3830
# REQUIRED : Generate a fatal error if the node-label is not found
3828
3831
function (dt_nodelabel var)
3832
+ if (NOT DEFINED DEVICETREE_TARGET OR NOT TARGET "${DEVICETREE_TARGET} " )
3833
+ message (FATAL_ERROR "dt_nodelabel(${ARGV0} ...) devicetree is not available." )
3834
+ endif ()
3835
+
3829
3836
set (options "REQUIRED" )
3830
3837
set (req_single_args "NODELABEL" )
3831
3838
cmake_parse_arguments (DT_LABEL "${options} " "${req_single_args} " "" ${ARGN} )
@@ -3842,7 +3849,7 @@ function(dt_nodelabel var)
3842
3849
endif ()
3843
3850
endforeach ()
3844
3851
3845
- get_target_property (${var} devicetree_target "DT_NODELABEL|${DT_LABEL_NODELABEL} " )
3852
+ get_target_property (${var} " ${DEVICETREE_TARGET} " "DT_NODELABEL|${DT_LABEL_NODELABEL} " )
3846
3853
if (${${var} } STREQUAL ${var} -NOTFOUND )
3847
3854
if (DT_LABEL_REQUIRED)
3848
3855
message (FATAL_ERROR "required nodelabel not found: ${DT_LABEL_NODELABEL} " )
@@ -3874,6 +3881,10 @@ endfunction()
3874
3881
# PROPERTY <prop> : The alias to check
3875
3882
# REQUIRED : Generate a fatal error if the alias is not found
3876
3883
function (dt_alias var)
3884
+ if (NOT DEFINED DEVICETREE_TARGET OR NOT TARGET "${DEVICETREE_TARGET} " )
3885
+ message (FATAL_ERROR "dt_alias(${ARGV0} ...) devicetree is not available." )
3886
+ endif ()
3887
+
3877
3888
set (options "REQUIRED" )
3878
3889
set (req_single_args "PROPERTY" )
3879
3890
cmake_parse_arguments (DT_ALIAS "${options} " "${req_single_args} " "" ${ARGN} )
@@ -3890,7 +3901,7 @@ function(dt_alias var)
3890
3901
endif ()
3891
3902
endforeach ()
3892
3903
3893
- get_target_property (${var} devicetree_target "DT_ALIAS|${DT_ALIAS_PROPERTY} " )
3904
+ get_target_property (${var} " ${DEVICETREE_TARGET} " "DT_ALIAS|${DT_ALIAS_PROPERTY} " )
3894
3905
if (${${var} } STREQUAL ${var} -NOTFOUND )
3895
3906
if (DT_ALIAS_REQUIRED)
3896
3907
message (FATAL_ERROR "required alias not found: ${DT_ALIAS_PROPERTY} " )
@@ -3918,6 +3929,10 @@ endfunction()
3918
3929
# <var> : Return variable where the check result will be returned
3919
3930
# PATH <path> : Node path
3920
3931
function (dt_node_exists var)
3932
+ if (NOT DEFINED DEVICETREE_TARGET OR NOT TARGET "${DEVICETREE_TARGET} " )
3933
+ message (FATAL_ERROR "dt_node_exists(${ARGV0} ...) devicetree is not available." )
3934
+ endif ()
3935
+
3921
3936
set (req_single_args "PATH" )
3922
3937
cmake_parse_arguments (DT_NODE "" "${req_single_args} " "" ${ARGN} )
3923
3938
@@ -3963,6 +3978,10 @@ endfunction()
3963
3978
# PATH <path> : Node path
3964
3979
# STATUS <status> : Status to check
3965
3980
function (dt_node_has_status var)
3981
+ if (NOT DEFINED DEVICETREE_TARGET OR NOT TARGET "${DEVICETREE_TARGET} " )
3982
+ message (FATAL_ERROR "dt_node_has_status(${ARGV0} ...) devicetree is not available." )
3983
+ endif ()
3984
+
3966
3985
set (req_single_args "PATH;STATUS" )
3967
3986
cmake_parse_arguments (DT_NODE "" "${req_single_args} " "" ${ARGN} )
3968
3987
@@ -4049,6 +4068,10 @@ endfunction()
4049
4068
# INDEX <idx> : Optional index when retrieving a value in an array property
4050
4069
# REQUIRED : Generate a fatal error if the property is not found
4051
4070
function (dt_prop var)
4071
+ if (NOT DEFINED DEVICETREE_TARGET OR NOT TARGET "${DEVICETREE_TARGET} " )
4072
+ message (FATAL_ERROR "dt_prop(${ARGV0} ...) devicetree is not available." )
4073
+ endif ()
4074
+
4052
4075
set (options "REQUIRED" )
4053
4076
set (req_single_args "PATH;PROPERTY" )
4054
4077
set (single_args "INDEX" )
@@ -4067,7 +4090,7 @@ function(dt_prop var)
4067
4090
endforeach ()
4068
4091
4069
4092
dt_path_internal(canonical "${DT_PROP_PATH} " )
4070
- get_property (exists TARGET devicetree_target
4093
+ get_property (exists TARGET " ${DEVICETREE_TARGET} "
4071
4094
PROPERTY "DT_PROP|${canonical} |${DT_PROP_PROPERTY} "
4072
4095
SET
4073
4096
)
@@ -4080,7 +4103,7 @@ function(dt_prop var)
4080
4103
return ()
4081
4104
endif ()
4082
4105
4083
- get_target_property (val devicetree_target
4106
+ get_target_property (val " ${DEVICETREE_TARGET} "
4084
4107
"DT_PROP|${canonical} |${DT_PROP_PROPERTY} "
4085
4108
)
4086
4109
@@ -4109,6 +4132,10 @@ endfunction()
4109
4132
# INDEX <idx> : Optional index when retrieving a value in an array property
4110
4133
4111
4134
function (dt_comp_path var)
4135
+ if (NOT DEFINED DEVICETREE_TARGET OR NOT TARGET "${DEVICETREE_TARGET} " )
4136
+ message (FATAL_ERROR "dt_comp_path(${ARGV0} ...) devicetree is not available." )
4137
+ endif ()
4138
+
4112
4139
set (req_single_args "COMPATIBLE" )
4113
4140
set (single_args "INDEX" )
4114
4141
cmake_parse_arguments (DT_COMP "" "${req_single_args} ;${single_args} " "" ${ARGN} )
@@ -4125,7 +4152,7 @@ function(dt_comp_path var)
4125
4152
endif ()
4126
4153
endforeach ()
4127
4154
4128
- get_property (exists TARGET devicetree_target
4155
+ get_property (exists TARGET " ${DEVICETREE_TARGET} "
4129
4156
PROPERTY "DT_COMP|${DT_COMP_COMPATIBLE} "
4130
4157
SET
4131
4158
)
@@ -4135,7 +4162,7 @@ function(dt_comp_path var)
4135
4162
return ()
4136
4163
endif ()
4137
4164
4138
- get_target_property (val devicetree_target
4165
+ get_target_property (val " ${DEVICETREE_TARGET} "
4139
4166
"DT_COMP|${DT_COMP_COMPATIBLE} "
4140
4167
)
4141
4168
@@ -4164,6 +4191,10 @@ endfunction()
4164
4191
# <var> : Return variable where the property value will be stored
4165
4192
# PATH <path> : Node path
4166
4193
function (dt_num_regs var)
4194
+ if (NOT DEFINED DEVICETREE_TARGET OR NOT TARGET "${DEVICETREE_TARGET} " )
4195
+ message (FATAL_ERROR "dt_num_regs(${ARGV0} ...) devicetree is not available." )
4196
+ endif ()
4197
+
4167
4198
set (req_single_args "PATH" )
4168
4199
cmake_parse_arguments (DT_REG "" "${req_single_args} " "" ${ARGN} )
4169
4200
@@ -4180,7 +4211,7 @@ function(dt_num_regs var)
4180
4211
endforeach ()
4181
4212
4182
4213
dt_path_internal(canonical "${DT_REG_PATH} " )
4183
- get_target_property (${var} devicetree_target "DT_REG|${canonical} |NUM" )
4214
+ get_target_property (${var} " ${DEVICETREE_TARGET} " "DT_REG|${canonical} |NUM" )
4184
4215
4185
4216
set (${var} ${${var} } PARENT_SCOPE)
4186
4217
endfunction ()
@@ -4210,6 +4241,10 @@ endfunction()
4210
4241
# INDEX <idx> : Register block index number
4211
4242
# NAME <name> : Register block name
4212
4243
function (dt_reg_addr var)
4244
+ if (NOT DEFINED DEVICETREE_TARGET OR NOT TARGET "${DEVICETREE_TARGET} " )
4245
+ message (FATAL_ERROR "dt_reg_addr(${ARGV0} ...) devicetree is not available." )
4246
+ endif ()
4247
+
4213
4248
set (req_single_args "PATH" )
4214
4249
set (single_args "INDEX;NAME" )
4215
4250
cmake_parse_arguments (DT_REG "" "${req_single_args} ;${single_args} " "" ${ARGN} )
@@ -4239,7 +4274,7 @@ function(dt_reg_addr var)
4239
4274
endif ()
4240
4275
4241
4276
dt_path_internal(canonical "${DT_REG_PATH} " )
4242
- get_target_property (${var} _list devicetree_target "DT_REG|${canonical} |ADDR" )
4277
+ get_target_property (${var} _list " ${DEVICETREE_TARGET} " "DT_REG|${canonical} |ADDR" )
4243
4278
4244
4279
list (GET ${var} _list ${DT_REG_INDEX} ${var} )
4245
4280
@@ -4270,6 +4305,10 @@ endfunction()
4270
4305
# INDEX <idx> : Register block index number
4271
4306
# NAME <name> : Register block name
4272
4307
function (dt_reg_size var)
4308
+ if (NOT DEFINED DEVICETREE_TARGET OR NOT TARGET "${DEVICETREE_TARGET} " )
4309
+ message (FATAL_ERROR "dt_reg_size(${ARGV0} ...) devicetree is not available." )
4310
+ endif ()
4311
+
4273
4312
set (req_single_args "PATH" )
4274
4313
set (single_args "INDEX;NAME" )
4275
4314
cmake_parse_arguments (DT_REG "" "${req_single_args} ;${single_args} " "" ${ARGN} )
@@ -4299,7 +4338,7 @@ function(dt_reg_size var)
4299
4338
endif ()
4300
4339
4301
4340
dt_path_internal(canonical "${DT_REG_PATH} " )
4302
- get_target_property (${var} _list devicetree_target "DT_REG|${canonical} |SIZE" )
4341
+ get_target_property (${var} _list " ${DEVICETREE_TARGET} " "DT_REG|${canonical} |SIZE" )
4303
4342
4304
4343
list (GET ${var} _list ${DT_REG_INDEX} ${var} )
4305
4344
@@ -4347,6 +4386,10 @@ endfunction()
4347
4386
# <var> : Return variable
4348
4387
# PROPERTY <prop> : Chosen property
4349
4388
function (dt_has_chosen var)
4389
+ if (NOT DEFINED DEVICETREE_TARGET OR NOT TARGET "${DEVICETREE_TARGET} " )
4390
+ message (FATAL_ERROR "dt_has_chosen(${ARGV0} ...) devicetree is not available." )
4391
+ endif ()
4392
+
4350
4393
set (req_single_args "PROPERTY" )
4351
4394
cmake_parse_arguments (DT_CHOSEN "" "${req_single_args} " "" ${ARGN} )
4352
4395
@@ -4362,7 +4405,7 @@ function(dt_has_chosen var)
4362
4405
endif ()
4363
4406
endforeach ()
4364
4407
4365
- get_target_property (exists devicetree_target "DT_CHOSEN|${DT_CHOSEN_PROPERTY} " )
4408
+ get_target_property (exists " ${DEVICETREE_TARGET} " "DT_CHOSEN|${DT_CHOSEN_PROPERTY} " )
4366
4409
4367
4410
if (${exists} STREQUAL exists -NOTFOUND )
4368
4411
set (${var} FALSE PARENT_SCOPE)
@@ -4382,6 +4425,10 @@ endfunction()
4382
4425
# <var> : Return variable where the node path will be stored
4383
4426
# PROPERTY <prop> : Chosen property
4384
4427
function (dt_chosen var)
4428
+ if (NOT DEFINED DEVICETREE_TARGET OR NOT TARGET "${DEVICETREE_TARGET} " )
4429
+ message (FATAL_ERROR "dt_chosen(${ARGV0} ...) devicetree is not available." )
4430
+ endif ()
4431
+
4385
4432
set (req_single_args "PROPERTY" )
4386
4433
cmake_parse_arguments (DT_CHOSEN "" "${req_single_args} " "" ${ARGN} )
4387
4434
@@ -4397,7 +4444,7 @@ function(dt_chosen var)
4397
4444
endif ()
4398
4445
endforeach ()
4399
4446
4400
- get_target_property (${var} devicetree_target "DT_CHOSEN|${DT_CHOSEN_PROPERTY} " )
4447
+ get_target_property (${var} " ${DEVICETREE_TARGET} " "DT_CHOSEN|${DT_CHOSEN_PROPERTY} " )
4401
4448
4402
4449
if (${${var} } STREQUAL ${var} -NOTFOUND )
4403
4450
set (${var} PARENT_SCOPE)
@@ -4469,7 +4516,7 @@ endfunction()
4469
4516
# to an existing node. Set it to FALSE otherwise. See
4470
4517
# dt_path_internal for a definition and examples of 'canonical' paths.
4471
4518
function (dt_path_internal_exists var path )
4472
- get_target_property (path_prop devicetree_target "DT_NODE|${path} " )
4519
+ get_target_property (path_prop " ${DEVICETREE_TARGET} " "DT_NODE|${path} " )
4473
4520
if (path_prop)
4474
4521
set (${var} TRUE PARENT_SCOPE)
4475
4522
else ()
0 commit comments