Lines Matching +full:pincfg +full:- +full:node

4  * SPDX-License-Identifier: Apache-2.0
11 #include <zephyr/dt-bindings/gpio/renesas-ra-gpio-ioport.h>
39 const struct gpio_ra_config *config = dev->config; in query_irq_info()
41 for (int i = 0; i < config->irq_info_size; i++) { in query_irq_info()
42 const struct gpio_ra_irq_info *info = &config->irq_info[i]; in query_irq_info()
44 for (int j = 0; j < info->num; j++) { in query_irq_info()
45 if (info->pins[j] == pin) { in query_irq_info()
56 struct gpio_ra_data *data = dev->data; in gpio_ra_callback_adapter()
58 gpio_fire_callbacks(&data->callbacks, dev, BIT(pin)); in gpio_ra_callback_adapter()
64 const struct gpio_ra_config *config = dev->config; in gpio_ra_pin_configure()
66 struct ra_pinctrl_soc_pin pincfg; in gpio_ra_pin_configure() local
70 return -ENOTSUP; in gpio_ra_pin_configure()
74 return -ENOTSUP; in gpio_ra_pin_configure()
78 return -ENOTSUP; in gpio_ra_pin_configure()
82 if (config->vbatt_pins[0] != 0xFF) { in gpio_ra_pin_configure()
85 for (int i = 0; config->vbatt_pins[i] != '\0'; i++) { in gpio_ra_pin_configure()
86 if (config->vbatt_pins[i] == pin) { in gpio_ra_pin_configure()
93 R_SYSTEM->VBTICTLR &= (uint8_t)~clear; in gpio_ra_pin_configure()
99 pincfg.port_num = config->port_num; in gpio_ra_pin_configure()
100 pincfg.pin_num = pin; in gpio_ra_pin_configure()
103 * - Low output, input mode in gpio_ra_pin_configure()
104 * - Pull-up disabled, CMOS output in gpio_ra_pin_configure()
105 * - Low drive strength in gpio_ra_pin_configure()
106 * - Not used for IRQ or analog in gpio_ra_pin_configure()
107 * - Configured as general I/O in gpio_ra_pin_configure()
134 return -EINVAL; in gpio_ra_pin_configure()
137 if (!device_is_ready(irq_info->port_irq)) { in gpio_ra_pin_configure()
138 return -EWOULDBLOCK; in gpio_ra_pin_configure()
143 .port_num = config->port_num, in gpio_ra_pin_configure()
150 err = gpio_ra_interrupt_set(irq_info->port_irq, &callback); in gpio_ra_pin_configure()
162 return -EINVAL; in gpio_ra_pin_configure()
165 if (!device_is_ready(irq_info->port_irq)) { in gpio_ra_pin_configure()
166 return -EWOULDBLOCK; in gpio_ra_pin_configure()
169 gpio_ra_interrupt_unset(irq_info->port_irq, config->port_num, pin); in gpio_ra_pin_configure()
174 pincfg.cfg = in gpio_ra_pin_configure()
177 return pinctrl_configure_pins(&pincfg, 1, PINCTRL_REG_NONE); in gpio_ra_pin_configure()
183 const struct gpio_ra_config *config = dev->config; in gpio_ra_pin_get_config()
184 uint32_t pincfg; in gpio_ra_pin_get_config() local
187 return -EINVAL; in gpio_ra_pin_get_config()
192 pincfg = R_PFS->PORT[config->port_num].PIN[pin].PmnPFS; in gpio_ra_pin_get_config()
194 if (pincfg & BIT(R_PFS_PORT_PIN_PmnPFS_PDR_Pos)) { in gpio_ra_pin_get_config()
200 if (pincfg & BIT(R_PFS_PORT_PIN_PmnPFS_NCODR_Pos)) { in gpio_ra_pin_get_config()
204 if (pincfg & BIT(R_PFS_PORT_PIN_PmnPFS_PCR_Pos)) { in gpio_ra_pin_get_config()
213 const struct gpio_ra_config *config = dev->config; in gpio_ra_port_get_raw()
214 R_PORT0_Type *port = config->port; in gpio_ra_port_get_raw()
216 *value = port->PIDR; in gpio_ra_port_get_raw()
224 const struct gpio_ra_config *config = dev->config; in gpio_ra_port_set_masked_raw()
225 R_PORT0_Type *port = config->port; in gpio_ra_port_set_masked_raw()
227 port->PODR = ((port->PODR & ~mask) | (value & mask)); in gpio_ra_port_set_masked_raw()
234 const struct gpio_ra_config *config = dev->config; in gpio_ra_port_set_bits_raw()
235 R_PORT0_Type *port = config->port; in gpio_ra_port_set_bits_raw()
237 port->PODR = (port->PODR | pins); in gpio_ra_port_set_bits_raw()
244 const struct gpio_ra_config *config = dev->config; in gpio_ra_port_clear_bits_raw()
245 R_PORT0_Type *port = config->port; in gpio_ra_port_clear_bits_raw()
247 port->PODR = (port->PODR & ~pins); in gpio_ra_port_clear_bits_raw()
254 const struct gpio_ra_config *config = dev->config; in gpio_ra_port_toggle_bits()
255 R_PORT0_Type *port = config->port; in gpio_ra_port_toggle_bits()
257 port->PODR = (port->PODR ^ pins); in gpio_ra_port_toggle_bits()
280 struct gpio_ra_data *data = dev->data; in gpio_ra_manage_callback()
282 return gpio_manage_callback(&data->callbacks, callback, set); in gpio_ra_manage_callback()
315 #define DECL_PINS_PARAMETER(node) \ argument
316 COND_CODE_1(DT_NODE_HAS_PROP(node, port_irq_names), \
317 (DT_FOREACH_PROP_ELEM(node, port_irq_names, GPIO_RA_DECL_PINS)), ())
318 #define IRQ_INFO_PARAMETER(node) \ argument
319 COND_CODE_1(DT_NODE_HAS_PROP(node, port_irq_names), \
320 (DT_FOREACH_PROP_ELEM(node, port_irq_names, GPIO_RA_IRQ_INFO)), ())
322 #define GPIO_DEVICE_INIT(node, port_number, suffix, addr) \ argument
323 DECL_PINS_PARAMETER(node); \
324 struct gpio_ra_irq_info gpio_ra_irq_info_##suffix[] = {IRQ_INFO_PARAMETER(node)}; \
337 DEVICE_DT_DEFINE(node, NULL, NULL, &gpio_ra_data_##suffix, &gpio_ra_config_##suffix, \