pinctrl-ralink.h 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. /* SPDX-License-Identifier: GPL-2.0-only */
  2. /*
  3. * Copyright (C) 2012 John Crispin <[email protected]>
  4. */
  5. #ifndef _PINCTRL_RALINK_H__
  6. #define _PINCTRL_RALINK_H__
  7. #define FUNC(name, value, pin_first, pin_count) \
  8. { name, value, pin_first, pin_count }
  9. #define GRP(_name, _func, _mask, _shift) \
  10. { .name = _name, .mask = _mask, .shift = _shift, \
  11. .func = _func, .gpio = _mask, \
  12. .func_count = ARRAY_SIZE(_func) }
  13. #define GRP_G(_name, _func, _mask, _gpio, _shift) \
  14. { .name = _name, .mask = _mask, .shift = _shift, \
  15. .func = _func, .gpio = _gpio, \
  16. .func_count = ARRAY_SIZE(_func) }
  17. struct ralink_pmx_group;
  18. struct ralink_pmx_func {
  19. const char *name;
  20. const char value;
  21. int pin_first;
  22. int pin_count;
  23. int *pins;
  24. int *groups;
  25. int group_count;
  26. int enabled;
  27. };
  28. struct ralink_pmx_group {
  29. const char *name;
  30. int enabled;
  31. const u32 shift;
  32. const char mask;
  33. const char gpio;
  34. struct ralink_pmx_func *func;
  35. int func_count;
  36. };
  37. int ralink_pinctrl_init(struct platform_device *pdev,
  38. struct ralink_pmx_group *data);
  39. #endif