@@ -320,43 +320,30 @@ static int gpio_rza2m_pin_configure(const struct device *port_dev, gpio_pin_t pi
320
320
return - ENOTSUP ;
321
321
}
322
322
323
- /* Configure pin direction */
324
- if (flags & GPIO_OUTPUT ) {
325
- gpio_rza2m_pin_configure_as_gpio (port_dev , pin , RZA2M_PDR_OUTPUT );
326
- } else if (flags & GPIO_INPUT ) {
327
- gpio_rza2m_pin_configure_as_gpio (port_dev , pin , RZA2M_PDR_INPUT );
328
- } else {
329
- return - ENOTSUP ;
330
- }
331
-
332
- /* Configure pin drive strength */
333
- ret = gpio_rza2m_pin_drive_set (port_dev , pin , flags );
334
- if (ret ) {
335
- LOG_ERR ("unable to set gpio drive level" );
336
- return ret ;
337
- }
338
-
339
- /* Configure pin initial value */
340
- if (flags & GPIO_OUTPUT_INIT_HIGH ) {
341
- ret = gpio_rza2m_port_set_bits_raw (port_dev , BIT (pin ));
342
- } else if (flags & GPIO_OUTPUT_INIT_LOW ) {
343
- ret = gpio_rza2m_port_clear_bits_raw (port_dev , BIT (pin ));
344
- }
345
-
346
- /* Configure pin interrupt */
347
- if (flags & GPIO_INT_ENABLE ) {
348
- if (flags & GPIO_INT_LOW_0 ) {
349
- return - ENOTSUP ;
323
+ if (!flags ) {
324
+ /* Disconnected mode */
325
+ gpio_rza2m_pin_configure_as_gpio (port_dev , pin , RZA2M_PDR_HIZ );
326
+ } else if (!(flags & GPIO_OPEN_DRAIN )) {
327
+ /* Configure pin direction */
328
+ if (flags & GPIO_OUTPUT ) {
329
+ gpio_rza2m_pin_configure_as_gpio (port_dev , pin , RZA2M_PDR_OUTPUT );
330
+ } else if (flags & GPIO_INPUT ) {
331
+ gpio_rza2m_pin_configure_as_gpio (port_dev , pin , RZA2M_PDR_INPUT );
350
332
}
351
333
352
- enum gpio_int_mode mode =
353
- (flags & GPIO_INT_EDGE ) ? GPIO_INT_MODE_EDGE : GPIO_INT_MODE_LEVEL ;
354
- enum gpio_int_trig trig = GPIO_INT_TRIG_HIGH ;
334
+ /* Configure pin drive strength */
335
+ ret = gpio_rza2m_pin_drive_set (port_dev , pin , flags );
336
+ if (ret ) {
337
+ LOG_ERR ("unable to set gpio drive level" );
338
+ return ret ;
339
+ }
355
340
356
- ret = gpio_rza2m_pin_interrupt_configure (port_dev , pin , mode , trig );
357
- } else if (flags & GPIO_INT_DISABLE ) {
358
- ret = gpio_rza2m_pin_interrupt_configure (port_dev , pin , GPIO_INT_MODE_DISABLED ,
359
- GPIO_INT_TRIG_HIGH );
341
+ /* Configure pin initial value */
342
+ if (flags & GPIO_OUTPUT_INIT_HIGH ) {
343
+ ret = gpio_rza2m_port_set_bits_raw (port_dev , BIT (pin ));
344
+ } else if (flags & GPIO_OUTPUT_INIT_LOW ) {
345
+ ret = gpio_rza2m_port_clear_bits_raw (port_dev , BIT (pin ));
346
+ }
360
347
}
361
348
362
349
return ret ;
0 commit comments