|  | /* | 
|  | * Copyright 2023 NXP | 
|  | * | 
|  | * SPDX-License-Identifier: Apache-2.0 | 
|  | */ | 
|  |  | 
|  | #include <zephyr/drivers/pinctrl.h> | 
|  | #include <svc/pad/pad_api.h> | 
|  | #include <main/ipc.h> | 
|  |  | 
|  | int pinctrl_configure_pins(const pinctrl_soc_pin_t *pins, | 
|  | uint8_t pin_cnt, uintptr_t reg) | 
|  | { | 
|  | sc_ipc_t ipc_handle; | 
|  | int ret, i; | 
|  |  | 
|  | ret = sc_ipc_open(&ipc_handle, DT_REG_ADDR(DT_NODELABEL(scu_mu))); | 
|  | if (ret != SC_ERR_NONE) { | 
|  | return -ENODEV; | 
|  | } | 
|  |  | 
|  | for (i = 0; i < pin_cnt; i++) { | 
|  | /* TODO: for now, pad configuration is not supported. As such, | 
|  | * the state of the pad is the following: | 
|  | *	1) Normal configuration (no OD) | 
|  | *	2) ISO off | 
|  | *	3) Pull select and drive strength initialized by another | 
|  | *	entity (e.g: SCFW, Linux etc...) or set to the default | 
|  | *	values as specified in the TRM. | 
|  | */ | 
|  | ret = sc_pad_set_mux(ipc_handle, pins[i].pad, pins[i].mux, 0, 0); | 
|  | if (ret != SC_ERR_NONE) { | 
|  | return -EINVAL; | 
|  | } | 
|  | } | 
|  |  | 
|  | return 0; | 
|  | } |