Update and document mbedtls extensions

Signed-off-by: Archana <archana.madhavan@silabs.com>
Signed-off-by: Asfandyar Orakzai <asfandyar.orakzai@silabs.com>
diff --git a/docs/proposed/psa-driver-developer-guide.md b/docs/proposed/psa-driver-developer-guide.md
index 70cb9d3..b39f559 100644
--- a/docs/proposed/psa-driver-developer-guide.md
+++ b/docs/proposed/psa-driver-developer-guide.md
@@ -36,6 +36,12 @@
 
 Mbed TLS calls driver entry points [as specified in the PSA Cryptography Driver Interface specification](psa-driver-interface.html#driver-entry-points) except as otherwise indicated in this section.
 
+## Mbed TLS extensions
+
+The driver description can include Mbed TLS extensions (marked by the namespace "mbedtls"). Mbed TLS extensions are meant to extend/help integrating the driver into the library's infrastructure.
+* `"mbedtls/h_condition"` (optional, string) can include complex preprocessor definitions to conditionally include header files for a given driver. 
+* `"mbedtls/c_condition"` (optional, string) can include complex preprocessor definitions to conditionally enable dispatch capabilities for a driver.
+
 ## Building and testing your driver
 
 <!-- TODO -->
diff --git a/scripts/data_files/driver_jsons/driver_opaque_schema.json b/scripts/data_files/driver_jsons/driver_opaque_schema.json
index 946977e..933eb07 100644
--- a/scripts/data_files/driver_jsons/driver_opaque_schema.json
+++ b/scripts/data_files/driver_jsons/driver_opaque_schema.json
@@ -17,7 +17,7 @@
       "type": ["integer","string"],
       "pattern": "^(0x|0X)?[a-fA-F0-9]+$"
     },
-    "mbedtls/h_depend_on": {
+    "mbedtls/h_condition": {
       "type": "string"
     },
     "headers": {
@@ -36,7 +36,7 @@
             "_comment": {
               "type": "string"
             },
-            "mbedtls/c_depend_on": {
+            "mbedtls/c_condition": {
               "type": "string"
             },
             "entry_points": {
diff --git a/scripts/data_files/driver_jsons/driver_transparent_schema.json b/scripts/data_files/driver_jsons/driver_transparent_schema.json
index 06fea55..f5d91eb 100644
--- a/scripts/data_files/driver_jsons/driver_transparent_schema.json
+++ b/scripts/data_files/driver_jsons/driver_transparent_schema.json
@@ -13,7 +13,7 @@
       "type": "string",
       "const": ["transparent"]
     },
-    "mbedtls/h_depend_on": {
+    "mbedtls/h_condition": {
       "type": "string"
     },
     "headers": {
@@ -32,7 +32,7 @@
             "_comment": {
               "type": "string"
             },
-            "mbedtls/c_depend_on": {
+            "mbedtls/c_condition": {
               "type": "string"
             },
             "entry_points": {
diff --git a/scripts/data_files/driver_jsons/mbedtls_test_opaque_driver.json b/scripts/data_files/driver_jsons/mbedtls_test_opaque_driver.json
index c31f964..41c74f2 100644
--- a/scripts/data_files/driver_jsons/mbedtls_test_opaque_driver.json
+++ b/scripts/data_files/driver_jsons/mbedtls_test_opaque_driver.json
@@ -2,17 +2,17 @@
     "prefix":       "mbedtls_test",
     "type":         "opaque",
     "location":     "0x7fffff",
-    "mbedtls/h_depend_on":   "defined(PSA_CRYPTO_DRIVER_TEST)",
+    "mbedtls/h_condition":   "defined(PSA_CRYPTO_DRIVER_TEST)",
     "headers":      ["test/drivers/test_driver.h"],
     "capabilities": [
         {
             "_comment":     "The Mbed TLS opaque driver supports import key/export key/export_public key",
-            "mbedtls/c_depend_on":    "defined(PSA_CRYPTO_DRIVER_TEST)",
+            "mbedtls/c_condition":    "defined(PSA_CRYPTO_DRIVER_TEST)",
             "entry_points": ["import_key", "export_key", "export_public_key"]
         },
         {
             "_comment":     "The Mbed TLS opaque driver supports copy key/ get builtin key",
-            "mbedtls/c_depend_on":    "defined(PSA_CRYPTO_DRIVER_TEST)",
+            "mbedtls/c_condition":    "defined(PSA_CRYPTO_DRIVER_TEST)",
             "entry_points": ["copy_key", "get_builtin_key"],
             "names":         {"copy_key":"mbedtls_test_opaque_copy_key", "get_builtin_key":"mbedtls_test_opaque_get_builtin_key"}
         }
diff --git a/scripts/data_files/driver_jsons/mbedtls_test_transparent_driver.json b/scripts/data_files/driver_jsons/mbedtls_test_transparent_driver.json
index db31ff4..9eb259f 100644
--- a/scripts/data_files/driver_jsons/mbedtls_test_transparent_driver.json
+++ b/scripts/data_files/driver_jsons/mbedtls_test_transparent_driver.json
@@ -1,18 +1,18 @@
 {
     "prefix":       "mbedtls_test",
     "type":         "transparent",
-    "mbedtls/h_depend_on":   "defined(PSA_CRYPTO_DRIVER_TEST)",
+    "mbedtls/h_condition":   "defined(PSA_CRYPTO_DRIVER_TEST)",
     "headers":      ["test/drivers/test_driver.h"],
     "capabilities": [
         {
             "_comment":     "The Mbed TLS transparent driver supports import key/export key",
-            "mbedtls/c_depend_on":    "defined(PSA_CRYPTO_DRIVER_TEST)",
+            "mbedtls/c_condition":    "defined(PSA_CRYPTO_DRIVER_TEST)",
             "entry_points": ["import_key", "export_key"],
             "fallback":     true
         },
         {
             "_comment":     "The Mbed TLS transparent driver supports export_public key",
-            "mbedtls/c_depend_on":    "defined(PSA_CRYPTO_DRIVER_TEST)",
+            "mbedtls/c_condition":    "defined(PSA_CRYPTO_DRIVER_TEST)",
             "entry_points": ["export_public_key"],
             "fallback":     true,
             "names":         {"export_public_key":"mbedtls_test_transparent_export_public_key"}
diff --git a/scripts/data_files/driver_templates/OS-template-opaque.jinja b/scripts/data_files/driver_templates/OS-template-opaque.jinja
index 115e22c..a25d1c3 100644
--- a/scripts/data_files/driver_templates/OS-template-opaque.jinja
+++ b/scripts/data_files/driver_templates/OS-template-opaque.jinja
@@ -7,7 +7,7 @@
 -#}
 {% for driver in drivers if driver.type == "opaque" -%}
 {% for capability in driver.capabilities if entry_point in capability.entry_points -%}
-#if ({% if capability['mbedtls/c_depend_on'] is defined -%}{{ capability['mbedtls/c_depend_on'] }} {% else -%} {{ 1 }} {% endif %})
+#if ({% if capability['mbedtls/c_condition'] is defined -%}{{ capability['mbedtls/c_condition'] }} {% else -%} {{ 1 }} {% endif %})
 {%- filter indent(width = nest_indent) %}
 case {{ driver.location }}:
     return( {{ entry_point_name(capability, entry_point, driver) }}({{entry_point_param(driver) | indent(20)}}));
diff --git a/scripts/data_files/driver_templates/OS-template-transparent.jinja b/scripts/data_files/driver_templates/OS-template-transparent.jinja
index 9ba1155..a6b7d69 100644
--- a/scripts/data_files/driver_templates/OS-template-transparent.jinja
+++ b/scripts/data_files/driver_templates/OS-template-transparent.jinja
@@ -7,7 +7,7 @@
 -#}
 {% for driver in drivers if driver.type == "transparent" -%}
 {% for capability in driver.capabilities if entry_point in capability.entry_points -%}
-#if ({% if capability['mbedtls/c_depend_on'] is defined -%}{{ capability['mbedtls/c_depend_on'] }} {% else -%} {{ 1 }} {% endif %})
+#if ({% if capability['mbedtls/c_condition'] is defined -%}{{ capability['mbedtls/c_condition'] }} {% else -%} {{ 1 }} {% endif %})
 {%- filter indent(width = nest_indent) %}
 status = {{ entry_point_name(capability, entry_point, driver) }}({{entry_point_param(driver) | indent(20)}});
 
diff --git a/scripts/data_files/driver_templates/psa_crypto_driver_wrappers.c.jinja b/scripts/data_files/driver_templates/psa_crypto_driver_wrappers.c.jinja
index f38479d..d5ae911 100644
--- a/scripts/data_files/driver_templates/psa_crypto_driver_wrappers.c.jinja
+++ b/scripts/data_files/driver_templates/psa_crypto_driver_wrappers.c.jinja
@@ -39,13 +39,13 @@
 #if defined(MBEDTLS_PSA_CRYPTO_DRIVERS)
 {% for driver in drivers -%}
 /* Headers for {{driver.prefix}} {{driver.type}} driver */
-{% if driver['mbedtls/h_depend_on'] is defined -%}
-#if {{ driver['mbedtls/h_depend_on'] }}
+{% if driver['mbedtls/h_condition'] is defined -%}
+#if {{ driver['mbedtls/h_condition'] }}
 {% endif -%}
 {% for header in driver.headers -%}
 #include "{{ header }}"
 {% endfor %}
-{% if driver['mbedtls/h_depend_on'] is defined -%}
+{% if driver['mbedtls/h_condition'] is defined -%}
 #endif
 {% endif -%}
 {% endfor %}