diff options
Diffstat (limited to 'src/linux/gpio.h')
-rw-r--r-- | src/linux/gpio.h | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/src/linux/gpio.h b/src/linux/gpio.h index 32e76bf5..e6ef86bd 100644 --- a/src/linux/gpio.h +++ b/src/linux/gpio.h @@ -4,17 +4,25 @@ #include <stdint.h> // uint8_t struct gpio_out { - uint32_t pin; + struct gpio_line* line; }; -struct gpio_out gpio_out_setup(uint8_t pin, uint8_t val); +struct gpio_out gpio_out_setup(uint32_t pin, uint8_t val); +void gpio_out_reset(struct gpio_out g, uint8_t val); void gpio_out_toggle_noirq(struct gpio_out g); void gpio_out_toggle(struct gpio_out g); void gpio_out_write(struct gpio_out g, uint8_t val); +struct gpio_in { + struct gpio_line* line; +}; +struct gpio_in gpio_in_setup(uint32_t pin, int8_t pull_up); +void gpio_in_reset(struct gpio_in g, int8_t pull_up); +uint8_t gpio_in_read(struct gpio_in g); + struct gpio_adc { int fd; }; -struct gpio_adc gpio_adc_setup(uint8_t pin); +struct gpio_adc gpio_adc_setup(uint32_t pin); uint32_t gpio_adc_sample(struct gpio_adc g); uint16_t gpio_adc_read(struct gpio_adc g); void gpio_adc_cancel_sample(struct gpio_adc g); @@ -32,7 +40,7 @@ struct gpio_pwm { int fd; uint32_t period; }; -struct gpio_pwm gpio_pwm_setup(uint8_t pin, uint32_t cycle_time, uint16_t val); +struct gpio_pwm gpio_pwm_setup(uint32_t pin, uint32_t cycle_time, uint16_t val); void gpio_pwm_write(struct gpio_pwm g, uint16_t val); struct i2c_config { |