18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-only */ 28c2ecf20Sopenharmony_ci/* 38c2ecf20Sopenharmony_ci * Copyright (C) 2012 John Crispin <john@phrozen.org> 48c2ecf20Sopenharmony_ci */ 58c2ecf20Sopenharmony_ci 68c2ecf20Sopenharmony_ci#ifndef _RT288X_PINMUX_H__ 78c2ecf20Sopenharmony_ci#define _RT288X_PINMUX_H__ 88c2ecf20Sopenharmony_ci 98c2ecf20Sopenharmony_ci#define FUNC(name, value, pin_first, pin_count) \ 108c2ecf20Sopenharmony_ci { name, value, pin_first, pin_count } 118c2ecf20Sopenharmony_ci 128c2ecf20Sopenharmony_ci#define GRP(_name, _func, _mask, _shift) \ 138c2ecf20Sopenharmony_ci { .name = _name, .mask = _mask, .shift = _shift, \ 148c2ecf20Sopenharmony_ci .func = _func, .gpio = _mask, \ 158c2ecf20Sopenharmony_ci .func_count = ARRAY_SIZE(_func) } 168c2ecf20Sopenharmony_ci 178c2ecf20Sopenharmony_ci#define GRP_G(_name, _func, _mask, _gpio, _shift) \ 188c2ecf20Sopenharmony_ci { .name = _name, .mask = _mask, .shift = _shift, \ 198c2ecf20Sopenharmony_ci .func = _func, .gpio = _gpio, \ 208c2ecf20Sopenharmony_ci .func_count = ARRAY_SIZE(_func) } 218c2ecf20Sopenharmony_ci 228c2ecf20Sopenharmony_cistruct rt2880_pmx_group; 238c2ecf20Sopenharmony_ci 248c2ecf20Sopenharmony_cistruct rt2880_pmx_func { 258c2ecf20Sopenharmony_ci const char *name; 268c2ecf20Sopenharmony_ci const char value; 278c2ecf20Sopenharmony_ci 288c2ecf20Sopenharmony_ci int pin_first; 298c2ecf20Sopenharmony_ci int pin_count; 308c2ecf20Sopenharmony_ci int *pins; 318c2ecf20Sopenharmony_ci 328c2ecf20Sopenharmony_ci int *groups; 338c2ecf20Sopenharmony_ci int group_count; 348c2ecf20Sopenharmony_ci 358c2ecf20Sopenharmony_ci int enabled; 368c2ecf20Sopenharmony_ci}; 378c2ecf20Sopenharmony_ci 388c2ecf20Sopenharmony_cistruct rt2880_pmx_group { 398c2ecf20Sopenharmony_ci const char *name; 408c2ecf20Sopenharmony_ci int enabled; 418c2ecf20Sopenharmony_ci 428c2ecf20Sopenharmony_ci const u32 shift; 438c2ecf20Sopenharmony_ci const char mask; 448c2ecf20Sopenharmony_ci const char gpio; 458c2ecf20Sopenharmony_ci 468c2ecf20Sopenharmony_ci struct rt2880_pmx_func *func; 478c2ecf20Sopenharmony_ci int func_count; 488c2ecf20Sopenharmony_ci}; 498c2ecf20Sopenharmony_ci 508c2ecf20Sopenharmony_ciextern struct rt2880_pmx_group *rt2880_pinmux_data; 518c2ecf20Sopenharmony_ci 528c2ecf20Sopenharmony_ci#endif 53