1 /* 2 * Copyright (c) 2024 Renesas Electronics Corporation 3 * 4 * SPDX-License-Identifier: Apache-2.0 5 */ 6 7 #include <zephyr/drivers/pinctrl.h> 8 #include <soc.h> 9 10 #define PORT_POS (8) 11 pinctrl_configure_pins(const pinctrl_soc_pin_t * pins,uint8_t pin_cnt,uintptr_t reg)12int pinctrl_configure_pins(const pinctrl_soc_pin_t *pins, uint8_t pin_cnt, uintptr_t reg) 13 { 14 bsp_io_port_pin_t port_pin; 15 16 R_BSP_PinAccessEnable(); 17 18 for (uint8_t i = 0U; i < pin_cnt; i++) { 19 const pinctrl_soc_pin_t *pin = &pins[i]; 20 21 port_pin = (pin->port_num << PORT_POS) | pin->pin_num; 22 R_BSP_PinCfg(port_pin, pin->cfg); 23 } 24 25 R_BSP_PinAccessDisable(); 26 27 return 0; 28 } 29 ra_pinctrl_query_config(uint32_t port,uint32_t pin,pinctrl_soc_pin_t * pincfg)30int ra_pinctrl_query_config(uint32_t port, uint32_t pin, pinctrl_soc_pin_t *pincfg) 31 { 32 if (port >= RA_PINCTRL_PORT_NUM || pin >= RA_PINCTRL_PIN_NUM) { 33 return -EINVAL; 34 } 35 36 pincfg->port_num = port; 37 pincfg->pin_num = pin; 38 39 pincfg->cfg = R_PFS->PORT[port].PIN[pin].PmnPFS; 40 return 0; 41 } 42