Platform: Create platform service for pin functions

This patch creates new platform service API for
alternate functions, default input and pin mode setting.
The functions are implemented only for Musca B1,
not needed on Musca A, AN519 and AN521

Change-Id: Ic6d6dbeafe059aadc4f57a066513281afa8aa61b
Signed-off-by: Tamas Kaman <tamas.kaman@arm.com>
diff --git a/platform/include/tfm_platform_system.h b/platform/include/tfm_platform_system.h
index d0e5683..411be49 100644
--- a/platform/include/tfm_platform_system.h
+++ b/platform/include/tfm_platform_system.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Arm Limited. All rights reserved.
+ * Copyright (c) 2018-2019, Arm Limited. All rights reserved.
  *
  * SPDX-License-Identifier: BSD-3-Clause
  *
@@ -13,6 +13,8 @@
  */
 
 #include "tfm_plat_defs.h"
+#include "psa_client.h"
+#include "tfm_plat_defs.h"
 
 #ifdef __cplusplus
 extern "C" {
@@ -26,6 +28,23 @@
 TFM_LINK_SET_OBJECT_IN_PARTITION_SECTION("TFM_SP_PLATFORM")
 void tfm_platform_hal_system_reset(void);
 
+/*!
+ * \brief Performs pin services of the platform
+ *
+ * \param[in]     in_vec     Pointer to in_vec array, which contains input
+ *                           arguments for the pin service
+ * \param[in]     num_invec  Number of elements in in_vec array
+ * \param[in,out] out_vec    Pointer out_vec array, which contains output data
+ *                           of the pin service
+ * \param[in]     num_outvec Number of elements in out_vec array
+ *
+ * \return Returns values as specified by the \ref tfm_plat_err_t
+ */
+TFM_LINK_SET_OBJECT_IN_PARTITION_SECTION("TFM_SP_PLATFORM")
+enum tfm_plat_err_t
+tfm_platform_hal_pin_service(const psa_invec  *in_vec,  uint32_t num_invec,
+                             const psa_outvec *out_vec, uint32_t num_outvec);
+
 #ifdef __cplusplus
 }
 #endif