/* * Copyright (c) 2024 Antmicro * * SPDX-License-Identifier: Apache-2.0 */ #include #include #include "pinctrl_soc.h" LOG_MODULE_REGISTER(pinctrl_xlnx_zynqmp, CONFIG_PINCTRL_LOG_LEVEL); #define DT_DRV_COMPAT xlnx_pinctrl_zynqmp static mm_reg_t base = DT_INST_REG_ADDR(0); static uint8_t mio_pin_offset = 0x04; int pinctrl_configure_pins(const pinctrl_soc_pin_t *pins, uint8_t pin_cnt, uintptr_t reg) { for (uint8_t i = 0U; i < pin_cnt; i++) { uint32_t sel = 0; switch (pins[i].func) { case UART_FUNCTION: { sel = UARTX_SEL; break; } default: { LOG_ERR("Unsupported function enum was selected"); break; } } sys_write32(sel, base + mio_pin_offset * pins[i].pin); } return 0; }