pinctrl-ralink.h (1049B)
1/* SPDX-License-Identifier: GPL-2.0-only */ 2/* 3 * Copyright (C) 2012 John Crispin <john@phrozen.org> 4 */ 5 6#ifndef _PINCTRL_RALINK_H__ 7#define _PINCTRL_RALINK_H__ 8 9#define FUNC(name, value, pin_first, pin_count) \ 10 { name, value, pin_first, pin_count } 11 12#define GRP(_name, _func, _mask, _shift) \ 13 { .name = _name, .mask = _mask, .shift = _shift, \ 14 .func = _func, .gpio = _mask, \ 15 .func_count = ARRAY_SIZE(_func) } 16 17#define GRP_G(_name, _func, _mask, _gpio, _shift) \ 18 { .name = _name, .mask = _mask, .shift = _shift, \ 19 .func = _func, .gpio = _gpio, \ 20 .func_count = ARRAY_SIZE(_func) } 21 22struct ralink_pmx_group; 23 24struct ralink_pmx_func { 25 const char *name; 26 const char value; 27 28 int pin_first; 29 int pin_count; 30 int *pins; 31 32 int *groups; 33 int group_count; 34 35 int enabled; 36}; 37 38struct ralink_pmx_group { 39 const char *name; 40 int enabled; 41 42 const u32 shift; 43 const char mask; 44 const char gpio; 45 46 struct ralink_pmx_func *func; 47 int func_count; 48}; 49 50int ralink_pinctrl_init(struct platform_device *pdev, 51 struct ralink_pmx_group *data); 52 53#endif