43 lines · c
1/* SPDX-License-Identifier: GPL-2.0-only */2/*3 * First generation of pinmux driver for Amlogic Meson SoCs4 *5 * Copyright (C) 2014 Beniamino Galvani <b.galvani@gmail.com>6 * Copyright (C) 2017 Jerome Brunet <jbrunet@baylibre.com>7 */8 9struct meson8_pmx_data {10 bool is_gpio;11 unsigned int reg;12 unsigned int bit;13};14 15#define PMX_DATA(r, b, g) \16 { \17 .reg = r, \18 .bit = b, \19 .is_gpio = g, \20 }21 22#define GROUP(grp, r, b) \23 { \24 .name = #grp, \25 .pins = grp ## _pins, \26 .num_pins = ARRAY_SIZE(grp ## _pins), \27 .data = (const struct meson8_pmx_data[]){ \28 PMX_DATA(r, b, false), \29 }, \30 }31 32#define GPIO_GROUP(gpio) \33 { \34 .name = #gpio, \35 .pins = (const unsigned int[]){ gpio }, \36 .num_pins = 1, \37 .data = (const struct meson8_pmx_data[]){ \38 PMX_DATA(0, 0, true), \39 }, \40 }41 42extern const struct pinmux_ops meson8_pmx_ops;43