1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- /* SPDX-License-Identifier: (GPL-2.0+ or MIT) */
- /*
- * Copyright (c) 2017 Baylibre SAS.
- * Author: Jerome Brunet <[email protected]>
- *
- * Copyright (c) 2017 Amlogic, Inc. All rights reserved.
- * Author: Xingyu Chen <[email protected]>
- *
- */
- struct meson_pmx_bank {
- const char *name;
- unsigned int first;
- unsigned int last;
- unsigned int reg;
- unsigned int offset;
- };
- struct meson_axg_pmx_data {
- struct meson_pmx_bank *pmx_banks;
- unsigned int num_pmx_banks;
- };
- #define BANK_PMX(n, f, l, r, o) \
- { \
- .name = n, \
- .first = f, \
- .last = l, \
- .reg = r, \
- .offset = o, \
- }
- struct meson_pmx_axg_data {
- unsigned int func;
- };
- #define PMX_DATA(f) \
- { \
- .func = f, \
- }
- #define GROUP(grp, f) \
- { \
- .name = #grp, \
- .pins = grp ## _pins, \
- .num_pins = ARRAY_SIZE(grp ## _pins), \
- .data = (const struct meson_pmx_axg_data[]){ \
- PMX_DATA(f), \
- }, \
- }
- #define GPIO_GROUP(gpio) \
- { \
- .name = #gpio, \
- .pins = (const unsigned int[]){ gpio }, \
- .num_pins = 1, \
- .data = (const struct meson_pmx_axg_data[]){ \
- PMX_DATA(0), \
- }, \
- }
- extern const struct pinmux_ops meson_axg_pmx_ops;
|