1 /* 2 * Copyright (c) 2021-2025 Gerson Fernando Budke <nandojve@gmail.com> 3 * 4 * SPDX-License-Identifier: Apache-2.0 5 */ 6 7 #include <zephyr/kernel.h> 8 #include <zephyr/drivers/pinctrl.h> 9 10 #include <zephyr/dt-bindings/pinctrl/bflb-common-pinctrl.h> 11 12 #if defined(CONFIG_SOC_SERIES_BL60X) 13 #include <zephyr/dt-bindings/pinctrl/bl60x-pinctrl.h> 14 #elif defined(CONFIG_SOC_SERIES_BL61X) 15 #include <zephyr/dt-bindings/pinctrl/bl61x-pinctrl.h> 16 #elif defined(CONFIG_SOC_SERIES_BL70X) 17 #include <zephyr/dt-bindings/pinctrl/bl70x-pinctrl.h> 18 #else 19 #error "Unsupported Platform" 20 #endif 21 22 void pinctrl_bflb_configure_uart(uint8_t pin, uint8_t func); 23 void pinctrl_bflb_init_pin(pinctrl_soc_pin_t pin); 24 pinctrl_configure_pins(const pinctrl_soc_pin_t * pins,uint8_t pin_cnt,uintptr_t reg)25int pinctrl_configure_pins(const pinctrl_soc_pin_t *pins, uint8_t pin_cnt, uintptr_t reg) 26 { 27 uint8_t i; 28 29 ARG_UNUSED(reg); 30 31 for (i = 0U; i < pin_cnt; i++) { 32 33 if ((BFLB_PINMUX_GET_FUN(pins[i]) & BFLB_PINMUX_FUN_MASK) 34 == BFLB_PINMUX_FUN_INST_uart0) { 35 pinctrl_bflb_configure_uart(BFLB_PINMUX_GET_PIN(pins[i]), 36 BFLB_PINMUX_GET_SIGNAL(pins[i]) + 4 * BFLB_PINMUX_GET_INST(pins[i])); 37 } 38 39 /* gpio init*/ 40 pinctrl_bflb_init_pin(pins[i]); 41 } 42 43 return 0; 44 } 45