Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0-only */
0002 /*
0003  *  Copyright (C) 2012 John Crispin <john@phrozen.org>
0004  */
0005 
0006 #ifndef _PINCTRL_RALINK_H__
0007 #define _PINCTRL_RALINK_H__
0008 
0009 #define FUNC(name, value, pin_first, pin_count) \
0010     { name, value, pin_first, pin_count }
0011 
0012 #define GRP(_name, _func, _mask, _shift) \
0013     { .name = _name, .mask = _mask, .shift = _shift, \
0014       .func = _func, .gpio = _mask, \
0015       .func_count = ARRAY_SIZE(_func) }
0016 
0017 #define GRP_G(_name, _func, _mask, _gpio, _shift) \
0018     { .name = _name, .mask = _mask, .shift = _shift, \
0019       .func = _func, .gpio = _gpio, \
0020       .func_count = ARRAY_SIZE(_func) }
0021 
0022 struct ralink_pmx_group;
0023 
0024 struct ralink_pmx_func {
0025     const char *name;
0026     const char value;
0027 
0028     int pin_first;
0029     int pin_count;
0030     int *pins;
0031 
0032     int *groups;
0033     int group_count;
0034 
0035     int enabled;
0036 };
0037 
0038 struct ralink_pmx_group {
0039     const char *name;
0040     int enabled;
0041 
0042     const u32 shift;
0043     const char mask;
0044     const char gpio;
0045 
0046     struct ralink_pmx_func *func;
0047     int func_count;
0048 };
0049 
0050 int ralink_pinctrl_init(struct platform_device *pdev,
0051             struct ralink_pmx_group *data);
0052 
0053 #endif