mirror of
https://github.com/RIOT-OS/RIOT.git
synced 2025-12-25 22:43:50 +01:00
drivers/pcf857x: stop (ab)using gpio_t
The driver only supports addressing GPIOs by their index, (ab)using `gpio_t` for that will break on platforms that encode GPIO values differently.
This commit is contained in:
parent
f048714418
commit
e8a4defafd
@ -297,7 +297,7 @@ extern "C"
|
||||
/** @} */
|
||||
|
||||
/** conversion of (port x : pin y) to a pin number */
|
||||
#define PCF857X_GPIO_PIN(x,y) ((gpio_t)((x << 3) | y))
|
||||
#define PCF857X_GPIO_PIN(x,y) (y)
|
||||
|
||||
/**
|
||||
* @name Module dependent definitions and declarations
|
||||
@ -484,7 +484,7 @@ int pcf857x_init(pcf857x_t *dev, const pcf857x_params_t *params);
|
||||
* @retval 0 on success
|
||||
* @retval <0 a negative errno error code on error
|
||||
*/
|
||||
int pcf857x_gpio_init(pcf857x_t *dev, gpio_t pin, gpio_mode_t mode);
|
||||
int pcf857x_gpio_init(pcf857x_t *dev, uint8_t pin, gpio_mode_t mode);
|
||||
|
||||
#if IS_USED(MODULE_PCF857X_IRQ) || DOXYGEN
|
||||
/**
|
||||
@ -522,7 +522,7 @@ int pcf857x_gpio_init(pcf857x_t *dev, gpio_t pin, gpio_mode_t mode);
|
||||
* @retval 0 on success
|
||||
* @retval <0 a negative errno error code on error
|
||||
*/
|
||||
int pcf857x_gpio_init_int(pcf857x_t *dev, gpio_t pin,
|
||||
int pcf857x_gpio_init_int(pcf857x_t *dev, uint8_t pin,
|
||||
gpio_mode_t mode,
|
||||
gpio_flank_t flank,
|
||||
gpio_cb_t isr,
|
||||
@ -538,7 +538,7 @@ int pcf857x_gpio_init_int(pcf857x_t *dev, gpio_t pin,
|
||||
* @param[in] dev descriptor of PCF857X I/O expander device
|
||||
* @param[in] pin pin to read, use PCF857X_GPIO_PIN(x,y) to specify
|
||||
*/
|
||||
int pcf857x_gpio_read(pcf857x_t *dev, gpio_t pin);
|
||||
int pcf857x_gpio_read(pcf857x_t *dev, uint8_t pin);
|
||||
|
||||
/**
|
||||
* @brief Write the value to PCF857X input pin
|
||||
@ -547,7 +547,7 @@ int pcf857x_gpio_read(pcf857x_t *dev, gpio_t pin);
|
||||
* @param[in] pin pin to write, use PCF857X_GPIO_PIN(x,y) to specify
|
||||
* @param[in] value value to write
|
||||
*/
|
||||
void pcf857x_gpio_write(pcf857x_t *dev, gpio_t pin, int value);
|
||||
void pcf857x_gpio_write(pcf857x_t *dev, uint8_t pin, int value);
|
||||
|
||||
/**
|
||||
* @brief Clear the PCF857X output pin
|
||||
@ -555,7 +555,7 @@ void pcf857x_gpio_write(pcf857x_t *dev, gpio_t pin, int value);
|
||||
* @param[in] dev descriptor of PCF857X I/O expander device
|
||||
* @param[in] pin pin to clear, use PCF857X_GPIO_PIN(x,y) to specify
|
||||
*/
|
||||
void pcf857x_gpio_clear(pcf857x_t *dev, gpio_t pin);
|
||||
void pcf857x_gpio_clear(pcf857x_t *dev, uint8_t pin);
|
||||
|
||||
/**
|
||||
* @brief Set the PCF857X output pin
|
||||
@ -563,7 +563,7 @@ void pcf857x_gpio_clear(pcf857x_t *dev, gpio_t pin);
|
||||
* @param[in] dev descriptor of PCF857X I/O expander device
|
||||
* @param[in] pin pin to set, use PCF857X_GPIO_PIN(x,y) to specify
|
||||
*/
|
||||
void pcf857x_gpio_set(pcf857x_t *dev, gpio_t pin);
|
||||
void pcf857x_gpio_set(pcf857x_t *dev, uint8_t pin);
|
||||
|
||||
/**
|
||||
* @brief Toggle the value of the PCF857X output pin
|
||||
@ -571,7 +571,7 @@ void pcf857x_gpio_set(pcf857x_t *dev, gpio_t pin);
|
||||
* @param[in] dev descriptor of PCF857X I/O expander device
|
||||
* @param[in] pin pin to toggle, use PCF857X_GPIO_PIN(x,y) to specify
|
||||
*/
|
||||
void pcf857x_gpio_toggle(pcf857x_t *dev, gpio_t pin);
|
||||
void pcf857x_gpio_toggle(pcf857x_t *dev, uint8_t pin);
|
||||
|
||||
#if IS_USED(MODULE_PCF857X_IRQ) || DOXYGEN
|
||||
/**
|
||||
@ -583,7 +583,7 @@ void pcf857x_gpio_toggle(pcf857x_t *dev, gpio_t pin);
|
||||
* @param[in] dev descriptor of PCF857X I/O expander device
|
||||
* @param[in] pin pin to enable the interrupt for
|
||||
*/
|
||||
void pcf857x_gpio_irq_enable(pcf857x_t *dev, gpio_t pin);
|
||||
void pcf857x_gpio_irq_enable(pcf857x_t *dev, uint8_t pin);
|
||||
|
||||
/**
|
||||
* @brief Disable pin interrupt
|
||||
@ -594,7 +594,7 @@ void pcf857x_gpio_irq_enable(pcf857x_t *dev, gpio_t pin);
|
||||
* @param[in] dev descriptor of PCF857X I/O expander device
|
||||
* @param[in] pin pin to enable the interrupt for
|
||||
*/
|
||||
void pcf857x_gpio_irq_disable(pcf857x_t *dev, gpio_t pin);
|
||||
void pcf857x_gpio_irq_disable(pcf857x_t *dev, uint8_t pin);
|
||||
#endif /* MODULE_PCF857X_IRQ || DOXYGEN */
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
||||
@ -147,13 +147,13 @@ int pcf857x_init(pcf857x_t *dev, const pcf857x_params_t *params)
|
||||
return res;
|
||||
}
|
||||
|
||||
int pcf857x_gpio_init(pcf857x_t *dev, gpio_t pin, gpio_mode_t mode)
|
||||
int pcf857x_gpio_init(pcf857x_t *dev, uint8_t pin, gpio_mode_t mode)
|
||||
{
|
||||
/* some parameter sanity checks */
|
||||
assert(dev != NULL);
|
||||
assert(pin < dev->pin_num);
|
||||
|
||||
DEBUG_DEV("pin=%u mode=%u", dev, (unsigned)pin, (unsigned)mode);
|
||||
DEBUG_DEV("pin=%u mode=%u", dev, pin, (unsigned)mode);
|
||||
|
||||
/*
|
||||
* Since the LOW output is the only actively driven level possible with
|
||||
@ -209,7 +209,7 @@ int pcf857x_gpio_init(pcf857x_t *dev, gpio_t pin, gpio_mode_t mode)
|
||||
}
|
||||
|
||||
#if IS_USED(MODULE_PCF857X_IRQ)
|
||||
int pcf857x_gpio_init_int(pcf857x_t *dev, gpio_t pin,
|
||||
int pcf857x_gpio_init_int(pcf857x_t *dev, uint8_t pin,
|
||||
gpio_mode_t mode,
|
||||
gpio_flank_t flank,
|
||||
gpio_cb_t isr,
|
||||
@ -237,7 +237,7 @@ int pcf857x_gpio_init_int(pcf857x_t *dev, gpio_t pin,
|
||||
return PCF857X_OK;
|
||||
}
|
||||
|
||||
void pcf857x_gpio_irq_enable(pcf857x_t *dev, gpio_t pin)
|
||||
void pcf857x_gpio_irq_enable(pcf857x_t *dev, uint8_t pin)
|
||||
{
|
||||
/* some parameter sanity checks */
|
||||
assert(dev != NULL);
|
||||
@ -247,7 +247,7 @@ void pcf857x_gpio_irq_enable(pcf857x_t *dev, gpio_t pin)
|
||||
dev->enabled[pin] = true;
|
||||
}
|
||||
|
||||
void pcf857x_gpio_irq_disable(pcf857x_t *dev, gpio_t pin)
|
||||
void pcf857x_gpio_irq_disable(pcf857x_t *dev, uint8_t pin)
|
||||
{
|
||||
/* some parameter sanity checks */
|
||||
assert(dev != NULL);
|
||||
@ -258,13 +258,13 @@ void pcf857x_gpio_irq_disable(pcf857x_t *dev, gpio_t pin)
|
||||
}
|
||||
#endif
|
||||
|
||||
int pcf857x_gpio_read(pcf857x_t *dev, gpio_t pin)
|
||||
int pcf857x_gpio_read(pcf857x_t *dev, uint8_t pin)
|
||||
{
|
||||
/* some parameter sanity checks */
|
||||
assert(dev != NULL);
|
||||
assert(pin < dev->pin_num);
|
||||
|
||||
DEBUG_DEV("pin=%u", dev, (unsigned)pin);
|
||||
DEBUG_DEV("pin=%u", dev, pin);
|
||||
|
||||
/*
|
||||
* If we use the interrupt, we always have an up-to-date input snapshot
|
||||
@ -279,13 +279,13 @@ int pcf857x_gpio_read(pcf857x_t *dev, gpio_t pin)
|
||||
return (dev->in &(1 << pin)) ? 1 : 0;
|
||||
}
|
||||
|
||||
void pcf857x_gpio_write(pcf857x_t *dev, gpio_t pin, int value)
|
||||
void pcf857x_gpio_write(pcf857x_t *dev, uint8_t pin, int value)
|
||||
{
|
||||
/* some parameter sanity checks */
|
||||
assert(dev != NULL);
|
||||
assert(pin < dev->pin_num);
|
||||
|
||||
DEBUG_DEV("pin=%u value=%d", dev, (unsigned)pin, value);
|
||||
DEBUG_DEV("pin=%u value=%d", dev, pin, value);
|
||||
|
||||
/* set pin bit value */
|
||||
if (value) {
|
||||
@ -316,21 +316,21 @@ void pcf857x_gpio_write(pcf857x_t *dev, gpio_t pin, int value)
|
||||
#endif
|
||||
}
|
||||
|
||||
void pcf857x_gpio_clear(pcf857x_t *dev, gpio_t pin)
|
||||
void pcf857x_gpio_clear(pcf857x_t *dev, uint8_t pin)
|
||||
{
|
||||
DEBUG_DEV("pin=%u", dev, (unsigned)pin);
|
||||
DEBUG_DEV("pin=%u", dev, pin);
|
||||
return pcf857x_gpio_write(dev, pin, 0);
|
||||
}
|
||||
|
||||
void pcf857x_gpio_set(pcf857x_t *dev, gpio_t pin)
|
||||
void pcf857x_gpio_set(pcf857x_t *dev, uint8_t pin)
|
||||
{
|
||||
DEBUG_DEV("pin=%u", dev, (unsigned)pin);
|
||||
DEBUG_DEV("pin=%u", dev, pin);
|
||||
return pcf857x_gpio_write(dev, pin, 1);
|
||||
}
|
||||
|
||||
void pcf857x_gpio_toggle(pcf857x_t *dev, gpio_t pin)
|
||||
void pcf857x_gpio_toggle(pcf857x_t *dev, uint8_t pin)
|
||||
{
|
||||
DEBUG_DEV("pin=%u", dev, (unsigned)pin);
|
||||
DEBUG_DEV("pin=%u", dev, pin);
|
||||
return pcf857x_gpio_write(dev, pin, (dev->out & (1 << pin)) ? 0 : 1);
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user