54 lines · c
1/* SPDX-License-Identifier: GPL-2.0-only */2/*3 * Copyright (C) 2012 John Crispin <john@phrozen.org>4 */5 6#ifndef _PINCTRL_MTMIPS_H__7#define _PINCTRL_MTMIPS_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 mtmips_pmx_group;23 24struct mtmips_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 mtmips_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 mtmips_pmx_func *func;47 int func_count;48};49 50int mtmips_pinctrl_init(struct platform_device *pdev,51 struct mtmips_pmx_group *data);52 53#endif54