gpio.h 686 B

1234567891011121314151617181920212223242526272829303132333435
  1. /* SPDX-License-Identifier: GPL-2.0+ */
  2. /*
  3. * Copyright (C) 2019 SiFive, Inc.
  4. */
  5. #ifndef _GPIO_SIFIVE_H
  6. #define _GPIO_SIFIVE_H
  7. #define GPIO_INPUT_VAL 0x00
  8. #define GPIO_INPUT_EN 0x04
  9. #define GPIO_OUTPUT_EN 0x08
  10. #define GPIO_OUTPUT_VAL 0x0C
  11. #define GPIO_RISE_IE 0x18
  12. #define GPIO_RISE_IP 0x1C
  13. #define GPIO_FALL_IE 0x20
  14. #define GPIO_FALL_IP 0x24
  15. #define GPIO_HIGH_IE 0x28
  16. #define GPIO_HIGH_IP 0x2C
  17. #define GPIO_LOW_IE 0x30
  18. #define GPIO_LOW_IP 0x34
  19. #define GPIO_OUTPUT_XOR 0x40
  20. #define NR_GPIOS 16
  21. enum gpio_state {
  22. LOW,
  23. HIGH
  24. };
  25. /* Details about a GPIO bank */
  26. struct sifive_gpio_plat {
  27. void *base; /* address of registers in physical memory */
  28. };
  29. #endif /* _GPIO_SIFIVE_H */