diff options
author | andryblack <blackicebox@gmail.com> | 2020-04-24 00:16:31 +0300 |
---|---|---|
committer | KevinOConnor <kevin@koconnor.net> | 2020-05-17 22:17:15 -0400 |
commit | 8fd330c54e702719301072357c3db591eb16d489 (patch) | |
tree | a4ce01b16b2f1d5df8609fa3c82557d52f365a12 /src/linux/gpio.h | |
parent | f0c394de8111ff7d498efd2e947d1d36788a9ad3 (diff) | |
download | kutter-8fd330c54e702719301072357c3db591eb16d489.tar.gz kutter-8fd330c54e702719301072357c3db591eb16d489.tar.xz kutter-8fd330c54e702719301072357c3db591eb16d489.zip |
linux: userspace GPIO control
Allow use host GPIO pins for non-realtime purposes.
Signed-off-by: Andrey Kunitsyn <blackicebox@gmail.com>
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 { |